C语言课程设计实验设备管理._第1页
C语言课程设计实验设备管理._第2页
C语言课程设计实验设备管理._第3页
C语言课程设计实验设备管理._第4页
C语言课程设计实验设备管理._第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础(C)课程设计报告实验室设备管理系统学生姓名:陈广鹏学号:201211353班级:电力1201班指导老师:邓伟华日期:2013-7-5兰州交通大学新能源与动力工程学院1课程设计的目的22 课程设计名称及内容 22.1程序设计组成框图 23任务要求 34课程设计报告内容 3流程图显示 34.2程序实现思路 65程序演示 96 总结 13参考文献 14附录(源代码)28实验室设备管理系统1、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结 构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通 过课程设计,学生在下述各方面的

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

3、2、课程设计名称及内容课程设计名称:实验室设备管理系统 设计内容:编写一个简单的实验室设备管理程序,帮助管理实验室设备信息。要求具有设 备信息管理的功能。其中包括设备信息的录入、删除、查询和修改等功能。还应包括对实 验室信息管理的功能。其中包括对实验室信息的录入、删除、修改和查询等功能。2.1程序设计组成框图3、任务和要求任务中要运运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板, 用I/O流对象对文件进行读写操作。本题程序应提供的基本管理功能有:1)添加:即增加一条信息到设备信息中,或增加一条信息到实验室信息中;2)显示:即在屏幕上显示所有设备或实验室信息;3)存储:即将设备信

4、息和实验室信息分别保存在文件中;4)装入:即将文件中的信息读入程序;5)查询:可根据设备名称查找具体情况,若找到,显示在屏幕上;6)修改:可修改设备信息,或对实验室信息进行修改。4、课程设计报告内容4.1流程图显示将新的设备信息插入链表删除节点操作的算法流程图4.2 程序实现思路定义一个结点类,用于存放实验室设备的各种信息;定义一个Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象;定义一个 Shebei 类,用于包装 Link 类及菜单操作; 定义 Link 类和 Shebei 类的成员函数,实现要求的各种功能;Link 类:class Lin k/Li nk类,把数据以链

5、表的形式存储,链表的每个结点为一个Node对象private:Node *head; / 链表的头指针,为Node对象类型的指针public :Link();/ 构造函数,初始化变量bool linkIsEmpty();/判断链表是否为空void linkInsert(Node *newnode);/向链表中插入新的结点bool linkDelete(int nid);/从链表中删除的结点void linkClear();/清空链表中数据void linkView();/ 查看链表中数据Node* linkFind(int nid);/在链表中查找 id 为 nid 结点,返回指向该结点的指针

6、Node* 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();/ 显示菜单vo

7、id showTip();/ 显示操作提示void doMenu(char n);/ 执行相应菜单项功能 ;然后就是各个函数的具体定义。菜单选择功能的实现 , 使用 switch 语句; 菜单选择函数的定义:void Shebei:showMenu()couttt*实验室设备管理系统 *endl;couttt*endl;couttt*1-清空:清除所有设备信息*endl;couttt*endl;couttt*2-添加:增加一个设备到设备信息中*endl;couttt*endl;couttt*3-删除:删除指定设备数据*endl;couttt*endl;couttt*4-查找:根据设备数据查找设

8、备信息*endl;couttt*endl;couttt*5-修改:修改指定设备信息*endl;couttt*endl;couttt*6-显示:在屏幕上显示所有设备的信息*endl;couttt*endl;couttt*7-存储:将设备信息保存在一个文件中*endl;couttt*endl;couttt*0-退出:安全的退出本系统*endl;couttt*、endl;*void Shebei:showTip()coutendl;CC d*操作完成*、endl;cout*选择 0 7 继续*、endl;cout 请选择: void Shebei:doMenu(char n)switch(n)cas

