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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

中南大学c++课程设计.docx

1、中南大学c+课程设计中 南 大 学高级程序设计实践(C+)课程设计报告设计题目 : 教学设备管理系统指导老师 : 设计者 : 专业班级 : 时间日期 : 一 课题的基本要求和内容二 程序功能简介三 主体内容:1 设计分析2 程序结构3 相关源程序4 操作方法5 制作模块6试验结果7设计体会8 参考文献一 基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C+ 6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、 独立思考:独立完成课程设计中各任务的设计和调试。2、 上机准备

2、:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。3、 数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。4、 程序要求:界面美观、可操作性强、稳定性好。(二)基本内容: 教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。二 程序功能简介(1) 添加:增加一台设备的记录到管理系统中。(2) 查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。(3) 修改:在管理系统

3、中修改一台设备的记录。(4) 保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。(5) 读取:从文件中读取已保存了数据。(6) 删除:从管理系统中删除一条记录。(7) 恢复:能恢复被删除的记录。(8) 统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200800元之间和800元以上的设备总台数及总金额。(D)以表格形式打印教学设备明细表。(9) 其他:可以根据自己的思路设计其他功能。三 主体内容1 设计分析 根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。系统既然具有“数

4、据存盘”功能,设备数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名.使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。所以系统主要涉及两个大类:设备类Equipment,日期Date。系统的主体框架就是设备类,考虑系统操作的设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。设备类包含所以设备信息的一个不带头结点的链表,可以对设备信息进行增,删,改,查询,基础数据设置,数据存盘,数据装入等操作的相关

5、模块(Add,Delete,Modify,Find,Save,Recover,Read,Statistic)作为成员函数。2 程序结构系统功能模块教学设备管理系统添加设备信息查找设备信息修改设备信息保存设备信息读取设备信息删除设备信息恢复设备信息统计设备信息3 相关源程序#include #include #include #include using namespace std;class Dateprivate: int year; int month; int day;public: Date(int y = 0 , int m = 0 , int d = 0); Date & oper

6、ator = (Date &a); void foutput(ofstream &fout); void output(); void alloutput();void Date:alloutput() coutyear:month:dayt;void Date:foutput(ofstream &fout) foutyear month dayendl;Date:Date(int y,int m,int d) year = y; month = m; day = d;Date & Date:operator = (Date &a) year = a.year; month = a.month

7、; day = a.day; return *this;void Date:output() coutyear年month月day日endl;class Equipmentprivate: int num; /设备编号 char name20; /设备名称 char factory30; /生产厂家 Date date; /购置日期 int amount; /台数 double prrice; /单价 char notes101; /备注public: Equipment(int num_ = 0 , char *name_ = NULL , int amount_ = 0, double p

8、rrice_ = 0); Equipment & operator = (Equipment &a) num = a.num; strcpy(name,a.name); strcpy(factory,a.factory); date = a.date; return *this; void give(char *factory_ , Date date_ , char *notes); void output(); void alloutput(); int getNum(); int getAmount(); double getPrrice(); void setNum(); void s

9、etName(); void setFactory(); void setDate(); void setAmount(); void setPrrice(); void setNotes(); void foutput(ofstream &fout);void Equipment:alloutput() coutnumt namet factoryt; date.alloutput(); couttamount tprrice tnotesendl;void Equipment:give(char *factory_ , Date date_ , char *notes_) strcpy(f

10、actory,factory_); date = date_; strcpy(notes,notes_);Equipment:Equipment(int num_, char *name_,int amount_, double prrice_) num = num_; strcpy(name,name_); amount = amount_; prrice = prrice_; strcpy(factory,未设置); strcpy(notes,无);void Equipment:output() cout1.设备编号:numendl; cout2.设备名称:nameendl; cout3.

11、生产厂家:factoryendl; cout4.购置日期:; date.output(); cout5.台数:amountendl; cout6.单价:prriceendl; cout7.备注:notesendl;int Equipment:getNum() return num;int Equipment:getAmount() return amount;double Equipment:getPrrice() return prrice;void Equipment:setNum() coutnum;void Equipment:setName() coutname;void Equip

