版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学高级程序设计实践(C+课程设计报告设计题目:教学设备管理系统指导老师:设计者 :专业班级:时间日期:目 录一课题的基本要求和容二程序功能简介三主体容:1设计分析2程序结构3相关源程序4操作方法5制作模块6试验结果7设计体会8参考文献-基本容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设 计有关的书籍和资料,利用Visual C+6.0设计环境与开发工具,在两周时间, 完成课程设计容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试 步骤和有关环境的
2、设置方法,准备好有关的文件。3、数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保 存,也可用普通文件(文本文件或二进制文件)的形式保存。4、程序要求:界面美观、可操作性强、稳定性好。(二)基本容:教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。系统记录必须 包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。二程序功能简介(1)添加:增加一台设备的记录到管理系统中。(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其 信息。(3)修改:在管理系统中修改一台设备的记录。(4)保存:将所有教学设备信息保存在一个文件中(数据库文件
3、或普通的 文本文件)。(5)读取:从文件中读取已保存了数据。(6)删除:从管理系统中删除一条记录。(7)恢复:能恢复被删除的记录。(8)统计:(A)统计每页合计台数及金额 ;(B)累计设备的总台数及总金 额;(C)统计单价在:200元以下、200800元之间和800元以上的设备 总台数及总金额。(D)以表格形式打印教学设备明细表。(9)其他:可以根据自己的思路设计其他功能。三主体容1设计分析根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保 存,读取,删除,恢复设备的信息。系统既然具有“数据存盘”功能,设备数据 可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,
4、所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。考虑 到系统实现简捷,人员数据文件采用文本文件,人员数据文件名使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。所以系统主要涉及两个大类:设备类Equipment,日期Date。系统的主体框架就是设备类,考虑系统操作的设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。设备类包含所以设备信息的一个不带头结 点的链表,可以对设备信息进行增,删,改,查询,基础数据设置,数据存盘, 数 据 装 入 等 操 作 的 相 关 模 块(Add,Delete,Modify,Fi nd,Save
5、,Recover,Read,Statistic )作为成员函数。2程序结构系统功能模块教学设备管理系统3相关源程序#i nclude #in elude #in elude #in elude using n amespace std; class Dateprivate:int year; int mon th;int day;public:Date(i nt y = 0 , i nt m = 0 , i nt d = 0);Date & operator = (Date & a);void foutput(ofstream & fout);void output();void allout
6、put();void Date:alloutput()coutvyearvv:vv mon th:dayt;void Date:foutput(ofstream & fout)foutvvyearvv mon th daye ndl;Date:Date(i nt y,i nt m,i nt d)year = y;mon th = m;day = d;Date & Date:operator = (Date &a)year = a.year;month = a.mo nth;day = a.day;return *this;void Date:output()coutvvyearvv年month
7、月day日endl;class Equipme ntprivate:int num; /设备编号char n ame20; /设备名称char factory30; /生产厂家Date date; /购置日期int amount; / 台数double prrice; / 单价char notes101; / 备注public:Equipme nt(i nt num_ = 0 , char *n ame_ = NULL , int amount_ = 0, double prrice_ = 0);Equipme nt & operator = (Equipme nt &a) num = a.n
8、um;strcpy( name,a. name);strcpy(factory,a.factory);date = a.date;return *this;void give(char *factory_ , Date date_ , char *no tes);void output();void alloutput();int getNum();int getAm oun t();double getPrrice();void setNum();void setName();void setFactory();void setDate();void setAm oun t();void s
9、etPrrice();void setNotes();void foutput(ofstream & fout);void Equipme nt:alloutput()cout num tn ametvvfactoryvvt;date.alloutput();couttam ountvvtvvprricevvt no tese ndl;void Equipment:give(char*factory_ , Date date_ , char*no tes_)strcpy(factory,factory_);date = date_;strcpy( no tes, no tes_);Equipm
10、ent:Equipment(intnum_, char *name_,int amountdouble prrice_)num = num_;strcpy( name ,n ame_); amount = amount prrice = prrice_; strcpy(factory, 未设置); strcpy (no tes,无);void Equipme nt:output()cout1cout2cout3cout4cout5cout6cout7设备编号 设备名称 生产厂家 购置日期vvnum e ndl; n amee ndl; vvfactoryvve ndl;date.output(
11、);台数:amountendl; 单价备注:notesendl;vvprricevve ndl;int Equipme nt:getNum()return num;int Equipme nt:getAm oun t()return amount;double Equipme nt:getPrrice() return prrice;void Equipme nt:setNum()cout请输入设备编号: cinnum;void Equipme nt:setName()cout请输入设备名称:; cinn ame;void Equipme nt:setFactory()cout md;Date
12、 a(y,m,d); date = a;void Equipme nt:setAm oun t()coutvv请输入设备台数:; cin am ount;void Equipme nt:setPrrice()coutvv请输入设备单价:; cin prrice;void Equipme nt:setNotes()coutvv请输入备注容:; cinno tes;void Equipme nt:foutput(ofstream & fout)foutv vnum vve ndl; foutv vn amevve ndl; foutvvfactoryvve ndl; date.foutput(fo
13、ut); foutvvam oun tvve ndl; foutvvprricevve ndl; foutv vno tesvve ndl;class List private:int n, capacity;Equipme nt *elem;public:List();List();bool add(); / 添加 bool fin d(); /查询void modify(); / 修改bool Save(); / bool Read(); / void Delete(); /void Recover。; / void Statistic。; /;设备保存读取删除设备记录恢复被删除的记录 统
14、计List:List()n = 0; capacity = 1000;elem = new Equipme nt *capacity;for(i nt i = 0 ; i capacity ; i+) elemi = NULL;List:List()for (i nt i = 0 ; i n ; i+)delete elemi; elemi = NULL;if(elem) delete elem;elem = NULL;bool List:add()if(n num_;coutvv请输入设备名称:;cinn ame_;coutvv请输入购置台数:;cin am ount_;coutvv请输入设
15、备单价:;cin prrice_;elem n = new Equipme nt( num_,n ame_,am oun t_,prrice_); n+;return true;return false;bool List:fi nd()int num_; coutvv请输入您需要查找的设备编号:;cinnum_;for(i nt i = 0 ; i getNum() _coutvv查找成功!设备信息如下:output();return true;coutvv查找失败!无此设备信息。 0)int i,num_;bool ok = false;coutvv现有的设备编号如下:getNum()vv
16、;coutvve ndl;coutvv请输入您需要修改的设备编号:;cinnum_;for (i = 0 ; i v n ; i+)if(elemi-getNum ()=num_)ok = true;int choice = 1;dosystem(cls); elemi-output();cout8.退出修改。 choice;if(choice 8)cout输入错误,请重新输入!setNum(); break;case 2:elemi-setName(); break;case 3:elemi-setFactory(); break;case 4:elemi-setDate(); break;
17、case 5:elemi-setAm oun t(); break;case 6:elemi-setPrrice(); break;case 7:elemi-setNotes(); break;case 8: break; while (choice != 8);if(!ok) cout您的输入有误! e ndl;else cout现无任何设备! endl;bool List:Save()ofstream fout;fout.ope n(save.txt);fout.put(O); / 清楚txt文档的数据 fout.seekp(-1,ios:end); / 在 txt 文档中光标退格 if(
18、fout.fail()coutvv找不到文件,保存失败!endl;return false;elsefor(i nt i = 0 ; i foutput(fout);cout保存成功! endl;fout.close();return true;bool List:Read()int size;ifstream fin;fin. ope n(save.txt);streampos pos = fin .tellg();fin. seekg(0,ios:e nd);size = fin .tellg();fin. seekg(pos);if(fin .fail()coutvv找不到文件,读取失败
19、!num_; finn ame_; fin factory_; finy md; if(fin .eof() break; Date date_(y,m,d); fin am ount_; fin prrice_; finno tes_;newelem n=Equipme nt( num_,n ame_,am oun t_,prrice_);elem n-give(factory_,date_, no tes_); n+; cout读取成功! 0) int i,num_; bool ok = false; coutvv现有的设备编号如下:endl; for (i = 0 ; i n ; i+)
20、 coutgetNum()vv; coute ndl;coutvv请选择您要删除的设备编号:; cinnum_;for (i = 0 ; i getNum ()=num_)ok = true; system(cls); elemi-output(); str;if(str != Y & str != N)coutvv输入错误,请重新输入: while (str != Y & str != N);if(str = Y)ofstream fout;fout.ope n(recover.txt); fout.app;elemi-foutput(fout); fout.close();if(i = n
21、-1)delete elemi; elemi = NULL; elseEquipme nt *tem; tem = elemi; elemi = elem n-1; elem n-1 = tem; delete elem n-1; elem n-1 = NULL;n-;cout删除成功! endl; else cout删除失败! endl;if(!ok) cout您的输入有误!e ndl;else cout现无任何设备! endl;void List:Recover()int size;ifstream fin;fin. ope n(recover.txt);streampos pos = f
22、in.tellg();fin. seekg(0,ios:e nd);size = fin .tellg();fin. seekg(pos);if(fin .fail()coutvv找不到文件,恢复失败! num_;finn ame_;fin factory_;finy md;if(fin .eof() break;Date date_(y,m,d);fin am ount_;fin prrice_;finno tes_;elem n=newEquipme nt( num_,n ame_,am oun t_,prrice_);elem n-give(factory_,date_, no tes_
23、);n+;cout恢复成功! endl;fin .close();ofstream fout;fout.ope n(recover.txt);fout.put(0);fout.seekp(-1,ios:e nd); fout.close();void List:Statistic()system(cls);int i,j,n_200 = 0,n200_800 = 0, n800_ = 0;double p_200 = 0,p200_800 = 0,p800_ = 0;Equipme nt *tem;for(i = 0 ; i n ; i+)for(j = 0 ; j getPrrice() e
24、lemj+1-getPrrice()tem = elemj;elemj = elemj+1;elemj+1 = tem;coutvv编号vvt名称t厂家t日期tt数量t单价t备注e ndl;for (i = 0 ; i getPrrice() getAmou nt();p_200+=elemi-getAm oun t()*elemi-getPrrice();else if(elemi-getPrrice() getAmou nt();p200_800+=elemi-getAm oun t()*elemi-getPrrice();elsen800_ += elemi-getAmou nt();p
25、800_+=elemi-getAm oun t()*elemi-getPrrice();elemi-alloutput();coute ndl;coutvv单价在:200元以下的设备总台数及总金额为:vvtvn_200vvttvvp_200vve ndl;coutvv单价在:200800元的设备总台数及总金额为: vvtvv n200_800vvttvvp200_800vve ndl;coutvv单价在:800元以上的设备总台数及总金额为: vvtvv n800_vvttvvp800_ve ndl;coutvv累计所有设备的总台数及总金额为:vvttvn_200+n200_800+n800_v
26、vttvvp_200+p200_800+p800_ve nd l;int mai n()List list;int n = 0;int choice = 1;system(color 1C);docouttttt教学设备管理系统endl;couttt= dl;couttt#tt 1.couttt#tt 2.couttt#tt 3.couttt#tt 4.couttt#tt 5.couttt#tt 6.couttt#tt 7.couttt#tt 8.couttt#tt 9.=en添加设备容。tt#e ndl;查找设备容。tt#e ndl; 修改设备容。tt#e ndl;保存设备记录。tt#e ndl;读取设备记录。tt#e ndl; 删除设备容。tt#endl;恢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 静脉治疗知识考试题及解析
- 房地产经纪人培训题及答案参考
- 网络安全行业解决方案顾问面试题
- 建筑设计师招聘面试题集及答案详解
- 2025年智能化社区服务中心建设项目可行性研究报告
- 2025年城市社区综合服务平台建设项目可行性研究报告
- 2025年在线新零售平台项目可行性研究报告
- 2025年低碳生活示范社区建设项目可行性研究报告
- 2025年东南沿海海洋牧场项目可行性研究报告
- 2026年资阳口腔职业学院单招职业倾向性考试题库含答案详解
- 全域土地综合整治项目社会稳定风险评估报告
- 2024-2025学年广东省深圳市福田区七年级(上)期末英语试卷
- 《证券投资学》吴晓求课后习题答案
- 消防员心理测试题目及答案大全2025
- 住院医师规范化培训急诊科模拟试题及答案
- 2025国考国资委申论高分笔记
- 2025年高级经济师《人力资源》考试真题及答案
- 矿山项目经理岗位职责与考核标准
- 2025年乡村旅游民宿业发展现状与前景可行性研究报告
- 国家安全生产公众号
- 2025年中国多深度土壤水分传感器行业市场全景分析及前景机遇研判报告
评论
0/150
提交评论