水电煤气管理系统.doc_第1页
水电煤气管理系统.doc_第2页
水电煤气管理系统.doc_第3页
水电煤气管理系统.doc_第4页
水电煤气管理系统.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JINGCHU UNIVERSITY OF TECHNOLOGY 课程设计成果 学院:_计算机工程学院_班 级: _计算机科学与技术(一) 学生姓名: 姜桥 学 号: 2009404010121 设计地点(单位)_ A5 -101_ _设计题目:_ 电煤气管理系统_ 完成日期: 2012 年 1月 5 日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ _ 教师签名:_ _ 目 录一课程设计目的和要求 2二课题分析 2三设计 2-31. 设计思想 2.设计分析四主程序3-19五结果显示及分析19-21六感想、收获及体会21 七参考文献22附录221 课程设计目的和要求 问题描述:设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理等。在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。基本要求:实现对用户信息的录入实现水电煤气数据的录入计算并查询用户应缴费用查询未缴纳费用名单测试数据:可选用小区物业管理部门的数据,也可采用手工输入不少于10个用户信息的数据。实现提示:用户基本信息类,教工用户信息类,学生用户信息类,收费标准类,该类存储水电煤气标准单位的收费标准,如:煤气,1.0元/立方米;不同类型人员水、电、煤气信息类,这些类可以包括水表,电表,煤气表ID,抄表时间,上次抄表时间,本次抄表时间,上次抄表度数,本次抄表度数,本次使用度数,费用,是否缴费标记等信息。在实现的时候考虑继承和多态技术的合理使用。二课题分析: 本程序是一个水电气管理信息系统,能够对高校的水电气费用进行管理,包括了成员基本信息,如学号、编号、姓名、成员水电气的用量;程序的用途包括缴纳水电气费、查询一个同学水电气费用量、查看所有同学的缴费情况、增加学生信息、删除学生信息、退出系统等。在设计时也考虑到学生和教师在用水电气时的不同,学生可以免费使用一定额度的水电气,超过这个额度的以后必须付费,且付费部分水电气费的价格要高于教工的收费标准,该措施的实行是为了鼓励同学们节约用水,以免造成不必要的资源浪费。该软件主要是为了学校的管理人员提供便捷,以更快的完成水电气费用的收缴。3 设计1.设计思想:设计面向对象的程序设计语言,首先考虑的肯定是要设计类。程序设计了四个类,两个是学生类,两个是教师类。在主函数中用动态数组,机动的分配类存,以至于不造成类存的浪费。在本程序中涉及用户的选择,用户要根据自己的实际需要选择不同的功能,由于选择的多样性,程序中必须要有switch结构控制各个功能的选择,如果需要多次进行操作,则要在switch结构的外部,通过循环来实现。首先该程序的第一目的是要读附录里的内容,然后再根据用户的选项来实现各种不同的功能,当正确按照要求就可进行更进一步进行操作,直到你达到自己的目的为止。本程序通过调用不同的函数来实现不同的功能,通过用户自己的选择可以自己进行操作,在主函数中申明的函数分别起到不同的作用,在本程序中所有的子函数都是在主函数外实现的。在子函数的函数体中为了使程序的功能和细节更加的完善,在子函数中设置菜单,这样不仅使得程序更加完善还有利于用户的操作。使得程序更加简洁明了。2设计分析:在这个电煤气管理系统中,共用到了四个类,一个是stut类,它起的作用是把水电煤气的用量和每个人的缴费信息结合在一起,还有赋值运算符重载、插入运算符重载,最重要的就是那些对象都有共同的属性,通过这个类把学号、姓名、水用量、电用量、气用量集中到一起,所以才能设计一个类;另一个类就是arrayofStu 学生类计算类,这个类的作用主要就是一些功能的实现,有主菜单、交费菜单、交费功能和、查询菜单、查询功能、增加功能、删除菜单、删除功能、查看功能。同样定义一个teacher它起的作用是把水电煤气的用量和每个人的缴费信息结合在一起,还有赋值运算符重载、插入运算符重载,最重要的就是那些对象都有共同的属性,通过这个类把姓名、水用量、电用量、气用量集中到一起,所以才能设计一个类;其另一个类就是arrayofTeacher老师类数组计算,这个类的作用主要就是一些功能的实现,有主菜单、交费菜单、交费功能和、查询菜单、查询功能、增加功能、删除菜单、删除功能、查看功能四主程序#include iostream#includestring#includefstream#includeiomanipusing namespace std;int count1=0,count11=0; /学生总数和交钱的人数int count2=0,count22=0;class Stupublic:Stu(double xwater=0,double xpower=0,double xgas=0,string xnum=a,string xna=a); /学生类构造函数 void operator =(Stu S); /赋值运算符重载 friend ostream &operator (ostream & a,Stu &S) /插入运算符重载asetw(8)leftS.number; asetw(8)leftS.name; asetw(8)leftS.water; asetw(8)leftS.power; asetw(8)leftS.gas; asetw(8)leftS.SGetW(); asetw(8)leftS.SGetC(); asetw(8)leftS.SGetG(); asetw(8)leftS.Stotal(); if(S.flag) a已交; else a未交; coutendl; return a; double SGetW(); /计算水费 double SGetC(); /计算电费 double SGetG(); /计算煤气费 double Stotal(); /计算总费用 double water,power,gas,water_rate,circuit,gas_rate,total; int flag; string number,name;Stu:Stu(double xwater,double xpower,double xgas,string xnum,string xna) /学生类构造函数 water=xwater; power=xpower; gas=xgas; number=xnum; name=xna; flag=0;void Stu:operator =(Stu S) /赋值运算符重载 name=S.name; number=S.number; water=S.water; power=S.power; gas=S.gas;double Stu:SGetW( ) /计算水费if(water10) water_rate=0;else water_rate=4.2*(water-10); return water_rate;double Stu:SGetC() /计算电费if(power10) circuit=0;else circuit=0.6*(power-10); return circuit; double Stu:SGetG() /计算煤气费if(gasstudenti.number;;fstudenti.water;fstudenti.power;fstudenti.gas;i+;f.close();count1=i;couttt 注册成功!endl;void arrayofStu:naj( ) /输入姓名交费 char ch; double money,money2; coutttt欢迎使用姓名交费功能endl; string na; cout请输入学生姓名:na; int fl=0;for(int i=0;icount1;i+) if(na=) fl=1; if(studenti.flag) cout该学生已缴纳过费用endl; else cout你应该交studenti.Stotal()钱endl; cout确定是否真的现在交费 (Y/N)ch; if(ch=Y|ch=y) studenti.flag=1; cout你实际交的钱是:money; if(moneystudenti.Stotal() cout找零money-studenti.Stotal()钱money) cout交的钱不够,还应交studenti.Stotal()-money钱endl; coutmoney2; cout交费成功endl; count11+; xuesheng(); else xuesheng(); if(!fl) cout没有这个学生endl; void arrayofStu:numj( ) /输入学号交费 coutttt欢迎使用学号交费功能endl; string num;double money,money2;char ch; cout请输入学生学号:num; int fl=0;for(int i=0;icount1;i+) if(num=studenti.number) if(studenti.flag) fl=1; cout该学生已缴纳过费用endl; else cout你应该交studenti.Stotal()钱endl; cout确定是否真的现在交费 (Y/N)ch; if(ch=Y|ch=y) studenti.flag=1; cout你实际交的钱是:money; if(moneystudenti.Stotal() cout找零money-studenti.Stotal()钱money) cout交的钱不够,还应交studenti.Stotal()-money钱endl; coutmoney2; cout交费成功endl; count11+; xuesheng(); else xuesheng(); if(!fl) cout没有这个学生endl; void arrayofStu:add() /增加学生coutttt欢迎使用增加学生功能endl;cout请输入学生的姓名:;cout请输入学生的学号:studentcount1.number;cout请输入学生的用水量:studentcount1.water;cout请输入学生的用电量:studentcount1.power;cout请输入学生的用煤气量:studentcount1.gas;count1+;coutttt学生信息已被成功的增加!endl;void arrayofStu:nad( ) /按姓名删除 coutttt欢迎使用姓名删除学生功能endl;/*coutstudent0;;*/int fl=0;int i,j; string na;cout请输入要删除学生的姓名na;for(i=0;icount1;i+)if(na=) fl=1;break;if(fl) for(j=i;jcount1-1;j+) studentj=studentj+1;count1-;cout你已成功删除学生信息endl;else cout没有这个学生endl;void arrayofStu:display() int i;if(count11=0) cout暂时还无学生交费endl;elsecout已交费人员信息endl;cout学号 姓名 用水量 用电量 用煤气量 水费 电费 煤气费 总额 是否交费endl;for( i=0;icount1;i+) if(studenti.flag) coutstudenti; if(count11=count1) cout所有学生均以交费endl;else cout未交费人员信息endl; cout学号 姓名 用水量 用电量 用煤气量 水费 电费 煤气费 总额 是否交费endl; for(i=0;icount1;i+) if(!studenti.flag) coutstudenti;void arrayofStu:numd( ) /按学号删除coutttt欢迎使用学号删除学生功能endl;int fl=0;int i,j;string num;cout请输入要删除学生的学号num;for(i=0;icount1;i+)if(num=studenti.number) fl=1;break;if(fl)for(j=i;jcount1-1;j+) studentj=studentj+1;count1-;cout你已成功删除学生信息endl;else cout没有这个学生endl;void arrayofStu:nacheck( ) /姓名查询 coutttt欢迎使用姓名查询学生功能endl;int i,fl=0; string na; cout请输入要查找的姓名na;for(i=0;icount1;i+) if(na=) fl=1;break;if(fl) cout学号 姓名 用水量 用电量 用煤气量 水费 电费 煤气费 总额 是否交费endl; coutstudentiendl;else cout没有这个学生endl;void arrayofStu:numcheck() /学号查询 coutttt欢迎使用学号查询学生功能endl; int i,fl=0;string num;cout请输入要查找的学号num;for(i=0;icount1;i+) if(num=studenti.number) fl=1;break;if(fl)cout学号 姓名 用水量 用电量 用煤气量 水费 电费 煤气费 总额 是否交费endl; coutstudentiendl;else cout没有这个学生endl;void arrayofStu:save() ofstream f(Stu2.txt); f学号 姓名 用水量 用电量 用煤气量 水费 电费 煤气费 总额 是否交费endl;for(int i=0;icount1;i+)fstudentiendl;f.close();cout恭喜你,文件已成功保存endl;void arrayofStu:delet() /删除学生菜单 int choice; couttttt*endl; couttttt 删除信息endl; couttttt 1,按学号删除endl; couttttt 2,按姓名删除endl; couttttt 3,返回主菜单endl; couttttt 0,返回上一层endl; couttttt*endl; while(1) cout请输入你的选择choice; switch(choice) case 1: numd(); break; /学号删除 case 2: nad(); break; /姓名删除 case 3: xuesheng(); break; /返回学生管理主菜单 case 0: amend(); break; /返回上一层 if(choice=0) break; void arrayofStu:jiaofei() /学生缴费菜单int choice;couttttt*endl;couttttt*-学生缴费-*endl;couttttt*1,输入学号交费*endl;couttttt*2,输入姓名交费*endl; couttttt*0, 返回上一层 *endl; couttttt*endl; while(1) cout请输入你的选择choice;switch(choice) case 1: numj(); break; /输入学号计费 case 2: naj(); break; /输入姓名计费 case 0: xuesheng(); break; /返回上一层 if(choice=0) break;void arrayofStu:xuesheng() /学生用户主菜单int choice;couttttt欢迎使用学生用户管理系统endlendl;cout*endl; couttttt*-1,注册学生-*endl;couttttt*-2,修改用户-*endl;couttttt*-3,缴纳费用-*endl;couttttt*-4,查询费用-*endl;couttttt*-5,查看交费情况-*endl;couttttt*-6,保存信息到文件-*endl;couttttt*-0,返回上一层-*endl;cout*endl;cout友情提示:第一次使用时,要进行注册!endlendl;for(;)cout请输入您的选择choice;switch(choice) case 1: regist(); break; /注册 case 2: amend(); break; /修改 case 3: jiaofei(); break; /缴纳费用 case 4: check(); break; case 5: display(); break; case 6: save(); break; case 0: break; if(choice=0) break; void arrayofStu:amend() /修改用户菜单int choice;couttttt修改学生信息endlendl;couttttt1,增加学生 endl;couttttt2,删除学生 endl; couttttt0,回上一层 endl; while(1) cout请输入你的选择choice; switch(choice)case 1: add(); break; case 2: delet(); break; case 0: xuesheng(); break; if(choice=0)break;void arrayofStu:check() /查询菜单int choice;couttt 查询学生信息endlendl;cout 1,按姓名查找 endl;cout 2,按学号查找 endl;cout 0,返回上一层 endl;cout=endl;while(1)cout请输入您的选择choice;switch(choice)case 1: nacheck(); break; /输入姓名查找case 2: numcheck(); break; /输入学号查找case 0:xuesheng(); break;/如果是break时分析 if(choice=0)break;class Teacher /教师 public: Teacher( double xwater=0,double xpower=0,double xgas=0,string xname=a) water=xwater;power=xpower;gas=xgas;name=xname;flag=0; void operator =(Teacher S); /赋值运算符重载 friend ostream &operator (ostream & a,Teacher &S) /插入运算符重载 asetw(6)leftS.name; asetw(6)leftS.water; asetw(10)S.power; asetw(10)S.gas; asetw(10)S.TGetW(); asetw(10)S.TGetC(); asetw(10)S.TGetG(); asetw(10)S.Ttotal(); if(S.flag) a已交; else a未交; ;fteacheri.water;fteacheri.power;fteacheri.gas;i+;f.close();count2=i;couttt 注册成功,祝你使用愉快endl;void arrayofTeacher:jiaofei() /用户交费 char ch;string na;coutttt欢迎使用交费功能endl;cout请输入姓名:na;int fl=0;double money,money2;for(int i=0;icount2;i+)if(na=) fl=1; if(teacheri.flag) cout该教工已缴纳过费用endl; break; else cout你应该交teacheri.Ttotal()钱endl; cout确定是否真的现在交费 (Y/N)ch; if(ch=Y|ch=y) teacheri.flag=1; cout你实际交的钱是:money; if(moneyteacheri.Ttotal() cout找零money-teacheri.Ttotal()钱money) cout交的钱不够,还应交teacheri.Ttotal()-money钱endl; coutmoney2; cout交费成功endl;count22+; jiaogong(); else jiaogong(); if(!fl) cout没有这个教工endl;void arrayofTeacher:add() /增加教工coutttt欢迎使用增加教工功能endl;cout请输入教工的姓名;cout请输入教工的用水量teachercount2.water;cout请输入教工的用电量teachercount2.power;cout请输入教工的用煤气量teachercount2.gas;count2+;coutttt教工已被成功增加!endl;void arrayofTeacher:delet( ) /删除教工coutttt欢迎使用删除教工功能endl;int fl=0;int i,j;string name;cout请输入要删除教工的姓名name;for(i=0;icount2;i+)if(name=) fl=1;break;if(fl)for(j=i;jcount2-1;j+) /不能写成for(j=i;jsize;j+) teacherj=teacherj+1;count2-;cout你已成功删除教工信息endl; Else cout没有这个教工endl;void arrayofTeacher:check( ) /查找交费情况 coutttt欢迎使用查费功能endl;string na;int i=0,fl=0; cout请你输入姓名na;for(i=0;icount2;i+) if(na=) fl=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论