9、e 1:ShebeiClear();break;case 2:ShebeiInsert();break;case 3:ShebeiDelete();break;case 4:ShebeiFind();break;case 5:ShebeiModify();break;case 6:ShebeiView();break;case 7:ShebeiSave(); break;case O:Exit();break;default:COUtVV输入错误!;5、程序演示5.1、进入系统5.2添加设备信息:shiyanshil 2010-01-01i 12BBytian 34tai2003-01-01-

10、H-it:WXSKiMK :-MSMiKX :成. MJOiWf * . * MJOitW3删除I4-查找:根据设备数据查找设备信息修改:0-退岀:安全的退岀本系统I * C:Usersnn i nt-sDes lctopD e bugX实盖室设苗管淫案辻xe1请请请倩请请请请请编号:1001:we ij i ijil瞬紬:刖人设育帚量:国盹& 一显小:7存( i:修改i旨定设备信息在屏暮上显示所有设备的信息将设备信息保存在一个文件中CZI 回5.3删除指定设备信息* C:Use rsm i nt- 5Deskto pDebu g 供萤室设苗管建磊焼.exe实验室设备管理系统1一清空:清除所有

11、设备信息2添加:増加一个设备到设备信息中M删除:删除指定设备数据4 查找:根据设备数据查找设备信息5 修改I修改指定设备信息石一显示:在屏幕上显示所有设备的信息 ?存储:将设备信息保存在一个文件中也一退出:安全的退出本系统)000000000000000000000000000000000000112 败)买时 I 可=2001-01 -03 格:100yuan 库存呈二丄肌口=1999-01-01s unhnowMMKXM;覚 KH MIiKHKKKXXWiEUK MIiKHX0-修改,修改描走设备信息E显示,在屏幕上显示所荷设备的信息 -存储,将设苗信息保存在一个文件中0退出:安全的退出本

12、系统完成;h 1 1S004 血一0all1 0 V 0 0 w1 - - 0 h 1 n 9 n=L-2 s 0 a 1 _y k _i-=0ua9n 扁曰eMI2y t 1 u 霍bbwl =04 - = H 苗盟验间25汚舉囂 和彗匡亠帯仟L.FT昆= S4kQr5.7将设备信息存储在文本中dta -记爭杰1004 shebei shebei2 shiyanshi4 2001-01-01 125Qyuan 54tai 1999-01-01 34k吕1003 tDuyingyi touyLngyil shiyanshiE 20010H)3 lOOOyuan 12tai 199971-01

13、54kg6、总结经过一个星期的C+程序设计,让我明白到了 C+这门课的重要性,C+作为一门电 脑学的基础课,是我们必须掌握的顺电脑飞速发展的今天,掌握电脑的应用是如今每一位 大学生所必须掌握的,掌握电脑有对各人来说有我种好处,学习电脑是一种本领,也是一 种生存的技能,而C+做为电脑的基础,掌握它更是我们这些大学生所必须掌握的。经过这次程序设计,让我认识到了 C+的运用是相当广泛的,才拿到题目的时候,我 真的不知道该怎么办,但随着慢慢的设计,思路也总算有了,这样才能继续进行下去,这 时我才真正认识到了 C+的功能原来是那么的多。一个复杂的实验室设备管理系统,经 过500-600行的代码就可以完完

14、全全的达到,这是让我非常惊讶的,但相对,如今的 C+ 也是非常难的,这学期学到的一些内容,都是 C+的重点,但学下来以后感觉还是很难所 以必须先打好基础,基础好了,学什么都会容易很多。这次的程序设计让我重新认识到了 C+,这是一门非常重要的科目,我们必须付出很 多倍的努力学习它,才能熟练地掌握它。源代码#include#include #include#include #include using namespace std;class Node / 结点类,用于存放客户的各种信息public:long id; string name; string type; string suoshush

