欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

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

  • 资源ID:137193106       资源大小:241KB        全文页数:34页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

C语言课程设计力学实验设备管理系统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.1力学实验设备管理系统的要求通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。主要功能:1、能够完成对设备的录入和修改2、对设备进行分类统计3、设备的破损消耗和遗损处理4、设备的查询5、将设备信息保存到文件中根据设计要求,画出如下流程图:开 始 菜 单 1录入2显示3修改4删除5查询6.退出a.名称b.编号结 束void userinterface()/*菜单函数*/void showall()/*显示*/void add()/*增加成员*/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 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()/*查找函数*开始按名称查找按种类查找按编号查找 判断显示要查找内容没有找到退 出 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();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时,停止添加!");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); getchar(); 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;j<strlen(b);j+) passwordsj=getch(); printf("*"); 第4章 调试与测试执行程序时,显示如下信息:输入一组数据后,显示菜单:选择不同的选项,执行相应的功能。选择1,添加设备信息。选择2查找设备信息,可按三种方式查找。选择3,可显示信息。选择4,删除设备信息。选择5,修改设备信息。选择0,保存并退出。在测试过程中,关于购置日期和报废日期,输入正常,显示那么成了乱码,经过仔细检查发现在定义变量的出现了问题,及时改正。另外由于疏忽,没有将密码函数链接到主函数中,使得密码功能没有表达,及时调整。显示内容与表头进行调整对齐,由于显示函数和查找函数都有显示功能,需要同时调整。第5章 总结与体会这一次课程设计可谓是让我焦头烂额,手足无措啊。因为我们在大一的时候并没有学过C语言这一门课程,这学期才开始接触这门课程,让我们设计一个无懈可击的程序简直比登天还难。刚开始感觉确实有点力不从心,但是经过几天的学习、摸索,我的程序也终于初具雏形了,我别提有多快乐。虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。经过几天的上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术开展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定方案,怎么样去实现这个方案,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。 课程设计到此算是根本结束,在程序设计中暴露出的我自身的问题却是非常明显! 首先,根底掌握不牢固。许多根本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。 其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查看各种算法。再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比方说少加分号,大括号,忘了先定义后使用的原那么。 回忆这一周,我感慨颇多,确实,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比方说结构体,指针,函数,算法通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 在程序已经初步写成的时候,心情很冲动也很紧张,在没有进行测试之前心还是放不下来。刚进行测试,检查没有错误,可执行起来却出现了很大的问题。首先是程序不具有存储功能,显示乱码,再就是密码功能没有实现。经过一遍又一遍仔细检查终于意义解决。当程序完全运行成功的时候,那种喜悦感死无法用言语来形容的。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在陈老师的辛勤指导下,终于游逆而解。同时,在陈老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!参考文献【1】谭浩强,张基温。C语言程序设计教程。第三版。北京:高等教育出版社,2006【2】谭浩强,张基温。C语言习题集与上机指导。第三版。北京:高等教育出版社,2006【3】谭浩强。C程序设计第三版。北京:清华大学,2005【4】谭浩强。C程序设计第二版。北京:清华大学,1999附:源程序清单和执行结果#include<stdio.h>#include<string.h>#include<stdlib.h>#include<process.h>#include<malloc.h>#include<conio.h>#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;/*指向结构体数据类型的指针*/;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();/*读数据*/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;j<strlen(b);j+) passwordsj=getch(); printf("*"); if(strcmp(passwords,b)!=0) printf("r口令错误,按任意键继续"); else break; getch(); i+; if(i=3)exit(0); printf("ok");getch(); void main() int n;if(fp = fopen("d:C语言程序设计01.txt","r+")=NULL) printf("nnttt 文件不存在!n"); if(fp = fopen("ghps.txt","wb")=NULL) printf("文件翻开错误!n"); exit(0); if(fgetc(fp)=-1) printf("tt*欢送使用力学实验设备管理系统*n");printf("ntt这里没有信息,现在您必须添加信息.n");p=(struct addbook*)malloc(LEN);printf("ntt请输入编号:");scanf("%d",&p->record);getchar();/*用来接受scaf里输入的回车符号*/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,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); fread(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 删除设备信息 |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&&choice<6) switch(choice) case 1:add();break; case 2:system("cls");find();break; case 3:system("cls");showall();break; case 4:system("cls"); void starwindows()delet();break; case 5:system("cls"); void starwindows()modify();break;case 0:system("cls");esc(); else printf("输入错误,请重新选择!n");goto Loop1; void add() struct addbook *stu; stu=(struct addbook*)malloc(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:");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*)malloc(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:");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);getchar();if(i>=0&&i<5)switch(i)case 1:case 2:case 3:findchoice(i);break;case 4:userinterface();break;case 0:esc();break;else printf("nnttt选择错误!n");choices();void showall() s = head;if(head=NULL)printf("ntt!这里没有信息!n");goto LP;printf("nnn");printf("编号t名称t种类t价格t购置日期t报废日期t是否报废");printf("nn"); 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();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();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("ntt请输入新的购置日期如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 谢谢使用本力学实验设备管理系统!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这是遮里最后一个信息,不能删除!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=NULL)/*原来的链表是空表*/head=g0;g0->next=NULL;/*使p0指向的结点作为头结点*/elsewhile(g0->record>g1->record&&g1->next!=NULL)g2=g1;g1=g1->next;/*p1后移一个结点*/if(g0->record=g1->record)printf("nttt编号重复!请核对后再输入!nn");choices();else;if(g0->record<g1->record)if(head=g1) head=g0;/*插到原来第一个结点之前*/else g2->next=g0;/*插到p2指向的结点之后*/g0->next=g1;elseg1->next=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");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);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请输入要查找的设备种类。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

注意事项

本文(C语言课程设计力学实验设备管理系统1)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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