精華區beta NTUE-CS102 關於我們 聯絡資訊
今天終於把程式寫完了 模擬考補交就在明天晚上結束(應該吧?) 在這邊提供不會寫的人一些方向 沒有噁心看到眼花的程式碼 只有一些個人心得 所以有心想自己寫的人參考一下 -- 首先是這次的題目 第一題 要求要使用類別來記錄學生資料,且男學生女學生可另外儲存軍訓護理 第二題 對男學生總分(英+數+程式+軍訓)排名 第三題 對女學生總分(英+數+程式+護理)排名 第四題 對總分(英+數+程式)排名 一到四題基本上可一次寫完,四題都用同一個CPP上傳繳交 (其實照題目說法,應該是同一個cpp有三個函式,讓你選擇要什麼排名。 不過我搞不懂這樣為啥還要分三個cpp上傳,照彥廷說法是只要結果能正確就好。 所以不用想那麼多,做的出正確結果就是了。) 不過這個方法比較累人,而且選項眾多,容易有BUG 可以分成四個不同寫法來投機取巧(?) -- 然後這次運用到的章節有 陣列與指標 F5700-CH07.PPT (指標這部份一定要搞懂) 類別與物件 F5700-CH08.PPT (類別不用我說了吧?) 字串 F5700-CH11.PPT (字元、名字都用的到) 繼承 F5700-CH12.PPT (建立男女子類別) C輸入與輸出 F262A-CH03.PPT (格式化輸出使用) 後面是老師iCAN上傳的檔名,沒課本的就去那邊找吧 這五章節一定要熟到爛掉,不然期末考一樣掰 尤其以陣列與指標、類別與物件、字串這三章節最常使用 -- 說一下寫程式的方向 就像解數學應用題,你除了會公式以外,再來是想要用哪個公式解哪個部份 然後把這些都統合起來才能解一題數學題目,程式亦同 我們現在有了這些工具,再來就是想一下,題目想要什麼,該怎麼下手 首先第一題要有一個可以儲存學號、姓名、英文、數學、程式的基本類別 所以有個基本方向 這個程式一定會有一個類別(class) 我先把這個類別命名為 st ┌─────┐ │ st │ 後面代表他的型別 ├─────┤ │學號int char[]代表字元陣列的意思,因為是名字要用陣列儲存 │姓名char[]│ │英文int │ 學號那些用int儲存就好了 │數學int │ │程設int │ └─────┘ -- 有了基本類別後 再來就是幫男女學生創子類別讓他們儲存不同的分數 這個方法在賭博那個作業就做過 大家應該不陌生(除非你用抄的,事後又不去理解他) ┌─────┐ │ st ├──┬────┐ prot.. 是指用class Boy : protected st宣告 ├─────┤┌─┴─┐┌─┴─┐ │學號int ││ Boy ││ Girl │ 這樣就擁有基本類別跟兩個子類別了 │姓名char[]│├───┤├───┤ │英文int ││prot..││prot..│ │數學int ││ 軍訓 ││ 護理 │ │程設int ││ int ││ int │ └─────┘└───┘└───┘ 而這些資料的儲存讀取大家應該都知道用兩個函式去做,所以這邊不多敘述 這樣第一題就完成了(test.cpp) -- 再來就是二三題總分排名的部份,這個部分可以參考作業5,從中間插入就好 所以目前程式大致長成這個樣子: 開頭宣告 這我不用多說吧? class st 這是一開始儲存基本資料的類別 boy protected 男學生 girl protected 女學生 int main() int main() 主程式大概要怎麼寫,就看你想要怎麼做了 { cin資料 以我的做法來說,輸入資料跟排名先用switch讓使用者做選擇 同時排名 }; 再依照選項不同下去做不同的動作。 -- 輸入或看排名 輸入、儲存資料 從中間插入 ┌────┐ ┌────┐ ┌────┐┌→│cin info├→ │Ranking │ │ switch ├┤ ├────┤ └────┘ └────┘└→│顯示排名│ └────┘ 這是第二題跟第三題大概流程,裡面輸入儲存的地方可以改一下就可以了 例如一開始做男學生的那題,node = new Boy; 改成 node = new Girl; 就變成新增女學生類別了。cin >> 軍訓; 改成 cin >> 護理; 像這樣做更改 switch 的用法,上學期有用過大家應該有印象,再回去翻翻應該就會了 第四題要求依照英數程式的總分作排名。 我是用比較取巧的方法,讓他一開始只輸入英數程式的分數。 沒有輸入軍訓或護理(也就是沒分男女),排名同二三題方法。 -- 到這邊,第一到四題都應該可以做出來了。雖然有點取巧,不過有正確答案就好。 取巧的地方: 1) 第四題題目要求:設計一個函式可將..... 因此應該是新增資料的時候一樣要分男女,但是第二題讓你選擇用男生總分排名 第三題用女生總分排名,第四題應該是將已經輸入完的男女分數(包含軍訓護理)中, 英數程式分數拿出來另外做總分排名。 2) 輸入成績的地方 照題目說法,輸入的時候應該都要分男女,只有在排名的時候讓你做選擇 但是我們偷偷在輸入跟排名的地方動手腳,讓輸入跟排名是一致性的。 也就是輸入男就排男,女就排女。(因為二三題不需要幫另一邊排名,所以才能這樣搞) -- 至於一到四題一次滿足的那個寫法,我自己都懶的寫了,我只把一到三題做整合 三題都繳交同一份,第四題就直接用一開始的寫法了 囧rz。 如果有問題,我在線上的話都能問我。問安邦或鳳郎更好。 大家加油,期末考也快到了。自己有空多多練習。 --  | ▃▂▆▅▄▄▃▃▃▃▄_=▃▄▅▂▁十`〢∥ ▆▄▃、\ //▄▆▅▃ | | _▂、 |▃、 | ︱∥ ˙ ˙ ∥︱ ▊◤ !| |▂▁▁▂      -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.127.36.135 ※ 編輯: Arashinoon 來自: 120.127.36.135 (06/13 04:54)
Tuko:好文 但我記得老師說一定要用 protected 吧..... 06/13 09:21
gcobc12632:老師有規定「一定」不能用public 阿辣洗重寫囉 06/13 11:47
CaptainWill:這一篇文章值 960 元 06/13 12:01
gcobc12632:不請客嗎 06/13 12:02
j2612280:科科 阿辣洗noon 06/13 12:29
joe989879:阿辣洗要取代安邦了... 06/13 12:47
j2612280:取代什東西呀~"~? 06/13 12:55
Arashinoon:幹 澇賽 我11.00才進去齁 又沒人跟我說= = 06/13 16:40
※ 編輯: Arashinoon 來自: 120.127.36.135 (06/13 16:45)