设备管理教学设备管理系统Word下载.docx
- 文档编号:17711495
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:24
- 大小:39.44KB
设备管理教学设备管理系统Word下载.docx
《设备管理教学设备管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《设备管理教学设备管理系统Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
(6)删除:
从管理系统中删除一条记录。
(7)恢复:
能恢复被删除的记录。
(8)统计:
(A)统计每页合计台数及金额;
(B)累计设备的总台数及总金额;
(C)统计单价在:
200元以下、200~800元之间和800元以上的设备总台数及总金额。
(D)以表格形式打印教学设备明细表。
(9)其他:
可以根据自己的思路设计其他功能。
三主体内容
根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。
系统既然具有“数据存盘”功能,设备数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。
考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名.
使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。
所以系统主要涉及两个大类:
设备类Equipment,日期Date。
系统的主体框架就是设备类,考虑系统操作的设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。
设备类包含所以设备信息的一个不带头结点的链表,可以对设备信息进行增,删,改,查询,基础数据设置,数据存盘,数据装入等操作的相关模块(Add,Delete,Modify,Find,Save,Recover,Read,Statistic)作为成员函数。
2程序结构
(1)系统功能模块图
3各模块的功能
(1)
主函数流程
4源函数
#include<
iostream>
fstream>
cstring>
windows.h>
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<
<
year<
"
month<
day<
'
\t'
;
}
foutput(ofstream&
fout)
fout<
"
endl;
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;
output()
年"
月"
日"
classEquipment
intnum;
//设备编号
charname[20];
//设备名称
charfactory[30];
//生产厂家
Datedate;
//购置日期
intamount;
//台数
doubleprrice;
//单价
charnotes[101];
//备注
Equipment(intnum_=0,char*name_=NULL,
intamount_=0,doubleprrice_=0);
Equipment&
operator=(Equipment&
{
num=a.num;
strcpy(name,a.name);
strcpy(factory,a.factory);
date=a.date;
return*this;
}
voidgive(char*factory_,Datedate_,char*notes);
intgetNum();
intgetAmount();
doublegetPrrice();
voidsetNum();
voidsetName();
voidsetFactory();
voidsetDate();
voidsetAmount();
voidsetPrrice();
voidsetNotes();
voidEquipment:
num<
<
name<
factory<
date.alloutput();
amount
prrice
notes<
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,"
无"
1.设备编号:
2.设备名称:
3.生产厂家:
4.购置日期:
date.output();
5.台数:
amount<
6.单价:
prrice<
7.备注:
intEquipment:
getNum()
returnnum;
getAmount()
returnamount;
doubleEquipment:
getPrrice()
returnprrice;
setNum()
请输入设备编号:
cin>
>
num;
setName()
请输入设备名称:
name;
setFactory()
请输入生产厂家的名称:
factory;
setDate()
inty,m,d;
请输入年、月、日,用空格隔开:
y>
m>
d;
Datea(y,m,d);
date=a;
setAmount()
请输入设备台数:
amount;
setPrrice()
请输入设备单价:
prrice;
setNotes()
请输入备注内容:
notes;
date.foutput(fout);
classList
intn,capacity;
Equipment**elem;
List();
~List();
booladd();
//添加
boolfind();
//查询
voidmodify();
//修改
boolSave();
//设备保存
boolRead();
//读取
voidDelete();
//删除设备记录
voidRecover();
//恢复被删除的记录
voidStatistic();
//统计
List:
List()
n=0;
capacity=1000;
elem=newEquipment*[capacity];
for(inti=0;
i<
capacity;
i++)elem[i]=NULL;
~List()
for(inti=0;
n;
i++)
delete[]elem[i];
elem[i]=NULL;
if(elem)delete[]elem;
elem=NULL;
boolList:
add()
if(n<
capacity)
intnum_;
charname_[20];
intamount_;
doubleprrice_;
cout<
cin>
num_;
name_;
请输入购置台数:
amount_;
prrice_;
elem[n]=newEquipment(num_,name_,amount_,prrice_);
n++;
returntrue;
returnfalse;
find()
intnum_;
请输入您需要查找的设备编号:
if(num_==elem[i]->
getNum())
{
cout<
查找成功!
设备信息如下:
elem[i]->
output();
returntrue;
}
查找失败!
无此设备信息。
voidList:
modify()
system("
cls"
if(n>
0)
inti,num_;
boolok=false;
现有的设备编号如下:
for(i=0;
elem[i]->
getNum()<
请输入您需要修改的设备编号:
if(elem[i]->
getNum()==num_)
{
ok=true;
intchoice=1;
do
{
system("
elem[i]->
cout<
8.退出修改。
请输入您需要修改的选项:
cin>
choice;
if(choice<
1||choice>
8)
{
cout<
输入错误,请重新输入!
choice=1;
continue;
}
switch(choice)
case1:
elem[i]->
setNum();
break;
case2:
setName();
case3:
setFactory();
case4:
setDate();
case5:
setAmount();
case6:
setPrrice();
case7:
setNotes();
case8:
}while(choice!
=8);
}
if(!
ok)cout<
您的输入有误!
elsecout<
现无任何设备!
Save()
ofstreamfout;
fout.open("
save.txt"
fout.put(0);
//清楚txt文档的数据
fout.seekp(-1,ios:
end);
//在txt文档中光标退格
if(fout.fail())
找不到文件,保存失败!
returnfalse;
else
{
for(inti=0;
foutput(fout);
保存成功!
fout.close();
returntrue;
Read()
intsize;
ifstreamfin;
fin.open("
streampospos=fin.tellg();
fin.seekg(0,ios:
size=fin.tellg();
fin.seekg(pos);
if(fin.fail())
找不到文件,读取失败!
intnum_,amount_,y,m,d;
charname_[20],factory_[30],notes_[101];
n=0;
while(size!
=1)
fin>
factory_;
if(fin.eof())break;
Datedate_(y,m,d);
notes_;
elem[n]=newEquipment(num_,name_,amount_,prrice_);
elem[n]->
give(factory_,date_,notes_);
n++;
读取成功!
fin.close();
Delete()
请选择您要删除的设备编号:
system("
elem[i]->
cout<
您确定要删除此设备?
(YorN)"
charstr;
str;
if(str!
='
Y'
&
&
str!
N'
)
输入错误,请重新输入:
}while(str!
if(str=='
ofstreamfout;
fout.open("
recover.txt"
fout.app;
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--;
删除成功!
}
elsecout<
删除失败!
Recover()
找不到文件,恢复失败!
while(!
fin.eof()&
size!
恢复成功!
fin.close();
ofstreamfout;
fout.open("
fout.put(0);
fout.seekp(-1,ios:
fout.close();
Statist
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设备管理 教学 系统