高校水电费管理系统C实验报告2303252

合集下载

C课程设计高校水电费管理系统

C课程设计高校水电费管理系统

# i n c l u d e < iostream>#include<string>#include<fstream>#include<iomanip>constintTMAX=50;usingnamespacestd;classPerson{public:intn um;2.女)"<<e ndl;cout«"请输入你的选择"<<endl;cin>>choice2;switch(choice2){case1:sex='男”;break;case2:sex='女”;break;default:cout<<"输入错误。

"<<endl;break;}coutvv"请输入年龄:"<<e ndl;cin>>age;cout«"请选择工作部门:"<<e ndl;cout<vsetw(10)vv"1.普通教师"<<setw(10)vv"2.教务处"<<setw(10)vv"3. 财政处"<<setw(10)<<"4. 创业办公室"<<endl;cout«"请输入你的选择"<<endl;cin>>choice1;switch(choice1){case1:depart=普通教师";break;case2:depart=教务处";break;case3:depart=财政处";break; case4:depart二创业办公室";break;default:cout<<"输入错误。

水电费充缴费系统(C语言设计)

水电费充缴费系统(C语言设计)

项目报告——水电气费查询及充值系统谢培伟本系统是是面向学生及管理员而开发的,也就是说,本系统共有两个大端口:学生端、管理端。

学生端:学生端是针对学生生活查询及充值缴费而设计的,内分为原用户登录及新用户注册两块,学生的数据是利用文件操作储存在xstdate.dat文件。

管理端:管理端的设计则方便了管路员对学生账户数据的修改与查询。

程序流程图:本人主要负责学生端的学生登录密码的判断、水电气费的查询及充值,其中变量t是用来读取用户是进入学生端还是管理端,变量xs是判断用户是登录还是注册,用jm=strcmp(xsdbmm,xsdlmm)来判断密码的正确性,变量xstzh是登陆后用来读取用户进哪个服务的。

为了能使用户能返回到上一层,我们后来使用了goto语句,这也给我们带来不必要的麻烦,例如,用户修改了自己的数据后使用goto返回上一层时,系统它不会储存修改后的数据,后来,我们只能在每个goto执行前就用文件操作先储存起来,则加上xstdate=fopen("xstdate.dat","w");/*修改后把学生账号信息写入xstdate.dat*/for(i=0;i<50;i++){fwrite(&xsd[i],sizeof(xsd[i]),1,xstdate);}fclose(xstdate);这样就使程序更加繁琐了。

源代码中的xpw()为{printf("\n");/*系统初始界面*/printf("**************************\n");printf(" **欢迎使用水电气管理系统**\n");printf("**************************\n");printf("\n");}是为了修饰整个执行局面。

代码中的xstczs、xstczd、xstczq分别为水、电、气充值的量,将充值的量加上原先的量再赋值储存,就完成了水电气费的充值。

课程设计报告用C实现水电煤气管理系统毕业论文

课程设计报告用C实现水电煤气管理系统毕业论文

课程设计报告课程设计题目:水电煤气管理系统一.问题描述:设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以与住户信息管理等。

在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。

