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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验设备管理系统C语言课程设计报告.docx

1、实验设备管理系统C语言课程设计报告电子信息学院C语言程序设计课程设计设计报告课课题题目: 实验设备管理系统 班 级: 通信11302班 *班级序号: 19 同组成员: 王炳辉、杨继玲 完成时间: 2015 年 7 月 9 日一、课题题目实验设备管理系统二、设计目的1.加深对讲授内容的理解,尤其是一些语法规则;2.熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用;3.能够综合运用所学知识,编程解决实际问题;4.培养团队分工合作的意识,最终使学生提高;编程技能和解决实际问题的能力。三、总体设计(1)系统组成框图(2)

2、系统流程图 是 否 否 是四、详细设计(1)主函数:void main()Node *equip; equip = (Node*)malloc(sizeof(Node); equip-next=NULL;int flag; 否 是 printf(tttt实验室设备管理系统n); while(1) system(cls); printf( *目录*n); printf(n 1.添加记录n); printf(n 2.修改记录n); printf(n 3.显示记录n); printf(n 4.查询设备n); printf(n 5.删除设备记录n); printf(n 6.用文件保存n); print

3、f(n 7.简单的帮助n); printf(n 8.分类统计n); printf(n 9.从文件输出n); printf(n 0.退出n); printf(n 请输入你要操作的序号:n); printf(n 提示:输入0则返回主菜单!n); scanf(%d,&flag); switch(flag) case 0: system(cls);printf(n提示:已经退出系统,ByeBye!n);break; case 1: system(cls);Add(equip); break; /添加记录 case 2: system(cls);Modify(equip); break;/修改记录 ca

4、se 3: system(cls);Disp(equip); break;/显示记录 case 4: system(cls);search(equip); break;/查询设备 case 5: system(cls);delet(equip); break;/删除设备记录 case 6: system(cls);Save(equip); break;/用文件保存 case 7: system(cls);help(); break;/简单的帮助 case 8: system(cls);Classify(equip); break;/分类统计 case 9: system(cls);Read_F

5、rom_File(); break;/从文件输出 default: printf(n提示:输入错误!n); break; scanf(%d,&flag); (2)添加记录模块:主要功能就是添加设备信息,包括设备编号、设备名称、设备种类、是否报废、报废日期、购买日期、价格等信息。void Add(Node *equip) /添加记录Node *p,*r,*s;int id; /先用于输入ID,也用于判断是否跳出循环r=equip; /s=equip-next; /使s为第一个有用的结点if(r!=NULL) while(r-next!=NULL) /使r为最后一个有用的结点r=r-next; /

6、将指针置于最末尾 0 while(1) printf(n请你输入设备ID号:); scanf(%d,&id); 1 if(id=0) break; p=(Node *)malloc(sizeof(Node); /申请空间 p-next=NULL; p-data.ID=id; while(1) if(Same(equip,p-data.ID)=1) printf(n你输入了相同的设备ID号,请重新输入!:); scanf(%d,&id); p-data.ID=id; else break; if(id=0) break; printf(n请输入设备名称:); scanf(%s,p-data.na

7、me); printf(n请输入设备种类:) scanf(%s,p-data.kind); printf(n请输入报废日期:); scanf(%d,&p-data.over); printf(n请输入设备是否报废:); scanf(%s,&p-data.yesno); printf(n请输入设备购买时间:); scanf(%d,&p-data.time); printf(n请输入设备价格:); scanf(%d,&p-data.price); printf(n提示:已经完成一条记录的添加。n); printf(n提示:输入0则返回主菜单!n); r-next=p; number+;(3)修改记

8、录模块:主要功能就是对己输入设备信息进行修改,在没有设备信息的情况下将输出“没有资料可以修改!”,在有设备信息的情况下就调用修改函数对输入编号所对应的设备信息进行修改。void Modify(Node *equip) /修改记录Node *p;int find;if(!equip-next) printf(n提示:没有资料可以修改!n); return;printf(请输入要修改的设备ID号:); 否 是 scanf(%d,&find); p=equip-next; while(p!=NULL) if(p-data.ID=find) /如果找到的话返回的是符合要求 break; p=p-nex

9、t; if(p) /若找到 /printf(请输入你想修改设备的IDn); printf(请输入新设备名称(原来是 %s ):,p-data.name); scanf(%s,p-data.name); printf(请输入新设备设备种类名称(原来是 %s ):,p-data.kind); scanf(%s,p-data.kind); printf(请输入新设备报废日期名称(原来是 %d ):,p-data.over); scanf(%d,&p-data.over); printf(请输入新设备是否报废(原来是 %s ):,p-data.yesno); scanf(%s,p-data.yesno

10、); printf(请输入新设备购买时间(原来是 %d ):,p-data.time); scanf(%d,&p-data.time); printf(请输入新设备价格(原来是 %d ):,p-data.price); scanf(%d,&p-data.price); printf(n提示:该项记录资料已经成功修改!n); else printf(n提示:你要修改的信息不存在!n);(4)输出记录模块:主要功能就是将所输入设备信息通过显示屏进行输出展示,在没有设备信息的情况下将输出“没有记录可以显示!”,在有设备信息的情况下将通过窗口输出所有设备记录信息。void Disp(Node *equ

11、ip)/输出记录Node *p;p=equip-next;if(!p) printf(n提示:没有记录可以显示!n); 否 是 return; printf(tttt显示结果n); printf(设备编号 设备名称 设备种类 报废日期 是否报废 购买时间 价格n);while(p)printf(n%-11d%-11s%-11s%-11d%-11s%-11d%-5dn,p-data.ID,p-data.name,p-data.kind,p-data.over,p-data.yesno,p-data.time,p-data.price); p=p-next;五、调试与测试(调试方法,测试结果的分析

12、与讨论,测试过程中遇到的主要问题及采取的解决措施)调试过程:设置断点,一步一步进行执行并输出执行结果。调试过程中曾出现过出现结果与预期不符、死循环、乱码等情况,经过仔细查找及检查,一步一步执行程序找到出错部位,结合个人所学以及网上资料,还有同学的帮助,最终发现是空指针乱用,遇到死循环,指针乱指,逻辑错误等问题,最终及时改正。调试方法:设置断点分步调试调试过程部分截图:六、课程设计心得及体会这一次课程设计着实考验了我们对C语言知识的掌握情况。真可谓是让我无从下手,焦头烂额啊。因为我们在大二上学期学的C语言程序设计这门课程,大二下期末就让我们进行系统的C语言编程训练,让我们设计一个无懈可击的程序,

13、这简直比登天还难。刚开始感觉确实有点力不从心,但是经过开始的学习、摸索,我的程序也终于初具雏形了。虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。经过的慢慢上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。在本次实践中,给我印象最为深刻的是在文件查询程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键

14、。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是非常明显!首先,基础掌握不牢固。许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查看各种算法。再次,程序量过大的时

15、候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比如说少加分号,大括号,忘了先定义后使用的原则。回顾这几天,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中

16、发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,文件,函数通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!七、源程序清单与执行结果源程序清单:#include stdio.h#include stdlib.h#include string.hint number = 0;struct shebeiint ID;char name

17、100;char kind50;int over;char yesno50;int time;int price;typedef struct nodestruct shebei data;struct node *next; /建立一个链表Node;int Same(Node *equip,int i) if(!equip-next) return -1; int flag=0; Node *p; p=equip-next; while(p) if(p-data.ID=i) flag=1; return flag; p=p-next; return flag;/*添加记录模块*/void A

18、dd(Node *equip) /添加记录Node *p,*r,*s;int id; /先用于输入ID,也用于判断是否跳出循环r=equip; /s=equip-next; /使s为第一个有用的结点if(r!=NULL) while(r-next!=NULL) /使r为最后一个有用的结点r=r-next; /将指针置于最末尾while(1) printf(n请你输入设备ID号:); scanf(%d,&id); if(id=0) break; p=(Node *)malloc(sizeof(Node); /申请空间 p-next=NULL; p-data.ID=id; while(1) if(

19、Same(equip,p-data.ID)=1) printf(n你输入了相同的设备ID号,请重新输入!:); scanf(%d,&id); p-data.ID=id; else break; if(id=0) break; printf(n请输入设备名称:); scanf(%s,p-data.name); printf(n请输入设备种类:); scanf(%s,p-data.kind); printf(n请输入报废日期:); scanf(%d,&p-data.over); printf(n请输入设备是否报废:); scanf(%s,&p-data.yesno); printf(n请输入设备购

20、买时间:); scanf(%d,&p-data.time); printf(n请输入设备价格:); scanf(%d,&p-data.price); printf(n提示:已经完成一条记录的添加。n);printf(n提示:输入0则返回主菜单!n);r-next=p;number+;/*修改记录模块*/void Modify(Node *equip) /修改Node *p;int find;if(!equip-next) printf(n提示:没有资料可以修改!n); return;printf(请输入要修改的设备ID号:);scanf(%d,&find); p=equip-next; whi

21、le(p!=NULL) if(p-data.ID=find) /如果找到的话返回的是符合要求 break; p=p-next; if(p) /若找到 /printf(请输入你想修改设备的IDn); printf(请输入新设备名称(原来是 %s ):,p-data.name); scanf(%s,p-data.name); printf(请输入新设备设备种类名称(原来是 %s ):,p-data.kind); scanf(%s,p-data.kind); printf(请输入新设备报废日期名称(原来是 %d ):,p-data.over); scanf(%d,&p-data.over); pri

22、ntf(请输入新设备是否报废(原来是 %s ):,p-data.yesno); scanf(%s,p-data.yesno); printf(请输入新设备购买时间(原来是 %d ):,p-data.time); scanf(%d,&p-data.time); printf(请输入新设备价格(原来是 %d ):,p-data.price); scanf(%d,&p-data.price); printf(n提示:该项记录资料已经成功修改!n); else printf(n提示:你要修改的信息不存在!n);/*输出记录模块*/void Disp(Node *equip)/输出记录Node *p;p

23、=equip-next;if(!p) printf(n提示:没有记录可以显示!n); return; printf(tttt显示结果n); printf(设备编号 设备名称 设备种类 报废日期 是否报废 购买时间 价格n);while(p)printf(n%-11d%-11s%-11s%-11d%-11s%-11d%-5dn,p-data.ID,p-data.name,p-data.kind,p-data.over,p-data.yesno,p-data.time,p-data.price); p=p-next;/*查询设备模块*/void search(Node *equip)/数据查询函数

24、Node *p; p=equip-next; int find;if(!p) printf(n提示:没有记录可以显示!n); / return; else printf(请输入要查询设备设备的ID:); scanf(%d,&find); while(p) if(p-data.ID=find) printf(tttt显示结果n); printf(设备编号 设备名称 设备种类 报废日期 是否报废 购买时间 价格n);printf(n%-11d%-11s%-11s%-11d%-11s%-11d%-5dn,p-data.ID,p-data.name,p-data.kind,p-data.over,p-

25、data.yesno,p-data.time,p-data.price); break; p=p-next; printf(-n没有您要查找的设备了.n);/*删除记录模块*/void delet(Node *equip)/*删除函数*/ int num; Node *p,*pre; if(equip-next=NULL) printf(无可操作的设备信息!n); return; else printf(请输入要删除的设备的ID:); scanf(%d,&num); pre=equip; p=pre-next; while(p-data.ID!=num) if(p-next=NULL) bre

26、ak; pre=p; p=p-next; pre-next=p-next; free(p); /*简单帮助模块*/void help() printf(在主界面输入1-7的数字n再按回车键可以进入到相应的功能界面进行操作n另外:系统保存的文件存放在D:设备管理系统,请勿随便删除n);/*分类统计模块*/void Classify(Node *equip)/统计Node *p;int sel;int flag2=0;char find20;if(equip-next=NULL) printf(无可操作的设备信息!n); return; printf(提示:n=0退出n=1按设备类别统计n=2按设备名称统计n);scanf(%d,&sel);p=equip-next;if(sel=1)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2