收藏 分销(赏)

教学设备管理系统c++.doc

上传人:精*** 文档编号:4101700 上传时间:2024-07-29 格式:DOC 页数:18 大小:61.04KB
下载 相关 举报
教学设备管理系统c++.doc_第1页
第1页 / 共18页
教学设备管理系统c++.doc_第2页
第2页 / 共18页
教学设备管理系统c++.doc_第3页
第3页 / 共18页
教学设备管理系统c++.doc_第4页
第4页 / 共18页
教学设备管理系统c++.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

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,Find,

5、Save,Recover,Read,Statistic)作为成员函数。2程序结构(1)系统功能模块图设 备管 理系 统添加设备信息查找设备信息修改设备信息保存设备信息读取设备信息删除设备信息恢复设备信息统计设备信息3 各模块的功能开 始(1) 主函数流程创建设备 对象显示菜单接受输入根据输入 执行操作结束退出4 源函数include iostreaminclude fstream#include cstring#include windows。husing namespace std;class Dateprivate:int year;int month;int day;public:Dat

6、e(int y = 0 , int m = 0 , int d = 0);Date operator = (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 = (Da

7、te a)year = a.year;month = a.month;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 ,i

8、nt amount_ = 0, double prrice_ = 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();v

9、oid setName();void setFactory();void setDate();void setAmount();void setPrrice();void setNotes();void foutput(ofstream &fout);;void Equipment:alloutput()coutnumtnametfactoryt;date.alloutput();couttamounttprricetnotesendl;void Equipment:give(char factory_ , Date date_ , char notes_)strcpy(factory,fac

10、tory_);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()cout”1。设备编号:”numendl;cout2.设备名称:”nameendl;cout3。生产厂家:”factoryen

11、dl;cout”4。购置日期:”; date。output();cout”5。台数:amountendl;cout”6。单价: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 Equipment::setFactory()c

12、out”请输入生产厂家的名称:”;cinfactory;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()cout”请输入备注内容:”;cinnotes;void Equipment:foutput(ofstream fout)foutnumendl;foutnameendl;foutfactoryendl;dat

13、e。foutput(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::List()n = 0;

14、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_;cout”请输入设备编号:”;cinnum_;coutname_

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

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

17、nt();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); /在txt文档中光标退格if(fout。fail())cout找不到文件,保存失败!”endl;r

18、eturn false;elsefor(int i = 0 ; i n ; i+)elemifoutput(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())cout找不到文件,读取失败!”num_;finname_;finfactory_;fi

19、nymd;if(fin。eof() break;Date date_(y,m,d);finamount_;finprrice_;finnotes_;elemn = new Equipment(num_,name_,amount_,prrice_);elemngive(factory_,date_,notes_);n+;cout读取成功!” 0)int i,num_;bool ok = false;cout”现有的设备编号如下:”endl;;for (i = 0 ; i num_;for (i = 0 ; i n ; i+)if(elemi-getNum()=num_)ok = true;sys

20、tem(”cls);elemi-output();cout”您确定要删除此设备? (Y or N)str;if(str != Y & str != N)cout”输入错误,请重新输入:”; while (str != Y & str != N);if(str = Y)ofstream fout;fout.open(recover。txt”);fout。app;elemifoutput(fout);fout。close();if(i = n-1) delete elemi;elemi = NULL;else Equipment *tem;tem = elemi;elemi = elemn1;el

21、emn1 = tem;delete elemn-1;elemn1 = 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);fout.clo

23、se();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;Equipment *tem;for(i = 0 ; i getPrrice() elemj+1-getPrrice())tem = elemj;elemj = elemj+1;elemj+1 = tem;cout编号t”名称”t”厂家”t”日期”tt”数量t”单价t备注”getAmount();p_200 += elemigetAmount()elemige

24、tPrrice();else if(elemigetPrrice() getPrrice();else n800_ += elemigetAmount();p800_ += elemigetAmount()elemigetPrrice();elemialloutput();coutendl;cout”单价在:200元以下的设备总台数及总金额为:”tn_200”ttp_200endl;cout单价在:200800元的设备总台数及总金额为:tn200_800”ttp200_800endl;cout”单价在:800元以上的设备总台数及总金额为:”tn800_”ttp800_endl;cout累计所有

25、设备的总台数及总金额为:”ttn_200+n200_800+n800_ttp_200+p200_800+p800_endl;int main()List list;int n = 0;int choice = 1;system(”color 1C”);do cout”tttt教学设备管理系统”endl;couttt=endl;couttttt 1.添加设备内容。tt#endl;cout”tt#tt 2.查找设备内容。tt#”endl;cout”tt#tt 3.修改设备内容。tt#”endl;couttttt 4。保存设备记录。tt#”endl;couttttt 5。读取设备记录。tt”endl

26、;cout”tttt 6.删除设备内容。ttendl;cout”tttt 7。恢复删除记录。tt#”endl;cout”tttt 8。统计设备内容。tt”endl;couttttt 9.退出管理系统。tt”endl;cout”tt=” 9) cout输入错误,请重新输入!”endl;choice = 1;continue;switch (choice)case 1:if(list。add()cout”添加成功!endl;elsecout线性表已满,添加失败!endl;break;case 2:list。find();break;case 3:list。modify();break;case 4

27、:list.Save();break;case 5:list.Read();break;case 6:list。Delete();break;case 7:list。Recover();break;case 8:list。Statistic();break;case 9:break;system(”pause”);system(cls”); while (choice != 9);return 0;5操作方法6 实验结果 (1)主界面 (2)添加结果 (3)查询结果 (4)修改结果 (5)保存结果 (6)读取结果 (7)删除结果 (8)恢复结果 (9)统计结果7 设计心得 本次课程设计虽然只有三个礼拜的时间,但内容充实而且所用的知识很多,但我们平时在课堂上所学的知识很有限,这就需要我们大量的自学书本和课外的其他书籍上的知识。为了让程序使人看懂,我用到的知识点不是非常多,大都是一些基本知识,我能熟练的运用这些知识编程也算是一个很大的成功了。毕竟很多知识没有学,能用基本知识就尽量用基本知识.C+设计实践是对之前学过的知识的加深和巩固,之前学的较浅,实践的时间较少

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服