1、 通信与信息工程学院面向对象技术课程设计一、课程设计目的(1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 二、程序设计要求1、基本功能:设计一个高校水电管理信息系统,能够对高校的水电费用进行管理,包括登记费用、查询费用和住户信息管理等。完成如下功能:实现对用户信息的录入。实现水电数据的录入。计算并查询用户应缴费用。(4)显示当前系统中所有学生和教工的记录(5)可根据查询结果对相应的记录进行修改(6)计算电费和水费。2、程序主菜单:教师水电费管理,学生水电费管理,退出系统三
2、个选项3、 设计流程图:画出本程序的总体设计流程图(手画)4、 功能框图:画出本程序的功能框图(手画)三、程序功能设计1、功能设计:添加功能 查询功能 显示功能 编辑功能 删除功能 统计功能 保存功能 读取功能 计算水费和电费2、组员分工:赵政 类的定义 马晶晶 史娟丽 杨洁 功能的实现 姜田茹 界面设计设计思路:1、在主函数中通过分支选择实现不同的功能。 2、在菜单函数中,通过设计界面与用户进行交互。 3、定义一个使用者类,在类的内部定义各种函数,实现显示、修改、删除、查询、统计用户信息等功能。四、程序数据结构(手写)五、程序函数设计(手写)六、程序源代码(此部分可打印)七 截图(手写)八
3、心得(手写)附录:程序源代码#include#includeconst int TMAX=50;using namespace std;class Personpublic:int num;string name;string sex;int age;double water;double power;public:Person(int n=0,string nm=,string s=,int a=0,double w=0.0,double p=0.0)num=n;name=nm;sex=s;age=a;water=w;power=p;virtual void Input();virtual
4、void Output();int GetNum()return num;string GetName()return name;double GetWater()return water;double GetPower()return power;class Teacher:virtual public Personpublic:string depart;double watermoney;double powermoney;int choice1;int choice2;public:Teacher(int n=0,string nm=,string s=男,int a=0,string
5、 d=任课教师,double w=0.0, double p=0.0, double wm=0.0, double pm=0.0):Person(n,nm,s,a,w,p),depart(d)watermoney=wm;powermoney=pm;void Input()cout请输入编号:num;cout请输入姓名:name;cout请选择性别:;cout(1.男 2.女)endl;cout请输入你的选择choice2;switch(choice2)case 1:sex=男;break;case 2:sex=女;break;default:cout输入错误。endl;break;cout请输
6、入年龄:age;cout请选择工作部门:endl;cout1.任课教师2.教务处3.财政处4.校团委endl;cout请输入你的选择choice1;switch(choice1)case 1:depart=任课教师;break;case 2:depart=教务处;break;case 3:depart=财政处;break;case 4:depart=校团委;break;default:cout输入错误。endl;break;cout请输入本月的用水量water;cout请输入本月的用电量power;watermoney=0.5*water;powermoney=0.5*power;void O
7、utput()cout num name sex age depart water power watermoney powermoneyendl;class Student:virtual public Personpublic:string bj;double watermoney;double powermoney;int choice1;int choice2;public:Student(int n=0,string nm=,string s=男,int a=0,string z=,double w=0.0, double p=0.0, double wm=0.0, double p
8、m=0.0):Person(n,nm,s,a,w,p),bj(z)watermoney=wm;powermoney=pm;void Input()cout请输入学号:num;cout请输入姓名:name;cout请选择性别:;cout(1.男 2.女)endl;cout请输入你的选择choice2;switch(choice2)case 1:sex=男;break;case 2:sex=女;break;default:cout输入错误。endl;break;cout请输入年龄:age;cout请选择所在班级:endl;cout1.通信1201班2.通信1202班3.通信1203班4.通信120
9、4班endl;cout请输入你的选择choice1;switch(choice1)case 1:bj=通信1201班;break;case 2:bj=通信1202班;break;case 3:bj=通信1203班;break;case 4:bj=通信1204班;break;default:cout输入错误。endl;break;cout请输入本月的用水量water;cout请输入本月的用电量power;watermoney=0.5*(water-10);powermoney=0.5*(power-10);void Output()coutnumnamesexagebjwaterpowerwat
10、ermoneypowermoney=TMAX)cout用户已满endl;return;Student s;cout输入新添加的人员的信息endl;s.Input();for(int i=0;itop;i+)if (s.GetNum()=Stui.GetNum()cout该编号的人员已存在endl;return;Stutop=s;top=top+1;cout添加成功!endl;void Stu_Manage:Show()if(top=0)cout无数据!endl;return;cout学号姓名性别年龄班级用水量用电量水费电费endl;for(int i=0;itop;i+)Stui.Output
11、();void Stu_Manage:Search()if(top=0)cout当前系统中没有存储记录endl;return;int choice;cout请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询choice;switch(choice)case 1:cout请输入要查找的姓名name;cout学号姓名性别年龄班级用水量用电量水费电费endl;for(int i=0;itop;i+)if(Stui.GetName()=name)Stui.Output();return;cout查无此人!endl;break;case 2:cout请输入要查找的水量:water;cou
12、t学号姓名性别年龄班级用水量用电量水费电费endl;for(int i=0;itop;i+)if(Stui.GetWater()=water) Stui.Output();return;cout查无此人!endl;break;case 3:cout请输入要查找的电量:power;cout学号姓名性别年龄班级用水量用电量水费电费endl;for(int i=0;itop;i+)if(Stui.GetPower()=power)Stui.Output();return;cout查无此人!endl;break;default :cout无此选项!请重试!endl;break;void Stu_Man
13、age:Edit()if(top=0)cout当前系统中没有存储记录!endl;return;int num;cout请输入要查找的学号:num;for(int i=0;itop;i+)if(Stui.GetNum()=num)cout请对这位学生的信息进行修改:endl;Stui.Input();cout修改成功endl;return;cout查无此人endl;void Stu_Manage:Delete()if(top=0)cout当前系统中没有存储记录!endl;return;cout1、按编号查找删除 2、按姓名查找删除choice;switch(choice)case 1:coutn
14、um;for(int i=0;itop;i+)if(num=Stui.num)cout是否确认删除? 1、是 2、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)Stuj=Stuj+1;cout删除成功!endl;top-;break;case 2:return;default:cout无此项,失败!endl;break;return;cout无此人!endl;break;case 2:coutname;for(int i=0;itop;i+)if(name=Stui.name)cout是否确认删除? 1、是 2、否 choice;swi
15、tch(choice)case 1:for(int j=i;jtop-1;j+)Stuj=Stuj+1;cout删除成功!endl;top-;break;case 2:return;default:cout无此项,失败!endl;break; return;cout无此人!endl;break;default:cout没有此项,失败:endl;break;void Stu_Manage:Total()cout1 学生所用水电量的总量 2 学生总的水电费 endl;int choice;cout请输入你的选择choice;switch(choice)case 1:double zwater=0.
16、0, zpower=0.0;for(int i=0; itop; i+)zwater+=Stui.water;zpower+=Stui.power;cout学生的总用水量为zwaterendl;cout学生的总用电量为zpowerendl;break;case 2:double zwatermoney=0.0, zpowermoney=0.0;for(int i=0; itop; i+)zpowermoney+=Stui.powermoney;zwatermoney+=Stui.watermoney;cout学生的总水费为zwatermoneyendl;cout学生的总电费为zpowermon
17、eyendl;break;default:cout输入错误。请重新输入=TMAX)cout用户已满endl;return;Teacher t;cout输入新添加的人员的信息endl;t.Input();for(int i=0;itop;i+)if (t.GetNum()=Teai.GetNum()cout该编号的人员已存在endl;return;Teatop=t;top=top+1;cout添加成功!endl;void Tea_Manage:Show()if(top=0)cout无数据!endl;return;cout编号姓名性别年龄部门用水量用电量水费电费endl;for(int i=0;i
18、top;i+)Teai.Output();void Tea_Manage:Search()if(top=0)cout当前系统中没有存储记录endl;return;int choice;cout请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询choice;switch(choice)case 1:cout请输入要查找的姓名name;cout 编号 姓名 性别 年龄 部门 用水量 用电量 水费 电费endl;for(int i=0;itop;i+)if(Teai.GetName()=name)Teai.Output();return;cout查无此人!endl;break;cas
19、e 2:cout请输入要查找的水量:water;cout编号 姓名 性别 年龄 部门 用水量用电量水费电费endl;for(int i=0;itop;i+)if(Teai.GetWater()=water)Teai.Output();return;cout查无此人!endl;break;case 3:cout请输入要查找的电量:power;cout 编号 姓名 性别 年龄 部门 用水量用电量水费电费endl;for(int i=0;itop;i+)if(Teai.GetPower()=power)Teai.Output();return;cout查无此人!endl;break;default:
20、cout无此选项!请重试!endl;break;void Tea_Manage:Edit()if(top=0)cout当前系统中没有存储记录!endl;return;int num;cout请输入要查找的教编号:num;for(int i=0;itop;i+)if(Teai.GetNum()=num)cout请对这位教师的信息进行修改:endl;Teai.Input();cout修改成功endl;return;cout查无此人endl;void Tea_Manage:Delete()if(top=0)cout当前系统中没有存储记录!endl;return;cout1、按编号查找删除 2、按姓名
21、查找删除choice;switch(choice)case 1:coutnum;for(int i=0;itop;i+)if(num=Teai.num)cout是否确认删除? 1、是 2、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)Teaj=Teaj+1;cout删除成功!endl;top-;break;case 2:return;default:cout无此项,失败!endl;break;return;cout无此人!endl;break;case 2:coutname;for(int i=0;itop;i+)if(name=Tea
22、i.name)cout是否确认删除? 1、是 2、否 choice;switch(choice)case 1:for(int j=i;jtop-1;j+)Teaj=Teaj+1;cout删除成功!endl;top-;break;case 2:return;default:cout无此项,失败!endl;break;return;cout无此人!endl;break;default:cout没有此项,失败:endl;break;void Tea_Manage:Total()cout1 教师所用水电量的总量 2 教师总的水电费 endl;int choice;cout请输入你的选择choice;s
23、witch(choice)case 1:double zwater=0.0, zpower=0.0;for(int i=0; itop; i+)zwater+=Teai.water;zpower+=Teai.power;cout教师的总用水量为zwaterendl;cout教师的总用电量为zpowerendl;break;case 2:double zwatermoney=0.0, zpowermoney=0.0;for(int i=0;itop;i+)zwatermoney+=Teai.watermoney;zpowermoney+=Teai.powermoney;cout教师的总水费为zw
24、atermoneyendl;cout教师的总电费为zpowermoneyendl;break;default:cout输入错误。请重新输入endl;break;void TeaMenu();void StuMenu();int main()int choice;docoutn=nendl;cout 高校水电费管理系统 nendl;coutnendl;cout教师水电费管理t2=学生水电费管理t0=退出系统 endl;coutnendl;coutchoice;switch(choice)case 1:TeaMenu();break;case 2:StuMenu();break;case 0:co
25、utn您已安全退出系统.endl;break;default:coutn没有此选项.请重选.endl;break;while(choice!=0);coutn-欢迎您下次再使用!-endl;return 0;void TeaMenu()Tea_Manage t;int choice;while(choice!=0)coutn=nendl;coutn 教师水电费管理endl;coutnendl;cout 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 endl;coutnendl;coutchoice;switch(choice)case 1:t.Add
26、();break;case 2:t.Search();break;case 3:t.Edit();break;case 4:t.Delete();break;case 5:t.Show();break;case 8:t.Total();break;case 0:cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;void StuMenu()Stu_Manage s;int choice;while(choice!=0)coutn=nendl;coutn 学生水电费管理endl;coutnendl;cout 1.添加 2.查找 3.修改 4.删
27、除 5.显示 6.保存 7.读取 8.统计 0.退出 endl;coutnendl;coutchoice;switch(choice)case 1:s.Add();break;case 2:s.Search();break;case 3:s.Edit();break;case 4:s.Delete();break;case 5:s.Show();break;case 8:s.Total();break;case 0:cout退出成功!endl;break;default:cout无此选项!请重试!endl;break; 七、 程序调试结果毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对