NTUE-CS103 板


LINE

http://www.cs.ntue.edu.tw/cssa/drupal/?q=node/123 題目在這在這在這 還好網址沒有很長 我不會縮址 以下只有到第3小題 也就是member1.cpp的部分 請酌量服用 -- #include<iostream> #include<fstream> #include<string> using namespace std; 這次我的作法只有用到這些東西 當然如果想要湊行數的話 可以加上#include<ctime> #include<cstring> #include<iomanip> 之類之類的 隨你們高興~ -- 第一小題: class member //member就是所謂的會員 { protected: string num; //num是會員編號 int money,bonus; //money是消費金額 bonus是紅利 public: inline int getbonus(){return bonus;} //inline省略不打並不會影響結果 inline int getmoney(){return money;} //只會增加CPU的溫度而已 inline string getnum(){return num;} }; //別忘了class要記得加上分號 沒什麼重點的第一小題 主要就是資料成員 題目規定不能用public 第二小題又要把資料成員繼承下去 不能用private 所以protected是您的唯一選擇 -- 第二小題: class golden : public member //golden是所謂的黃金會員 { golden *ptr; //ptr是為了待會串列使用 public: golden(char *n,int i) //利用建構函式的參數把資料輸入進去 { num=string(n,4); //輸入會員編號 money=i; //輸入消費金額 bonus=100+money/5; //算出紅利 ptr=NULL; //ptr指向NULL以便後面判別 } void setptr(golden *i){ptr=i;} //ptr的輸入與輸出函式 inline golden *getptr(){return ptr;} }; 黃金會員的部分 黃金會員紅利真多 害我也想當 -- class normal : public member //normal是所謂的一般會員 { normal *ptr; public: normal(char *n,int i) { num=string(n,4); money=i; bonus=money/20; //唯一的不同點就是紅利少的可憐 ptr=NULL; } void setptr(normal *i){ptr=i;} inline normal *getptr(){return ptr;} }; 由於父類別member裡面有成員函式 所以三種繼承手法只能選擇public繼承 很簡單的第二小題 -- 崩潰的第三小題: int main() //進入崩潰的主函式 { //這邊解釋跟input1.txt的對應關係 fstream file; //1 A001 1000 分別是 char level,num[4]; //level num[4] money int money; golden *head1=new golden(num,-500),*a,*b,*c; //兩種會員會用到兩條串列 normal *head2=new normal(num,0),*x,*y,*z; //所以需要兩個head file.open("input1.txt",ios_base::in); //開啟input1.txt檔案 把該宣告的都宣告出來 兩個head各給他一個new是為了排序的時候墊底 golden跟normal後面的參數就自己細細的體會吧 有點不容易解釋科科 接下來是有點複雜的串流程序 請做好心理準備 -- while(!file.eof()) //.eof函式在檔案到底時回傳ture { //這邊對應input1.txt //1 A001 1000 file.get(level); //把1存在level裡面 file.get(); //中間的空格吃掉 file.get(num[0]).get(num[1]).get(num[2]).get(num[3]); //A001存在num裡面 file.get(); //中間的空格再吃掉 file>>money; //剩下的數字存在money裡面 file.get(); //把最後的enter吃掉 就這樣 一整行的資料都被分別存在對的地方了 其實只是把我們常用的cin換成file而已 重點是 中間討厭的空格要讓它消失於異次元之中 -- 之後利用level辦別是否為黃金會員 if(level=='1') //1表示黃金會員 { a=new golden(num,money); //new一個golden 並輸入num跟money a→→排序 //把上學期的排序程式複製過來用吧! } if(level=='2') //2表示一般會員 { x=new normal(num,money); x→→排序 } } 我的排序邏輯又臭又長是眾所皆知的 這邊用自己熟悉的排序方式就好 排序過後 head1是黃金會員的串列頭 head2是一般會員的串列頭 -- a=head1; //開始進行輸出 x=head2; cout<<"編號\t金額\t紅利\n"; while(a->getptr()!=NULL||x->getptr()!=NULL) //當兩條串列都到底就結束 { if(a->getbonus()>x->getbonus()) //從頭開始 比較兩邊會員的紅利大小 { //較大的一方輸出 並且移到下一位 cout<<a->getnum()<<"\t"<<a->getmoney()<<"\t"<<a->getbonus()<<endl; a=a->getptr(); } else //依序輸出編號 金額 紅利 { cout<<x->getnum()<<"\t"<<x->getmoney()<<"\t"<<x->getbonus()<<endl; x=x->getptr(); } } system("pause"); 兩條串列輸出邏輯大概是這樣 -- } //↑最後一個大括號 記得上括號跟下括號要一樣多 不知道現在Po這個能不能稍微幫你們一點忙 也不知道我有沒有解釋得相當清楚 如果有更好的方法不要吝嗇 提出來吧 對我的程式的哪邊相當不順眼也直接說 我盡量改進 各位加油 還有10個小時 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.122.90
1F:推 drygoat:複製->另存新檔->放入隨身碟 謝謝泰泰專業解析 06/21 00:34
2F:推 daikon14:太強大了拉!!!快膜拜吧!!! 06/21 00:36
3F:推 alex960368:麻吉推 真的太棒了 06/21 00:37
※ 編輯: andy801119 來自: 220.136.122.90 (06/21 00:53)
4F:推 baby30069:扣掉睡眠 所剩時間寥寥無幾~~~~~~~ 感謝安泰大大!!! 06/21 00:44
5F:推 j359436224:天啊 也真是太感謝你 辛苦了! 謝!!!!!!!!!!!!!! 06/21 00:45
6F:→ ayomot038:是有幾個人是有試著寫過的? 06/21 00:48
7F:→ ayomot038:不要整天都想要有人幫你 06/21 00:51
8F:推 justbearcry:拜神囉! 06/21 00:53
9F:推 shes87551:有神快拜! 06/21 00:55
10F:推 bennyt6182:謝謝 我現在編譯一次看看 06/21 00:56
11F:推 bengikey:跪著案推文啊 06/21 03:04
12F:→ game0416:"你什麼時候有第三題一定要用前兩題類別的錯覺了" 06/21 08:11
13F:→ game0416:去年的解法應該都是這個想法(?) 06/21 08:11
14F:→ andy801119:我還真的產生錯覺了 06/21 09:51







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燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP