C语言课程设计力学实验设备管理系统1

上传人:仙*** 文档编号:137193106 上传时间:2022-08-18 格式:DOC 页数:34 大小:241KB
收藏 版权申诉 举报 下载
C语言课程设计力学实验设备管理系统1_第1页
第1页 / 共34页
C语言课程设计力学实验设备管理系统1_第2页
第2页 / 共34页
C语言课程设计力学实验设备管理系统1_第3页
第3页 / 共34页
资源描述:

《C语言课程设计力学实验设备管理系统1》由会员分享,可在线阅读,更多相关《C语言课程设计力学实验设备管理系统1(34页珍藏版)》请在装配图网上搜索。

1、?程序设计根底?课程设计课题名称 力学实验设备管理系统设计 专 业 班 级 姓 名 学 号 指导教师 陈世基 2012年 06 月 12 日目录第1章 设计目的 .1第2章 总体设计2第3章 详细设计5第4章 调试与测试15第5章 总结与体会19参考文献 . 20附:源程序清单和执行结果.21第1章 设计目的本次C语言课程设计是对本学期程序设计根底课程的实际应用,通过课程设计主要到达如下目的:1. 稳固和加深对C语言课程的根本知识的理解和掌握。2. 掌握C语言编程和程序调试的根本技能。 3. 利用C语言进行根本的软件设计。 4. 掌握书写程序设计说明文档的能力。 5. 提高运用C语言解决实际问

2、题的能力。第2章 总体设计2.1力学实验设备管理系统的要求通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。主要功能:1、能够完成对设备的录入和修改2、对设备进行分类统计3、设备的破损消耗和遗损处理4、设备的查询5、将设备信息保存到文件中根据设计要求,画出如下流程图:开 始 菜 单 1录入2显示3修改4删除5查询6.退出a.名称b.编号结 束void userinterface()/*菜单函数*/void showall()/*显示*/void add(

3、)/*增加成员*/void delet()/*删除*/void find()/*查找*/void findchoice(int a) /*选择查找方式函数*/void modify()/*修改信息*/void save()/*把信息保存到磁盘*/void esc()/*退出*/void choices()/*为下一步操作做选择*/void load()/*读数据*/第2章 详细设计3.1函数以及调用关系void userinterface()/*菜单函数*/开始添加记录查找记录显示记录删除记录修改记录结束Menu_select退出保存 1 2 3 4 5 6 Break Break Break

4、 Break Break break void showall();/*显示函数*/开始调用save( )head=NULL = =N NNNNNNNNNULL NULL NULLhhhhhead hhhhhead=NULL显示信息 真 假 真退出结束void add()/*增加设备函数*/ 开始 输入编号Record=0 假 真输入数据 名称、种类、价格、购置日期、报废日期、是否报废继续添加结束 void delet()/*删除函数*/ 开始 输入要删除学生学号 输入numNum=!0 真 假删除成功Choices结 束void find()/*查找函数*开始按名称查找按种类查找按编号查找

5、判断显示要查找内容没有找到退 出 void findchoice() 真 假 void modify()/*修改信息函数*/ 开始 输入编号Record=0 假 真输入数据 新的名称、种类、价格、购置日期、报废日期、是否报废结束void save();/*把信息保存到磁盘*/退 出关闭文件开始翻开文件数据写入文件void load();/*读数据*/开始关闭文件读出数据翻开文件退 出结构的应用Ifelse结构if(strcmp(passwords,b)!=0) printf(r口令错误,按任意键继续); else break;switch结构switch(choice) case 1:add(

6、);break; case 2:system(cls);find();break; case 3:system(cls);showall();break; case 4:system(cls);delet();break; case 5:system(cls);modify();break;case 0:system(cls);esc();while结构while(stu-record!=0) head=insert(head,stu);printf(nntt*添加成功*!n);stu=(struct addbook*)malloc(LEN);printf(nnttt当输入的设备编号为0时,停

7、止添加!);printf(ntt请输入编号:);scanf(%d,&stu-record);getchar();/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);gets(stu-name);printf(ntt请输入种类:);gets(stu-kind);printf(ntt请输入价格:);gets(stu-price);printf(ntt请输入购置日期如20210101:);scanf(%ld,&stu-purtime); getchar();printf(ntt请输入报废日期如20210101:);scanf(%ld,&stu-scrtime); getch