二.设计思路:(一)程序功能: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类,主要用于对学生信息的操作函数属性注释Public StuFile() 构造函数Public void add(Student&s)将S添加到文件中Public void display() 依次显示所有的学生的信息Public Student*gerStudent(stringid) 得到学号为id的学生的对象指针Public ~StuFile() 析构函数,释放资源,并把数组中的信息存进文件Public void wjf() 未缴费的学生的Private vector<Student>*stuList;学生信息的向量数组,用于保存所有学生的信息2 TeacherFile 类,主要用于对教工信息的操作Public TeacherFile() 构造函数Public voidadd(Teacher&s)将s添加到文件中Public void display() 依次显示所有的教师信息Public Teacher*getTeacher(string id) 得到编号为id的教师的对象指针Public ~TeacherFile() 析构函数,释放资源,并把数组中的信息存进文件Public v oid wjf() 未交费的教工人员Private Vector<Teacher>*teaLisr 教工的向量数组,用于保存所有教工的信息(3)Main.cpp函数属性注释void init() 新建一个学生或者教工的信息void select() 查询界面,根据用户的输入来显示用户想查询的信息void add() 信息的录入,录入学生或者教工的水电煤气信息void handed() 缴费,有学生或者教工缴费的时候调用此函数int mainMenu() 主菜单,显示一个菜单,返回用户的输入void work() 程序开始工作int main() 主函数,程序的入口(4)Student.cppClass Student:virtual public User函数属性注释Public Student():User(“”,””,0,0,0) 构造函数Public Student(string i,string n,Float w=0,float p=0,floatg=0):User(i,n,w,p,g) 构造函数i:学号n:Public void display() 依次显示所有的学生的信息Public float display() 返回学生应缴的费用Private float freeWater; 学生免费使用的水量Private float freePower; 学生免费使用的电量Private float freeGas; 学生免费使用的煤气量Private float money; 缴费(5)Teacher.cppClass Teacher:virtual public User函数属性注释Public Teacher(string构造函数i,string n,float w=0,floatp=0,floatg=0):User(I,n,w,p,g)Public void display() 依次显示所有的教工信息Public float getMoney() 返回教工应缴的费用(6)User.cpp函数属性注释构造函数Public User(string i,stringn,floatw=0,float p=0,float g=0)Public string getId() 获取编号Public string getName() 获取Public void setId(string i) 设置编号Public void setName(string n) 设置Public void setWater(float w) 设置水量Public void setPower(float p) 设置电量Public void setGas(float g) 设置煤气量Public float getWater() 使用水量Public virtual void display()=0; 依次显示所有信息Public void setMoney(float m) 缴费Public virtual float getMoney()=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(string i) :string+setName(string n) :string+setWater(float w) :float+setPower(float p) :float+setGas(float g) :float+getWater():float三.程序代码:Constant.h//收费标准#ifndef Constant#define Constant//教师const static float TwaterUnit=1;const static float TpowerUnit=1;const static float TgasUnit=1;//学生const static float SwaterUnit=1;const static float SpowerUnit=1;const static float SgasUnit=1;//保存学生信息的文件const static char* stuFlieName="s.txt";//保存教师信息的文件const static char* teaFileName="t.txt";#endifMain.cpp#include<iostream>#include<iomanip>#include<string>#include<vector>#include"Student.cpp"#include"Teacher.cpp"#include"File.cpp"using namespace std;void init(){cout<<endl;cout<<"1.新建教工信息\n"<<"2.新建学生信息\n"<<endl;cout<<"请选择你要进行的操作:"<<endl;int o;cin>>o;if(o==1){string id;string name;cout<<"请输入新教工的号:";cin>>id;cout<<"请输入新教工的:";cin>>name;Teacher t(id,name);TeacherFile tf;tf.add(t);}else if(o==2){string id;string name;cout<<"请输入新学生的号:";cin>>id;cout<<"请输入新学生的:";cin>>name;Student s(id,name);StuFile sf;sf.add(s);}elsereturn ;}void select(){cout<<endl;cout<<"1.学生的信息\n"<<"2.教师的信息\n"<<"3.按号查询\n"<<"4.未缴费的人员\n"<<"5.不进行任何的操作\n"<<endl;cout<<"请输入你要进行的操作:";int o;cin>>o;StuFile sf;TeacherFile tf;if(o==1){cout<<"该用户的信息是:"<<endl;cout<<"|"<<setw(18)<<"号"<<"|"<<setw(8)<<""<<"|"<<setw(8)<<"用水量"<<"|"<<setw(8)<<"用电量"<<"|"<<setw(8)<<"用煤气量"<<"|"<<setw(8)<<"要缴的费用"<<endl;sf.display();}else if(o==2){cout<<"该用户的信息是:"<<endl;cout<<"|"<<setw(18)<<"号"<<"|"<<setw(8)<<""<<"|"<<setw(8)<<"用水量"<<"|"<<setw(8)<<"用电量"<<"|"<<setw(8)<<"用煤气量"<<"|"<<setw(8)<<"要缴的费用"<<endl;tf.display();}else if(o==3){User *user;StuFile sf;TeacherFile tf;string id;cout<<"请输入他的号:";cin>>id;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();}else if(o==4){sf.wjf();tf.wjf();}elsereturn ;}void add(){cout<<"1.对教工使用的水电煤气信息的录入"<<endl <<"2.对学生使用的水电煤气信息的录入"<<endl<<"3.不进行任何操作"<<endl;cout<<"请输入你要进行的操作:"<<endl;int o;cin>>o;string id;float water;float power;float gas;if(o==1||o==2){User*user;StuFile sf;TeacherFile tf;cout<<"请输入他的号:";cin>>id;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();cout<<"请输入他的用水量:";cin>>water;cout<<"请输入他的用电量:";cin>>power;cout<<"请输入他的用煤气量:";cin>>gas;user->setWater(water);user->setPower(power);user->setGas(gas);}elsereturn ;}void handed(){cout<<"请输入要缴费的人的号:";string id;cin>>id;User*user;StuFile sf;TeacherFile tf;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();cout<<"请输入他的缴费金额:";float money;cin>>money;user->setMoney(money);cout<<"缴费成功\n";}int mainMenu(){cout<<endl<<endl;cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;cout<<" ☆☆"<<endl;cout<<" ☆水电煤气管理系统☆"<<endl;cout<<" ☆☆"<<endl;cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;cout<<endl;cout<<" 1.新建用户信息"<<endl;cout<<" 2.信息查询"<<endl;cout<<" 3.信息的录入"<<endl;cout<<" 4.有人缴费"<<endl;cout<<" 0.退出系统"<<endl;int a;char c[20];do{cout<<" 请选择相应的功能(0-4):"<<endl;cout<<endl;cin>>a;gets(c);if(a<0||a>4){cout<<endl<<endl;cout<<"请确认您输入的数字在0~4之间!"<<endl;cout<<"请重新输入一遍!"<<endl<<endl;}}while(a<0||a>4);return a;}void work(){switch(mainMenu()){case 1:init();break;case 2:select();break;case 3:add();break;case 4:handed();break;default:break;}}void Menu(){cout<<endl;cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;cout<<" ☆☆"<<endl;cout<<" ☆水电煤气管理系统☆"<<endl;cout<<" ☆☆"<<endl;cout<<" ☆振坡☆"<<endl;cout<<" ☆☆"<<endl;cout<<" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;cout<<endl;system("pause");system("cls");}void main(){system("color 3A");Menu();char a='y';while(a=='y'){work();cout<<"是否继续使用该系统(y/n)"<<endl;cin>>a;}}File.cpp//StuFile类,对学生信息的操作//TeacherFile类,对教工信息的操作#include<iostream>#include<iomanip>#include<fstream>#include<vector>#include<string>#include"Student.cpp"#include"Teacher.cpp"#include"User.cpp"#include"Constant.h"#ifndef StuFile_class#define StuFile_classclass StuFile{vector<Student> *stuList;public :string id;string name;float useWater;float usePower;float useGas;float money;StuFile(){stuList=new vector<Student>;ifstream *is=new ifstream("StuFileName",ios_base::in);if(is==0){cout<<"打开文件失败!"<<endl;return ;}else{while(is->good()){Student s("","");is->read((char*)&s,sizeof(Student));if(s.getId() !=""){stuList->push_back(s);}}}is->close();}void add(Student &s){stuList->push_back(s);}void display(){for(int i=0;i<stuList->size();i++){Student s=stuList->at(i);s.display();}}Student *getStudent(string id){for(int i=0;i<stuList->size();i++){if(stuList->at(i).getId()==id)return &stuList->at(i);}return 0;}~StuFile(){if(stuList !=NULL && !stuList->empty()){ofstream os("stuFileName",ios_base::out);for(int i=0;i<stuList->size();i++){if(stuList->at(i).getId() !="")os.write((char*)&stuList->at(i),sizeof(Student));}os.close();delete stuList;}}void wjf(){cout<<"未缴费的学生:"<<endl;for(int i=0;i<stuList->size();i++){Student s=stuList->at(i);if(s.getMoney()>0){cout<<"该学生的信息是:"<<endl;cout<<"|"<<setw(18)<<"号"<<"|"<<setw(8)<<""<<"|"<<setw(8)<<"用水量"<<"|"<<setw(8)<<"用电量"<<"|"<<setw(8)<<"用煤气量"<<"|"<<setw(8)<<"要缴纳的费用"<<endl;s.display();}}}};#endif#ifndef TeaFile_class#define TeaFile_classclass TeacherFile{vector<Teacher> *teaList;public:TeacherFile(){teaList=new vector<Teacher>;ifstream*is=new ifstream(teaFileName,ios_base::in);if(is==0){cout<<"打开文件失败!"<<endl;return ;}else{while(is->good()){Teacher s("","");is->read((char*)&s,sizeof(Teacher));if(s.getId() !=""){teaList->push_back(s);}}}is->close();}Teacher *getTeacher(string id){for(int i=0;i<teaList->size();i++){if(teaList->at(i).getId()==id)return &teaList->at(i);}return 0;}void wjf(){cout<<"教工未缴费的人员:"<<endl;for(int i=0;i<teaList->size();i++){Teacher t=teaList->at(i);if(t.getMoney()>0){cout<<"该教师的信息是:"<<endl;cout<<"|"<<setw(18)<<"号"<<"|"<<setw(8)<<""<<"|"<<setw(8)<<"用水量"<<"|"<<setw(8)<<"用电量"<<"|"<<setw(8)<<"用煤气量"<<"|"<<setw(8)<<"要缴的费用"<<endl;t.display();}}}void display(){for(int i=0;i<teaList->size();i++){Teacher t=teaList->at(i);t.display();}}void add(Teacher &s){teaList->push_back(s);}~TeacherFile(){if(teaList !=NULL && !teaList->empty()){ofstream os(teaFileName,ios_base::out);for(int i=0;i<teaList->size();i++){if(teaList->at(i).getId() !="")os.write((char*)&teaList->at(i),sizeof(Teacher));}os.close();delete teaList;}}};#endifStudent.cpp#ifndef STUDENT_CLASS#define STUDENT_CLASS#include<iostream>#include<iomanip>#include<string>#include"Constant.h"#include"User.cpp"using namespace std;class Student:virtual public User{private :float freeWater;float freePower;float freeGas;public :Student():User("","",0,0,0){freeWater=1;freePower=2;freeGas=3;}Student(string i,string n,float w=0,float p=0,float g=0):User(i,n,w,p,g){}void display(){cout<<"|"<<setw(18)<<id<<"|"<<setw(8)<<name<<"|"<<setw(8)<<useWater<<"|"<<setw(8)<<usePower<<"|"<<setw(8)<<useGas<<"|"<<setw(8)<<getMoney()<<endl;}float getMoney(){float w=SwaterUnit*((useWater>freeWater)?(useWater-freeWater):0);float p=SpowerUnit*((usePower>freePower)?(usePower-freePower):0);float g=SgasUnit*((useGas>freeGas)?(useGas-freeGas):0);return w+p+g-money;}};#endifTeacher.cpp#include"User.cpp"#include"Constant.h"#ifndef Teacher_class#define Teacher_classclass Teacher:virtual public User{public :Teacher(string i,string n,float w=0,float p=0,float g=0):User(i,n,w,p,g){}void display(){cout<<"|"<<setw(18)<<id<<"|"<<setw(8)<<name<<"|"<<setw(8)<<useWater<<"|"<<setw(8)<<usePower<<"|"<<setw(8)<<useGas<<"|"<<setw(8)<<getMoney()<<endl;}float getMoney(){float w=TwaterUnit* useWater;float p=TpowerUnit* usePower;float g=TgasUnit* useGas;return w+p+g-money;}};#endifUser.cpp#include<iostream>#include<iomanip>#include<string>using namespace std;#ifndef USER_CLASS#define USER_CLASSclass User{protected :string id;string name;float useWater;float usePower;float useGas;float money;public :User(string i,string n,float w=0,float p=0,float g=0) {id=i;name=n;useWater=w;usePower=p;useGas=g;money=0;}string getId(){return id;}string getName(){return name;}void setId(string i){id=i;}void setName(string n){name=n;}void setWater(float w){useWater=w;}void setPower(float p){usePower=p;}void setGas(float g){useGas=g;}float getWater(){return useWater;}virtual void display(){cout<<"|"<<setw(18)<<id<<"|"<<setw(8)<<name<<"|"<<setw(8)<<useWater<<"|"<<setw(8)<<usePower<<"|"<<setw(8)<<useGas<<"|"<<setw(8)<<getMoney()<<endl;}virtual void setMoney(float m){money +=m;}virtual float getMoney()=0;};#endif四.测试结果:界面一:欢迎界面界面二:程序功能表界面三:新建用户信界面四:信息查询界面五:信息的录入界面六:缴费五.实验心得:课程设计的过程中遇到了很多麻烦,虽然我早有心理准备,但还是令我伤透了脑筋,只怪自己平时看书太少,其实有很多东西在书上都可以找到答案的,可是还是有一些问题我实在没有办法解决,最终通过老师和同学们的努力解决了一个又一个的问题。

水电缴费系统课程设计报告

水电缴费系统课程设计报告

计算机信息工程学院课程设计报告课程名称课题名称专业班级学号姓名指导教师2016年11 月29 日目录一、题目总体介绍 (3)二、需求分析...................................... 错误!未定义书签。

三、总体设计...................................... 错误!未定义书签。

1、现行系统组织结构图:........................... 错误!未定义书签。

2、数据结构分析................................... 错误!未定义书签。

四、详细设计 ....................................... 错误!未定义书签。

1、类设计......................................... 错误!未定义书签。

五、系统调试与结果分析............................ 错误!未定义书签。

六、总结.......................................... 错误!未定义书签。

七、附件.......................................... 错误!未定义书签。

文件............................................ 错误!未定义书签。

主程序.......................................... 错误!未定义书签。

一、题目总体介绍(一)课程设计题目:校园水电费“随手缴”(二)课程设计内容与主要功能(需求分析)设计开发一个大学生在线缴纳水电费系统,用于对大学生水电费的管理以及集中的表现学生信息,主要可以实现:1.要求系统提供水电管理人员、寝室长两种不同角色的权限管理。

不同角色的用户登录系统后拥有不同的权限。

2.水电管理人员拥有“修改密码”“新增用户”“寝室长信息修改”“寝室长信息查询”“寝室费用管理”等功能。