15、iyanshi; string buytime; string price; string amount; string shengchanriqi; string shiyongshouming; string weight;Node *next;/实验设备编号/名称/设备类型/实验设备所属实验室/购买时间/价格/库存量/生产日期/使用寿命/重量/指向下一结点的指针Node(long id=000,string nname=noname,string ntype=unkown,string nsuoshushiyanshi=unknow,string nbuytime=unknow,stri

16、ng nprice=unknow,string namount=unknow, string nshengchanriqi=unkown,string nshiyongshouming=unknow,string nweight=unknow );/ 构造函数,初始化变 量;class Link/Link 类,把数据以链表的形式存储,链表的每个结点为一个 Node 对象 private:Node *head; /链表的头指针,为 Node 对象类型的指针public :Link();/ 构造函数,初始化变量bool linkIsEmpty();/ 判断链表是否为空void linkInsert

17、(Node *newnode);/ 向链表中插入新的结点bool linkDelete(int nid);/ 从链表中删除的结点void linkClear();/ 清空链表中数据void linkView();/ 查看链表中数据Node* linkFind(int nid);/ 在链表中查找 id 为 nid 结点,返回指向该结点的指针Node* getHead();/获取头指针;Node:Node(long nid, string nname, string ntype,string nsuoshushiyanshi, string nbuytime,string nprice,strin

18、g namount, string nshengchanriqi, string nshiyongshouming,string nweight)id=nid;name=nname;type=ntype;suoshushiyanshi=nsuoshushiyanshi;buytime=nbuytime;price=nprice;amount=namount;shengchanriqi=nshengchanriqi; shiyongshouming=nshiyongshouming;weight=nweight;next=NULL;Link:Link()/构造函数,初始化链表为空head=NUL

19、L;bool Link:linkIsEmpty()/判断链表是否为空,空则返回 truereturn(head=NULL);共同设计 void Link:linkInsert(Node *newnode) / 按 id 值从小到大的顺序,插入新的结点 Node *p1;if(!head)链表为空的情况 head=newnode;else if(head-id)(newnode-id) /插入到第一个结点的情况newnode-next=head;head=newnode;else /插入到第二个及以后情况p1=head; while(1)if(!(p1-next)p1-next=newnode;

20、break;else if(p1-next)-idnewnode-id)newnode-next=p1-next;p1-next=newnode;break;p1=p1-next;bool Link:linkDelete(int nid) / 删除结点,成功则返回 trueNode *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-nex

21、t=(p-next)-next;return true;p=p-next;return false;由陈广鹏设计 void Link:linkClear() / 清空链表head=NULL;Node* Link:linkFind(int nid) / 查找 id 值为 nid 的结点,返回该结点的指针Node *p=head;/没找到符合条件的结点的话,返回的指针值为 NULLwhile(p) if(p-id=nid) break;elsep=p-next;return p;void Link:linkView() / 显示链表数据Node *p=head;while(p)cout 实验设备编

22、号 :idendl;cout名称:n amee ndl;cout类型:typee ndl;coutvv所属实验室:suoshushiyanshivvendl;coutvv购买时间:buytimevendl;coutvv价格:pricee ndl;coutvv库存量:amountendl;coutvv生产日期:shengchanriqivvendl;coutvv使用寿命:vvp-shiyongshoumingvvendl;coutvv重量:vvp-weightnext;Node* Link:getHead()return head;/类Shebe,用于包装Link类及菜单操作 class She

23、beiprivate: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 showMe nu(); 显示菜单void showTip();显示操作提示void doMe nu (char n)

24、;执行相应菜单项功能 ;Shebei:Shebei()Li nk();调用成员对象的构造函数ShebeiLoad();从文件中读取数据,创建链表 k=false;设置数据被修改 由陈军文设计void Shebei:ShebeiClear() /清空设备记录clink.linkClear();coutvv成功清空设备信息记录!p-id;coutvv请输入名称:; cinp-name;coutvv请输入类型:;cinp-type;coutvv请输入所属实验室:; cinp-suoshushiyanshi;coutvv请输入购买时间:; cinp-buytime;coutvv请输入价格:;cinp-