12、ment:setFactory() coutfactory;void Equipment:setDate() int y,m,d; coutymd; Date a(y,m,d); date = a;void Equipment:setAmount() coutamount;void Equipment:setPrrice() coutprrice;void Equipment:setNotes() coutnotes;void Equipment:foutput(ofstream &fout) foutnumendl; foutnameendl; foutfactoryendl; date.f

13、output(fout); foutamountendl; foutprriceendl; foutnotesendl;class Listprivate: int n,capacity; Equipment *elem;public: List(); List(); bool add(); /添加 bool find(); /查询 void modify(); /修改 bool Save(); / 设备保存 bool Read(); /读取 void Delete(); /删除设备记录 void Recover(); /恢复被删除的记录 void Statistic(); /统计;List:

14、List() n = 0; capacity = 1000; elem = new Equipment *capacity; for(int i = 0 ; i capacity ; i+) elemi = NULL;List:List() for (int i = 0 ; i n ; i+) delete elemi; elemi = NULL; if(elem) delete elem; elem = NULL;bool List:add() if(n capacity) int num_; char name_20; int amount_; double prrice_; coutnu

15、m_; coutname_; coutamount_; coutprrice_; elemn = new Equipment(num_,name_,amount_,prrice_); n+; return true; return false;bool List:find() int num_; coutnum_; for(int i = 0 ; i getNum() cout查找成功!设备信息如下:output(); return true; cout查找失败!无此设备信息。 0) int i,num_; bool ok = false; cout现有的设备编号如下:endl; for (i

16、 = 0 ; i n ; i+) coutgetNum() ; coutendl; coutnum_; for (i = 0 ; i getNum()=num_) ok = true; int choice = 1; do system(cls); elemi-output(); cout8.退出修改。endl; coutchoice; if(choice 8) cout输入错误,请重新输入!setNum(); break; case 2: elemi-setName(); break; case 3: elemi-setFactory(); break; case 4: elemi-setD

17、ate(); break; case 5: elemi-setAmount(); break; case 6: elemi-setPrrice(); break; case 7: elemi-setNotes(); break; case 8: break; while (choice != 8); if(!ok) cout您的输入有误!endl; else cout现无任何设备!endl;bool List:Save() ofstream fout; fout.open(save.txt); fout.put(0); /清楚txt文档的数据 fout.seekp(-1,ios:end); /

18、在txt文档中光标退格 if(fout.fail() cout找不到文件,保存失败!endl; return false; else for(int i = 0 ; i foutput(fout); cout保存成功!endl; fout.close(); return true;bool List:Read() int size; ifstream fin; fin.open(save.txt); streampos pos = fin.tellg(); fin.seekg(0,ios:end); size = fin.tellg(); fin.seekg(pos); if(fin.fail

19、() cout找不到文件,读取失败!num_; finname_; finfactory_; finymd; if(fin.eof() break; Date date_(y,m,d); finamount_; finprrice_; finnotes_; elemn = new Equipment(num_,name_,amount_,prrice_); elemn-give(factory_,date_,notes_); n+; cout读取成功! 0) int i,num_; bool ok = false; cout现有的设备编号如下:endl; for (i = 0 ; i n ;

20、i+) coutgetNum() ; coutendl; coutnum_; for (i = 0 ; i getNum()=num_) ok = true; system(cls); elemi-output(); cout您确定要删除此设备? (Y or N)str; if(str != Y & str != N) coutfoutput(fout); fout.close(); if(i = n-1) delete elemi; elemi = NULL; else Equipment *tem; tem = elemi; elemi = elemn-1; elemn-1 = tem;

21、delete elemn-1; elemn-1 = NULL; n-; cout删除成功!endl; else cout删除失败!endl; if(!ok) cout您的输入有误!endl; else cout现无任何设备!endl;void List:Recover() int size; ifstream fin; fin.open(recover.txt); streampos pos = fin.tellg(); fin.seekg(0,ios:end); size = fin.tellg(); fin.seekg(pos); if(fin.fail() cout找不到文件,恢复失败!

22、num_; finname_; finfactory_; finymd; if(fin.eof() break; Date date_(y,m,d); finamount_; finprrice_; finnotes_; elemn = new Equipment(num_,name_,amount_,prrice_); elemn-give(factory_,date_,notes_); n+; cout恢复成功!endl; fin.close(); ofstream fout; fout.open(recover.txt); fout.put(0); fout.seekp(-1,ios:end

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

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