NTUE-CS102 板


LINE

看完鳳狼大的文 還寫不出來就看這吧 先解釋三個作業的要求 作業1 用st物件陣列來存學號跟分數 作業2 同1,但是要封裝 作業3 用st物件串列來存學號跟分數 上學期最後的成績單 是用多個陣列來存分數跟成績 例如 int ID[10], chinese[10], english[10] ... 這樣就可以寫出來想要的功能 但就是排序的時候 兩兩比較 然後交換有幾個陣列就要一起交換 例如 if(sum[i]<sum[i+1]) { int t=ID[i]; ID[i]=ID[i+1]; ID[i+1]=t; t=chinese[i]; chinese[i]=chinese[i+1]; chinese[i+1=t; ... } 這樣很麻煩 所以 我們可以定義一個東西 把需要的資料 包成一捆 class st{ public: int ID; int grade; }; 這樣我們只要建立一個 st 的陣列 就可以存每一筆包含ID跟grade的資料了 st a[5]; for(i=0;i<5;i++) { cin>>a[i].ID; cin>>a[i].grade; } 比較也很簡單 因為綁成一捆了 所以直接整個交換 if(a[i].grade<a[i+1].grade) { st t=a[i]; a[i]=a[i+1]; a[i+1]=t; } 這樣就是全部作業1需要的東西了 下面是作業1的參考答案 #include<iostream> using namespace std; class st{ public: int ID; int grade; }; int main(){ int i,j; st a[10], t; // 輸入 for(i=0;i<10;i++) { cin>>a[i].ID>>a[i].grade; } // 排序 for(i=0;i<10;i++) { for(j=0;j<9;j++) { if(a[j].grade<a[j+1].grade) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } // 輸出 for(i=0;i<10;i++) { cout<<"第"<<i+1<<"名:"<<a[i].ID<<" "<<a[i].grade<<"分\n"; } } 接下來是 作業2 如果把 st 想成是一個 ID跟grade 就是你口袋裡面的財產 作業1用的方法 直接對ID跟grade 做 cin 跟 cout 就好像 cin 跟 cout 直接去你口袋 把錢放進去拿出來 這樣是很危險的 所以 我們稍作修改 class st{ private: //這行可以省略 int ID; int grade; public: void setID(int i) { ID=i; } void setgrade(int g) { grade=g; } int getID() { return ID; } int getgrade() { return grade; } }; 增加了ID跟grade對應的 get 跟 set 當然不一定要get跟set 你可以自己取 但是要記得誰是誰就OK 然後輸入的地方 就變成 int x,y; st a[5],t; ... for(i=0;i<5;i++) { cin>>x>>y; a[i].setID(x); a[i].setgrade(y); } 比較就變成 if(a[i].getgrade()<a[i+1].getgrade()) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } 輸出就變成 for(i=0;i<5;i++) { cout<<"第"<<i+1<<"名:"<<a[i].getID()<<" "<<a[i].getgrade()<<"分\n"; } 作業1到作業2只是小改 原本作業1的 ID跟grade是 公開的 所以可以直接cin/cout跟改變值(a[i].grade=59;類似這樣) 這樣程式比較簡單 但是比較危險 改成作業2的方法有幾個好處 像是把值丟進去的時候 例如改座號 改分數 可以設定 例如 座號一定>0, 分數一定在0~100之類的 void setID(int i) { if(i<0) { cout<<"座號沒有負的喔"; } else { ID=i; } } 類似這樣 如果把 st 看作是的話 這些set跟get等於是經過你的同意 只是現在的作業2 直接就 什麼=什麼 跟 return 看起來是多此一舉 其實他是有意義的 如果你以後要增加一些檢查功能之類的話 這些都OK的話 就要進入作業3囉.. 請看下一篇 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.127.36.183
1F:推 CaptainWill:大神,未看先推 03/15 22:16
2F:推 CaptainWill:搶到前三推,你這學期物件導向絕對HIGH趴 03/15 22:17
3F:推 CaptainWill:掰~ 03/15 22:17
4F:推 suan710:樓上樓樓上樓樓樓上自HIGH 03/15 22:21
5F:推 CaptainWill:樓上會被當、凼 03/15 22:22
6F:推 gcobc12632:完蛋了 沒上課真的完全看不懂 void set get 的用途是啥 03/15 22:25
7F:推 Arashinoon:非常複雜 決不虎爛 (認真 03/15 22:25
8F:推 suan710:有沒有都給樓樓上講就好的八卦? 03/15 22:25
9F:→ suan710: 樓 03/15 22:26
10F:推 Arashinoon:當然沒有 還有另外兩個版主呢 一切照版規走 03/15 22:27
11F:→ game0416:改版規記得再發文公告才是真的hmm 03/15 22:27
12F:推 Arashinoon:樓上說的極是(_ _)m 小的沒注意 馬上補上一份公告 03/15 22:31
13F:推 pk873:連void 都看不懂 阿泰下一年度跟學弟一起重修看看巴!! 03/15 22:47
14F:→ CaptainWill:說不定還會找到春天(前提是阿牧過了,不能跟你搶 03/15 22:48
15F:推 gcobc12632:老實說我連return是什麼都不知道 所以我根本不用這個 03/15 23:00
16F:推 pk873:阿牧表示: (>,,,<) 我有留鬍子 我很有禮貌 03/15 23:04
17F:推 j2612280: , 03/15 23:07
18F:噓 CaptainWill:安邦你很髒... 03/15 23:10
19F:→ yantchen:那不是是山羊鬍嗎? 花花的山羊鬍很髒喔XD(筆記 03/15 23:20
20F:推 CaptainWill:學長不要被安邦騙了,那不是山羊鬍呀!!! 03/15 23:21
21F:→ j2612280:阿花思想邪惡= =..話說你今天早上都G了= =.. 03/15 23:39
22F:→ CaptainWill:你G了一個我,還有千千萬萬個我 03/15 23:40
23F:→ gcobc12632:樓上是在宣示重修宣言嗎 03/15 23:42
24F:→ yantchen:資科系都第五年了 總是要有人修一下大六嘛 03/15 23:45
25F:推 CaptainWill:囧 03/15 23:45
26F:推 s86186654418:推阿泰:樓上是在宣示重修宣言嗎 03/16 01:17







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP