ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:55.65KB ,
资源ID:9128979      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9128979.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++机房计费管理系统方案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++机房计费管理系统方案.docx

1、C+机房计费管理系统方案一、需求分析1. 输入功能:输入30名学生的学号、班级、姓名、上机起始时间。2. 计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)3. 查询功能:按条件(班级、学号、姓名)显示学生的上机时间。4. 机器使用情况的显示(显示方式不限但要一目了然)5. 要求:1) 源文件采用多文件的工程结构;2) 数据存储采用文件形式;3) 采用面向对象方法设计;4) 功能完善,适当的注释;5) 关于文件的内容需要自学;二、概要设计1. 学生类的定义: Student(学生类)int tag; /删除标记char name20

2、; 学生姓名int cla; 班级int stunum; 学号int comnum; 上机号time_t stime; 开始上机时间time_t otime; 下机时间double htime; 上机总时间int money; 上机费用Student(); 构造函数Void upcom(char Name20,int Cla,int Stunum,int Comnum); 上机操作int downcom(); 下机操作void delstu(); 删除操作void setotime(); 设置下机时间time_t gettime(); 获取当前时间char* getname(); 获取姓名in

3、t getcla(); 获取班级号int gettag(); 获取标记int getstunum(); 获取学号int getcomnum(); 获取上机号double countht(); 计算上机时间int countm(); 计算上机费用void disp(); 显示void disp2(); 显示22. 学生库类定义: StuData(学生库类)int top;学生记录指针Student studentMAXS; 学生记录StuData(); 构造函数Student* searchnum(int Stunum);按学号搜索学生Student* searchcla(int Cla);按班

4、级搜索学生void dispbycla(int Cla);按班级显示学生Student*searchname(char *Name);按姓名显示学生void dispall();显示所有学生信息void upcom(char Name20,int Cla,int Stunum,int Comnum);上机操作void downcom(int Stunum);下机操作int search(); 搜索操作StuData(); 析构函数3. 电脑类的定义: Computer(电脑类)int tag;删除标记int comnum; 电脑号Computer();构造函数void setcomnum(in

5、t Comnum);设置电脑号int getcomnum();获取电脑号void upcom();上机操作void downcom();下机操作int gettag();获取标记4. 电脑库类的定义: ComData(电脑库类)Computer computer30;记录电脑ComData();构造函数Computer* searchcom();搜索空闲电脑Computer* searchnum(int Comnum);按电脑号搜索int upcom();上机操作void disp();显示ComData();析构函数三、详细设计1. 学生类成员函数的定义:Student:Student()

6、/构造函数 void Student:upcom(char Name20,int Cla,int Stunum,int Comnum) /上机 strcpy(name,Name); tag=1; cla=Cla; stunum=Stunum; comnum=Comnum; stime=gettime(); int Student:downcom() /下机 /otime=gettime(); setotime(); delstu(); disp(); return comnum; void Student:delstu() /更改上机标记 tag=0; void Student:setotim

7、e() /获取下机时间 otime=gettime(); time_t Student:gettime() /获取当前时间 return time(NULL); char* Student:getname() /获取姓名 return name; int Student:getcla() /获取班级 return cla; int Student:gettag() /获取上机标记 return tag; int Student:getstunum() /获取学号 return stunum; int Student:getcomnum() /获取上机号 return comnum; doubl

8、e Student:countht() /计算总上机时间 return difftime(otime,stime); int Student:countm() /计算上机费用 if(int)countht()%3600=0) return (int)countht()/3600; return (int)countht()/3600)+1; void Student:disp() /显示 cout姓名:name 班级:cla 学号:stunum 上机号comnumendl; cout开始上机时间:asctime(localtime(&stime) 上机总时间:countht()/3600.00

9、小时 上机费用:countm()元endl; void Student:disp2() /显示 coutendlendl -上机成功-endl; cout姓名:nameendl班级:claendl学号:stunumendl开始上机时间:asctime(localtime(&stime)上机号:comnumendl; /cout开始上机时间:stime 上机总时间:countht() 上机费用:countm()endl; 2. 学生库类成员函数定义:StuData:StuData() /构造函数,将student.txt中的内容读到student中 Student s; top=-1; ifst

10、ream fin(student.txt); while(1) fin.read(char *)&s,sizeof(s); if(!fin) break; top+; studenttop=s; fin.close(); Student* StuData:searchnum(int Stunum) /按学号搜索 for(int i=0;i=top;i+) if(studenti.getstunum()=Stunum&studenti.gettag()=1) return &studenti; return NULL; Student* StuData:searchcla(int Cla) /按

11、班级搜索 for(int i=0;i=top;i+) if(studenti.getcla()=Cla&studenti.gettag()=1) return &studenti; return NULL; void StuData:dispbycla(int Cla) /按班级显示 for(int j=0;j=top;j+) if(studentj.getcla()=Cla&studentj.gettag()=1) studentj.disp(); coutendl; Student* StuData:searchname(char *Name) /按姓名搜索 for(int i=0;i=t

12、op;i+) if(!strcmp(studenti.getname(),Name)&studenti.gettag()=1) return &studenti; return NULL; void StuData:dispall() /显示所有学生 for(int i=0;i=top;i+) if(studenti.gettag()=1) studenti.setotime(); studenti.disp(); coutdowncom(); int StuData:search() /机房学生查询 char choice; char name20; int stunum; int cla;

13、 Student *s; while(choice!=0) coutendlendl-机房学生查询-endlendl; cout-1 按姓名查询 -endl; cout-2 按学号查询 -endl; cout-3 按班级查询 -endl; cout-4 全部学生信息 -endl; cout-0 返回主菜单 -choice; switch(choice) case 1: system(cls); cout请输入学生姓名:name; s=searchname(name); if(s=NULL) cout机房没有此人disp(); break; case 2: system(cls); cout请输

14、入学生学号:stunum; s=searchnum(stunum); if(s=NULL) cout机房没有此人disp(); break; case 3: system(cls); cout请输入班级号:cla; s=searchcla(cla); if(s=NULL) cout机房没有该班级的人!endl; break; dispbycla(cla); break; case 4: system(cls); coutendlendl -机房所有上机学生信息如下-endlendl; dispall(); break; case 0: return 0; default: cout输入有误,请

15、重新输入:endl; cout按任意键返回endl; getch(); system(cls); StuData:StuData() /析构函数,将student中数据写到srudent.txt中 ofstream fout(student.txt); for(int i=0;i=top;i+) if(studenti.gettag()=1) fout.write(char*)&studenti,sizeof(studenti); fout.close(); 3. 电脑类成员函数定义:Computer:Computer() /构造函数 tag=0; void Computer:setcomnu

16、m(int Comnum) /设置电脑号 comnum=Comnum; int Computer:getcomnum() /获取电脑号 return comnum; void Computer:upcom() /上机 tag=1; void Computer:downcom() /下机 tag=0; int Computer:gettag() /获取上机标记 return tag; 4. 电脑库类成员函数定义:ComData:ComData() /构造函数 Computer c; ifstream fin(computer.txt); for(int j=0;jMAXC;j+) fin.rea

17、d(char*)&c,sizeof(c); computerj=c; fin.close(); for(int i=0;iMAXC;i+) computeri.setcomnum(i+1); Computer* ComData:searchcom() /搜索空闲电脑 for(int i=0;iMAXC;i+) if(computeri.gettag()=0) return &computeri; return NULL; Computer* ComData:searchnum(int Comnum) /按电脑号搜索电脑 for(int i=0;iMAXC;i+) if(computeri.ge

18、tcomnum()=Comnum) return &computeri; return NULL; int ComData:upcom() /上机 Computer *p=searchcom(); if(p=NULL) cout机房已满,不能上机upcom(); return p-getcomnum(); void ComData:disp() /显示 coutendlendl电脑使用情况如下,1为被使用中,0为空闲中!endlendl; for(int i=0;iMAXC;i+) /coutcomputeri.getcomnum(); printf(%4d,computeri.gettag(

19、); if(i+1)%6=0) coutendl; ComData:ComData() /析构函数 ofstream fout(computer.txt); for(int i=0;iMAXC;i+) /if(computeri.gettag()=1) fout.write(char*)&computeri,sizeof(computeri); fout.close(); 四、调试分析1. 调试前,界面有些凌乱,选择某项功能后,之前的菜单仍然在界面上;调试时,适当加入了清屏函数,使界面更加简洁清晰。2. 调试前,当输入的内容不合法时没有任何提示,导致某些功能出现故障;调试时对输入内容的合法性做

20、出的判断,并给出了相映的提示信息。3. 体会:C+语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验。从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。这不但激发了我的创新意识,还开发了我的创造能力、培养了我的沟通能力。老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计

21、,就在种种辅助条件下完成了,心里有说不出的高兴。这是一个发现问题和解决问题的过程,从困惑到明朗,从苦恼道兴奋。我一步步地走过来,发现编程真是一个奇妙刺激的旅程。特别是当我把一个自己认为毫无可能的事情完成自后,那种感觉简直不能用言语来表达。感谢这次课程设计给我带来的全新体验和丰富经验。我会把它换成我以后奋斗的源泉。五、用户手册 本程序的运行环境为DOS操作系统,执行文件为:机房管理系统.exe; 进入演示程序后,即显示对话形式的提示操作过程,选择上机项后,输入上机学生的基本信息;选择下级项后,输入要下机学生的学号即可,系统自动给出上机总时间和费用;选择学生信息查询项后,可按各种信息搜索,选择相应

22、选项即可; 选择电脑使用情况项后,系统便会显示所有电脑的被使用情况。六、测试数据主界面: 上机操作: 下机操作:查询界面: 按姓名查询:按学号查询:按班级查询:电脑呗使用情况:七、附录/ - “Student.h”-#ifndef Student_H_H#define Student_H_Htypedef long time_t;class Studentpublic: Student(); /构造函数 void upcom(char Name20,int Cla,int Stunum,int Comnum); /上机 int downcom(); /下机 void delstu(); /更改

23、上机标记 void setotime(); /获取下机时间 time_t gettime(); /获取当前时间 char* getname(); /获取姓名 int getcla(); /获取班级 int gettag(); /获取上机标记 int getstunum(); /获取学号 int getcomnum(); /获取上机号 double countht(); /计算总上机时间 int countm(); /计算上机费用 void disp(); /显示 void disp2(); /显示private: int tag; char name20; int cla; int stunu

24、m; int comnum; time_t stime; time_t otime; double htime; int inthtime; int money;#endif/ -“StuData.h”-#ifndef StuData_H_H#define StuData_H_H#includeStudent.hconst int MAXS=30;class StuDatapublic: StuData(); /构造函数 Student* searchnum(int Stunum); /按学号搜索 Student* searchcla(int Cla); /按班级搜索 void dispbycla(int Cla); /按班级显示 Student* searchname(char *Name); /按姓名搜索 void dispall(); /显示所有学生 void upcom(char Name20,int Cla,int Stunum,int Comnum); /上机 void downcom(int Stunum); /下机 int search(); /机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1