ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:322.14KB ,
资源ID:6721127      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6721127.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++实验设备管理系统程序报告要点.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++实验设备管理系统程序报告要点.docx

1、c+实验设备管理系统程序报告要点 3.1 系统设计与实现 73.2 模块设计 8第1章 需求分析1.1 引言为了方便管理校内各种实验设备,能够翻遍快捷的录入查询各个实验设备的基本信息而编写了此程序 1.2 任务概述实验设备管理系统设计实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等), 设备名称,设备价格,设备购入日期,是否报废,报废日期等。主要功能:1、能够完成对设备的录入和修改。2、对设备进行分类统计。3、设备的破损耗费和遗损处理。4、设备的查询。1.3 数据描述输入实验设备的信息:设备编号最多为10个字符;设备名称最多为10个字符;设备购入价格最多为10个字符;设备购入

2、时间最多为10个字符;设备报废时间最多为10个字符;设备是否可用,yes为不可用,no为可用;设备类型最多为10个字符;1.4 功能需求1、可实现管理员登陆管理系统,游客查询系统。2、对实验设备类型的管理。3、对实验设备各项信息的录入和修改。4、对实验设备的分类查询统计。5、对实验设备的遗损处理 1.5 运行需求开发环境:VC6.0运行环境:Windows系统第二章 概要设计2.1 总体设计程序总体共分为4个类:1、菜单类2、设备类型类3、设备类4、管理员类 由主函数主持整体运行,由菜单类调用其它三类2.2 面向对象设计1.设备类型类: (见图2) void shuru(); /设备类型的输入

3、 void tianjia(); /设备类型的添加 void shanchu(); /设备类型的删除 void show(); /设备类型的输出显示 void xieru(); /设备类型的写入 void duqu(); /设备类型的读取2.设备类: nfom* write() /设备的创建写入 (见图3) Infom* load() /从文档中读取数据 (见图4) void acquire(Infom* head) /分类查询数据 (见图5) void acquire2(Infom* head) /查询全部数据 (见图5) void acqu(char choose) /分类查询的内容支持

4、(见图5) void add() /添加新内容 (见图6) void undo(Infom* head) /删除 (见图7) int save(Infom* head) /将现数据进行保存 void revise(Infom* head) /修改数据 void classify(Infom* head) /对数据的分类统计 (见图8) void clasK(Infom* head) /类型的分类统计 (见图8) void clasP(Infom* head) /价格的分类统计 (见图8) void clasE(Infom* head) /是否报废的统计 (见图8)3.管理员类: void cr

5、eate() /创建用户名和密码int log() /登陆void change() /修改用户名和密码2.3 运行界面设计运行界面由菜单类实现;菜单类:1.int menu1(device *p,struct ShiyanEquip *head,DeviceTipe *a,manager *b) /管理模式主菜单2.int menu2(device *p,struct ShiyanEquip *head,DeviceTipe *a) /游客模式主菜单3.struct ShiyanEquip * entering(device *p)/管理模式录入菜单4.struct ShiyanEquip

6、*entering2(device *p)/游客模式录入菜单5.struct ShiyanEquip * change(device *p)/修改菜单6.struct ShiyanEquip * query(device *p)/查询菜单7.struct ShiyanEquip * statistic(device *p)/分类统计菜单8.struct ShiyanEquip * account(manager *b)/账号菜单9.struct ShiyanEquip * type(DeviceTipe *a)/设备类型菜单第三章 详细设计3.1 系统设计与实现【总体框架、流程设计,模块划分及

7、接口设计等】总体框架:图1接口设计:1. int menu1(device *p,struct ShiyanEquip *head,DeviceTipe *a,manager *b) 功能 调用管理模式主菜单并指向管理模式各项分菜单2. int menu2(device *p,struct ShiyanEquip *head,DeviceTipe *a) 功能 调用游客模式主菜单并指向游客模式各项分菜单3. struct ShiyanEquip * entering(device *p) 功能 指向设备类中的新建,载入和添加函数并完成相应函数功能4. struct ShiyanEquip *e

