c++实验设备管理系统程序报告要点Word文件下载.docx
- 文档编号:22621714
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:59
- 大小:63.24KB
c++实验设备管理系统程序报告要点Word文件下载.docx
《c++实验设备管理系统程序报告要点Word文件下载.docx》由会员分享,可在线阅读,更多相关《c++实验设备管理系统程序报告要点Word文件下载.docx(59页珍藏版)》请在冰豆网上搜索。
2、对实验设备类型的管理。
3、对实验设备各项信息的录入和修改。
4、对实验设备的分类查询统计。
5、对实验设备的遗损处理
1.5运行需求
开发环境:
VC6.0
运行环境:
Windows系统
第二章概要设计
2.1总体设计
程序总体共分为4个类:
1、菜单类
2、设备类型类
3、设备类
4、管理员类
由主函数主持整体运行,由菜单类调用其它三类
2.2面向对象设计
1•设备类型类:
(见图2)
voidshuru();
//设备类型的输入
voidtianjia();
//设备类型的添加
voidshanchu();
//设备类型的删除
voidshow();
//设备类型的输出显示
voidxieru();
〃设备类型的写入
voidduqu();
〃设备类型的读取
2•设备类:
nfom*write()II设备的创建写入(见图3)
Infom*load()II从文档中读取数据(见图4)
voidacquire。
nfom*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(lnfom*head)//类型的分类统计(见图8)
voidclasP(Infom*head)//价格的分类统计(见图8)voidclasE(Infom*head)//是否报废的统计(见图8)
3•管理员类:
voidcreate()//创建用户名和密码
intlog()//登陆
voidchange()//修改用户名和密码
2.3运行界面设计
运行界面由菜单类实现;
菜单类:
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
6.structShiyanEquip
7.structShiyanEquip
8.structShiyanEquip
9.structShiyanEquip
change(device*p)〃query(device*p)〃statistic(device*p)〃account(manager*b)〃type(DeviceTipe*a)〃
3.1系统设计与实现
第三章详细设计
【总体框架、流程设计,模块划分及接口设计等】
总体框架:
主菜单1
开始
录入
查询
修改
全部查询
分类查询
价格统计
主菜单2
统计
►L类型统计
报废统计
[修改账号
设备类型
删除
显示
接口设计:
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添输入要添加的类型
存在删
4显示
设备类:
load
write
图4
输入
昭匕是否、
储存
是否为0
选择查询方式
结束
全部显示
选择分类
是否为空
F1
读取匹配
图51
ClassifyE
读取
add
匹配1
匹配2
匹配3
'
1
□
Undo
是
>
1结束
判断
第四章测试分析
【程序运行展示】
【测试中发现的问题及解决方案】
1.缺少必要的文字描述(已解决)
2.输出的格式问题(已解决)
3.不能删除唯一一项数据的问题(已解决)
4.设备操作中缺失最后一行的问题(已解决)
5.不能返回上一级菜单的问题(已解决)
6•价格统计时不能确定准确比较的问题(已解决)
【对最终成果的评价】
整体来说比较满意,是最近辛苦努力的伟大成果,但是有如下几点有待改进
1.可以进行汉字输入但是不能进行汉字查询的问题
2.管理员账号不能随意登出的问题
3.设备类中没有使用private导致保密性不强的问题
第五章课程设计总结
【设计初衷、实践过程中遇到的困难及解决方案、课程收获等】
在此次课程中,我们学到了很多东西,复习巩固了C语言的许多知识。
并且在编写程序的
过程中,能够把C++中更多功能体现出来。
设计过程中当然也遇到了许多问题,但通过我们
的讨论学习,上网查询各种资料,这些问题还是逐一解决了。
这次设计采用了多人组队的模式,也使我们在此次设计中明白了团队合作的重要性,虽然这种小设计单人也能够完成,但
是重要的是这种合作使工作效率大大的提高并且能够了解他人的思路,学习他人的方法,并
不再是独自闭门造车。
此外这次的编程也使我们对编程设计有了很高的成就感,有了更大的
热情。
我们相信在以后我们能够做出更优秀的作品
#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=(lnfom*)malloc(sizeof(Infom));
cout<
<
"
请输入编号种类名称价格购买日期是否报废报废日期(空格键断开/按0键结束输入):
endl;
cin>
>
p1->
idnum
kind
p1->
name
price
purda
exist
damda;
the<
idnum<
kind<
name<
price<
<
purda<
exist<
damda<
endl;
next=NULL;
while
(1)
if(head==NULL)
head=p1;
if(head!
=NULL)
p2->
next=p1;
p2=p1;
p1=(Infom*)malloc(sizeof(lnfom));
idnum;
if(*(p1->
idnum)=='
0'
)
free(p1);
break;
}
kind
kind<
the.close();
写入成功"
load();
returnhead;
//==============================================================
Infom*load()//从文档中读取数据
intn,a;
chartran[7][80];
intb;
fstreamt("
);
p1=p2=(lnfom*)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;
:
n++){
kind[a]=tran[0][n];
kind[a]='
\O:
name[a]=tran[0][n];
name[a]='
price[a]=tran[O][n];
a++;
price[a]='
purda[a]=tran[0][n];
purda[a]='
\0'
exist[a]=tran[0][n];
exist[a]='
for(a=0,n=n+1;
tran[0][n]!
;
damda[a]=tran[0][n];
damda[a]='
for(b=1;
t.getline(tran[b],80,'
)!
=NULL;
b++)
else
p2=p1;
p1=(lnfom*)malloc(sizeof(Infom));
tran[b][n]!
idnum[a]=tran[b][n];
idnum[a]='
for(a=0,n=n+1;
tran[b][n]!
kind[a]=tran[b][n];
kind[a]='
n++)p1->
name[a]=tran[b][n];
{p1->
price[a]=tran[b][n];
purda[a]=tran[b][n];
exist[a]=tran[b][n];
exist[a]='
for(a=0,n=n+1;
n++){
damda[a]=tran[b][n];
}p2->
if(b==1)
载入成功"
nfom*head)//分类查询数据
charchoose;
请选择查询方式:
1.
编号"
2.
名称"
3.
类型"
4.
价格"
5.
购买日期
6.
是否报废
7.
报废日期
0.
结束查询
choose=getch();
switch(choose)
case'
1'
acqu(choose);
2'
case3:
4'
5'
6'
7'
voidacquire2(lnfom*head)//查询全部数据
Infom*t=head;
if(t==NULL)
对不起,信息不存在"
else{
编号种类名称价格购买日期
否报废报废日期"
for(;
t->
next!
setfill('
)<
setw(10)<
name<
t=t->
next;
voidacqu(charchoose)//分类查询的内容支持
char*s;
inta=0;
charxyz[10];
请输入查询内容:
xyz;
case'
s=t->
idnum;
s=t->
name;
3'
kind;
price;
purda;
exist;
if(strcmp(s,xyz)==0)
if(a==0)
编号种类
期是否报废报废日期"
if(strcmp(s,xyz)==O)
编号种类名称价格
报废日期"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 实验 设备管理 系统 程序 报告 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)