

免费预览已结束,剩余25页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥学院计算机科学与技术系课程设计报告20102011学年第二学期课程 c+课程设计课程设计名称 测试仪器管理系统学生姓名学号专业班级指导教师2011年6月目 录1 课程设计的目的22 课程设计名称及内容23 任务要求24 课程设计报告内容34.1流程图显示34.2程序实现思路65 程序演示106 总结14参考文献 14附录(源代码)142测试仪器管理系统一、 课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程c+程序设计语言的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用c+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握c+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。二、 课程设计名称及内容设计内容:课程设计名称:测试仪器管理系统设计内容:编写一个简单的测试仪器管理程序,帮助管理仪器使用信息。要求具有仪器信息管理的功能。仪器信息管理包括仪器基本信息的录入、删除和修改等功能。三、任务和要求运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用i/o流对象对文件进行读写操作。本题程序应提供的基本管理功能有:1) 添加:即增加一台仪器到仪器信息中;2) 显示:即在屏幕上显示所有仪器的信息。3) 存储:即将仪器信息保存在一个文件中。4) 装入:即将文件中的信息读入程序。5) 查询:可根据仪器名称查找仪器信息。若找到,显示在屏幕上。6) 修改:可修改仪器信息。测试数据程序应输入不少于10种仪器的信息, 每种仪器可以有多台。三、 课程设计报告内容head=null输入仪器信息linkisempty()p-next=nullhead=nullnewnode =pnewnode -next=pnewnode =p输入新仪器信息返回头指针headnyyn3.1 流程图显示将新的设备信息插入链表链表为空head=nullheadnewnode =p1newnode -next=nullp1-next=p-nextp-next=p1输入信息返回头指针newnodeyn删除节点操作的算法流程图输入要删除的仪器的编号id链表是否为空head=null判断要删除的是否为头结点head-id=nidhead=head-p p-next=(p-next)-nextp-next!=nullp-id=nidreturn nullpt2=headhead=head-nextfree(pt2)p=p-next;p-next=(p-next)-next; return true返回头指针headynynynyn3.2 程序实现思路定义一个仪器类,用于存放实验室设备的各种信息;定义一个link类,把数据以链表的形式存储,链表的每个结点为一个instrument对象;定义一个shebei类,用于包装link类及菜单操作;定义link类和shebei类的成员函数,实现要求的各种功能;link类:class link/link类,把数据以链表的形式存储,链表的每个结点为一个instrument为对象private: instrument *head; /链表的头指针,为instrument对象类型的指针public : link();/构造函数,初始化变量 bool linkisempty();/判断链表是否为空 void linkinsert(instrument *newinstrument);/向链表中插入新的结点 bool linkdelete(int nid);/从链表中删除的结点 void linkclear();/清空链表中数据 void linkview();/查看链表中数据 instrument* linkfind(int nid);/在链表中查找id为nid结点,返回指向该结点的指针 instrument* gethead();/获取头指针;shebei类:class shebeiprivate: link clink;/link对象成员 bool k;/记录数据是否被修改public: shebei(); void shebeiclear(); void shebeiinsert(); void shebeidelete(); void shebeifind();void shebeimodify(); void shebeiview(); void shebeiload(); void shebeisave(); void exit();/退出程序 void showmenu();/显示菜单 void showtip();/显示操作提示 void domenu(char n);/执行相应菜单项功能;然后就是各个函数的具体定义。菜单选择功能的实现,使用switch语句;菜单选择函数的定义:void shebei:showmenu() cout *endl;cout *endl; cout * 测试仪器管理系统 *endl; cout *endl; cout *endl; cout * 1添加:即增加一台仪器到仪器信息中 *endl; cout * *endl; cout * 2显示:即在屏幕上显示所有仪器的信息 *endl; cout * *endl; cout * 3存储:即将仪器信息保存在一个文件中 *endl; cout * *endl; cout * 4删除:即将屏幕上的仪器信息删除 *endl; cout * *endl;cout * 5查询:可根据仪器编号查找仪器信息 *endl; cout * *endl; cout * 6修改:可修改仪器信息 *endl; cout * *endl; cout * 0退出:安全的退出本系统 *endl; cout *endl;couttt*endl;void shebei:showtip() coutendl; cout*操作完成*endl; cout*选择06 继续*endl; cout请选择:;void shebei:domenu(char n) switch(n) case 1: shebeiinsert(); break; case 2: shebeiview(); break;case 3: shebeisave();break; case 4: shebeidelete(); break;case 5: shebeifind(); break; case 6: shebeimodify(); break; case 0: exit(); break; default: cout输入错误!; 程序演示:主板模块:1、 添加一个仪器:2、显示仪器内容3、 存储添加仪器:4删除仪器内容:5查询仪器内容:6、修改仪器内容:7、安全退出:总结:计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。信息时代的发展,影响着世界的每一个角落。每个人的生活和工作几乎都与计算机密切相关。在速度越来越快的计算机硬件和日益更新的软件背后,网络作为中枢神经把我们联系在一起。也正是因为网络的出现与发展,使internet为主要标志的网络技术构成了我们现代文化的重要组成部分,联系上亿人的internet将我们带入了一个新的网络时代。机遇就在眼前,挑战同样存在。优胜劣汰是不可抗拒的自然法则,欲保持领先的地位,持之以恒的学习是惟一途径。计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在寒假最后一星期安排了五天的上机实习。上机过程中,大家都用心去编程,在编程的过程中,屡屡出现错误,但是还是将其一一改正过来,经过老师的细心教导,终于完成了程序,大家都感到非常开心。在这一周的学习中,大家学会了很多,也更清楚的了解到了学习c+的重要性,我们应该要花费大量的时间努力去学习它!参考文献:1郑莉 等编著c+语言程序设计(第三版)北京:清华大学出版社2郑莉 等编著c+语言程序设计(第三版)学生用书北京: 清华大学出版社3李春葆 等编著c+程序设计学习与上机实验指导 北京:清华大学出版社4范辉 等编著visual c+6.0程序设计简明教程 高等教育出版社5李龙澍c+程序设计实训教程北京:清华大学出版社 6洪国胜 等编著 c+ builder程序设计轻松上手北京:清华大学出版社7严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。8胡学钢等数据结构算法设计指导北京:清华大学出版社,1999年 第1版。附录(源代码):#include#include#include#include #include#includeusing namespace std;class instrument /仪器类public: string tag; /名称long id; /编号bool fun; /性能bool use; /使用状态string user; /使用者 instrument *next; /指向下一仪器的指针 instrument(string ntag=unknow,long id=000,bool fun=0,bool use=0,string nuser=unknow);/构造函数,初始化变量;class link /link类,把数据以链表的形式存储,链表的每个结点为一个instrument对象private: instrument *head; /链表的头指针,为instrument对象类型的指针public : link(); /构造函数,初始化变量 bool linkisempty(); /判断链表是否为空 void linkinsert(instrument *newinstrument); /向链表中插入新的仪器 bool linkdelete(int nid); /从链表中删除的仪器 void linkclear(); /清空链表中数据 void linkview(); /查看链表中数据 instrument* linkfind(int nid); /在链表中查找id为nid仪器,返回指向该仪器的指针 instrument* gethead(); /获取头指针;instrument:instrument(string ntag,long nid,bool nfun,bool nuse,string nuser) tag=ntag;id=nid;fun=nfun;use=nuse;user=nuser; next=null;link:link() /构造函数,初始化链表为空 head=null;bool link:linkisempty() /判断链表是否为空,空则返回true return(head=null);void link:linkinsert(instrument *newinstrument) /按id值从小到大的顺序,插入新的结点 instrument *p1; if(!head)/链表为空的情况 head=newinstrument; else if(head-id)(newinstrument-id) /插入到第一个仪器的情况 newinstrument-next=head; head=newinstrument; else /插入到第二个及以后情况 p1=head; while(1) if(!(p1-next) p1-next=newinstrument; break; else if(p1-next)-idnewinstrument-id) newinstrument-next=p1-next; p1-next=newinstrument; break; p1=p1-next; bool link:linkdelete(int nid) /删除仪器,成功则返回true instrument *p; if(head=null)/链表为空的情况 return false; if(head-id=nid) /删除的为第一个仪器的情况 head=head-next; return true; p=head; while(p-next) /删除的为第二个及以后仪器的情况 if(p-next)-id=nid) p-next=(p-next)-next; return true; p=p-next; return false;void link:linkclear() /清空链表 head=null;instrument* link:linkfind(int nid) /查找id值为nid的仪器,返回该仪器的指针 instrument *p=head; /没找到符合条件的仪器的话,返回的指针值为null while(p) if(p-id=nid) break; else p=p-next; return p;void link:linkview() /显示链表数据 instrument *p=head; coutsetw(4)仪器名称setw(4)仪器编号setw(4)仪器性能setw(4)使用状况setw(4)使用者endl; while(p) coutsetw(4)tag setw(4)idsetw(4)funsetw(4)usesetw(4)usernext; instrument* link:gethead() return head;/类car,用于包装link类及菜单操作class peopleprivate: link clink;/link对象成员 bool k;/记录数据是否被修改public: people(); void peopleclear(); void peopleinsert(); void peopledelete(); void peoplefind();void peoplemodify(); void peopleview(); void peopleload(); void peoplesave(); void exit();/退出程序 void showmenu();/显示菜单 void showtip();/显示操作提示 void domenu(char n);/执行相应菜单项功能;people:people() link();/调用成员对象的构造函数 peopleload();/从文件中读取数据,创建链表 k=false;/设置数据被修改void people:peopleinsert() /插入客户记录 instrument *p=new instrument(); coutp-tag; coutp-id; coutp-fun;coutp-use; coutp-user; if(!clink.linkfind(p-id) /判断客户信息是否存在 clink.linkinsert(p); k=true; else cout仪器的名称为tag的的仪器已存在,插入失败!endl;void people:peopledelete() /删除仪器记录 long i; if(clink.linkisempty()/链表为空的情况 cout没有客户记录!endl; else couti; if(clink.linkdelete(i) cout成功删除仪器为i的仪器记录!endl; k=true; else cout没有找到名称为i的仪器!endl; void people:peoplefind() /查找某名称的仪器记录 long n; instrument *p; if(clink.linkisempty()/链表为空的情况 cout没有仪器记录!endl; else coutn; p=clink.linkfind(n);/获得找到的结点的指针 if(p) /指针值不为null时 coutsetw(4)仪器名称setw(4)仪器编号setw(4)仪器性能setw(4)使用状况setw(4)使用者endl; coutsetw(4)tag setw(4)idsetw(4)funsetw(4)usesetw(4)userendl; else/指针值为null时 cout没有找到名称为n的仪器记录!endl; void people:peoplemodify() /修改某名称的仪器信息 long n; instrument *p; if(clink.linkisempty()/链表为空的情况 cout没有仪器记录!endl; else coutn; p=clink.linkfind(n);/获得找到的仪器的指针 if(p) /指针值不为null时 coutsetw(4)仪器名称setw(4)仪器编号setw(4)仪器性能setw(4)使用状况setw(4)使用者endl; coutsetw(4)tag setw(4)idsetw(4)funsetw(4)usesetw(4)userendl; coutp-tag; coutp-id; coutp-fun; coutp-use; coutp-user; else/指针值为null时 cout没有找到名称为n的仪器记录!endl; void people:peopleview() /显示所有仪器的记录 if(clink.linkisempty() cout没有仪器记录!endl; else clink.linkview();void people:peopleload() /从文件中读入数据,创建链表 instrument *p; long nid; ifstream infile(data.txt); if(!infile) cerrnid) /读取仪器,直到读空 p=new instrument(); infilep-tag ;/读取名称p-id=nid; infilep-fun ; infilep-use ; infilep-user ; clink.linkinsert(p); infile.close(); /关闭文件void people:peoplesave() /将数据保存到文件 instrument *p=clink.gethead(); ofstream outfile(data.txt); if(!outfile) cerr错误:数据文件不能打开!n; else while(p) outfiletag id fun use usernext; k=false; cout保存成功!endl; void people:exit() char s=y; if(k) /判断数据是否修改 couts; if(s=y|s=y) peoplesave(); cout已安
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年虚拟现实VR教学资源制作与市场推广合作协议
- 2025年软件设计师考试-软件设计与开发团队协作试卷
- 2025年热处理工热处理工艺设计考试试题汇编
- 2025年高端冷链航空货运定制化服务委托协议
- 2025年度高端餐饮外卖配送合作协议范本
- 2025年社区工作者招聘考试试卷:社区社会工作儿童服务
- 2025年度药品独家代理权与全方位品牌营销服务合同
- 2025年度节能照明设备区域分销权授权合同
- 2025年事业单位教师招聘地理学科专业知识试卷(地理信息系统与地理信息可视化)
- 2025年陕西省西安市事业单位招聘考试教师招聘幼儿物理学科专业知识试卷
- 施工组织设计施工总体部署完整版
- TUPSW微机控制电力专用不间断电源(UPS)系统使用说明书
- 骨质疏松诊治与中医药
- LY/T 2383-2014结构用木材强度等级
- GB/T 528-2009硫化橡胶或热塑性橡胶拉伸应力应变性能的测定
- 中日关系历史
- GB/T 15171-1994软包装件密封性能试验方法
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- 信息系统运维服务方案
- 化工试生产总结报告
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
评论
0/150
提交评论