教学活动设备管理组织系统c

发布时间:2020-07-07


.


《高级程序设计实践(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元以下、200800元之间和800元以上的设备总台数及总金额。(D以表格形式打印教学设备明细表。
9 其他:可以根据自己的思路设计其他功能。 主体内容 1 设计分析
根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。系统既然具有“数据存盘”功能,设备数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名. 使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。所以系统主要涉及两个大类:设备类Equipment,日期Date。系统的主体框架就是设备类,考虑系统操作的设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。设备类包含所以设备信息的一个不带头结点的链表,可以对设备信息进行增,删,

. Add,Delete,Modify,Find,Save,Recover,Read,Statistic)作为成员函数。 2程序结构
1)系统功能模块图

添加 设备 信息
查找 设备 信息
修改 设备 信息
保存 设备 信息
读取 设备 信息
删除 设备 信息
恢复 设备 信息
统计 设备 信息
3 各模块的功能 1 主函数流程




4 源函数

创建设备 对象
显示菜单
接受输入
根据输入 执行操作
退出

#include 结束


. #include #include #include 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<} void Date::foutput(ofstream &fout { fout<} 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<"<"<"<} 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 , {
} 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 = a.num; strcpy(name,a.name; strcpy(factory,a.factory; date = a.date; return *this; int amount_ = 0, double prrice_ = 0;
Equipment & operator = (Equipment &a date.alloutput(; cout<<'\t'<
} <<'\t'<<<'\t'<

. 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.设备编号:"< cout<<"2.设备名称:"< cout<<"3.生产厂家:"< cout<<"4.购置日期:"; date.output(; cout<<"5.台数:"< cout<<"6.单价:"< cout<<"7.备注:"<} 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< fout< fout< date.foutput(fout; fout< fout< fout<} 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++ {
} 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_; delete [] elem[i]; elem[i] = NULL;

.
} return false; } bool List::find( {
int num_; cout<<"请输入您需要查找的设备编号:";
cin>>num_; for(int i = 0 ; i < n ; i++ {
} cout<<"查找失败!无此设备信息。"< return false; } void List::modify( { system("cls"; if(n > 0 {

int i,num_; bool ok = false; cout<<"现有的设备编号如下:"<for (i = 0 ; i < n ; i++ {
}
cout<cout<<"请输入您需要修改的设备编号:"; cin>>num_; for (i = 0 ; i < n ; i++ { cout<getNum(<<" "; if(num_ == elem[i]->getNum( {
} cout<<"查找成功!设备信息如下:"<elem[i]->output(; return true; cout<<"请输入购置台数:"; cin>>amount_; cout<<"请输入设备单价:"; cin>>prrice_; elem[n] = new Equipment(num_,name_,amount_,prrice_; n++; return true;

.



if(elem[i]->getNum(==num_ {

ok = true; int choice = 1; do {

system("cls"; elem[i]->output(; cout<<"8.退出修改。"< cout<<"请输入您需要修改的选项:"; cin>>choice; if(choice < 1 || choice > 8 {
} switch (choice { case 1:
} elem[i]->setNum(; break; elem[i]->setName(; break; elem[i]->setFactory(; break; elem[i]->setDate(; break; elem[i]->setAmount(; break; elem[i]->setPrrice(; break; elem[i]->setNotes(; break; break; cout<<"输入错误,请重新输入!"<choice = 1; continue; case 2: case 3: case 4:
case 5:
case 6:
case 7:
case 8:
} while (choice != 8;

.
} else cout<<"现无任何设备!"<}

bool List::Save( { ofstream fout;
fout.open("save.txt"; fout.put(0; //清楚txt文档的数据
fout.seekp(-1,ios::end; //txt文档中光标退格 if(fout.fail( { } else {
} cout<<"保存成功!"< 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<<"找不到文件,读取失败!"<return false;
for(int i = 0 ; i < n ; i++ {
}
elem[i]->foutput(fout; cout<<"找不到文件,保存失败!"<return false;
} if(!ok cout<<"您的输入有误!"<
}



. } else {
} cout<<"读取成功!"< fin.close(; return true; } void List::Delete( { system("cls"; if(n > 0 {

int i,num_; bool ok = false; cout<<"现有的设备编号如下:"<for (i = 0 ; i < n ; i++ {
}
cout<cout<<"请选择您要删除的设备编号:"; cin>>num_; for (i = 0 ; i < n ; i++ { cout<getNum(<<" ";
int num_,amount_,y,m,d; double prrice_; char name_[20],factory_[30],notes_[101]; n = 0; while(size != 1 {
} fin>>num_; fin>>name_; fin>>factory_; fin>>y>>m>>d; if(fin.eof( break; Date date_(y,m,d; fin>>amount_; fin>>prrice_; fin>>notes_; elem[n] = new Equipment(num_,name_,amount_,prrice_; elem[n]->give(factory_,date_,notes_; n++;

.


} if(!ok cout<<"您的输入有误!"<if(elem[i]->getNum(==num_ {
} ok = true; system("cls"; elem[i]->output(; cout<<"您确定要删除此设备? Y or N"<char str; do {

cin>>str; if(str != 'Y' && str != 'N' {
} cout<<"输入错误,请重新输入:"; } while (str != 'Y' && str != 'N'; if(str == 'Y' {
} else cout<<"删除失败!"<ofstream fout; fout.open("recover.txt"; fout.app; elem[i]->foutput(fout; fout.close(; if(i == n-1 { } else { } n--; cout<<"删除成功!"<Equipment *tem; tem = elem[i]; elem[i] = elem[n-1]; elem[n-1] = tem; delete [] elem[n-1]; elem[n-1] = NULL; delete [] elem[i]; elem[i] = NULL;

.
} else cout<<"现无任何设备!"<} 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( { } else {
}

int num_,amount_,y,m,d; double prrice_; char name_[20],factory_[30],notes_[101]; while(!fin.eof( && size != 1 {
} cout<<"恢复成功!"<fin.close(; ofstream fout; fout.open("recover.txt"; fout.put(0; fout.seekp(-1,ios::end; fout.close(; fin>>num_; fin>>name_; fin>>factory_; fin>>y>>m>>d; if(fin.eof( break; Date date_(y,m,d; fin>>amount_; fin>>prrice_; fin>>notes_; elem[n] = new Equipment(num_,name_,amount_,prrice_; elem[n]->give(factory_,date_,notes_; n++; cout<<"找不到文件,恢复失败!"<

.
} 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 < n ; i++ {
} cout<<"编号"<<'\t' {

if(elem[i]->getPrrice( < 200 {
} else if(elem[i]->getPrrice( <= 800 { } else {
}
elem[i]->alloutput(;
n800_ += elem[i]->getAmount(; p800_ += elem[i]->getAmount(*elem[i]->getPrrice(; n200_800 += elem[i]->getAmount(; p200_800 += elem[i]->getAmount(*elem[i]->getPrrice(; n_200 += elem[i]->getAmount(; p_200 += elem[i]->getAmount(*elem[i]->getPrrice(; <<"名称"<<'\t' <<"厂家"<<'\t' <<"日期"<<"\t\t" <<"数量"<<'\t' <<"单价"<<'\t' <<"备注"<for(j = 0 ; j < n - 1 - i ; j ++ {
} if(elem[j]->getPrrice( > elem[j+1]->getPrrice( {
} tem = elem[j]; elem[j] = elem[j+1]; elem[j+1] = tem;
for (i = 0 ; i < n ; i++

.
}
cout< cout<<"单价在:200元以下的设备总台数及总金额为:"


<<"\t\t"<} int main( { List list; int n = 0; int choice = 1; system("color 1C"; do {


cout<<"\t\t================================================="<


cout<<"\t\t================================================="<

cout<<"请输入您的操作:"; cin>>choice; if(choice < 1 || choice > 9 {
} cout<<"输入错误,请重新输入!"<choice = 1; continue; cout<<"\t\t#\t\t 1.添加设备内容。\t\t#"<cout<<"\t\t#\t\t 2.查找设备内容。\t\t#"<cout<<"\t\t#\t\t 3.修改设备内容。\t\t#"<cout<<"\t\t#\t\t 4.保存设备记录。\t\t#"<cout<<"\t\t#\t\t 5.读取设备记录。\t\t#"<cout<<"\t\t#\t\t 6.删除设备内容。\t\t#"<cout<<"\t\t#\t\t 7.恢复删除记录。\t\t#"<cout<<"\t\t#\t\t 8.统计设备内容。\t\t#"<cout<<"\t\t#\t\t 9.退出管理系统。\t\t#"<cout<<"\t\t\t\t教学设备管理系统"<<<'\t'<<<'\t'<<<'\t'< cout<<"单价在:200800元的设备总台数及总金额为:" cout<<"单价在:800元以上的设备总台数及总金额为:" cout<<"累计所有设备的总台数及总金额为:"

.

switch (choice { case 1:
} system("pause"; system("cls"; if(list.add( { } else { } break; list.find(; break; list.modify(; break; list.Save(; break; list.Read(; break; list.Delete(; break; list.Recover(; break; list.Statistic(; break; break; cout<<"线性表已满,添加失败!"<cout<<"添加成功!"<case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: } while (choice != 9; return 0; }



.

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




.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.



.


教学活动设备管理组织系统c

相关推荐