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

请输入看板名称,例如:Gossiping站内搜寻

TOP