1 / 10

HOME WORK III

HOME WORK III. 2013/8/16 Shang-Xuan Zou. HW3. 共七 題 要交幾題都可以,寫的加起來就是總分 只要繳交程式碼就好 檔名分別 為:座號 -hw 3 - 題號 . cpp 以 email 繳交至 ntu.train@gmail.com 相關資 料: http://w.csie.org/~r01922006/train/cb230/data/hw3.zip 標題請以” [ cb230] hw3- 學號 ”寄送 作業成績會公佈於課程網站

kreeli
Télécharger la présentation

HOME WORK III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HOME WORK III 2013/8/16 Shang-Xuan Zou

  2. HW3 • 共七題 • 要交幾題都可以,寫的加起來就是總分 • 只要繳交程式碼就好 • 檔名分別為:座號-hw3-題號.cpp • 以 email 繳交至 ntu.train@gmail.com • 相關資料: • http://w.csie.org/~r01922006/train/cb230/data/hw3.zip • 標題請以”[cb230] hw3-學號”寄送 • 作業成績會公佈於課程網站 • 繳交期限:8/21(三)23:59,每24小時扣10%,逾期三天後不收(8/24) • 有問題上下課時請盡量問!

  3. Problem 1–10points • 這題繳交整份 cpp(只須寫一份cpp) • 設計一個學生結構,內容有: • 學生姓名(C/C++字串皆可) • 身高 (double,以公分為單位輸入) • 體重 (double,以公斤為單位輸入) • BMI (double,公式:體重/身高^2,注意身高單位是公尺) • 依序讀入五個學生的姓名、身高、體重 • BMI 可以趁讀入輸入的時候算,或是之後算 • 依序印出學生的姓名、身高、體重、BMI

  4. Problem 2–20points • 這題繳交整份 cpp(只須寫一份cpp) • 承上題,依序讀入五名學生資料後,輸出 BMI 高於平均的學生姓名 • 輸入跟上題一樣是學生的姓名、身高、體重 • 這題只要輸出 BMI 高於平均的學生姓名就好,不用有上一題的輸出

  5. Problem 3–30points • 這題繳交整份 cpp(只須寫一份cpp) • 再繼續學生的結構,依序讀入五個學生的資料後,分別找出以下同學,並輸出他的姓名: • 身高最高 • 體重最重 • BMI 最高 • 假設不會有一樣高的情況發生,也就是不會有兩個人同樣身高 170

  6. Problem 4–40points • 這題繳交整份 cpp(只須寫一份cpp) • 承上面題目,將下列函式實做出來: • double getAverageBMI(structSTUDENT* s, int n); • 傳入學生結構陣列和長度,回傳平均的 BMI • double getMaxBMI(struct STUDENT* s, int n); • 傳入學生結構陣列和長度,回傳最高的 BMI • string getFattestStudent(structSTUDENT* s, int n); • 傳入學生結構陣列和長度,回傳最胖的學生名字(BMI 最高)

  7. Problem 5–50points • 這題繳交實作的 cpp檔,切記要把實作和宣告分開 • 把 P1~P4 改寫成一個類別,其類別可以儲存五個學生的資料,類別內有結構陣列沒有問題 • 此類別需要有以下函式: • double getAverageBMI(); • double getMaxBMI(); • void setStudent(inti, 字串 name, doubleh, double w); • structSTUDENTgetStudent(inti); • STUDENT可以是你們自己訂的名字,但就是要包含一開始所定義的學生資料:姓名、身高、體重、BMI • 字串 可以是 C 或 C++ 字串,看你喜歡用哪個

  8. Problem 6–60points • 這題繳交整份 cpp(只須寫一份cpp),有附 p5.cpp,可以比較方便測試,可以交改好的 p5.cpp,但記得改名 • 實作出鏈結表單(Linked List) • 需要完成以下函式: • void insertAfter(struct Node*, int); • 插入點在起點後面 • void insertBeginning(structNode**, int); • 插入點在起點前面 • void removeAfter(structNode*); • 移除起點後面的點 • void removeBeginning(structNode**); • 移除起點 • void printList(struct Node*); • 從起點開始印出表單 必須要先初始化一個點,之後才能串 struct Node *start

  9. Problem S–100points • 這題繳交實作的 cpp檔,切記要把實作和宣告分開 • 完成一個 List 類別 • 其功能要有: • intpop_back(), intpop_front(); • 各別是把 List 尾端和前端的值從 List 中拿出來回傳 • pop後該值便不存在於 List 中了 • void push_back(int), void push_front(int); • 分別是從尾端或是前端加入新的值 • bool remove(int); • 把某個值從 List 中移除,若存在且成功移除回傳 true,否則回傳 false • bool search(int); • 搜尋某個值是否存在於 List 中,若存在回傳 true,否則回傳 false • int size(); • 回傳 List 現在有的元素數量 • void printList(); • 依序印出整個 List,例如:[1, 34, 99, 72] • void clear(); • 清除 List • 嚴禁使用 STL 內的功能,請自己實做出來 • remove 和 clear 沒寫好會各扣 10 分

  10. 備註 • 每題的範例程式都附在壓縮檔裡,請測試看看自己程式結果是否正確,輸出不一樣沒關係,但是答案應該要對 • 每題的資料夾裡有: • 範例程式 • 程式碼(P5、P6、PS) • 實作類別的題目請交上: • 類別的實作檔(.cpp) • 實作類別的方法可自由發揮,但請遵守及使用附上的標頭檔中的宣告,和宣告不一樣就當作沒有實作要求的功能 • 評分標準:通過編譯 40%,程式正確性 60%

More Related