课程设计报告课程设计题目:水电煤气管理系统学生姓名:专业:网络工程班级:10211303指导教师:姜林2011年11月25日东华理工大学课程设计评分表学生姓名:班级:学号:课程设计题目:水电煤气管理系统项目内容满分实评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总分100指导教师评语:指导教师签名:年月日一.问题描述:设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理等。在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。二.设计思路:(一)程序功能:1.实现对用户信息的录入2.实现水电煤气数据的录入3.计算并查询用户应缴费用4.查询未缴纳费用名单(二)程序说明:1.在主函数中通过分支选择可以跳转不同的功能选项进而实现2.在显示主菜单函数中,我们通过设计友好界面来与用户进行交互。在“请选择相应功能(0-4):”中使用者输入非0-4数字或其他字符时,系统提示“请检查您输入的数字在0~4之间!请在输入一遍!”的信息,以帮助用户进行正确选择。3.首先建立了User类,用于初始化身份证号码、姓名、用水电、煤气量,又定义了缴费函数setMonery(),用在有人缴费的函数体中,从键盘输入缴的费用,一开始我们在setMoney(),中没有对缴的费用进行累加,在查询信息时现实的应缴费用不正确,经过我们的努力,检查出错误并加以改正,让程序更加完善。4.用User类派生出Student和|Teacher类,其中有计算应该缴的费用,Student类比Teacher类多了免费。5.在保存文件的处理中,需考虑到“创建保存文件失败!”和“已成功保存文件!”等诸多内容。(三)文件类型:(1)Constant.h用于存放收费标准。(2)File.cpp该文件中有两个类:1.StuFile类,主要用于对学生信息的操作函数属性注释PublicStuFile()构造函数Publicvoidadd(Student&s)将S添加到文件中Publicvoiddisplay()依次显示所有的学生的信息PublicStudent*gerStudent(stringid)得到学号为id的学生的对象指针Public~StuFile()析构函数,释放资源,并把数组中的信息存进文件Publicvoidwjf()未缴费的学生的名单PrivatevectorStudent*stuList;学生信息的向量数组,用于保存所有学生的信息2TeacherFile类,主要用于对教工信息的操作PublicTeacherFile()构造函数Publicvoidadd(Teacher&s)将s添加到文件中Publicvoiddisplay()依次显示所有的教师信息PublicTeacher*getTeacher(stringid)得到编号为id的教师的对象指针Public~TeacherFile()析构函数,释放资源,并把数组中的信息存进文件Publicvoidwjf()未交费的教工人员名单PrivateVectorTeacher*teaLisr教工的向量数组,用于保存所有教工的信息(3)Main.cpp函数属性注释voidinit()新建一个学生或者教工的信息voidselect()查询界面,根据用户的输入来显示用户想查询的信息voidadd()信息的录入,录入学生或者教工的水电煤气信息voidhanded()缴费,有学生或者教工缴费的时候调用此函数intmainMenu()主菜单,显示一个菜单,返回用户的输入voidwork()程序开始工作intmain()主函数,程序的入口(4)Student.cppClassStudent:virtualpublicUser函数属性注释PublicStudent():User(“”,””,0,0,0)构造函数PublicStudent(stringi,stringn,Floatw=0,floatp=0,floatg=0):User(i,n,w,p,g)构造函数i:学号n:姓名Publicvoiddisplay()依次显示所有的学生的信息Publicfloatdisplay()返回学生应缴的费用PrivatefloatfreeWater;学生免费使用的水量PrivatefloatfreePower;学生免费使用的电量PrivatefloatfreeGas;学生免费使用的煤气量Privatefloatmoney;缴费(5)Teacher.cppClassTeacher:virtualpublicUser函数属性注释PublicTeacher(stringi,stringn,floatw=0,floatp=0,floatg=0):User(I,n,w,p,g)构造函数Publicvoiddisplay()依次显示所有的教工信息PublicfloatgetMoney()返回教工应缴的费用(6)User.cpp函数属性注释PublicUser(stringi,stringn,floatw=0,floatp=0,floatg=0)构造函数PublicstringgetId()获取编号PublicstringgetName()获取姓名PublicvoidsetId(stringi)设置编号PublicvoidsetName(stringn)设置姓名PublicvoidsetWater(floatw)设置水量PublicvoidsetPower(floatp)设置电量PublicvoidsetGas(floatg)设置煤气量PublicfloatgetWater()使用水量Publicvirtualvoiddisplay()=0;依次显示所有信息PublicvoidsetMoney(floatm)缴费PublicvirtualfloatgetMoney()=0;应缴费用(四)UML图:StuFile+id:string+name:string+useWater:float+usePower:float+useGas:float+money:float+add():void+display():void+wjf():voidStudent-freeWater:float-freePower:float-freeGas:float+display():void+getMoney():voidUser+i:string+n:string+w:float+p:float+g:float+getId():string+getName():string+setId(stringi):string+setName(stringn):string+setWater(floatw):float+setPower(floatp):float+setGas(floatg):float+getWater():float三.程序代码:Constant.h//收费标准#ifndefConstant#defineConstant//教师conststaticfloatTwaterUnit=1;conststaticfloatTpowerUnit=1;conststaticfloatTgasUnit=1;//学生conststaticfloatSwaterUnit=1;conststaticfloatSpowerUnit=1;conststaticfloatSgasUnit=1;//保存学生信息的文件conststaticchar*stuFlieName=s.txt;//保存教师信息的文件conststaticchar*teaFileName=t.txt;#endifMain.cpp#includeiostream#includeiomanip#includestring#includevector#includeStudent.cpp#includeTeacher.cpp#includeFile.cppusingnamespacestd;voidinit(){coutendl;cout1.新建教工信息\n2.新建学生信息\nendl;cout请选择你要进行的操作:endl;into;cino;if(o==1){stringid;stringname;cout请输入新教工的身份证号:;cinid;cout请输入新教工的姓名:;cinname;Teachert(id,name);TeacherFiletf;tf.add(t);}elseif(o==2){stringid;stringname;cout请输入新学生的身份证号:;cinid;cout请输入新学生的姓名:;cinname;Students(id,name);StuFilesf;sf.add(s);}elsereturn;}voidselect(){coutendl;cout1.学生的信息\n2.教师的信息\n3.按身份证号查询\n4.未缴费的人员名单\n5.不进行任何的操作\nendl;cout请输入你要进行的操作:;into;cino;StuFilesf;TeacherFiletf;if(o==1){cout该用户的信息是:endl;cout|setw(18)身份证号|setw(8)姓名|setw(8)用水量|setw(8)用电量|setw(8)用煤气量|setw(8)要缴的费用endl;sf.display();}elseif(o==2){cout该用户的信息是:endl;cout|setw(18)身份证号|setw(8)姓名|setw(8)用水量|setw(8)用电量|setw(8)用煤气量|setw(8)要缴的费用endl;tf.display();}elseif(o==3){User*user;StuFilesf;TeacherFiletf;stringid;cout请输入他的身份证号:;cinid;user=sf.getStudent(id);if(user==0)user=tf.getTeacher(id);if(user==0){cout资料库中没有该身份证号的用户!endl;return;}cout该用户的信息为:endl;cout|setw(18)身份证号|setw(8)姓名|setw(8)用水量|setw(8)用电量|setw(8)用煤气量|setw(8)要缴的费用endl;user-display();}elseif(o==4){sf.wjf();tf.wjf();}elsereturn;}voidadd(){cout1.对教工使用的水电煤气信息的录入endl2.对学生使用的水电煤气信息的录入endl3.不进行任何操作endl;cout请输入你要进行的操作:endl;i