您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 中南大学c++课程设计报告
中南大学《高级程序设计实践(C++)》课程设计报告设计题目教学设备管理系统指导老师设计者专业班级设计日期目录一课题的基本内容和要求二程序功能简介三主体内容:1设计分析2程序整体结构3部分模块的结构4相关模块源程序5操作方法6试验结果7设计体会8参考文献一基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用VisualC++6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。3、数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。4、程序要求:界面美观、可操作性强、稳定性好。(二)基本内容:教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。二程序功能简介(1)添加:增加一台设备的记录到管理系统中。(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。(3)修改:在管理系统中修改一台设备的记录。(4)保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。(5)读取:从文件中读取已保存了数据。(6)删除:从管理系统中删除一条记录。(7)恢复:能恢复被删除的记录。(8)统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200~800元之间和800元以上的设备总台数及总金额。(D)以表格形式打印教学设备明细表。(9)其他:可以根据自己的思路设计其他功能。三主体内容1设计分析根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。系统既然具有“数据存盘”功能,设备数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名.使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。所以系统主要涉及两个大类:设备类Equipment,日期Date。系统的主体框架就是设备类,考虑系统操作的设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。设备类包含所以设备信息的一个不带头结点的链表,可以对设备信息进行增,删,改,查询,基础数据设置,数据存盘,数据装入等操作的相关模块(Add,Delete,Modify,Find,Save,Recover,Read,Statistic)作为成员函数。2程序整体结构(1)系统功能模块图3部分模块的结构(1)主函数流程设备管理系统添加设备信息查找设备信息修改设备信息保存设备信息读取设备信息删除设备信息恢复设备信息统计设备信息开始创建设备对象显示菜单接受输入根据输入执行操作结束退出NOYES(2)类的层次图EquipmentNumNameDateFactoryAmountPrriceYearMonthDay(3)Equipment::Add()(4)Equipment::Delete输入操作输入设备信息创建结点设备结点加入链表结束开始开始输入设备编号查找删除结点结点存在?链表删除设备结点提示未找到结束(5)Equipment::Modify(6)Equipment::Save输入设备编号查找结点结点存在修改结点提示未找到遍历链表保存设备数据关闭文件打开基础数据文件保存基础数据关闭文件结束开始结束开始打开设备数据文件四相关模块源程序#includeiostream#includefstream#includecstring#includewindows.husingnamespacestd;classDate{private:intyear;intmonth;intday;public:Date(inty=0,intm=0,intd=0);Date&operator=(Date&a);voidfoutput(ofstream&fout);voidoutput();voidalloutput();};voidDate::alloutput(){coutyear:month:day'\t';}voidDate::foutput(ofstream&fout){foutyearmonthdayendl;}Date::Date(inty,intm,intd){year=y;month=m;day=d;}Date&Date::operator=(Date&a){year=a.year;month=a.month;day=a.day;return*this;}voidDate::output(){coutyear年month月day日endl;}classEquipment{private:intnum;//设备编号charname[20];//设备名称charfactory[30];//生产厂家Datedate;//购置日期intamount;//台数doubleprrice;//单价charnotes[101];//备注public:Equipment(intnum_=0,char*name_=NULL,intamount_=0,doubleprrice_=0);Equipment&operator=(Equipment&a){num=a.num;strcpy(name,a.name);strcpy(factory,a.factory);date=a.date;return*this;}voidgive(char*factory_,Datedate_,char*notes);voidoutput();voidalloutput();intgetNum();intgetAmount();doublegetPrrice();voidsetNum();voidsetName();voidsetFactory();voidsetDate();voidsetAmount();voidsetPrrice();voidsetNotes();voidfoutput(ofstream&fout);};voidEquipment::alloutput(){coutnum'\t'name'\t'factory'\t';date.alloutput();cout'\t'amount'\t'prrice'\t'notesendl;}voidEquipment::give(char*factory_,Datedate_,char*notes_){strcpy(factory,factory_);date=date_;strcpy(notes,notes_);}Equipment::Equipment(intnum_,char*name_,intamount_,doubleprrice_){num=num_;strcpy(name,name_);amount=amount_;prrice=prrice_;strcpy(factory,未设置);strcpy(notes,无);}voidEquipment::output(){cout1.设备编号:numendl;cout2.设备名称:nameendl;cout3.生产厂家:factoryendl;cout4.购置日期:;date.output();cout5.台数:amountendl;cout6.单价:prriceendl;cout7.备注:notesendl;}intEquipment::getNum(){returnnum;}intEquipment::getAmount(){returnamount;}doubleEquipment::getPrrice(){returnprrice;}voidEquipment::setNum(){cout请输入设备编号:;cinnum;}voidEquipment::setName(){cout请输入设备名称:;cinname;}voidEquipment::setFactory(){cout请输入生产厂家的名称:;cinfactory;}voidEquipment::setDate(){inty,m,d;cout请输入年、月、日,用空格隔开:;cinymd;Datea(y,m,d);date=a;}voidEquipment::setAmount(){cout请输入设备台数:;cinamount;}voidEquipment::setPrrice(){cout请输入设备单价:;cinprrice;}voidEquipment::setNotes(){cout请输入备注内容:;cinnotes;}voidEquipment::foutput(ofstream&fout){foutnumendl;foutnameendl;foutfactoryendl;date.foutput(fout);foutamountendl;foutprriceendl;foutnotesendl;}classList{private:intn,capacity;Equipment**elem;public:List();~List();booladd();//添加boolfind();//查询voidmodify();//修改boolSave();//设备保存boolRead();//读取voidDelete();//删除设备记录voidRecover();//恢复被删除的记录voidStatistic();//统计};List::List(){n=0;capacity=1000;elem=newEquipment*[capacity];for(inti=0;icapacity;i++)elem[i]=NULL;}List::~List(){for(inti=0;in;i++){delete[]elem[i];elem[i]=NULL;}if(elem)delete[]elem;elem=NULL;}boolList::add(){if(ncapacity){intnum_;charname_[20];intamount_;doubleprrice_;cout请输入设备编号:;cinnum_;cout请输入设备名称:;cinname_;cout请输入购置台数:;cinamount_;cout请输入设备单价:;cinprrice_;elem[n]=newEquipment(num_,name_,amount_,prrice_);n++;returntrue;}returnfalse;}boolList::find(){intnum_;cout请输入您需要查找的设备编号:;cinnum_;for(inti=0;in;i++){if(num_==elem[i]-getNum()){cout查找成功!设备信息如下:endl;elem[i]-output();returntrue;}}cout查找失败!无此设备信息。endl;returnfalse;}voidList::modify(){system(cls);if(n0){inti,num_;boolok
本文标题:中南大学c++课程设计报告
链接地址:https://www.777doc.com/doc-6219290 .html