c语言程序课程设计报告 电费系统

c语言程序课程设计报告 电费系统

课程设计课程名称 C语言课程设计题目名称酒店房间预订系统学院物理与光电工程专业班级 14级光电信息科学与工程(2)班学号3114008620 3114008621 3114008622 3114008623 3114008615 姓名陆卓焱佘金鸿谭江瀚欧阳永祥梁应贤任课教师郑玲利2016年 5月20日广东工业大学课程设计任务书一、课程设计的内容《C语言课程设计》是《C语言程序设计》课程的姐妹课程。

通过课程设计这一教学实践环节,使学生熟练掌握C语言的基础知识(数据类型、运算符和表达式)、C语言的三种基本结构(顺序结构、选择结构和循环结构)、数组、函数和指针的使用,并通过学生自学,掌握用户建立的数据类型和文件的使用。

通过《酒店房间预订系统》题目的完成,使学生能够运用C语言的知识分析问题和解决问题,使综合分析问题和解决问题的能力得到提高。

该题目要求学生在Visual C++环境中实现程序的编译、连接和运行。

具体完成的内容如下:1、系统功能设计(具有插入、查询、修改、删除、显示等功能);2、总体设计方案;3、模块设计(函数算法及代码设计);4、程序调试;5、系统的操作说明。

二、课程设计的要求与数据1、要求使用模块化程序设计。

2、代码使用锯齿形的书写格式。

3、小组采用分工合作的形式完成设计任务。

三、课程设计应完成的工作1、完成“酒店房间预订系统”程序的设计和调试。

2、撰写课程设计报告(论文),其结构如下:封面、任务书、摘要、小组情况、目录、正文、参考文献(详细信息请参考“C语言课程设计报告提纲”)。

3、提交材料课程设计结束,学生应该提交1)纸质版的设计报告一份;2)电子版的设计报告一份;3)电子版的系统文件一套(含*.C程序和数据文件)。