8、ntering2(device *p) 功能 指向设备类中的载入函数并完成函数功能5. struct ShiyanEquip * change(device *p) 功能 指向设备类中的修改和删除函数并完成相应函数功能6. struct ShiyanEquip * query(device *p) 功能 指向设备类中的分类查询和全部查询函数并完成相应函数功能7. struct ShiyanEquip * statistic(device *p) 功能 指向设备类中的分类统计函数并完成相应三类的统计8. struct ShiyanEquip * account(manager *b) 功能 指向

9、管理员类中的修改函数完成修改账户及密码的功能9. struct ShiyanEquip * type(DeviceTipe *a) 功能 指向设备类型类中的各个函数并完成有关设备类型的全部功能3.2 模块设计【各模块的具体设计与实现】 设备类型类: 图2 图3设备类:图4图5图8图7图6第四章 测试分析【程序运行展示】【测试中发现的问题及解决方案】1.缺少必要的文字描述(已解决)2.输出的格式问题(已解决)3.不能删除唯一一项数据的问题(已解决)4.设备操作中缺失最后一行的问题(已解决)5.不能返回上一级菜单的问题(已解决)6.价格统计时不能确定准确比较的问题(已解决)【对最终成果的评价】整体

10、来说比较满意,是最近辛苦努力的伟大成果,但是有如下几点有待改进1.可以进行汉字输入但是不能进行汉字查询的问题2.管理员账号不能随意登出的问题3.设备类中没有使用private导致保密性不强的问题 第五章 课程设计总结【设计初衷、实践过程中遇到的困难及解决方案、课程收获等】在此次课程中,我们学到了很多东西,复习巩固了C语言的许多知识。并且在编写程序的过程中,能够把c+中更多功能体现出来。设计过程中当然也遇到了许多问题,但通过我们的讨论学习,上网查询各种资料,这些问题还是逐一解决了。这次设计采用了多人组队的模式,也使我们在此次设计中明白了团队合作的重要性,虽然这种小设计单人也能够完成,但是重要的是

11、这种合作使工作效率大大的提高并且能够了解他人的思路,学习他人的方法,并不再是独自闭门造车。此外这次的编程也使我们对编程设计有了很高的成就感,有了更大的热情。我们相信在以后我们能够做出更优秀的作品.#include#include#include#include#include#includeusing namespace std;class DeviceTipe /定义设备类型类private: char sblx2020; /设备类型public: void shuru(); /设备类型的输入 void tianjia(); /设备类型的添加 void shanchu(); /设备类型的删除

12、 void show(); /设备类型的输出显示 void xieru(); /设备类型的写入 void duqu(); /设备类型的读取;/=/=class device /定义设备类public: typedef struct infom char idnum10; /编号 char kind10; /类型 char name10; /名称 char price10; /价格 char purda10; /购买日期 char exist10; /是否报废 char damda10; /报废日期 struct infom *next; Infom; Infom* head; DeviceTi

