教学设备管理系统概述.docx

上传人:b****6 文档编号:5390813 上传时间:2022-12-15 格式:DOCX 页数:24 大小:65.44KB
下载 相关 举报
教学设备管理系统概述.docx_第1页
第1页 / 共24页
教学设备管理系统概述.docx_第2页
第2页 / 共24页
教学设备管理系统概述.docx_第3页
第3页 / 共24页
教学设备管理系统概述.docx_第4页
第4页 / 共24页
教学设备管理系统概述.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

教学设备管理系统概述.docx

《教学设备管理系统概述.docx》由会员分享,可在线阅读,更多相关《教学设备管理系统概述.docx(24页珍藏版)》请在冰豆网上搜索。

教学设备管理系统概述.docx

教学设备管理系统概述

中南大学

 

《高级程序设计实践(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)

主函数流程

 

4源函数

#include

#include

#include

#include

usingnamespacestd;

classDate

{

private:

intyear;

intmonth;

intday;

public:

Date(inty=0,intm=0,intd=0);

Date&operator=(Date&a);

voidfoutput(ofstream&fout);

voidoutput();

voidalloutput();

};

voidDate:

:

alloutput()

{

cout<

"<

"<

}

voidDate:

:

foutput(ofstream&fout)

{

fout<

}

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()

{

cout<

}

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()

{

cout<

<

<

date.alloutput();

cout<<'\t'<

<<'\t'<

<<'\t'<

}

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()

{

cout<<"1.设备编号:

"<

cout<<"2.设备名称:

"<

cout<<"3.生产厂家:

"<

cout<<"4.购置日期:

";date.output();

cout<<"5.台数:

"<

cout<<"6.单价:

"<

cout<<"7.备注:

"<

}

intEquipment:

:

getNum()

{

returnnum;

}

intEquipment:

:

getAmount()

{

returnamount;

}

doubleEquipment:

:

getPrrice()

{

returnprrice;

}

voidEquipment:

:

setNum()

{

cout<<"请输入设备编号:

";

cin>>num;

}

voidEquipment:

:

setName()

{

cout<<"请输入设备名称:

";

cin>>name;

}

voidEquipment:

:

setFactory()

{

cout<<"请输入生产厂家的名称:

";

cin>>factory;

}

voidEquipment:

:

setDate()

{

inty,m,d;

cout<<"请输入年、月、日,用空格隔开:

";

cin>>y>>m>>d;

Datea(y,m,d);

date=a;

}

voidEquipment:

:

setAmount()

{

cout<<"请输入设备台数:

";

cin>>amount;

}

voidEquipment:

:

setPrrice()

{

cout<<"请输入设备单价:

";

cin>>prrice;

}

voidEquipment:

:

setNotes()

{

cout<<"请输入备注内容:

";

cin>>notes;

}

voidEquipment:

:

foutput(ofstream&fout)

{

fout<

fout<

fout<

date.foutput(fout);

fout<

fout<

fout<

}

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;i

}

List:

:

~List()