8、ar(); printf(ntt请输入是否报废S或F:);gets(stu-scrap);stu-next = NULL;dowhile结构doprintf(%-8d%-8s%-8s%-8s%ld %ldtt%-8sn,s-record,s-name,s-kind,s-price,s-purtime,s-scrtime,s-scrap); s = s-next; while(s!=NULL);LP:choices();for结构for(j=0;jstrlen(b);j+) passwordsj=getch(); printf(*); 第4章 调试与测试执行程序时,显示如下信息:输入一组数据后,

9、显示菜单:选择不同的选项,执行相应的功能。选择1,添加设备信息。选择2查找设备信息,可按三种方式查找。选择3,可显示信息。选择4,删除设备信息。选择5,修改设备信息。选择0,保存并退出。在测试过程中,关于购置日期和报废日期,输入正常,显示那么成了乱码,经过仔细检查发现在定义变量的出现了问题,及时改正。另外由于疏忽,没有将密码函数链接到主函数中,使得密码功能没有表达,及时调整。显示内容与表头进行调整对齐,由于显示函数和查找函数都有显示功能,需要同时调整。第5章 总结与体会这一次课程设计可谓是让我焦头烂额,手足无措啊。因为我们在大一的时候并没有学过C语言这一门课程,这学期才开始接触这门课程,让我们

10、设计一个无懈可击的程序简直比登天还难。刚开始感觉确实有点力不从心,但是经过几天的学习、摸索,我的程序也终于初具雏形了,我别提有多快乐。虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。经过几天的上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术开展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定方案,怎么样去实现这个方案,并掌握

11、了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。 课程设计到此算是根本结束,在程序

12、设计中暴露出的我自身的问题却是非常明显! 首先,根底掌握不牢固。许多根本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。 其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查看各种算法。再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比方说少加分号,大括号,忘了先定义后使用的原那么。 回忆这一周,我感慨颇多,确实,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,

13、只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比方说结构体,指针,函数,算法通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 在程序已经初步写成的时候,心情很冲动也很紧张,在没有进行测试之前心还是放不下来。刚进行测试,检查没有错误,可执行起来却出现了很大的问题。首先是程序不具有存储功能,显示乱码,再就是

14、密码功能没有实现。经过一遍又一遍仔细检查终于意义解决。当程序完全运行成功的时候,那种喜悦感死无法用言语来形容的。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在陈老师的辛勤指导下,终于游逆而解。同时,在陈老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!参考文献【1】谭浩强,张基温。C语言程序设计教程。第三版。北京:高等教育出版社,2006【2】谭浩强,张基温。C语言习题集与上机指导。第三版。北京:高等教育出版社,2006【3】谭浩强。C程序设计第三版。北京:清华大学,2005【4】谭浩强。C程序设计第二版。北京:清华大学

15、,1999附:源程序清单和执行结果#include#include#include#include#include#include#define LEN sizeof(struct addbook)struct addbookint record;/*编号*/char name15;/*名称*/char kind5;/*种类*/char price8;/*价格*/ unsigned long purtime;/*购置日期*/unsigned long scrtime;/*报废日期*/ char scrap6; /*是否报废*/struct addbook *next;/*指向结构体数据类型的指

16、针*/;FILE *fp;struct addbook *p,*head=NULL,*s,*t,*p1,*p2;void userinterface();/*菜单函数*/void showall();/*显示*/void add();/*增加设备*/void delet();/*删除*/void find();/*查找*/void findchoice(int a); /*选择查找方式函数*/void modify();/*修改信息*/void save();/*把信息保存到磁盘*/void esc();/*退出*/void choices();/*为下一步操作做选择*/void load()