四、课程设计进程安排五、应收集的资料及主要参考文献[1] 谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.6.[2] 谭浩强. C程序设计(第四版)学习辅导[M].北京:清华大学出版社,2010.7. 发出任务书日期: 2016年 4 月25 日指导教师签名:计划完成日期: 2016年5月13日基层教学单位责任人签章:主管院长签章摘要在市场经济的激烈的竞争情况下,对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。

C课程设计高校水电费管理系统

C课程设计高校水电费管理系统

i n c l u d e<i o s t r e a m>include<string>include<fstream>include<iomanip>const int TMAX=50;using namespace std;class Person{public:int num;//编号string name;//姓名string sex;//性别int age;//年龄double water;//用水量double power;//用电量public:Personint 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 void Output{};int GetNum{return num;}//获取编号string GetName{return name;}//获取姓名double GetWater{return water;}//获取用水量double GetPower{return power;}//获取用电量};class Teacher:virtual public Person //教师{public:string depart;//工作部门double watermoney;//教师水费double powermoney;//教师电费int choice1;int choice2;public:Teacherint n=0,string nm=" ",string s="男",int a=0,string d="普通教师",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0:Personn,nm,s,a,w,p,departd//构造函数{watermoney=wm;powermoney=pm;};void Input{cout<<"请输入编号:"<<endl;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请选择性别:";cout<<"1.男 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入年龄:"<<endl;cin>>age;cout<<"请选择工作部门:"<<endl;cout<<setw10<<"1.普通教师"<<setw10<<"2.教务处"<<setw10<<"3.财政处"<<setw10<<"4.创业办公室"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:depart="普通教师";break;case 2:depart="教务处";break;case 3:depart="财政处";break;case 4:depart="创业办公室";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入本月的用水量"<<endl;cin>>water;cout<<"请输入本月的用电量"<<endl;cin>>power;watermoney=0.5water;powermoney=0.5power;}void Output{cout<<" "<<num<<" "<<name<<" "<<sex<<" "<<age<<" "<<depart<<" "<<water<<setw10<<power<<" "<<setw10<<watermoney<<setw10<<powermoney<<endl;}};class Student:virtual public Person //学生{public:string bj;//学生班级double watermoney;//学生水费double powermoney;//学生电费int choice2;public:Studentint n=0,string nm=" ",string s="男",int a=0,string z=" ",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0:Personn,nm,s,a,w,p,bjz//构造函数{watermoney=wm;powermoney=pm;};void Input{cout<<"请输入学号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请选择性别:";cout<<"1.男 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入年龄:"<<endl;cin>>age;cout<<"请选择所在班级:"<<endl;cout<<setw10<<"1.计科1班"<<setw10<<"2.计科2班"<<setw10<<"3.计科3班"<<setw10<<"4.计科4班"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:bj="计科1班";break;case 2:bj="计科2班";break;case 3:bj="计科3班";break;case 4:bj="计科4班";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入本月的用水量"<<endl;cin>>water;cout<<"请输入本月的用电量"<<endl;cin>>power;watermoney=0.5water-10;powermoney=0.5power-10;}void Output{cout<<" "<<num<<" "<<name<<" "<<sex<<" "<<age<<" "<<bj<<setw10<<power<<" "<<setw10<<watermoney<<setw10<<powermoney<<endl;}};class Stu_Manage{Student StuTMAX; //TMAX为常量,为数组中可存储的学生记录的最大数;int top; //top表示当前系统中存储的记录个数;public:Stu_Manage{top=0;} //初始时记录的个数为0,所以设置top=0;void Add; //实现该类记录的添加;void Show; //实现该类所有记录的显示;void Search; //实现该类记录的查询;void Edit; //实现该类记录的修改;void Delete; //实现该类记录的删除;void Total; //实现该类记录的统计;void Save; //将该类记录保存到文件;void Read; //可从文件中将记录读取到该类的数组中;};void Stu_Manage::Add//添加成员{iftop>=TMAX{cout<<"用户已满"<<endl;return;}Student s;cout<<"输入新添加的人员的信息"<<endl;s.Input;forint i=0;i<top;i++if s.GetNum==Stui.GetNum{cout<<"该编号的人员已存在"<<endl;return;}Stutop=s;top=top+1;cout<<"添加成功"<<endl;}void Stu_Manage::Show//显示所有记录{iftop==0{cout<<"无数据"<<endl;return;}cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++Stui.Output;}void Stu_Manage::Search//查询{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int choice;cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifStui.GetName==name{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的水量:"<<endl;double water;cin>>water;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<endl;forint i=0;i<top;i++{ifStui.GetWater==water{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;case 3:{cout<<"请输入要查找的电量:"<<endl;double power;cin>>power;cout<<" "<<"学号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"班级"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifStui.GetPower==power{Stui.Output;}}return;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void Stu_Manage::Edit//更改信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的教编号:"<<endl;cin>>num;forint i=0;i<top;i++{ifStui.GetNum==num{cout<<"请对这位学生的信息进行修改:"<<endl;Stui.Input;}}cout<<"查无此人"<<endl;}void Stu_Manage::Delete//删除信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;cin>>choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==Stui.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Stuj=Stuj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;cin>>choice;switchchoice{case 1:{forint j=i;j<top-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//数据统计{cout<<"1 学生所用水电量的总量 2 学生总的水电费 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:{double zwater=0.0, zpower=0.0;forint i=0; i<top; i++{zwater+=Stui.water;zpower+=Stui.power;}cout<<"学生的总用水量为"<<zwater<<endl;cout<<"学生的总用电量为"<<zpower<<endl;}break;case 2:{double zwatermoney=0.0, zpowermoney=0.0;forint i=0; i<top; i++{zpowermoney+=Stui.powermoney;zwatermoney+=Stui.watermoney;}cout<<"教师的总水费为"<<zwatermoney<<endl;cout<<"教师的总电费为"<<zpowermoney<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void Stu_Manage::Save//保存学生信息ofstream out"学生.txt",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<Stui.num<<" "<<<<" "<<Stui.sex<<" "<<Stui.age<<" "<<Stui.bj<<" "<<Stui.water<<" "<<Stui.power<<" "<<Stui.watermoney<<" "<<Stui.powermoney<<" "<<endl;}cout<<"写入成功"<<endl;out.close;}void Stu_Manage::Read//读取学生文件{ifstream in"学生.txt",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>Stui.num>>>>Stui.sex>>Stui.age>>Stui.bj>>Stui.water>>Stui.power>>Stui.watermoney>>Stui.powermoney{i++;top++;}cout<<"打开成功"<<endl;in.close;}class Tea_Manage{Teacher TeaTMAX; //TMAX为常量,为数组中可存储的教师记录的最大数;int top; //top表示当前系统中存储的记录个数;public:Tea_Manage{top=0;} //初始时记录的个数为0,所以设置top=0;void Show; //实现该类所有记录的显示;void Search; //实现该类记录的查询;void Edit; //实现该类记录的修改;void Delete; //实现该类记录的删除;void Total; //实现该类记录的统计;void Save; //将该类记录保存到文件;void Read; //可从文件中将记录读取到该类的数组中;};void Tea_Manage::Add//添加成员{iftop>=TMAX{cout<<"用户已满"<<endl;return;}Teacher t;cout<<"输入新添加的人员的信息"<<endl;t.Input;forint i=0;i<top;i++if t.GetNum==Teai.GetNum{cout<<"该编号的人员已存在"<<endl;return;}Teatop=t;top=top+1;cout<<"添加成功"<<endl;}void Tea_Manage::Show//显示所有记录{iftop==0{cout<<"无数据"<<endl;return;}cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++Teai.Output;}void Tea_Manage::Search//查询{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;int choice;cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetName==name{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的水量:"<<endl;double water;cin>>water;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetWater==water{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;case 3:{cout<<"请输入要查找的电量:"<<endl;double power;cin>>power;cout<<" "<<"编号"<<" "<<"姓名"<<" "<<"性别"<<" "<<"年龄"<<" "<<"部门"<<setw10<<"用水量"<<setw10<<"用电量"<<setw10<<"水费"<<setw10<<"电费"<<endl;forint i=0;i<top;i++{ifTeai.GetPower==power{Teai.Output;}}return;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void Tea_Manage::Edit//更改信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的教编号:"<<endl;cin>>num;forint i=0;i<top;i++{ifTeai.GetNum==num{cout<<"请对这位教师的信息进行修改:"<<endl;Teai.Input;cout<<"修改成功"<<endl;return;}}cout<<"查无此人"<<endl;}void Tea_Manage::Delete//删除信息{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;cin>>choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==Teai.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++Teaj=Teaj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-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//数据统计{cout<<"1 教师所用水电量的总量 2 教师总的水电费 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:{double zwater=0.0, zpower=0.0;forint i=0; i<top; i++{zwater+=Teai.water;zpower+=Teai.power;}cout<<"教师的总用水量为"<<zwater<<endl;cout<<"教师的总用电量为"<<zpower<<endl;}break;case 2:{double zwatermoney=0.0, zpowermoney=0.0;forint i=0;i<top;i++{zwatermoney+=Teai.watermoney;zpowermoney+=Teai.powermoney;}cout<<"教师的总水费为"<<zwatermoney<<endl;cout<<"教师的总电费为"<<zpowermoney<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void Tea_Manage::Save//保存教师信息{ofstream out"教师.txt",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<Teai.num<<" "<<<<" "<<Teai.sex<<" "<<Teai.age<<" "<<Teai.depart<<" "<<Teai.water<<" "<<Teai.power<<" "<<Teai.watermoney<<" "<<Teai.powermoney<<" "<<endl;}cout<<"写入成功"<<endl;out.close;}void Tea_Manage::Read//读取教师文件{ifstream in"教师.txt",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>Teai.num>>>>Teai.sex>>Teai.age>>Teai.depart>>Teai.water>>Teai.power>>Teai.watermoney>>Teai.powermoney{i++;top++;}cout<<"打开成功"<<endl;in.close;}void TeaMenu;void StuMenu;int main{int choice;do{cout<<"\n============================================================================= ===\n"<<endl;cout<<" 高校水电费管理系统 \n"<<endl;cout<<"\n"<<endl;cout<<" \t1=>教师水电费管理 \t2=>学生水电费管理 \t0=>退出系统 "<<endl;cout<<"\n"<<endl;cout<<"\n请输入您的选择:";cin>>choice;switchchoice{case 1:TeaMenu;break;case 2:StuMenu;break;case 0:cout<<"\n您已安全退出系统."<<endl;break;default:cout<<"\n没有此选项.请重选."<<endl;break;}}whilechoice=0;cout<<"\n------------------------------欢迎您下次再使用---------------------------------"<<endl;return 0;}void TeaMenu{Tea_Manage t;int choice;whilechoice=0{cout<<"\n============================================================================= ===\n"<<endl;cout<< " \n 教师水电费管理"<<endl;cout<<"\n"<<endl;cout<<" 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 "<<endl;cout<<"\n"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:t.Add;break;case 2:t.Search;break;case 3:t.Edit;break;case 4:t.Delete;break;case 5:t.Show;break;case 6:t.Save;break;case 7:t.Read;break;case 8:t.Total;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}void StuMenu{Stu_Manage s;int choice;whilechoice=0{cout<<"\n============================================================================= ===\n"<<endl;cout<<" \n 学生水电费管理"<<endl;cout<<"\n"<<endl;cout<<" 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 "<<endl;cout<<"\n"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{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 6:s.Save;break;case 7:s.Read;break;case 8:s.Total;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}。

C++课程设计报告高校水电费管理系统

C++课程设计报告高校水电费管理系统

青岛理工大学C ++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:* * *班级* * * * 学号:20 13 0 7 * * * 题目:高校水电费管理系统设计起迄日期:_ 2 0 1 5 . 6 . 2 9 ~ 2 0 1 5 . 7 . 10设计地点:计算机学院机房指导教师:完成日期 : 2 01 5 年 7 月 1 0 日《C++面向对象课程设计》任务书题目9“高校水电费管理系统设计”1、问题描述住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。

教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。

能计算出学生和教工每月所要交的电费和水费。

定义一个人员类,实现学生和教工共同的信息和行为。

2、功能要求( 1 )添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

( 2 )查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

( 3 )显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行。

( 4 )编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

( 5 )删除功能:主要实现对已添加的学生或教工记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

( 6 )统计功能:能根据多种参数进行统计。

能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。

( 7 )保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

( 8 )读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

( 9 )计算电费和水费。

学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。

3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:( 1 )应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;( 2 )分析系统中的各个实体及它们之间的关系;( 3 )根据问题描述,设计系统的类层次;( 4 )完成类层次中各个类的描述;( 5 )完成类中各个成员函数的定义;( 6 )完成系统的应用模块;( 7 )功能调试;( 8 )完成系统总结报告。

(002)(任务书 -高校水电管理信息系统)(学号)(姓名)

(002)(任务书 -高校水电管理信息系统)(学号)(姓名)

中南民族大学计算机科学学院本科课程设计任务书设计名称:高校水电管理信息系统指导教师:高志荣下达时间: 2016-4-29学生姓名:学号:专业:一、课程设计的基本要求根据所学知识,编写指定题目的C++语言程序,并规范地完成课程设计报告。

通过课程设计,加深对《C++面向对象程序设计》课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,掌握C++语言的基础知识,理解面向对象系统的封装性、继承性和多态性;熟练使用C语言中的函数、数组、指针、链表和字符串等基本知识;掌握类的定义、标准String类和向量;理解掌握友元函数和重载操作符,动态数组;理解掌握继承和多态性;掌握模版的使用;能够进行程序调试过程中的异常处理;进一步掌握利用C++进行类的定义和操作方法;进一步掌握类的继承和派生方法;进一步理解虚函数和多态;综合利用上述知识,学习设计并编写面向对象的C++简单应用程序;培养解决复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。

学会编制结构清晰、风格良好、数据结构适当的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。

具体要求如下:1、采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。

学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。

2、系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。

3、程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。

4、编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);5、写出规范的课程设计报告,具体要求见相关说明文档。