{

for(inti=0;i

{

delete[]elem[i];

elem[i]=NULL;

}

if(elem)delete[]elem;

elem=NULL;

}

boolList:

:

add()

{

if(n

{

intnum_;

charname_[20];

intamount_;

doubleprrice_;

cout<<"请输入设备编号:

";

cin>>num_;

cout<<"请输入设备名称:

";

cin>>name_;

cout<<"请输入购置台数:

";

cin>>amount_;

cout<<"请输入设备单价:

";

cin>>prrice_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

n++;

returntrue;

}

returnfalse;

}

boolList:

:

find()

{

intnum_;

cout<<"请输入您需要查找的设备编号:

";

cin>>num_;

for(inti=0;i

{

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

{

cout<<"查找成功!

设备信息如下:

"<

elem[i]->output();

returntrue;

}

}

cout<<"查找失败!

无此设备信息。

"<

returnfalse;

}

voidList:

:

modify()

{

system("cls");

if(n>0)

{

inti,num_;

boolok=false;

cout<<"现有的设备编号如下:

"<

for(i=0;i

{

cout<getNum()<<"";

}

cout<

cout<<"请输入您需要修改的设备编号:

";

cin>>num_;

for(i=0;i

{

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

{

ok=true;

intchoice=1;

do

{

system("cls");

elem[i]->output();

cout<<"8.退出修改。

"<

cout<<"请输入您需要修改的选项:

";

cin>>choice;

if(choice<1||choice>8)

{

cout<<"输入错误,请重新输入!

"<

choice=1;

continue;

}

switch(choice)

{

case1:

elem[i]->setNum();

break;

case2:

elem[i]->setName();

break;

case3:

elem[i]->setFactory();

break;

case4:

elem[i]->setDate();

break;

case5:

elem[i]->setAmount();

break;

case6:

elem[i]->setPrrice();

break;

case7:

elem[i]->setNotes();

break;

case8:

break;

}

}while(choice!

=8);

}

}

if(!

ok)cout<<"您的输入有误!

"<

}

elsecout<<"现无任何设备!

"<

}

 

boolList:

:

Save()

{

ofstreamfout;

fout.open("save.txt");

fout.put(0);//清楚txt文档的数据

fout.seekp(-1,ios:

:

end);//在txt文档中光标退格

if(fout.fail())

{

cout<<"找不到文件,保存失败!

"<

returnfalse;

}

else

{

for(inti=0;i

{

elem[i]->foutput(fout);

}

}

cout<<"保存成功!

"<

fout.close();

returntrue;

}

boolList:

:

Read()

{

intsize;

ifstreamfin;

fin.open("save.txt");

streampospos=fin.tellg();

fin.seekg(0,ios:

:

end);

size=fin.tellg();

fin.seekg(pos);

if(fin.fail())

{

cout<<"找不到文件,读取失败!

"<

returnfalse;

}

else

{

intnum_,amount_,y,m,d;

doubleprrice_;

charname_[20],factory_[30],notes_[101];

n=0;

while(size!

=1)

{

fin>>num_;

fin>>name_;

fin>>factory_;

fin>>y>>m>>d;

if(fin.eof())break;

Datedate_(y,m,d);

fin>>amount_;

fin>>prrice_;

fin>>notes_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

elem[n]->give(factory_,date_,notes_);

n++;

}

}

cout<<"读取成功!

"<

fin.close();

returntrue;

}

voidList:

:

Delete()

{

system("cls");

if(n>0)

{

inti,num_;

boolok=false;

cout<<"现有的设备编号如下:

"<

for(i=0;i

{

cout<getNum()<<"";

}

cout<

cout<<"请选择您要删除的设备编号:

";

cin>>num_;

for(i=0;i

{

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

{

ok=true;

system("cls");

elem[i]->output();

cout<<"您确定要删除此设备?

(YorN)"<

charstr;

do

{

cin>>str;

if(str!

='Y'&&str!

='N')

{

cout<<"输入错误,请重新输入:

";

}

}while(str!

='Y'&&str!

='N');

if(str=='Y')

{

ofstreamfout;

fout.open("recover.txt");

fout.app;

elem[i]->foutput(fout);

fout.close();

if(i==n-1)

{

delete[]elem[i];

elem[i]=NULL;

}

else

{

Equipment*tem;

tem=elem[i];

elem[i]=elem[n-1];

elem[n-1]=tem;

delete[]elem[n-1];

elem[n-1]=NULL;

}

n--;

cout<<"删除成功!

"<

}

elsecout<<"删除失败!

"<

}

}

if(!

ok)cout<<"您的输入有误!

"<

}

elsecout<<"现无任何设备!

"<

}

voidList:

:

Recover()

{

intsize;

ifstreamfin;

fin.open("recover.txt");

streampospos=fin.tellg();

fin.seekg(0,ios:

:

end);

size=fin.tellg();

fin.seekg(pos);

if(fin.fail())

{

cout<<"找不到文件,恢复失败!

"<

}

else

{

intnum_,amount_,y,m,d;

doubleprrice_;

charname_[20],factory_[30],notes_[101];

while(!

fin.eof()&&size!

=1)

{

fin>>num_;

fin>>name_;

fin>>factory_;

fin>>y>>m>>d;

if(fin.eof())break;

Datedate_(y,m,d);

fin>>amount_;

fin>>prrice_;

fin>>notes_;

elem[n]=newEquipment(num_,name_,amount_,prrice_);

elem[n]->give(factory_,date_,notes_);

n++;

}

cout<<"恢复成功!

"<

fin.close();

ofstreamfout;

fout.open("recover.txt");

fout.put(0);

fout.seekp(-1,ios:

:

end);

fout.close();

}

}

voidList:

:

Statistic

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

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

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