下载此文档

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


文档分类:高等教育 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
该【实验设备管理系统C语言课程设计报告 】是由【海洋里徜徉知识】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【实验设备管理系统C语言课程设计报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。长江大学电子信息学院17电子信息学院C语言程序设计课程设计设计报告课课题题目:实验设备管理系统班级:通信11302班姓名:王焱章班级序号:19同组成员:王炳辉、杨继玲完成时间:2015年7月9日目录一、课题题目2二、设计目的2三、总体设计2四、详细设计4五、调试与测试8长江大学电子信息学院1六、课程设计心得及体会9七、源程序清单与执行结果11附:指导老师意见22一、课题题目实验设备管理系统二、设计目的1。加深对讲授内容的理解,尤其是一些语法规则;2。熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用;,编程解决实际问题;4。培养团队分工合作的意识,最终使学生提高;编程技能和解决实际问题的能力。三、总体设计(1)系统组成框图(2)系统流程图开始定义结构体指针分配内存空间长江大学电子信息学院2显示目录,用于功能选择输入n,n=0?是否n属于(1~9)?提示输入错误否是各功能模块选择结束开始四、详细设计(1)主函数:显示主界面voidmain(){Node*equip;是否输入0-9?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("\\n");printf("\\n”);printf(”\n9。从文件输出\n”);printf("\n0。退出\n”);printf("\n请输入你要操作的序号:\n”);printf("\n提示:输入0则返回主菜单!\n");scanf("%d",&flag);长江大学电子信息学院3switch(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);}}(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—>=id;while(1){if(Same(equip,p-〉)==1)长江大学电子信息学院4{printf("\n你输入了相同的设备ID号,请重新输入!〈输入0表示结束>:");scanf("%d”,&id);p—〉data。ID=id;}elsebreak;}if(id==0){break;}printf(”\n请输入设备名称:”);scanf(”%s”,p->);printf("\n请输入设备种类:”)scanf(”%s”,p-〉data。kind);printf("\n请输入报废日期:”);scanf(”%d",&p->);printf("\n请输入设备是否报废:");scanf(”%s",&p-〉);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号:");否是长江大学电子信息学院5显示找到该设备,调用修改函数scanf(”%d",&find);p=equip->next;显示没有记录while(p!=NULL)对设备信息进行修改{if(p->==find)//如果找到的话返回的是符合要求break;p=p—〉next;}返回主菜单if(p)//若找到{//printf(”请输入你想修改设备的ID\n");printf(”请输入新设备名称(原来是%s):”,p-〉data。name);scanf(”%s",p-〉);printf(”请输入新设备设备种类名称(原来是%s):",p—〉data。kind);scanf(”%s”,p-〉data。kind);printf("请输入新设备报废日期名称(原来是%d):",p—〉data。over);scanf("%d”,&p—〉data。over);printf(”请输入新设备是否报废(原来是%s):",p->);scanf(”%s”,p-〉data。yesno);printf(”请输入新设备购买时间(原来是%d):”,p—〉data。time);scanf(”%d”,&p—〉);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)长江大学电子信息学院7{printf("\n%-11d%-11s%—11s%—11d%—11s%—11d%-5d\n”,p-〉data。ID,p-〉data。name,p—〉data。kind,p-〉data。over,p—〉,p—>data。time,p—〉data。price);p=p->next;}}五、调试与测试(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施)调试过程:设置断点,、死循环、乱码等情况,经过仔细查找及检查,一步一步执行程序找到出错部位,结合个人所学以及网上资料,还有同学的帮助,最终发现是空指针乱用,遇到死循环,指针乱指,逻辑错误等问题,:设置断点分步调试调试过程部分截图:六、课程设计心得及体会这一次课程设计着实考验了我们对C语言知识的掌握情况。真可谓是让我无从下手,《C语言程序设计》这门课程,大二下期末就让我们进行系统的C语言编程训练,让我们设计一个无懈可击的程序,这简直比登天还难。刚开始感觉确实有点力不从心,但是经过开始的学习、摸索,,但是我觉得我是在进步的。经过的慢慢上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,,给我印象最为深刻的是在文件查询程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是非常明显!!首先,基础掌握不牢固。许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,,,,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比如说少加分号,大括号,,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢长江大学电子信息学院8固,比如说结构体,指针,文件,函数…通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!七、源程序清单与执行结果源程序清单:#include””#include”stdlib。h"#include"”intnumber=0;structshebei{intID;charname[100];charkind[50];intover;charyesno[50];inttime;intprice;};typedefstructnode{structshebeidata;structnode*next;//建立一个链表}Node;长江大学电子信息学院9intSame(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;}/********************添加记录模块********************/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){

实验设备管理系统C语言课程设计报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
最近更新