17、;/*读数据*/struct addbook *del(struct addbook *head,int num);/*链表结点的删除*/struct addbook *insert(struct addbook*head,struct addbook *stud);/*链表中结点的插入,stud为要插入的结点的指针*/void starwindows() system(color 1f); static char passwords80,b=123; int i=0,j; while(1) printf(请输入密码nn); for(j=0;jrecord);getchar();/*用来接受s

18、caf里输入的回车符号*/printf(ntt请输入名称:);gets(p-name);printf(ntt请输入种类:);gets(p-kind);printf(ntt请输入价格:);gets(p-price);printf(ntt请输入购置日期如20210101:);scanf(%ld,&p-purtime); getchar();printf(ntt请输入报废日期如20210101:);scanf(%ld,&p-scrtime); getchar(); printf(ntt请输入是否报废S或F:);gets(p-scrap);p-next = NULL;head = p;fwrite(p

19、,LEN,1,fp);/*将信息写入磁盘*/fclose(fp);printf(nttt添加成功!n);printf(nntt!要进行别的操作,请重新翻开程序!n);exit(0);rewind(fp); /* 重建文件指针 */n=0;p1=p2 = (struct addbook*)malloc(LEN);fread(p1,LEN,1,fp);/*读出文件中的信息*/head = NULL; while(!feof(fp)n=n+1;if(n=1) head = p1;else p2-next = p1;p2=p1; p1 = (struct addbook*)malloc(LEN); f

20、read(p1,LEN,1,fp);p2-next=NULL; fclose(fp);userinterface();save();void userinterface() int choice; printf(ntt *n); printf(ttt 欢送使用力学实验设备管理系统 ); printf(ntt *n); printf(nnt *请选择你的操作*n); printf(ttt +-+); printf(tttttt | 1 增加设备信息 |n); printf(ttt | 2 查找设备信息 |n); printf(ttt | 3 显示所有信息 |n); printf(ttt | 4

21、删除设备信息 |n); printf(ttt | 5 修改设备信息 |n); printf(ttt | 0 退出和保存 |n); printf(ttt +-+n); printf(nnttttttt制作:蒋美幸nnn); Loop1:printf(请输入您的选择:(0-5):); scanf(%d,&choice);getchar();if(choice=0&choicerecord); getchar();/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);gets(stu-name);printf(ntt请输入种类:);gets(stu-kind);printf(

22、ntt请输入价格:);gets(stu-price);printf(ntt请输入购置日期如20210101:); scanf(%ld,&stu-purtime);getchar();printf(ntt请输入报废日期如20210101:);scanf(%ld,&stu-scrtime); getchar(); printf(ntt请输入是否报废S或F:);gets(stu-scrap);stu-next = NULL;while(stu-record!=0) head=insert(head,stu);printf(nntt*添加成功*!n);stu=(struct addbook*)mall

23、oc(LEN);printf(nnttt当输入的设备编号为0时,停止添加!);printf(ntt请输入编号:);scanf(%d,&stu-record);getchar();/*用来接受scanf里输入的回车符号*/printf(ntt请输入名称:);gets(stu-name);printf(ntt请输入种类:);gets(stu-kind);printf(ntt请输入价格:);gets(stu-price);printf(ntt请输入购置日期如20210101:);scanf(%ld,&stu-purtime); getchar();printf(ntt请输入报废日期如20210101

24、:);scanf(%ld,&stu-scrtime); getchar(); printf(ntt请输入是否报废S或F:);gets(stu-scrap);stu-next = NULL;printf(nnttt添加结束!n);choices();void find() int i;printf(ntt请选择查找方式:n);printf(tt1.按编号查找。n);printf(tt2.按名称查找。n);printf(tt3.按种类查找。n);printf(tt4.返回菜单。n);printf(tt0.退出。n);printf(nnt*请输入您的选择*n);scanf(%d,&i);getcha

