請撰寫一個身分證字號檢查程式, 程式可接收使用者的身分證字號輸入, 並輸出檢查結果 (True 或 False 即可)
身分證字號編碼與檢查方法如網址 (https://zh.wikipedia.org/wiki/中華民國國民身分證)
為方便處理, 使用者輸入時, 字母部分可直接以轉換過的數字代表 (如使用者輸入 10123456789 代表 A0123456789) , 亦可結合 if 結構, 依照字母進行轉換
請同學撰寫一說明文件, 說明使用到的變數, 分析方法, 測試方法 (如何進行測試, 確保程式的正確), 以及程式可能改進的地方
不局限於命令列模式版本, 亦可開發桌面應用 (GUI) 版本
繳交期限: 23:59, 10/04/2021
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向第一次作業-學號-姓名
作業格式: py (python 原始碼) 與 pdf (說明文件)
請參考凱撒密碼 (Caesar Cipher), 同學可自行定義偏移量, 實作出加密與解密程式 https://zh.wikipedia.org/wiki/%E5%87%B1%E6%92%92%E5%AF%86%E7%A2%BC
僅處理英文字母資訊, 其他如空白鍵, 數字, 符號等, 請保持原資料不做處理
請提供使用者選擇進行加密, 解密, 或離開程式 請參考以下圖檔 (同學可自行修改, 延伸, 或以 GUI 版本實作)
請同學參考維吉尼亞密碼 (Vigenere Cipher), 實作出加密與解密程式 https://zh.wikipedia.org/wiki/%E7%BB%B4%E5%90%89%E5%B0%BC%E4%BA%9A%E5%AF%86%E7%A0%81
請提供使用者選擇進行加密, 解密或離開程式
使用者須提供一欲加密或解密的文字, 以及金鑰 (若金鑰長度比文字短, 則將重複使用金鑰內容)
可限制僅處理英文大寫的輸入與輸出, 且不包含任何非英文字母的符號
請參考以下圖檔 (同學可自行修改, 延伸, 或以 GUI 版本實作)
chr(i): Return the string representing a character whose Unicode code point is the integer i. For example, chr(97) returns the string 'a', while chr(8364) returns the string '€'. This is the inverse of ord().
ord(c): Given a string representing one Unicode character, return an integer representing the Unicode code point of that character. For example, ord('a') returns the integer 97 and ord('€') (Euro sign) returns 8364. This is the inverse of chr().
https://en.wikipedia.org/wiki/List_of_Unicode_characters
請同學記得撰寫一說明文件, 說明使用到的變數, 程式邏輯控制, 迴圈結構, 運算方法, 測試方法 (如何進行測試, 確保程式的正確), 以及程式可能改進的地方
繳交期限: 23:59, 10/18/2021
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向第二次作業-學號-姓名
作業格式: py (python 原始碼) 與 pdf (說明文件)
請同學撰寫一個疫苗預約模擬程式, 主要具有以下的功能
基於使用者的輸入 (如 20000000), 產生該數量的模擬預約資料
預約資料可自行設計, 但須包含 1) 序號 2) 縣市 3) 時間 (年 / 月 / 日), 其他資料可自行延伸 (如身分證字號, 出生年月日等) (縣市與時間資料可借助亂數方法產生)
請設計一資料結構, 存放疫苗預約資料
模擬預約資料產生後, 請設計 1) 查詢 2) 統計 3) 輸出呈現等功能 (請參考範例圖片)
資料紀載項目的增加 (如作業題所提到的身分證字號, 出生年月日等)
功能的增加 (如進階查詢功能, 統計圖表等)
效能觀察與分析 (不同模擬資料量的執行所需時間, 電腦記憶體使用狀況等) (請參考範例圖片)
請同學記得撰寫一說明文件, 說明使用到的變數, 程式邏輯控制, 迴圈結構, 資料結構, 運算方法, 測試方法 (如何進行測試, 確保程式的正確), 以及程式可能改進的地方
繳交期限: 23:59, 11/08/2021
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向第三次作業-學號-姓名
作業格式: py (python 原始碼) 與 pdf (說明文件)
請基於前一次作業所設計實作的疫苗模擬程式, 增加檔案與額外功能
使用者可將模擬後的資料, 寫進檔案 (如 csv 格式檔案) 保存
使用者可讀取資料檔案, 取得模擬資料並輸出
使用者可讀取資料檔案, 取得模擬資料, 並對資料進行搜尋 / 排序
使用者可讀取資料檔案, 取得模擬資料, 進行資料更新, 並寫回資料檔案
功能的增加 (如進階查詢功能, 統計圖表等)
效能觀察與分析 (不同資料量的寫入與讀取所需時間, 檔案大小等) (請參考範例圖片)
請思考在不同操作情境下, 如何提高效率, 並進行設計與實作, 且提出數據佐證
寫入操作少, 讀取操作多
寫入操作多, 讀取操作少
請同學記得撰寫一說明文件, 說明使用到的變數, 程式邏輯控制, 迴圈結構, 資料結構, 檔案輸入輸出, 運算方法, 測試方法 (如何進行測試, 確保程式的正確), 以及程式可能改進的地方
繳交期限: 23:59, 11/22/2021
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向第四次作業-學號-姓名
作業格式: py (python 原始碼) 與 pdf (說明文件)
期中專案報告時間: 12/01/2021
期中報告主題: 由同學所實際遭遇的 “問題,” “需求,” “想法” 等, 透過 Python 程式語言實作一程式, 並解決 (完成) 所遭遇的 “問題,” “需求,” “想法”
識別問題, 需求或想法
思考解決 (完成) 方法
透過 Python 程式語言依照解決 (完成) 方法進行設計與實作
對於所實作的程式進行測試
專案分工與心得分享
請製作投影片並上台報告, 並展示程式的功能
報告當天將以抽籤方式決定報告順序
報告時間: 每組 7-10 分鐘
請於 23:59 11/22/2021 前 (或包含於第四次作業), 將分組名單寄至老師信箱 (chkao@gm.nttu.edu.tw), 分組將於協作平台公布
專案報告結束後, 請於 23:59 12/07/2021 前繳交程式碼, 投影片, 或其他必需的檔案
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向程式設計期中專案報告
請同學依據先前的疫苗施打模擬程式, 進行以下修改
設計並實作方法
設計並實作例外處理機制 (如資料檔不存在)
重構程式
其他功能 (如讀取設定檔, 依照設定檔的資訊進行模擬)
請撰寫文件說明 1) 設計想法, 2) 當前設計可以帶來的優點, 以及 3) 兩個版本程式的比較
請同學設計實作一程式, 該程式可進行各種敘述統計量的計算
設計並實作方法 (如算術平均數, 調和平均數, 幾何平均數, 中位數, (母體/樣本) 標準差, (母體/樣本) 變異數, 眾數, 最大值, 最小值)
設計並實作例外處理機制
設計資料輸入機制 (如讀取一 CSV 資料檔)
設計操作介面 (設計選單, 供使用者選擇並執行上述統計計算功能)
請撰寫文件說明設計想法與使用方式
繳交期限: 23:59, 12/28/2021
繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
郵件命名: 物件導向第五次作業-學號-姓名
作業格式: py (python 原始碼) 與 pdf (說明文件)
期末報告時間: 16:10-18:00, 01/11/2022
期末報告主題: 由同學所實際遭遇的 “問題,” “需求,” “想法” 等, 透過 Python 程式語言實作一軟體程式, 並解決 (完成) 所遭遇的 “問題,” “需求,” “想法”
確立問題, 需求或想法
思考解決 (完成) 方法
透過 Python 程式語言依照解決 (完成) 方法進行設計與實作
對於所實作的軟體程式進行測試
專案分工與心得分享
請製作投影片並上台報告, 並展示程式的功能
報告當天將以抽籤方式決定報告順序
報告時間: 每組 7-10 分鐘
請將分組名單於 23:59, 01/04/2022 前寄至老師信箱 (chkao@gm.nttu.edu.tw), 分組資訊將於協作平台公布
期末報告結束後, 請繳交 py 檔, 投影片 pdf 檔案, 或其他必需的檔案
期末報告繳交期限: 23:59, 01/17/2022
期末報告繳交方法: 請寄到老師信箱 chkao@gm.nttu.edu.tw
期末報告郵件命名: 物件導向程式設計期末報告