欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

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

    • 资源ID:2108974       资源大小:413.02KB        全文页数:27页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    合肥学院计算机科学与技术系课程设计报告20102011学年第二学期课程 C+课程设计课程设计名称 测试仪器管理系统学生姓名丁凡 学号1004012031 专业班级计本2班 指导教师 张贯虹 华姗姗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;cout<<"tt*"<<endl;void Shebei:showTip() cout<<endl; 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<iostream>#include<cstdlib>#include<string>#include <fstream>#include<sstream>#include<iomanip>using 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)->id>newinstrument->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; cout<<setw(4)<<"仪器名称"<<setw(4)<<"仪器编号"<<setw(4)<<"仪器性能"<<setw(4)<<"使用状况"<<setw(4)<<"使用者"<<endl; while(p) cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id<<setw(4)<<p->fun<<setw(4)<<p->use<<setw(4)<<p->user<<endl; p=p->next; 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(); cout<<"请输入仪器名称:" cin>>p->tag; cout<<"请输入仪器编号:" cin>>p->id; cout<<"请输入仪器性能:" cin>>p->fun;cout<<"请输入仪器使用状态:" cin>>p->use; cout<<"请输入仪器使用者:" cin>>p->user; if(!clink.linkFind(p->id) /判断客户信息是否存在 clink.linkInsert(p); k=true; else cout<<"仪器的名称为"<<p->tag<<"的的仪器已存在,插入失败!"<<endl;void People:peopleDelete() /删除仪器记录 long i; if(clink.linkIsEmpty()/链表为空的情况 cout<<"没有客户记录!"<<endl; else cout<<"请输入仪器名称:" cin>>i; 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 cout<<"请输入要查找仪器编号:" cin>>n; p=clink.linkFind(n);/获得找到的结点的指针 if(p) /指针值不为NULL时 cout<<setw(4)<<"仪器名称"<<setw(4)<<"仪器编号"<<setw(4)<<"仪器性能"<<setw(4)<<"使用状况"<<setw(4)<<"使用者"<<endl; cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id<<setw(4)<<p->fun<<setw(4)<<p->use<<setw(4)<<p->user<<endl; else/指针值为NULL时 cout<<"没有找到名称为"<<n<<"的仪器记录!"<<endl; void People:peopleModify() /修改某名称的仪器信息 long n; Instrument *p; if(clink.linkIsEmpty()/链表为空的情况 cout<<"没有仪器记录!"<<endl; else cout<<"请输入要修改仪器的编号:" cin>>n; p=clink.linkFind(n);/获得找到的仪器的指针 if(p) /指针值不为NULL时 cout<<setw(4)<<"仪器名称"<<setw(4)<<"仪器编号"<<setw(4)<<"仪器性能"<<setw(4)<<"使用状况"<<setw(4)<<"使用者"<<endl; cout<<setw(4)<<p->tag<<" "<<setw(4)<<p->id<<setw(4)<<p->fun<<setw(4)<<p->use<<setw(4)<<p->user<<endl; cout<<"请输入仪器名称:" cin>>p->tag; cout<<"请输入仪器编号:" cin>>p->id; cout<<"请输入仪器性能:" cin>>p->fun; cout<<"请输入仪器使用状态:" cin>>p->use; cout<<"请输入仪器使用者:" cin>>p->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) cerr<<"错误:数据文件不能打开!n" else while(infile>>nid) /读取仪器,直到读空 p=new Instrument(); infile>>p->tag>>" "/读取名称p->id=nid; infile>>p->fun>>" " infile>>p->use>>" " infile>>p->user>>" " clink.linkInsert(p); infile.close(); /关闭文件void People:peopleSave() /将数据保存到文件 Instrument *p=clink.getHead(); ofstream outfile("data.txt"); if(!outfile) cerr<<"错误:数据文件不能打开!n" else while(p) outfile<<p->tag<<' '<<p->id<<" "<<p->fun<<" "<<p->use<<" "<<p->user<<endl; p=p->next; k=false; cout<<"保存成功!"<<endl; void People:Exit() char s='Y' if(k) /判断数据是否修改 cout<<"数据已经改变,是否保存?(y/n):" cin>>s; 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

    注意事项

    本文(测试仪器管理系统c课等程设计.doc)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开