当前位置:文档之家› 教学设备管理系统c

教学设备管理系统c

中南大学《高级程序设计实践(C++)》课程设计报告设计题目指导老师设计者专业班级时间日期目录一课题的基本内容和要求二程序功能简介三主体内容:1 设计分析2 程序结构3 各模块的功能及程序说明4 相关模块源程序5 操作方法6试验结果7设计体会8 参考文献一基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C++ 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) 主函数流程4 源函数#include <iostream>#include <fstream>#include <cstring>#include <windows.h>using namespace std;class Date{private:int year;int month;int day;public:Date(int y = 0 , int m = 0 , int d = 0);Date & operator = (Date &a);void foutput(ofstream &fout);void output();void alloutput();};void Date::alloutput(){cout<<year<<":"<<month<<":"<<day<<'\t';}void Date::foutput(ofstream &fout){fout<<year<<" "<<month<<" "<<day<<endl;}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;day = a.day;return *this;}void Date::output(){cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; }class Equipment{private:int num; //设备编号char name[20]; //设备名称char factory[30]; //生产厂家Date date; //购置日期int amount; //台数double prrice; //单价char notes[101]; //备注public:Equipment(int num_ = 0 , char *name_ = NULL ,int amount_ = 0, double prrice_ = 0); Equipment & operator = (Equipment &a){num = a.num;strcpy(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 setName();void setFactory();void setDate();void setAmount();void setPrrice();void setNotes();void foutput(ofstream &fout);};void Equipment::alloutput(){cout<<num<<'\t'<<name<<'\t'<<factory<<'\t';date.alloutput();cout<<'\t'<<amount<<'\t'<<prrice<<'\t'<<notes<<endl;}void Equipment::give(char *factory_ , Date date_ , char *notes_){strcpy(factory,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(){cout<<"1.设备编号:"<<num<<endl;cout<<"2.设备名称:"<<name<<endl;cout<<"3.生产厂家:"<<factory<<endl;cout<<"4.购置日期:"; date.output();cout<<"5.台数:"<<amount<<endl;cout<<"6.单价:"<<prrice<<endl;cout<<"7.备注:"<<notes<<endl;}int Equipment::getNum(){return num;}int Equipment::getAmount(){return amount;}double Equipment::getPrrice(){return prrice;}void Equipment::setNum(){cout<<"请输入设备编号:";cin>>num;}void Equipment::setName(){cout<<"请输入设备名称:";cin>>name;}void Equipment::setFactory(){cout<<"请输入生产厂家的名称:";cin>>factory;}void Equipment::setDate(){int y,m,d;cout<<"请输入年、月、日,用空格隔开:"; cin>>y>>m>>d;Date a(y,m,d);date = a;}void Equipment::setAmount(){cout<<"请输入设备台数:";cin>>amount;}void Equipment::setPrrice(){cout<<"请输入设备单价:";cin>>prrice;}void Equipment::setNotes(){cout<<"请输入备注内容:";cin>>notes;}void Equipment::foutput(ofstream &fout){fout<<num<<endl;fout<<name<<endl;fout<<factory<<endl;date.foutput(fout);fout<<amount<<endl;fout<<prrice<<endl;fout<<notes<<endl;}class List{private: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;capacity = 1000;elem = new Equipment *[capacity];for(int i = 0 ; i < capacity ; i++) elem[i] = NULL; }List::~List(){for (int i = 0 ; i < n ; i++){delete [] elem[i];elem[i] = NULL;}if(elem) delete [] elem;elem = NULL;}bool List::add(){if(n < capacity){int num_;char name_[20];int amount_;double prrice_;cout<<"请输入设备编号:";cin>>num_;cout<<"请输入设备名称:";cin>>name_;cout<<"请输入购置台数:";cin>>amount_;cout<<"请输入设备单价:";cin>>prrice_;elem[n] = new Equipment(num_,name_,amount_,prrice_);n++;return true;}return false;}bool List::find(){int num_;cout<<"请输入您需要查找的设备编号:";cin>>num_;for(int i = 0 ; i < n ; i++){if(num_ == elem[i]->getNum()){cout<<"查找成功!设备信息如下:"<<endl;elem[i]->output();return true;}}cout<<"查找失败!无此设备信息。

相关主题