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

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

举报
开通vip

实验设备管理系统C语言课程设计报告电子信息学院C语言程序设计课程设计设计报告课课题题目:实验设备管理系统班级:通信11302班姓名:王焱章班级序号:19同组成员:王炳辉、杨继玲完成时间:2015年7月9日长江大学电子信息学院1目录一、课题题目···················&mid...

实验设备管理系统C语言课程设计报告
电子信息学院C语言程序设计课程设计设计报告课课题题目:实验设备管理系统班级:通信11302班姓名:王焱章班级序号:19同组成员:王炳辉、杨继玲完成时间:2015年7月9日长江大学电子信息学院1目录一、课题题目··························································2二、设计目的··························································2三、总体设计··························································2四、详细设计··························································4五、调试与测试·······················································8六、课程设计心得及体会···········································9七、源程序清单与执行结果······································11附:指导老师意见··················································22长江大学电子信息学院2一、课题题目实验设备管理系统二、设计目的1.加深对讲授内容的理解,尤其是一些语法规则;2.熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用;3.能够综合运用所学知识,编程解决实际问题;4.培养团队分工合作的意识,最终使学生提高;编程技能和解决实际问题的能力。三、总体设计(1)系统组成框图长江大学电子信息学院3(2)系统流程图是否否是开始定义结构体指针分配内存空间显示目录,用于功能选择输入n,n=0?n属于(1~9)?各功能模块选择提示输入错误结束长江大学电子信息学院4四、详细设计(1)主函数:voidmain(){Node*equip;equip=(Node*)malloc(sizeof(Node));equip->next=NULL;intflag;否是printf("\t\t\t\t实验室设备管理系统\n");while(1){system("cls");printf("*************目录*************\n");printf("\n1.添加记录\n");printf("\n2.修改记录\n");printf("\n3.显示记录\n");printf("\n4.查询设备\n");printf("\n5.删除设备记录\n");printf("\n6.用文件保存\n");printf("\n7.简单的帮助\n");printf("\n8.分类统计\n");printf("\n9.从文件输出\n");printf("\n0.退出\n");printf("\n请输入你要操作的序号:\n");printf("\n提示:输入0则返回主菜单!\n");scanf("%d",&flag);switch(flag){case0:system("cls");printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case1:system("cls");Add(equip);break;//添加记录case2:system("cls");Modify(equip);break;//修改记录case3:system("cls");Disp(equip);break;//显示记录case4:system("cls");search(equip);break;//查询设备case5:system("cls");delet(equip);break;//删除设备记录case6:system("cls");Save(equip);break;//用文件保存case7:system("cls");help();break;//简单的帮助case8:system("cls");Classify(equip);break;//分类统计case9:system("cls");Read_From_File();break;//从文件输出default:printf("\n>>>>>>>>>>提示:输入错误!\n");break;}scanf("%d",&flag);}开始显示主界面是否输入0-9?输出“输入错误!”执行相应子程序结束长江大学电子信息学院5}(2)添加记录模块:主要功能就是添加设备信息,包括设备编号、设备名称、设备种类、是否报废、报废日期、购买日期、价格等信息。voidAdd(Node*equip)//添加记录{Node*p,*r,*s;intid;//先用于输入ID,也用于判断是否跳出循环r=equip;//s=equip->next;//使s为第一个有用的结点if(r!=NULL){while(r->next!=NULL)//使r为最后一个有用的结点r=r->next;//将指针置于最末尾0}while(1){printf("\n请你输入设备ID号<输入0表示结束>:");scanf("%d",&id);1if(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号,请重新输入!<输入0表示结束>:");scanf("%d",&id);p->data.ID=id;}elsebreak;}if(id==0){break;}printf("\n请输入设备名称:");scanf("%s",p->data.name);printf("\n请输入设备种类:")添加记录模块输入设备的详细信息主菜单长江大学电子信息学院6scanf("%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)修改记录模块:主要功能就是对己输入设备信息进行修改,在没有设备信息的情况下将输出“没有资料可以修改!”,在有设备信息的情况下就调用修改函数对输入编号所对应的设备信息进行修改。voidModify(Node*equip)//修改记录{Node*p;intfind;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->next;}if(p)//若找到{//printf("请输入你想修改设备的ID\n");printf("请输入新设备名称(原来是%s):",p->data.name);scanf("%s",p->data.name);printf("请输入新设备设备种类名称(原来是%s):",p->data.kind);输入要修改的设备号是否找到该设备显示没有记录对设备信息进行修改返回主菜单显示找到该设备,调用修改函数长江大学电子信息学院7scanf("%s",p->data.kind);printf("请输入新设备报废日期名称(原来是%d):",p->data.over);scanf("%d",&p->data.over);printf("请输入新设备是否报废(原来是%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");}elseprintf("\n>>>>>>>>>>提示:你要修改的信息不存在!\n");}(4)输出记录模块:主要功能就是将所输入设备信息通过显示屏进行输出展示,在没有设备信息的情况下将输出“没有记录可以显示!”,在有设备信息的情况下将通过窗口输出所有设备记录信息。voidDisp(Node*equip)//输出记录{Node*p;p=equip->next;if(!p){printf("\n>>>>>>>>>>提示:没有记录可以显示!\n");否是return;}printf("\t\t\t\t显示结果\n");printf("设备编号设备名称设备种类报废日期是否报废购买时间价格\n");while(p){printf("\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->next;}}输出记录模块显示无记录显示设备记录返回主菜单是否有记录长江大学电子信息学院8五、调试与测试(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施)调试过程:设置断点,一步一步进行执行并输出执行结果。调试过程中曾出现过出现结果与预期不符、死循环、乱码等情况,经过仔细查找及检查,一步一步执行程序找到出错部位,结合个人所学以及网上资料,还有同学的帮助,最终发现是空指针乱用,遇到死循环,指针乱指,逻辑错误等问题,最终及时改正。调试方法:设置断点分步调试调试过程部分截图:长江大学电子信息学院9六、课程设计心得及体会这一次课程设计着实考研了我们对C语言知识的掌握情况。真可谓是让我无从下手,焦头烂额啊。因为我们在大二上学期学的《C语言程序设计》这门课程,大二下期末就让我们进行系统的C语言编程训练,让我们设计一个无懈可击的程序,这简直比登天还难。刚开始感觉确实有点力不从心,但是经过开始的学习、摸索,我的程序也终于初具雏形了。虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。经过的慢慢上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。在本次实践中,给我印象最为深刻的是在文件查询程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是非常明显!!长江大学电子信息学院10首先,基础掌握不牢固。许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查看各种算法。再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比如说少加分号,大括号,忘了先定义后使用的原则。回顾这几天,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,文件,函数…通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!长江大学电子信息学院11七、源程序清单与执行结果源程序清单:#include"stdio.h"#include"stdlib.h"#include"string.h"intnumber=0;structshebei{intID;charname[100];charkind[50];intover;charyesno[50];inttime;intprice;};typedefstructnode{structshebeidata;structnode*next;//建立一个链表}Node;intSame(Node*equip,inti){if(!equip->next){return-1;}intflag=0;Node*p;p=equip->next;while(p){if(p->data.ID==i){flag=1;returnflag;}p=p->next;}returnflag;}长江大学电子信息学院12/********************添加记录模块********************/voidAdd(Node*equip)//添加记录{Node*p,*r,*s;intid;//先用于输入ID,也用于判断是否跳出循环r=equip;//s=equip->next;//使s为第一个有用的结点if(r!=NULL){while(r->next!=NULL)//使r为最后一个有用的结点r=r->next;//将指针置于最末尾}while(1){printf("\n请你输入设备ID号<输入0表示结束>:");scanf("%d",&id);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号,请重新输入!<输入0表示结束>:");scanf("%d",&id);p->data.ID=id;}elsebreak;}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);长江大学电子信息学院13printf("\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++;}}/********************修改记录模块********************/voidModify(Node*equip)//修改{Node*p;intfind;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->next;}if(p)//若找到{//printf("请输入你想修改设备的ID\n");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);printf("请输入新设备购买时间(原来是%d):",p->data.time);长江大学电子信息学院14scanf("%d",&p->data.time);printf("请输入新设备价格(原来是%d):",p->data.price);scanf("%d",&p->data.price);printf("\n>>>>>>>>>>提示:该项记录资料已经成功修改!\n");}elseprintf("\n>>>>>>>>>>提示:你要修改的信息不存在!\n");}/********************输出记录模块********************/voidDisp(Node*equip)//输出记录{Node*p;p=equip->next;if(!p){printf("\n>>>>>>>>>>提示:没有记录可以显示!\n");return;}printf("\t\t\t\t显示结果\n");printf("设备编号设备名称设备种类报废日期是否报废购买时间价格\n");while(p){printf("\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->next;}}/********************查询设备模块********************/voidsearch(Node*equip)//数据查询函数{Node*p;p=equip->next;intfind;if(!p){printf("\n>>>>>>>>>>提示:没有记录可以显示!\n");/return;}else{printf("请输入要查询设备设备的ID:");scanf("%d",&find);while(p)长江大学电子信息学院15{if(p->data.ID==find){printf("\t\t\t\t显示结果\n");printf("设备编号设备名称设备种类报废日期是否报废购买时间价格\n");printf("\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);break;}p=p->next;}}printf("----------------------------------------\n没有您要查找的设备了...\n");}/********************删除记录模块********************/voiddelet(Node*equip)/*删除函数*/{intnum;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)break;pre=p;p=p->next;}pre->next=p->next;free(p);}}/********************简单帮助模块********************/voidhelp()长江大学电子信息学院16{printf("在主界面输入1-7的数字\n再按回车键可以进入到相应的功能界面进行操作\n另外:系统保存的文件存放在D:\\设备管理系统,请勿随便删除!!!\n");}/********************分类统计模块********************/voidClassify(Node*equip)//统计{Node*p;intsel;intflag2=0;charfind[20];if(equip->next==NULL){printf("无可操作的设备信息!\n");return;}printf(">>>>>>>>>>提示:\n=====>0退出\n=====>1按设备类别统计\n=====>2按设备名称统计\n");scanf("%d",&sel);p=equip->next;if(sel==1){printf("\n输入你要统计分类的类别:");scanf("%s",find);while(p!=NULL){if(strcmp(p->data.kind,find)==0){flag2++;printf("同名设备有:\n设备编号设备名称设备种类报废日期是否报废购买时间价格\n");printf("\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);}p=p->next;}printf("\n按设备号%s统计的结果有%d个\n",find,flag2);}elseif(sel==2){printf("\n输入你要统计分类的设备名称:");scanf("%s",find);while(p){长江大学电子信息学院17if(strcmp(p->data.name,find)==0){flag2++;printf("同名设备有:\n设备编号设备名称设备种类报废日期是否报废购买时间价格\n");printf("\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);}p=p->next;}printf("\n按设备名称%s统计分类的结果有%d个\n",find,flag2);}elseif(sel==0)return;}/********************保存文件模块********************/voidSave(Node*equip){FILE*fp;Node*p;inti;if(equip->next==NULL){printf("无可操作的设备信息!\n");return;}fp=fopen("D:\\实验设备信息统计.txt","w+");if(fp==NULL){printf("文件不存在");exit(0);}p=equip->next;for(i=0;i<number;i++){if(i==0){fprintf(fp,"\n设备编号设备名称设备种类报废日期是否报废购买时间价格\n\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->next;}Else{长江大学电子信息学院18fprintf(fp,"\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->next;}}getchar();printf("\n文件保存完毕,请在D盘查看,文件名“实验设备信息统计”,总数为:\n%d",number);fclose(fp);}/********************文件输出模块********************/voidRead_From_File(){FILE*fp;Node*p;p=(Node*)malloc(sizeof(Node));p->next=NULL;fp=fopen("D:\\EquipManage.txt","r+");if(fp==NULL){printf("文件不存在");exit(0);}for(p;!feof(fp);p=p->next){fscanf(fp,"\n%-11d%-11s%-11s%-11d%-11s%-11d%-5d\n",p->data.ID,p->data.name,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);}}/********************主函数********************/voidmain(){Node*equip;equip=(Node*)malloc(sizeof(Node));equip->next=NULL;intflag;printf("\t\t\t\t实验室设备管理系统\n");while(1){system("cls");printf("*************目录*************\n");printf("\n1.添加记录\n");printf("\n2.修改记录\n");长江大学电子信息学院19printf("\n3.显示记录\n");printf("\n4.查询设备\n");printf("\n5.删除设备记录\n");printf("\n6.用文件保存\n");printf("\n7.简单的帮助\n");printf("\n8.分类统计\n");printf("\n9.从文件输出\n");printf("\n0.退出\n");printf("\n请输入你要操作的序号:\n");printf("\n提示:输入0则返回主菜单!\n");scanf("%d",&flag);switch(flag){case0:system("cls");printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case1:system("cls");Add(equip);break;//添加记录case2:system("cls");Modify(equip);break;//修改记录case3:system("cls");Disp(equip);break;//显示记录case4:system("cls");search(equip);break;//查询设备case5:system("cls");delet(equip);break;//删除设备记录case6:system("cls");Save(equip);break;//用文件保存case7:system("cls");help();break;//简单的帮助case8:system("cls");Classify(equip);break;//分类统计case9:system("cls");Read_From_File();break;//从文件输出default:printf("\n>>>>>>>>>>提示:输入错误!\n");break;}scanf("%d",&flag);}}长江大学电子信息学院20执行结果:主界面:添加记录:长江大学电子信息学院21显示记录:查找设备:长江大学电子信息学院22附:指导老师意见:成绩:教师签名:年月日
本文档为【实验设备管理系统C语言课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
绘画的问号
暂无简介~
格式:pdf
大小:889KB
软件:PDF阅读器
页数:0
分类:高中语文
上传时间:2020-03-23
浏览量:2