二、课程设计的主要内容【问题描述】设计一个水电管理信息系统,能够对高校的水电费用进行管理。

分为教师用户类、学生用户类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告课程名称程序设计实践(C++)实验题目高校水电费管理系统实验仪器计算机实验题目高校水电费管理系统一、实验目的(10分)面向对象程序设计实践课程设计是该课程集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习和实践。

要求学生能够熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基础知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力,达到课程学习的目的和要求。

二、需求分析(20分)2.1 环境分析随着科学技术的发展,不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

而面对现今社会的发展,水电费管理系统是每一个高校管理机构对学校资源进行有效管理的不可或缺的一个管理信息系统,它的内容对于学校资源管理机构的管理者来说是至关重要的,该系统应该能够为资源管理机构的管理者提供有效的帮助,使之能够对有效信息进行快捷的整理和查询,大大的方便了管理机构的管理者的合理有效管理。

2.2 要求具体要求:(1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询如果未找到,给出相应的提示信息;如果找到,则显示相应的记录信息。

(3)显示功能:可显示当前系统中所有学生或教工的记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的学生或教工记录进行删除。

如果当前系统中没有相应的记录则提示“记录为空”并返回操作。

(6)统计功能:能统计学生和教工的用水用电量、所要交纳的电费和水费信息等。

(7)保存功能:可将当前系统中各类记录存入文件中,存入方式位“学生.txt”和“教师.txt”。

(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

2.3运行环境(1)Windows XP/Windows 7/Windows 8 等系统(2)Visual C++ 6.0编译环境或VS 2013编译环境等2.4 开发工具C++语言三、实验课时24课时四、实验步骤(20分)4.1 系统功能分析:系统通过调用函数来实现教师、学生信息地录入、修改、删除、查询以及数据保存文件等功能。

input()函数用于录入信息;output()函数用来输出信息;statistics()函数用来统计信息;compile()函数用来修改教师和学生的信息;add()函数用来添加新增信息;reading()函数用来读取已有的文件;show()函数用于显示所有已有的记录;deletes()函数用来删除教师和学生的信息;search()函数用来查询信息;saving()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。

4.2系统功能模块划分与设计:本系统定义了College类、Teacher类、Student类、Student_message类以及Teacher_message这五个类,定义了input()、output()、statistics()、compile()、add()、reading()、show()、deletes()、search()、saving ()等函数来实现系统所需功能。

4.3详细设计1.基类College的设计:class College //声明基类大学类{public: //公有数据成员College(string nam = " ", string s = " ", int a = 0, int num = 0, double wat = 0.0,double ele = 0.0, double powerf = 0.0, double waterf = 0.0) :name(nam), sex(s), age(a), number(num), water(wat),electric(ele), powerfare(powerf), waterfee(waterf){}; //定义构造函数void input(); //声明输入函数void output(); //声明输出函数string getname(){ return name; } //获取姓名int getage(){ return age; } //获取年龄double getwater(){ return water; } //获取用水量double geteletric(){ return electric; } //获取用电量double getpowerfare(){ return powerfare; } //获取电费double getwaterfee(){ return waterfee; } //获取水费int getnumber(){ return number; } //获取编号public: //公有类数据成员string name; //姓名string sex; //性别int age; //年龄int number; //编号double water; //用水量double electric; //用电量double powerfare; //电费double waterfee; //水费};2.派生类Student类的设计class Student : public College //公有继承基类{public: //公有数据成员Student(string nam = " ", string s = " ", int a = 0, int num = 0,double wat = 0.0, double ele = 0.0, double powerf = 0.0, double waterf = 0.0, string grad = " ") :College(nam, s, a, num, wat, ele, powerf, waterf), grade(grad){}//定义学生类构造函数void input(); //声明学生类输入函数void output(); //声明学生类输出函数public: //公有数据成员string grade;};3.派生类Teacher类的设计class Teacher : public College //公有继承基类{public: //公用数据成员Teacher(string nam = " ", string s = " ", int a = 0,int num = 0, double wat = 0.0, double ele = 0.0,double powerf = 0.0, double waterf = 0.0, string depart = " ") : College(nam, s, a, num, wat, ele, powerf, waterf),department(depart){} //定义教师类构造函数void input(); //声明教师类输入函数void output(); //声明教师类输出函数public:string department;};4.Student_message类的设计class Student_message //声明学生信息类{Student stu[capacity]; //学生数组int amount; //当前的数据量public:Student_message(){ amount = 0; } //定义当前学生信息容量为0 void add(); //声明学生信息添加函数void search(); //声明学生信息查询函数void show(); //声明学生信息显示函数void compile(); //声明学生信息编辑函数void deletes(); //声明学生信息删除函数void statistics(); //声明学生信息统计函数void saving(); //声明学生信息保存函数void reading(); //声明学生信息读取函数};5.Teacher_message类的设计class Teacher_message //声明教师信息类{Teacher teach[capacity];int amount; //定义当前数据数public:Teacher_message(){ amount = 0; } //初始记录数据数为0void add(); //声明教师信息添加函数void search(); //声明教师信息查询函数void show(); //声明教师信息显示函数void compile(); //声明教师信息编辑函数void deletes(); //声明教师信息删除函数void statistics(); //声明统计函数void saving(); //声明教师信息保存函数void reading(); //声明教师信息读取函数};五、实验心得(10分)在课程设计刚开始时,我不清楚到底需要做什么,无从下手,因为这不是平时的实验,平时的实验都是有目的,有内容的,而此次的设计是需要自己去设计去实践的,没有什么东西,需要自己去一步一步实现,一步一步的写。

后来,回想老师所讲的方法和技巧,开始有了目的,也有了思路。

首先,在确定我的设计题目之后,并且在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。

其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。

经过三个星期的设计和实践,虽然有些疲劳和困倦,但带给我很多的收获。

C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,后来这种现象通过实际的上机操作和实验,以及老师的讲解,同学的帮助,已经减少了许多。

对这些知识也有了更深的理解和很好的掌握。

同时也有很多理论上可以说得过去的代码,但到了实际操作的时候,却是行不通的。

这种困惑,有许多已经通过实际地操作解决了,并能够深刻地认识,但也有很多不是很清楚。

后来,只能避过这些方法,转换策略实现。

在课程设计之前,因为有了多次的综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。

相关文档
最新文档