25、r();if(i=0&irecord,s-name,s-kind,s-price,s-purtime,s-scrtime,s-scrap); s = s-next; while(s!=NULL);LP:choices();void delet() /* 删除函数 */int num;printf(nn请输入要删除的设备编号。当输入编号为0时停止删除操作。n);scanf(%d,&num);getchar();while(num!=0)head=del(head,num);printf(nn请输入要删除的设备编号。当输入编号为0时停止删除操作。n);scanf(%d,&num);getchar(

26、);printf(nntt*删除结束*n);choices();void modify() /* 修改函数 */int num;printf(请输入要修改的设备编号n);scanf(%d,&num);getchar();p=head;doif(p-record=num ) if(p-next=NULL) printf(找不到该编号的设备,请确认无误以后再重新输入。n); else printf(ntt请输入新的名称:);gets(p-name);printf(ntt请输入新的种类:);gets(p-kind);printf(ntt请输入新的价格:);gets(p-price);printf(n

27、tt请输入新的购置日期如20210101:);scanf(%ld,&p-purtime);getchar();printf(ntt请输入新的报废日期如20210101:);scanf(%ld,&p-scrtime);getchar(); printf(ntt请输入是否报废S或F:);gets(p-scrap);printf(ntt修改成功!n);choices();else p=p-next;while(p!=NULL);printf(tt!没有这个编号的信息,请核对后再输入!nn);choices();void esc() save();printf(nnnttt 谢谢使用本力学实验设备管理

28、系统!n);exit(0);struct addbook *del(struct addbook *head,int num)/*链表结点删除*/struct addbook *h1,*h2;if(head=NULL) printf(链表为空链表。n);goto Loop;h1=head;while(num!=h1-record&h1-next!=NULL)/*p1指向的不是要删除的结点,并且后面还有结点。*/h2=h1;h1=h1-next;/*p1后移一个结点*/if(num=h1-record)/*找到了*/if(h1=head) printf(nnntt这是遮里最后一个信息,不能删除!

29、nnt如果你真的要删除此信息,请添加其他信息以后再删除.nn);goto Loop;/*这是p1是首结点的情况*/else h2-next=h1-next;printf(nntt*删除成功*!n);/*否那么将下一结点的地址赋给前一结点地址*/else printf(nntt找不到该结点。n);Loop:return(head);struct addbook *insert(struct addbook*head,struct addbook *stud)/*结点插入,插入时是按编号大小插入*/struct addbook *g0,*g1,*g2;g1=head;g0=stud;if(head

30、=NULL)/*原来的链表是空表*/head=g0;g0-next=NULL;/*使p0指向的结点作为头结点*/elsewhile(g0-recordg1-record&g1-next!=NULL)g2=g1;g1=g1-next;/*p1后移一个结点*/if(g0-record=g1-record)printf(nttt编号重复!请核对后再输入!nn);choices();else;if(g0-recordrecord)if(head=g1) head=g0;/*插到原来第一个结点之前*/else g2-next=g0;/*插到p2指向的结点之后*/g0-next=g1;elseg1-nex

31、t=g0;g0-next=NULL;/*插到最后的结点后*/return(head);void save()/*保存文件*/fp=fopen(ghps.txt,w); s = head; do fwrite(s,LEN,1,fp); s = s-next; while(s!=NULL);fclose(fp);void findchoice(int a)int num,j=0,i=0;char findname120;char findname220;t=head;if(a=1)printf(nntt请输入要查找的编号。n);scanf(%d,&num);getchar();system(cls

32、);while(t!=NULL)if(t-record=num)if(i=0)printf(nnn);printf(编号t名称t种类t价格t购置日期t报废日期t是否报废);printf(nn);i=1; printf(%-8d%-8s%-8s%-8s%-ld %-ldtt%-8sn,t-record,t-name,t-kind,t-price,t-purtime,t-scrtime,t-scrap);j=1;t=t-next;if(!j)printf(无此设备信息或是输入错误,请核对后重新输入。n);if(a=2)printf(nntt请输入要查找的设备名称。n);gets(findname1

33、);system(cls);while(t!=NULL)if(strcmp(t-name,findname1)=0)if(i=0)printf(nnn);printf(编号t名称t种类t价格t购置日期t报废日期t是否报废);printf(nn);i=1;printf(%-8d%-8s%-8s%-8s%-ld %-ldtt%-8sn,t-record,t-name,t-kind,t-price,t-purtime,t-scrtime,t-scrap);j=1;t=t-next;if(!j)printf(无此设备信息或是输入错误,请核对后重新输入。n);if(a=3)printf(nntt请输入要

34、查找的设备种类。n);gets(findname2);system(cls);while(t!=NULL)if(strcmp(t-kind,findname2)=0)if(i=0)printf(nnn); printf(编号t名称t种类t价格t购置日期t报废日期t是否报废);printf(nn);i=1;printf(%-8d%-8s%-8s%-8s%-ld %-ldtt%-8sn,t-record,t-name,t-kind,t-price,t-purtime,t-scrtime,t-scrap);j=1;t=t-next;if(!j)printf(无此设备信息或是输入错误,请核对后重新输入。n); choices();void choices()int num_1;Loop2:printf(nn

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!