版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*国雄破鼻昜课程设计报告课程名称课题名称专 业班级052093班学 号20091000633姓名董冰川指导教师2010 年 08 月 27 h中国地质大学(武汉)课程设计任务书课程名称 c语言课程设计课 题实验设备管理系统专业班级工程地质052093班学生姓名董冰川学 号 20091000633指导老师审 批任务书下达日期2010年08月21日任务完成日期 2011年08月26日目录1 需求分析2、总体设计与模块的划分3、详细设计4、调试与测试:5、总结与体会附:源程序清单和执行结果c语言程序设计报告一课程设计的目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。二课程设
2、计报告正文课程设计题目的原文实验设备信息包插:设备编号、设备种类(如:微机 打印机扫描仪 等等)、设备名称、 设备价格、设备购入日期、是否报废、报废日期等。试设计一实验设备信息管理系统,使z 能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询1需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改, 蛊要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现対设备 查询需耍提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未 报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。2
3、总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改 模块实验设备分类统计模块和实验设备查询模块。4建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设 备购入日期 是否报废 报废日期。3详细设计3. 1流程图显亦建立带头节点的链表3.2程序代码设计a主函数主函数是整个程序的核心。主函数的功能主要是实现“设备管理系统”文件的读写,将 接点指针接入已经建立好的链表中。并完成住操作页面的输出显示。void main()node *equip;file *fp;int flag;node *p,*q;printf(ntttt 设备管理系统f
4、); equip=(node*)malloc(sizeof(node);printf(nn2 修改记录n“);printf(hn3 显示记录nj; printf(nn4统计分类记录n”);printf(hnnnnn*制作人:052093班董冰川rt);printf(,no*-exit-*nn);printf(”请输入你要操作的序号:”);scanf("%d",&flag);switch(flag)case 0: printf("n»»»»»提示:已经退出系统,byebye!n");break; c
5、ase 1: add(equip); break; /增加记录case 2: modify(equip); break;/修改记录case 3: disp(equip); break;/显示记录信息case 4: tongji(equip); break;/统计记录default: printf(nn»»»»»提示:输入错误!n"); break;b各功能模块设计(1)输入模块建立“ shebei ”结构体,以整型格式完成对每一个设备信息的输入。struct shebei char id10; char name15; char ki
6、nd15; char over15; char yesno10; char time10; char price10;;(2)追加模块输入每一个设备的信息void add(node *equip) /添加记录node *p,*r,*s;char id10;/先用于输入id,也用于判断是否跳出循环r=equip;s=equip->next; 使s为第一个有用的结点 while(r->next!=null) /这个循坏的作用是使r为最后一个有用的结点 r=r->next; 将指针置于最末尾while(1)printf(n»»»»»
7、示:输入0则返冋主菜单!n”); printf(un请你输入设备id号:”);scanf(” s”,id);if(strcmp(id,0,')=0) break;p=(node *)malloc(sizeof(node); 申请空间strcpy(p->datad,id);printf(un请输入设备名称:“);scanf("%s",p->data. name);printf("n请输入设备种类门;scanf ("%s",p->data.kind);printf(an请输入报废日期:“);scanf("%s&q
8、uot;,&p>data.over);printf(hn请输入设备是否报废:“);scanf("%s",&p->data.yes no);printf(hn请输入设备购买时间:”);scanf ("%s",&p->data.time);printf("n请输入设备价格:”);scanf (”s",&p>data.price);printf(n»»»»»提示:已经完成一条记录的添加。n”);p>n ext=null;r->
9、;next=p; 这一步是必需的,将p与先前的链表连起來构成一条新链表 r=p; /也是必需的将r又重设为新链的最后一个有用结点(3)修改模块先判断有无要修改的信息,如有需要乂该的内容,则依次输出要修改的项目提示进行逐 项修改,完成各项修改后输出提示:“完成修改请输入0否则输入任意数再进行修改”输入 “0”后结朿修改操作 void modify(node *equip)修改node *p;char find20;if(!equip->n ext)printf(,'n»»»»> >提示:没有资料可以修改!n”);return;pr
10、intf(“请输入要修改的设备id号:“);scanf("%sh,find);p=equip->next;while(p!=null)if(strcmp(p->data.ld,find)=o)/如果找到的话返回的是符合要求 break;p=p->n ext;if(p) /若找到int x;while(1)printf(“完成修改请输入0否则输入任意数再进行修改:”); scanf("%d",&x);if(x=o)break;printf(”请输入新设备号(原来是%s ):",p->data.ld); scanf("
11、;%s",p->datad);printf(“请输入新设备名称(原来是%s ):",p->); scanf(”s”,p>data. name);printf(”请输入新设备设备种类名称(原来是%s ):",p->data.kind); scanf("%s",p->data.kind);printf(”请输入新设备报废日期名称(原来是%s ):",p->data.over); scanf("%s",p->data.over);printf(”请输入新设备是否
12、报废(原来是%s ):",p->data.yesno); scanf("%s",p->data.yes no);printf请输入新设备购买时间(原来是%s ):h,p->data.kind); scanf("%s",p->data.time);printf(”请输入新设备价格(原来是%s ):",p->data.price); scanf("%sm,p->data.price);printf("n»»»»»提示:该项记录资料已经
13、成功修改!n”);else printf("n»»»»»提示:你要修改的信息不存在!n”);(4)输出记录void disp(node *equip)/输出记录node *p;p=equip->n ext;if(!p)printf("n>»»»» >提示:没有记录可以显示!n”);return;printf(ntttt 显示结果rt);printfc1设备号码设备名称设备种类报废日期是否报废购买时间价格n“);while(p)结束printf("n%-1os
14、%-10s%-10s%-10s%-10s%-10s%-1 osnh,p->data.ld,p->,p->daia.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);p=p->n ext;(5)统计与查询模块本模块将统计功能与查询功能很好的结合在了一起。首先功能页面提示两种统计查询方 式。一个是按设备名称进行分类统计。比如按设备名称”罗盘“统计则程序将所有设备信息 屮的罗盘现实输出在主页面上(具体见调试检测中的截图所示)。如果选车按设备好统计则进入查询功能,只需
15、根据提示内容输入设备的id号即可将所 对应的设备信息显示在主页面上。void tongji(node *equip)/统计node *p;int sel;int flag2=0,ha=0; char find20;p=equip->n ext;if(!equip>next) /若链表为空printf(hn»»»»»提示:没有资料可以统计分类!n“);return;printf(h»»»»»提示:n=>0 退ttin=>1 按设备号统ifn=>2 按设备名称 统计n“
16、);scanf("%d",&sel);if(sel=1)如果选车按设备好统计则进入查询功能,只需根据提示内容输入设备的id号即可将所 对应的设备信息显示在主页面上。printf("n输入你要统计分类的设备号:“);scanf("%s",find);while(p)if(strcmp(p->data.ld,find)=o)flag2+;if(flag2=1 &&ha!=flag2)printf(”设备号码 设备名称设备种类报废口期是否报废购买时间价格n”);printf(hn%-1 os%-1 os%-1 os%-1
17、 os%-1 os%-10s%-10snn,p->data.ld,p->,p->dat a.kin d,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-1 os%-1 os%-1 osn”,p>datad,p->data.n ame5p->data.ki nd,p>dataover,p->datayes no 5p-&
18、gt;data.time5p->data.price);ha=flag2; p=p->n ext;if(flag2)printf(hn* 按设备号 s 统计分类的有 d 条记 *ppi» fjnd flag2)else printf(”n按设备号$统计的结果为0个nnh,find);else if(sel=2)首先功能页面提示两种统计查询方式。一个是按设备名称进行分类统计。比如按设备 名称”罗盘“统计则程序将所有设备信息中的罗盘现实输出在主页面上(具体见调试检测中 的截图所示)。printf(an输入你要统计分类的设备名称:“); scanf("%s"
19、,find);while(p) if(strcmp(p->data. name,fi nd)=o)flag2+;if(flag2=1 &&ha!=flag2)printf(“设备号码 设备名称设备种类报废日期是否报废 购买吋i'可价格n“);printf(mn%-1 os%-1 os%-1 os%-10s%-10s%-1 os%-1 osn",p->data.ld,p->,p->dat a.kind,p->data.over5p->data.yesno,p->data.time,p->data.
20、price);ha=flag2;else if(flag2>ha)printf("n%-1 os%-1 os%-10s%-10s%-10s%-10s%-1 osn",p->data.ld,p->data. n ame,p->data.ki nd,p>data.over,p>data.yes no ,p->data.time,p->data.price);ha=flag2; p=p->next; if(flag2)统计的有%dprintf(hn* 按设备名称 %s 录:*nnh,find,flag2);else print
21、f("n按设备名称s统计分类的结果为0个nrt,find); else if(sel=o) return;4、调试与检测执行程序时,显示如下信息选择不同的选项,执行相应的功能。 选择1,添加记录*制作人= 052093班董冰丿110*-exit-*隋输入你要提作耳底号江u. *4»»»»»a<t =输入则返回王菜单? 请你输入设备i d号:001 请输入设备名称:罗盘请输入设备种类:地质类请输入报废日期= 20110826请输入设备是否报废曲请输入设备购买时间=2090901 请输入设备价格:2 00;是丞:己经完成一条i錚的添
22、力口。.;是乔=输夭则返回主案单?>»»»»> »»»»» qqpinyin选择2,修改设备信息。|作 扎:052093班董冰 i2 >/ 0 - 4x 改 孵01 修 瓦诩:2 行段> > 进衬0 0 再03h是是 数:0:?rw 3意 > >原原 00任030.x.x it'b舊 囂屠1 的设昭废 =e入号名* igk请设设设设 -你要改in xi入入修入入入入nu 0*请住见兀请请请请qrx "ix选择3,可显示信息。选择4可统计分类记录,
23、可按两种不同方式统计作) : 052093班董冰 |brexit-*请输入你要操作的序号沖 »»»»»<示: =>0 退岀 =>!& =”2:女诒qqpinyin5、总结与体会这一次课程设计着实考研了我们对c语言知识的掌握情况。开始的几天真 可谓是让我无从下手,焦头烂额啊。因为我们在人一的i寸候虽然学过c语言这一 门课程,但从未进行过系统的c语言编程训练,让我们设计一个无懈可击的程序 简直比登天还难。刚开始感觉确实有点力不从心,但是经过几天的学习、摸索, 我的程序也终于初具雏形了。虽然在许多的功能方面有所欠缺,但是我觉
24、得我是 在进步的。经过几天的上机实践学习,给我的不只是疲惫更多的是收获。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题, 锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着 科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此 作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有 我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天 不会让我太过顺利,他在这最后的吋刻设置的障碍,是要考验我的能力,他要置 我于死地?在这个问题的解决上,我打了退堂鼓,
25、我不能忍受长|寸间的无功而反, 吋间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考 验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。 我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问 世。课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是罪常 明显!!首先,基础掌握不牢固。许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查 看各种算法。再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出
26、错。比如说少加分号,大括号,忘了先定义后使用的原则。 回顾这一周,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论 到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而 且学到了很多在书木上所没有学到过的知识。通过这次课程设计使我们懂得了理 论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知 识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己 的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难 重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中 发现了自己的不足之处,对一些前面学过的知识理解得
27、不够深刻,掌握得不够牢 固,比如说结构体,指针,函数,算法通过这次课程设计之后,我们把前面 所学过的知识又重新温故了一遍这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在陈老师的 辛勤指导下,终于游逆而解。同时,在陈老师的身上我学得到很多实用的知识,在次 我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!附:源程序清单和执行结果include hstdio.hn include "stdlib.h" include "string.h" struct shebeichar id10;char name15;char kin
28、d15;char over15;char yesno10; char time10;char price10;;typedef struct nodestruct shebei data;struct node *next;建立一个链表。node;void add(node *equip) /添加记录node *p,*r,*s;char id10;先用于输入id,也用于判断是否跳出循环r=equip;s=equip->next;使s为第一个有用的结点while(r->next!=null)这个循环的作用是使r为最后一个有用的结点r=r->next;将指针置于最末尾while(
29、1)printf(h»»»»»提示:输入0则返回主菜单!n”); printf(hn请你输入设备id号:”);scanf("%s",id);if(strcmp(id;,0,)=0) break;p=(node *)malloc(sizeof(node); 申请空间strcpy(p->datad,id);printf(hn请输入设备名称:”);scanf(”s”,p>);printf(un请输入设备种类:”);scanf(” s”,p>data.kind);printf(an请输入报废日期:
30、”);scanf(” s”,&p>data.over);printf("n请输入设备是否报废:“);scanf (” s”,&p>data.yesno);printf("n请输入设备购买时间:”);scanf("%s",&p->data.time);printf(hn请输入设备价格:“);scanf("%s"j&p->data.price);printf(h»»»»»提示:已经完成一条记录的添加。n”); p->next=n
31、ull;r->next=p;这一步是必需的,将p与先前的链表连起来构成一条新链表r=p;也是必需的将r又重设为新链的最后一个有用结点void modify(node *equip)/>改node *p;char find20;if(!equip->n ext) printf("n»»»»»提示:没有资料可以修改!n”); return;printf(n请输入要修改的设备id号:”);scanf("%s",find);p=equip->n ext;while(p!=null)if(strcmp
32、(p->data.ld,find)=o)如果找到的话返冋的是符合要求break;p=p->n ext;if(p)若找到int x;while(1)printf(“完成修改请输入0否则输入任意数再进行修改:”);scanf (” d",&x);if(x=o)break;printf("请输入新设备号(原来是%s ):n,p->data.ld); scanf("%s",p->datad);printf(h请输入新设备名称(原来是%s ):",p->);scanf(” s”,p>data.
33、n ame);printf(m请输入新设备设备种类名称(原来是%s ):*',p->data.kind); scanf("%sm,p->data.kind);printf(”请输入新设备报废fl期名称(原来是%s ):",p->data.over); scanf (“s”,p->data.over);printf("请输入新设备是否报废(原来是%s ):h,p->data.yesno); scanf (” s”,p>data.yesno);printf("请输入新设备购买时间(原来是%s ):",p-
34、>data.kincl); scanf (” s",p>data.time);printf(”请输入新设备价格(原来是%s ):",p->data.price);sea nf(”s”,p>data.price);printf(mn»»»»»提示:该项记录资料已经成功修改!n”);elseprintf(hn»»»»»提示:你要修改的信息不存在!n”);void disp(node *equip)输出记录node *p; p=equip->next;
35、>f(!p)printf("n»»»»»t®示:没有记录可以显示!n”);return;printf("tttt 显示结果n”);printf("设备号设备名称设备种类报废日期是否报废购买时间价格n“);while(p)printf("n%-13s%-11 s%-7s%-10s%-13s%-10s%-5snn,p->data.ld,p->,p->data.k ind,p->data.over,p->data.yesno5p->data.
36、time,p->data.price);p=p->n ext;void tongji(node *equip)/统计node *p;int sel;int flag2=0,ha=0;p=equip->next;char find20;if(!equip->next)若链表为空printfc,n»»»»»提示:没有资料可以统计分类!n“);return;printf(h»»»»»提示:n=>0 退ttin=>1 按设备号统ifn=>2 按设备名称 统计n“
37、);scanf("%d",&sel);if(sel=1)printf(un输入你要统计分类的设备号门;scanf("%s",find);while(p)if(strcmp(p->data.ld,find)=o)flag2+;if(flag2=1 &&ha!=flag2) printfc*设备号设备名称设备种类报废fi期是否报废购买时间价 格n“);printf(un%-13s%-11 s%-7s%-1 os%-13s%-10s%-5sn",p->data.ld,p->,p->da
38、ta.k ind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;elseif(flag2>ha)printf(hn%-13s%-11 s%-7s%-1 os%-13s%-10s%-5sn,p->data.ld,p->,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;p=p->next; if(flag2)printf(hn* 按设备号 s 统计分类的有 d 条记录:it*nn,find,flag2);else printf(un按设备号$统计的结果为0个nn“,find); else if(sel=2)printf(nn输入你要统计分类的设备名称:”); scanf("%sh,find);while(p)if(strcmp(p->data. name,fi nd)=o)flag2+;if(flag2=1 &&ha!=flag2) printf(h设备号设备名称设备种类报废fl期是否报废购买时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度宠物养护服务中介担保服务条款3篇
- 2024-2030年中国垃圾发电行业发展困境与十三五投资建议报告
- 2024-2030年中国卫浴五金行业市场竞争战略及发展潜力研究报告
- 2024年物业管理合作协议模板6篇
- 2024年机器操作安全合同3篇
- 满洲里俄语职业学院《进出口业务实操二》2023-2024学年第一学期期末试卷
- 漯河医学高等专科学校《酒店管理信息化软件实验》2023-2024学年第一学期期末试卷
- 2024套房智能家居系统设计与安装服务合同
- 2025微博微信广告发布合同书
- 单位人力资源管理制度品读选集
- 高危新生儿管理专家共识解读
- 人教新目标版英语八下Unit 6《An old man tried to move the mountains》(Period 1)说课稿
- 11 太阳系大家族 (教学设计)2023-2024学年六年级上册科学苏教版
- 材料腐蚀与防护智慧树知到期末考试答案章节答案2024年武汉科技大学
- DL∕ T 736-2010 农村电网剩余电流动作保护器安装运行规程
- YD-T 4339-2023 5G移动通信网能力开放(NEF)总体技术要求
- 七年级历史上册 第三单元 单元测试卷(人教版 2024年秋)
- 装饰公司与材料商合作协议范本
- 跨文化交际 Intercultural Communication智慧树知到期末考试答案章节答案2024年内蒙古民族大学
- 2024年一季度思想汇报十篇
- 偏微分方程智慧树知到期末考试答案章节答案2024年浙江师范大学
评论
0/150
提交评论