13、pe wcs; Infom* write() /设备的创建写入 fstream the(aaa.txt,ios:out|ios:app); Infom *p1,*p2; head=NULL; wcs.duqu(); wcs.show(); p1=p2=(Infom *)malloc(sizeof(Infom); cout请输入编号 种类 名称 价格 购买日期 是否报废 报废日期(空格键断开/按0键结束输入):p1-idnum p1-kind p1-name p1-price p1-purda p1-exist p1-damda; theidnum kind name price purda e

14、xist damdanext=NULL; while(1) if(head=NULL) head=p1; if(head!=NULL) p2-next=p1; p2=p1; p1=(Infom *)malloc(sizeof(Infom); cinp1-idnum; if(*(p1-idnum)=0) free(p1); break; cinp1-kind p1-name p1-price p1-purda p1-exist p1-damda; theidnum kind name price purda exist damdanext=NULL; the.close(); cout写入成功e

15、ndl; load(); return head; /= Infom* load() /从文档中读取数据 int n,a; char tran780; int b; Infom *p1,*p2; fstream t(aaa.txt); head=NULL; p1=p2=(Infom*)malloc(sizeof(Infom); if(t.getline(tran0,80,n)=NULL) cout载入失败idnuma=tran0n; a+; p1-idnuma=0; for(a=0,n=n+1;tran0n!= ;n+) p1-kinda=tran0n; a+; p1-kinda=0; for

16、(a=0,n=n+1;tran0n!= ;n+) p1-namea=tran0n; a+; p1-namea=0; for(a=0,n=n+1;tran0n!= ;n+) p1-pricea=tran0n; a+; p1-pricea=0; for(a=0,n=n+1;tran0n!= ;n+) p1-purdaa=tran0n; a+; p1-purdaa=0; for(a=0,n=n+1;tran0n!= ;n+) p1-exista=tran0n; a+; p1-exista=0; for(a=0,n=n+1;tran0n!=0;n+) p1-damdaa=tran0n; a+; p1-

17、damdaa=0; p1-next=NULL; for(b=1;t.getline(tranb,80,n)!=NULL;b+) if(head=NULL) head=p1; else p2-next=p1; p2=p1; p1=(Infom*)malloc(sizeof(Infom); for(n=0,a=0;tranbn!= ;n+) p1-idnuma=tranbn; a+; p1-idnuma=0; for(a=0,n=n+1;tranbn!= ;n+) p1-kinda=tranbn; a+; p1-kinda=0; for(a=0,n=n+1;tranbn!= ;n+) p1-nam

18、ea=tranbn; a+; p1-namea=0; for(a=0,n=n+1;tranbn!= ;n+) p1-pricea=tranbn; a+; p1-pricea=0; for(a=0,n=n+1;tranbn!= ;n+) p1-purdaa=tranbn; a+; p1-purdaa=0; for(a=0,n=n+1;tranbn!= ;n+) p1-exista=tranbn; a+; p1-exista=0; for(a=0,n=n+1;tranbn!=0;n+) p1-damdaa=tranbn; a+; p1-damdaa=0; p2-next=p1; p1-next=N

19、ULL; if(b=1) head=p1; cout载入成功endl; return head; /= void acquire(Infom* head) /分类查询数据 char choose; cout请选择查询方式:endl; cout1. 编号endl; cout2. 名称endl; cout3. 类型endl; cout4. 价格endl; cout5. 购买日期endl; cout6. 是否报废endl; cout7. 报废日期endl; cout0. 结束查询endl; choose=getch(); switch(choose) case 1:acqu(choose);brea

20、k; case 2:acqu(choose);break; case 3:acqu(choose);break; case 4:acqu(choose);break; case 5:acqu(choose);break; case 6:acqu(choose);break; case 7:acqu(choose);break; case 0:break; void acquire2(Infom* head) /查询全部数据 Infom* t=head; if(t=NULL) cout对不起,信息不存在endl; else cout 编号 种类 名称 价格 购买日期 是否报废 报废日期next!

21、=NULL;) coutsetfill( )setw(10)idnum setfill( )setw(10)kind setfill( )setw(10)name setfill( )setw(10)price setfill( )setw(10)purda setfill( )setw(10)exist setfill( )setw(10)damdanext; coutsetfill( )setw(10)idnum setfill( )setw(10)kind setfill( )setw(10)name setfill( )setw(10)price setfill( )setw(10)p

22、urda setfill( )setw(10)exist setfill( )setw(10)damdaendl; void acqu(char choose) /分类查询的内容支持 Infom* t=head; char *s; int a=0; char xyz10; coutxyz; for(;t-next!=NULL;) switch(choose) case1:s=t-idnum;break; case2:s=t-name;break; case3:s=t-kind;break; case4:s=t-price;break; case5:s=t-purda;break; case6:

23、s=t-exist;break; case7:s=t-damda;break; if(strcmp(s,xyz)=0) if(a=0) cout 编号 种类 名称 价格 购买日期 是否报废 报废日期endl; coutsetfill( )setw(10)idnum setfill( )setw(10)kind setfill( )setw(10)name setfill( )setw(10)price setfill( )setw(10)purda setfill( )setw(10)exist setfill( )setw(10)damdanext; switch(choose) case1:s=t-idnum;break; case2:s=t-name;break; case3:s=t-kind;break; case4:s=t-price;break; case5

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

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