作者Arashinoon (阿辣洗)
看板NTUE-CS102
標題[心得] 程式設計
時間Sun Jun 13 04:41:40 2010
今天終於把程式寫完了
模擬考補交就在明天晚上結束(
應該吧?)
在這邊提供不會寫的人一些方向
沒有噁心看到眼花的程式碼
只有一些個人心得
所以有心想自己寫的人參考一下
--
首先是這次的題目
第一題 要求要使用
類別來記錄學生資料,且男學生女學生可另外儲存
軍訓、
護理
第二題 對男學生總分(
英+數+程式+軍訓)排名
第三題 對女學生總分(
英+數+程式+護理)排名
第四題 對總分(
英+數+程式)排名
一到四題基本上可一次寫完,四題都用同一個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)