25、price;coutvv请输入库存量:;cinp-amount;coutvv请输入生产日期:;cinp-shengchanriqi;coutvv请输入设备重量:;cinp-weight;if(!clink.linkFind(p-id) / 判断设备信息是否存在 clink.linkInsert(p); k=true;elsevvendl; 由陈磊设计coutvv设备编号为vvp-idvv的的设备已存在,插入失败!void Shebei:ShebeiDelete() /删除设备记录long i;if(clink.linkIsEmpty()/ 链表为空的情况 coutvv没有设备记录! vve n

26、dl;elsecoutvv请输入设备编号: cini;if(clink.linkDelete(i)cout 成功删除编号为 i 的实验记录! endl; k=true;elsecout 没有找到编号为 i 的设备! endl; void Shebei:ShebeiFind() /查找某编号的设备记录long n;Node *p;if(clink.linkIsEmpty()/ 链表为空的情况cout 没有设备记录! n;p=clink.linkFind(n);/ 获得找到的结点的指针 if(p) / 指针值不为 NULL 时cout实验设备编号:vvp-idvendl;cout名称:n amee

27、 ndl;cout类型:typesuoshushiyanshivvendl;coutvv购买时间:vvp-buytimevendl;coutvv价格:priceamountvvendl;coutvv生产日期:vvp-shengchanriqivvendl;coutvv使用寿命:vvp-shiyongshoumingvvendl; coutvv重量:vvp-weightve ndl;else/指针值为NULL时coutvv没有找到编号为vv*v的设备记录! vvendl;void Shebei:ShebeiModify() / 修改某编号的设备信息long n;Node *p;if(clink.

28、linkIsEmpty()/ 链表为空的情况cout 没有设备记录! n;p=clink.linkFind(n);/ 获得找到的结点的指针if(p) / 指针值不为 NULL 时cout实验设备编号:vvp-idvendl;cout名称:n amee ndl;cout类型:typesuoshushiyanshivvendl;coutvv购买时间:vvp-buytimevendl;coutvv价格:priceamountvvendl;coutvv生产日期:vvp-shengchanriqivvendl;coutvv使用寿命:vvp-shiyongshoumingvvendl;coutvv重量:v

29、vp-weightp-id;coutvv请输入名称:;cinp-name;coutvv请输入类型:;cinp-type;coutvv请输入所属实验室:;cinp-suoshushiyanshi;coutp-buytime; coutp-price; coutp-amount; coutp-shengchanriqi; coutp-weight;else/指针值为NULL时coutvv没有找到编号为n的设备记录! endl; 由边飞设计 void Shebei:ShebeiView() /显示所有设备的记录if(clink.linkIsEmpty()cout没有设备记录! nid) / 读取客户

30、,直到读空p=new Node();p-id=nid;infilep-name ;/读取名称infilep-type ; infilep-suoshushiyanshi ; infilep-buytime ; infilep-price ; infilep-amount ; infilep-shengchanriqi ; infilep-weight ;clink.linkInsert(p);infile.close(); / 关闭文件void Shebei:ShebeiSave() /将/ 数据保存到文件Node *p=clink.getHead();ofstream outfile(dat

31、a.txt);if(!outfile)cerr错误:数据文件不能打开!n;elsewhile(p)suoshushiyanshiamountoutfileid nametype buytime priceshengchanriqiweight next;k=false;cout 保存成功! s;if(s=y|s=Y)ShebeiSave();coutvv已安全退出,;system(pause);exit(0); 由丁小泷设计void Shebei:showMenu()coutvvtt实验室设备管理系统vvendl;coutvvtt*vvendl;coutvvtt*vvendl;coutvvtt*1-清空:清除所有设备信息*vvendl;coutvvtt*vvendl;coutvvtt*2-添加:增加一个设备到设备信息中*vvendl;coutvvtt*vvendl;cout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论