实验设备管理系统程序报告Word下载.docx
- 文档编号:19640738
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:52
- 大小:58.44KB
实验设备管理系统程序报告Word下载.docx
《实验设备管理系统程序报告Word下载.docx》由会员分享,可在线阅读,更多相关《实验设备管理系统程序报告Word下载.docx(52页珍藏版)》请在冰豆网上搜索。
1.设备类型类:
(见图2)
voidshuru();
//设备类型的输入
voidtianjia();
//设备类型的添加
voidshanchu();
//设备类型的删除
voidshow();
//设备类型的输出显示
voidxieru();
//设备类型的写入
voidduqu();
//设备类型的读取
2.设备类:
nfom*write()//设备的创建写入(见图3)
Infom*load()//从文档中读取数据(见图4)
voidacquire(Infom*head)//分类查询数据(见图5)
voidacquire2(Infom*head)//查询全部数据(见图5)
voidacqu(charchoose)//分类查询的内容支持(见图5)
voidadd()//添加新内容(见图6)
voidundo(Infom*head)//删除(见图7)
intsave(Infom*head)//将现数据进行保存
voidrevise(Infom*head)//修改数据
voidclassify(Infom*head)//对数据的分类统计(见图8)
voidclasK(Infom*head)//类型的分类统计(见图8)
voidclasP(Infom*head)//价格的分类统计(见图8)
voidclasE(Infom*head)//是否报废的统计(见图8)
3.管理员类:
voidcreate()//创建用户名和密码
intlog()//登陆
voidchange()//修改用户名和密码
2.2运行界面设计
运行界面由菜单类实现;
菜单类:
1.intmenu1(device*p,structShiyanEquip*head,DeviceTipe*a,manager*b)//管理模式主菜单
2.intmenu2(device*p,structShiyanEquip*head,DeviceTipe*a)//游客模式主菜单
3.structShiyanEquip*entering(device*p)//管理模式录入菜单
4.structShiyanEquip*entering2(device*p)//游客模式录入菜单
5.structShiyanEquip*change(device*p)//修改菜单
6.structShiyanEquip*query(device*p)//查询菜单
7.structShiyanEquip*statistic(device*p)//分类统计菜单
8.structShiyanEquip*account(manager*b)//账号菜单
9.structShiyanEquip*type(DeviceTipe*a)//设备类型菜单
三、详细设计
3.1系统设计与实现
登陆
创建
开始
录入
主菜单2
全部查询
查询
主菜单1
分类查询
载入
添加
统计
删除
修改
设备类型
修改账号
类型统计
输入
报废统计
价格统计
显示
【总体框架、流程设计,模块划分及接口设计等】
总体框架:
图1
接口设计:
1.intmenu1(device*p,structShiyanEquip*head,DeviceTipe*a,manager*b)
[功能]调用管理模式主菜单并指向管理模式各项分菜单
2.intmenu2(device*p,structShiyanEquip*head,DeviceTipe*a)
[功能]调用游客模式主菜单并指向游客模式各项分菜单
3.structShiyanEquip*entering(device*p)
[功能]指向设备类中的新建,载入和添加函数并完成相应函数功能
4.structShiyanEquip*entering2(device*p)
[功能]指向设备类中的载入函数并完成函数功能
5.structShiyanEquip*change(device*p)
[功能]指向设备类中的修改和删除函数并完成相应函数功能
6.structShiyanEquip*query(device*p)
[功能]指向设备类中的分类查询和全部查询函数并完成相应函数功能
7.structShiyanEquip*statistic(device*p)
[功能]指向设备类中的分类统计函数并完成相应三类的统计
8.structShiyanEquip*account(manager*b)
[功能]指向管理员类中的修改函数完成修改账户及密码的功能
9.structShiyanEquip*type(DeviceTipe*a)
[功能]指向设备类型类中的各个函数并完成有关设备类型的全部功能
3.2模块设计
0载入
1输入
2添加
3删除
输入要输入的类型
4显示
存在删除
输入要添加的类型
1重输
输入要删除的类型
不存在
0返回
【各模块的具体设计与实现】
设备类型类:
图2
图3
赋予
读入
结束
load
是否为空
否
是
write
输入
储存
是否为0
设备类:
图4
图5
选择分类
选择查询方式
读取匹配
全部显示
Acquire2
选择
全部
分类
ClassifyE
Classify
ClassifyP
ClassifyK
匹配2
匹配3
匹配1
读取
b[2]++
b[1]++
b[0]++
输出结束
图8
图7
图6
add
是否为0
Undo
判断匹配
四、测试分析
【测试中发现的问题及解决方案】
1.缺少必要的文字描述(已解决)
2.输出的格式问题(已解决)
3.不能删除唯一一项数据的问题(已解决)
4.设备操作中缺失最后一行的问题(已解决)
5.不能返回上一级菜单的问题(已解决)
6.价格统计时不能确定准确比较的问题(已解决)
【对最终成果的评价】
整体来说比较满意,是最近辛苦努力的伟大成果,但是有如下几点有待改进
1.可以进行汉字输入但是不能进行汉字查询的问题
2.管理员账号不能随意登出的问题
3.设备类中没有使用private导致保密性不强的问题
五、源程序
#include<
iostream>
fstream>
conio.h>
stdio.h>
iomanip>
windows.h>
usingnamespacestd;
classDeviceTipe//定义设备类型类
{
private:
charsblx[20][20];
//设备类型
public:
};
//==============================================================
classdevice//定义设备类
typedefstructinfom
{
charidnum[10];
//编号
charkind[10];
//类型
charname[10];
//名称
charprice[10];
//价格
charpurda[10];
//购买日期
charexist[10];
//是否报废
chardamda[10];
//报废日期
structinfom*next;
}Infom;
Infom*head;
DeviceTipewcs;
Infom*write()//设备的创建写入
fstreamthe("
aaa.txt"
ios:
:
out|ios:
app);
Infom*p1,*p2;
head=NULL;
wcs.duqu();
wcs.show();
p1=p2=(Infom*)malloc(sizeof(Infom));
cout<
<
"
请输入编号种类名称价格购买日期是否报废报废日期(空格键断开/按0键结束输入):
endl;
cin>
>
p1->
idnum
>
kind
name
price
purda
exist
damda;
the<
idnum<
'
'
<
kind<
name<
price<
purda<
exist<
damda<
p1->
next=NULL;
while
(1)
if(head==NULL)
head=p1;
if(head!
=NULL)
p2->
next=p1;
p2=p1;
p1=(Infom*)malloc(sizeof(Infom));
idnum;
if(*(p1->
idnum)=='
0'
)
free(p1);
break;
}
the.close();
写入成功"
load();
returnhead;
}
Infom*load()//从文档中读取数据
intn,a;
chartran[7][80];
intb;
fstreamt("
);
p1=p2=(Infom*)malloc(sizeof(Infom));
if(t.getline(tran[0],80,'
\n'
)==NULL)
载入失败"
return0;
for(n=0,a=0;
tran[0][n]!
='
;
n++)
idnum[a]=tran[0][n];
a++;
idnum[a]='
\0'
for(a=0,n=n+1;
kind[a]=tran[0][n];
kind[a]='
name[a]=tran[0][n];
name[a]='
price[a]=tran[0][n];
price[a]='
purda[a]=tran[0][n];
purda[a]='
exist[a]=tran[0][n];
exist[a]='
damda[a]=tran[0][n];
damda[a]='
for(b=1;
t.getline(tran[b],80,'
)!
=NULL;
b++)
else
p1=(Infom*)malloc(sizeof(Infom));
tran[b][n]!
idnum[a]=tran[b][n];
kind[a]=tran[b][n];
name[a]=tran[b][n];
{p1->
price[a]=tran[b][n];
purda[a]=tran[b][n];
exist[a]=tran[b][n];
damda[a]=tran[b][n];
if(b==1)
载入成功"
voidacquire(Infom*head)//分类查询数据
charchoose;
请选择查询方式:
1.编号"
2.名称"
3.类型"
4.价格"
5.购买日期"
6.是否报废"
7.报废日期"
0.结束查询"
choose=getch();
switch(choose)
case'
1'
acqu(choose);
break;
2'
3'
4'
5'
6'
7'
voidacquire2(Infom*head)//查询全部数据
Infom*t=head;
if(t==NULL)
对不起,信息不存在"
编号种类名称价格购买日期是否报废报废日期"
for(;
t->
next!
setfill('
)<
setw(10)<
t=t->
next;
voidacqu(charchoose)//分类查询的内容支持
char*s;
inta=0;
charxyz[10];
请输入查询内容:
xyz;
{
case'
s=t->
name;
kind;
price;
purda;
exist;
if(strcmp(s,xyz)==0)
if(a==0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 设备管理 系统 程序 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)