1、”中使用者输入非1-3数字或其他字符时,系统提示结束然后从新开始。3.进入学生管理系统菜单或者老师管理系统菜单会出现相应功能(1-6):分别对应的有交费功能、查询一个功能、查询全部功能、增加功能、删除功能。学生的查询功能分别为学号和姓名,老师的查询功能为编号和姓名,也可以查询到是否缴费,如未交费就会分别显示水费、电费、煤气费、费用并显示总费用。4.交费时它会显示费用多少,实际交了多少钱,如果钱交多了显示应找零多少。结构描述:1.首先建立了Feebz类,用于初始化身份证号码、姓名、用水电、煤气量,又定义了缴费函数Get(),用在有人缴费的函数体中,从键盘输入缴的费用,一开始我们在Get(),中没
2、有对缴的费用进行累加,在查询信息时现实的应缴费用不正确,经过我们的努力,检查出错误并加以改正,让程序更加完善。2.用Feebz类派生出StuMan和|TeaMan类,其中有计算应该缴的费用,StuMan类比TeaMan类多了免费。3.在保存文件的处理中,需考虑到“查询失败”和“重新输入”等诸多内容三、主要流程描述:流程图: 四、使用说明:程序运行后,进入界面:在如上所示的界面下,根据提示进行基本的操作。五、问题及解决方法问题1. 觉得该系统的不足就是不能够实现查看某个人的用水量、用电量或者用气量中的一种和应该支付的钱。问题2还有一个不足就是程序感觉不够简练,有点罗嗦。解决方法:对于解决这些问题
3、,觉得应该定义子函数来提取每个人的信息这样就可以实现查看某人的用水量、用电量、或者用气量的一种和应该支付的钱。对于问题2这需要有扎实的基本功,能都用最简短的源程序代码去解决一个相同的问题。六、实践总结:课程设汁的过程中遇到了很多麻烦,虽然我早有心理准备,但还是令我伤透了脑筋,只怪自己平时看书太少,其实有很多东匹在书上都可以找到答案的,可是还是有一些问題我实在没有办法解决,最终通过老师和同学们的努力解决了一个又一个的问题。通过这次课程设计,我学习到了很多知识,并且给了我一个星月的时间去重新认真的有目的性的C+语言进行复习,查找补漏,为后续课程做充足的准备。设计的过程是困难的,因为以前没有类似的经
4、验刚开始的几天没有太多进展,不过我们没有灰心,经过认真思考以及老师帮助,最我们有了很好的设设计方法。程序的完成使我们很高兴,所有的疲惫己经不算什么了,现在觉得要想编写一个好的程序真的很累,它需要牢固的基础知识作为 铺垫,所有源代码的编写输入以及每一步的调试都容不得一点马虎,整个牢固的基础是编程的最基本需要,要想好每一步的算法,要想到每一个相应的函数。我觉得一月的课程设计远远比我自己看一学期书的 收获多,实践是检验知识的最隹手段。七、源代码:#include stringcstdlibiomanipfstreamusing namespace std;int ns,nt;class Feebz
5、/ 学生的信息类 public:Feebz(string Num=140901019,string Name=董金明, double water=1,double power=0,double gas=10); / 构造函数 friend ostream &operator (ostream &out,Feebz &r) /运算符重载 outsetw(12)leftr.number; outsetw(8)r.name;r.water;r.power;r.gas;r.GetW();r.GetP();r.GetG(); outr.GetTotal(); if(r.flag) 已交; else ou
6、t未交 return out; void operator =(Feebz r); / 运算符重载 double GetW(); / 计算学生水费 double GetP(); / 计算学生电费 double GetG(); / 计算学生气费 double GetTotal() return GetW()+GetP()+GetG(); / 计算学生总费用 string number,name; int flag;double water,power,gas,Waterprice,Powerprice,Gasprice; ;Feebz:Feebz(string Num,string Name,
7、double Water, double Power, double Gas) / 构造函数 number=Num; name=Name; water=Water;power=Power; gas=Gas; flag=0;void Feebz:operator =(Feebz r) / 赋值运算符重载 name=r.name; number=r.number; water=r.water; power=r.power; gas=r.gas;double Feebz:GetW() / 计算学生水费 if(water=6) Waterprice=0;Waterprice=0.6*(water-6)
8、; return Waterprice;GetP() / 计算学生电费 if(power=6) Powerprice=0;else Powerprice=0.6*(power-6); return Powerprice;GetG() / 计算学生气费 if(gasPowerprice=0.6*(gas-6);class StuMan / 学生管理类 public:StuMan(int sz=50) size=sz; St=new Feebzsize; /构造函数 StuMan() delete St; / 析构函数 void MainMenu(); / 主菜单 void FeeMenu();
9、/ 学生交费菜单 void NumFee(); / 输入学号交费void NameFee(); / 输入姓名交费 void CheckMenu(); / 学生查询菜单 void NumCheck(); / 输入学号查询 void NameCheck(); / 输入姓名查询 void Add(); / 增加学生功能 void DeleteMenu(); / 学生删除菜单 void NumDelete(); / 输入学号删除 void NameDelete(); / 输入姓名删除void Regist();void Chakan(); / 学生查看作用private:int size; Feebz
10、 *St;void StuMan:MainMenu() / 主菜单 system(cls); int choice; coutchoice; switch(choice) case 1:FeeMenu(); break; case 2:CheckMenu(); case 3:Chakan(); case 4:Add(); case 5:DeleteMenu(); default: if(choice=6) Regist() int i=0; ifstream tfile(student.txt while(tfile.good() tfileSti.number;Sti.name;Sti.wa
11、ter;Sti.power;Sti.gas; i+; tfile.close(); ns=i;FeeMenu() /学生交费菜单 system( 学 生 交 费 菜 单 1.按照学号交费 2.按照姓名交费 3.返回主菜单 4.退出系统 while(1) NumFee(); break;NameFee();system( MainMenu();exit(1); if(choice=3) void StuMan:NumFee() / 输入学号交费 string number; float money; int flag=0,flag1=0; coutnumber; for(int i=0;ins;
12、i+) if(number=Sti.number) flag1=1; cout该同学应该交费共Sti.GetTotal()money; if(moneySti.GetTotal() 该同学需再补交Sti.GetTotal()-money Sti.flag=0; MainMenu(); else 该同学交费成功,且找零钱为money-Sti.GetTotal() Sti.flag=1; break; if(!flag1) system(该学生的学号输入错误,请重新使用该功能! NumFee();NameFee() / 输入姓名交费 string name; float money; int fl
13、ag=0,flag1=0; 欢迎使用交费功能请输入学生姓名:name; for(int i=0; if(name=Sti.name) flag1=1; if(money Sti.flag=1; if(!flag1) system(该学生的姓名输入错误,请重新使用该功能! NameFee();CheckMenu() / 学生查询菜单 学 生 查 询 菜 单 1.按照学号查询 2.按照姓名查询 case 1:NumCheck(); case 2:NameCheck(); case 3:NumCheck() / 输入学号查询 string number; int flag1=0,i,item;欢迎使
14、用查询功能请输入需要查找的学生学号: for(i=0; if(number=Sti.number) item=i; if(flag1) 学号 姓名用水量 用电量 用煤气量 水费 电费 煤气费 总额 交费否Stitem该学生的学号输入错误,请重新使用该功能! NumCheck(); NameCheck() / 输入姓名查询 请输入需要查找的学生姓名:if(flag1) 学号 用水量水费 NameCheck();DeleteMenu() / 学生删除菜单 学 生 删 除 菜 单 1.按照学号删除 2.按照姓名删除NumDelete();NameDelete();NumDelete() / 输入学号删除 int item=1,i,j;欢迎使用删除功能请输入要删除学生的学号: item=0; j=i;item) for(j=i;jns-1;j+) Stj=Stj+1;该学生的信息已被删除! if(item) system( NumDelete();NameDelete() / 输入姓名删除请输入要删除学生的姓名: if(name=Sti.name)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1