测试仪器管理系统c课等程设计.doc

上传人:本田雅阁 文档编号:2108974 上传时间:2019-02-14 格式:DOC 页数:27 大小:413.02KB
返回 下载 相关 举报
测试仪器管理系统c课等程设计.doc_第1页
第1页 / 共27页
测试仪器管理系统c课等程设计.doc_第2页
第2页 / 共27页
测试仪器管理系统c课等程设计.doc_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《测试仪器管理系统c课等程设计.doc》由会员分享,可在线阅读,更多相关《测试仪器管理系统c课等程设计.doc(27页珍藏版)》请在三一文库上搜索。

1、合肥学院计算机科学与技术系课程设计报告20102011学年第二学期课程 C+课程设计课程设计名称 测试仪器管理系统学生姓名丁凡 学号1004012031 专业班级计本2班 指导教师 张贯虹 华姗姗2011年6月目 录1 课程设计的目的22 课程设计名称及内容23 任务要求24 课程设计报告内容34.1流程图显示34.2程序实现思路65 程序演示106 总结14参考文献 14附录(源代码)142测试仪器管理系统一、 课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在

2、下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+程序设计语言的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和

3、修改程序。二、 课程设计名称及内容设计内容:课程设计名称:测试仪器管理系统设计内容:编写一个简单的测试仪器管理程序,帮助管理仪器使用信息。要求具有仪器信息管理的功能。仪器信息管理包括仪器基本信息的录入、删除和修改等功能。三、任务和要求运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。本题程序应提供的基本管理功能有:1) 添加:即增加一台仪器到仪器信息中;2) 显示:即在屏幕上显示所有仪器的信息。3) 存储:即将仪器信息保存在一个文件中。4) 装入:即将文件中的信息读入程序。5) 查询:可根据仪器名称查找仪器信息。若找到,显示在屏幕上。6

4、) 修改:可修改仪器信息。测试数据程序应输入不少于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链表是否为空hea

5、d=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类和Shebe

6、i类的成员函数,实现要求的各种功能;Link类:class Link/Link类,把数据以链表的形式存储,链表的每个结点为一个Instrument为对象private: Instrument *head; /链表的头指针,为Instrument对象类型的指针public : Link();/构造函数,初始化变量 bool linkIsEmpty();/判断链表是否为空 void linkInsert(Instrument *newinstrument);/向链表中插入新的结点 bool linkDelete(int nid);/从链表中删除的结点 void linkClear();/清空链表中

7、数据 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();

8、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添加:

9、即增加一台仪器到仪器信息中 *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;cou

10、ttt*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; c

11、ase 0: Exit(); break; default: cout输入错误!; 程序演示:主板模块:1、 添加一个仪器:2、显示仪器内容3、 存储添加仪器:4删除仪器内容:5查询仪器内容:6、修改仪器内容:7、安全退出:总结:计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。信息时代的发展,影响着世界的每一个角落。每个人的生活和工作几乎都与计算机密切相关。在速度越来越快的计算机硬件和日益更新的软件背后,网络作为中枢神经把我们联系在一起。也正是因为网络的

12、出现与发展,使Internet为主要标志的网络技术构成了我们现代文化的重要组成部分,联系上亿人的Internet将我们带入了一个新的网络时代。机遇就在眼前,挑战同样存在。优胜劣汰是不可抗拒的自然法则,欲保持领先的地位,持之以恒的学习是惟一途径。计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在寒假最后一星期安排了五天的上机实习。上机过程中,大家都用心去编程,在编程的过程中,屡屡出现错误,但是还是将其一一改

13、正过来,经过老师的细心教导,终于完成了程序,大家都感到非常开心。在这一周的学习中,大家学会了很多,也更清楚的了解到了学习c+的重要性,我们应该要花费大量的时间努力去学习它!参考文献:1郑莉 等编著C+语言程序设计(第三版)北京:清华大学出版社2郑莉 等编著C+语言程序设计(第三版)学生用书北京: 清华大学出版社3李春葆 等编著C+程序设计学习与上机实验指导 北京:清华大学出版社4范辉 等编著Visual C+6.0程序设计简明教程 高等教育出版社5李龙澍C+程序设计实训教程北京:清华大学出版社 6洪国胜 等编著 C+ Builder程序设计轻松上手北京:清华大学出版社7严蔚敏等 数据结构(c语

14、言版) 北京:清华大学出版社,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,

15、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 linkDele

16、te(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;Li

17、nk: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=newin

18、strument; 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(hea

19、d-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; /没找到符合条件的仪器的话,返

20、回的指针值为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

21、类及菜单操作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();/显示操

22、作提示 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

23、; 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.linkIsEm

24、pty()/链表为空的情况 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

25、 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; cou

26、tp-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-ta

27、g ;/读取名称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; v

28、oid People:Exit() char s=Y; if(k) /判断数据是否修改 couts; if(s=y|s=Y) peopleSave(); cout已安全退出,; system(pause); exit(0);void People: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 * *e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1