已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计 课程设计 评语: 学 院 计算机工程学院 姓 名 成 绩 指导老师 2013年 06 月 30 日一、目的1 进一步掌握和利用C语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。(1)系统功能与分析(填写你所设计的菜单及流程图,)。实验设备信息的保存功能实验设备管理系统功能设计查询所有设备信息功能实验设备的录入功能实验设备的修改功能实验设备的分类统计功能实验设备的破损耗费和遗损处理功能实验设备的查询功能实验设备信息的载入功能主菜单窗口:流程图:1.查看所有设备的信息2设备的录入3设备的修改4设备的分类统计5设备的破损耗费和遗损查询6设备的查询0退出开始完成初始化定义,并为链表申请空间显示功能列表,用户选择数字进入对应功能载入设备文本信息文本是否存在?N打印输出:硬盘中未存有数据!Y将文本中的数据放进链表结点显示主菜单界面,用户选择数字进入相应的功能0退出6设备的查询5设备的破损耗费和遗损查询4设备的分类统计3设备的修改2设备的录入1.查看所有设备的信息判断是否有数据NY提示无数据可显示显示数据根据提示输入数据输入要修改的设备号是否存在提示无数据可显示NY根据提示修改数据判断是否有数据NY提示无数据显示输入1时按设备种类分类统计输入2时按设备名称分类统计0退出判断是否有数据N提示无数据显示Y输入要修改的设备号,根据提示修改判断是否有数据N提示无数据显示Y输入设备号查询显示数据保存数据,并退出系统退到主界面,按0保存后退出结束(2)数据结构struct devicechar num10; /设备编号char kind15; /设备种类char name15; /设备名称char price10; /设备价格char buydata10; /设备购买日期char whether_scrap10; /是否报废 char scrapdata15; /报废日期char whether_damage5; /是否损坏char mendcost10; /维修价格char handleway5; /处理方式;第 18 页 共 18 页(3).模块设计根据功能需要:源文件函数名功能Add()录入设备信息Modify()修改设备信息Disp()输出设备信息Statistics()设备的分类统计Cost_handleway()设备的破损耗费和遗损处理Query()设备的查询Main()主函数,内置视图窗口Load()载入数据Save()保存数据 (3)总体设计思想:先设计视窗界面,再设计各个功能键里面的函数,最后设计如何载入与保存数据 (4)调试过程: 测试数据及结果,出现了哪些问题,如何修改的读取数据的时候会出现很多屯屯屯的乱码,将数据从第二个结点开始保存,第一个结点放空,保存的时候从第二个结点开始保存。(5)程序有待改进的地方及本次实习的收获和建议代码在书写的过程中不够规范简练。由于C语言调试窗口宽度有限,而设计的显示内容有点多,所以有些数据不能输入过长,否者会破坏表格窗口。会用模板是学习的开始,会写模板才能说明掌握了些基本内容。学习路上,有几个高人指点,必能起事半功倍的作用。(7)源程序清单(主要代码)#include #include #include #include struct devicechar num10; /设备编号char kind15; /设备种类char name15; /设备名称char price10; /设备价格char buydata10; /设备购买日期char whether_scrap10; /是否报废 char scrapdata15; /报废日期char whether_damage5; /是否损坏char mendcost10; /维修价格char handleway5; /处理方式;typedef struct nodestruct device data;struct node *next; /建立一个链表。Node;void Add(Node *equip) /设备的录入Node *p,*r,*s; char id10; /先用于输入num,也用于判断是否跳出循环r=equip;s=equip-next; /使s为第一个有用的结点while(r-next!=NULL) /这个循环的作用是使r为最后一个有用的结点r=r-next; /将指针置于最末尾while(1)printf(tt 提示:输入0则返回主菜单!data.num,id);printf(n请输入设备种类:);scanf(%s,p-data.kind);printf(n请输入设备名称:);scanf(%s,);printf(n请输入设备价格:);scanf(%s,&p-data.price);printf(n请输入设备购买时间:); scanf(%s,&p-data.buydata);printf(n请输入设备是否报废:);scanf(%s,&p-data.whether_scrap);printf(n请输入报废日期:);scanf(%s,&p-data.scrapdata);strcpy(p-data.whether_damage,-);strcpy(p-data.mendcost,-);strcpy(p-data.handleway,-);printf(tt提示:已经完成一条记录的添加。next=NULL;r-next=p; /这一步是必需的,将p与先前的链表连起来构成一条新链表r=p; /也是必需的.将r 又重设为新链的最后一个有用结点 void Modify(Node *equip)/设备的修改Node *p;char find20;if(!equip-next)printf(ntt提示:没有数据可以修改!next; while(p!=NULL) if(strcmp(p-data.num,find)=0) /如果找到的话返回的是符合要求break; p=p-next;if(p) /若找到int x;while(1)printf(完成修改请输入0,否则输入任意数再进行修改:);scanf(%d,&x);if(x=0)break; printf(请输入新设备号(原来是 %s ):,p-data.num);scanf(%s,p-data.num);printf(请输入新设备名称(原来是 %s ):,);scanf(%s,);printf(请输入新设备设备种类名称(原来是 %s ):,p-data.kind);scanf(%s,p-data.kind); printf(请输入新设备报废日期名称(原来是 %s ):,p-data.scrapdata);scanf(%s,p-data.scrapdata); printf(请输入新设备是否报废(原来是 %s ):,p-data.whether_scrap);scanf(%s,p-data.whether_scrap); printf(请输入新设备购买时间(原来是 %s ):,p-data.buydata);scanf(%s,p-data.buydata); printf(请输入新设备价格(原来是 %s ):,p-data.price);scanf(%s,p-data.price); printf(ntt提示:该项记录数据已经成功修改!提示:你要修改的信息不存在!next;if(!p)printf(ntt提示:没有数据可以显示!next;while(p) printf(%4s%6s%8s%4s%10s%4s%10s%4s%4s%4s,p-data.num,p-data.kind,,p-data.price,p-data.buydata,p-data.whether_scrap,p-data.scrapdata,p-data.whether_damage,p-data.mendcost,p-data.handleway);printf(); count1+;p=p-next;printf(nnnnn);void Statistics(Node *equip)/设备的分类统计Node *p;int sel;int flag2=0,ha=0;p=equip-next;char find20; if(!p) /若链表为空printf(ntt提示:没有数据可以统计分类!data.kind,find)=0) /计算符合条件的个数flag2+; p=p-next; p=equip-next; if(flag2)printf();printf(设备 设备 设备名称设备 设备购入 是否 报废日期 是否破损处理);printf(编号 种类 价格 日期 报废 损坏耗费方式);printf(); while(p)if(strcmp(p-data.kind,find)=0) printf(%4s%6s%8s%4s%10s%4s%10s%4s%4s%4s,p-data.num,p-data.kind,,p-data.price,p-data.buydata,p-data.whether_scrap,p-data.scrapdata,p-data.whether_damage,p-data.mendcost,p-data.handleway); printf();p=p-next;printf();if(flag2)printf(nttt按设备种类%s统计分类的有%d条记录:tttnnnnn,find,flag2);elseprintf(nttt按设备种类%s统计的结果为0个ttnnnn,find);else if(sel=2)printf(n输入你要统计分类的设备名称:);scanf(%s,find);while(p) if(strcmp(,find)=0) /计算符合条件的个数flag2+; p=p-next; p=equip-next; if(flag2)printf();printf(设备 设备 设备名称设备 设备购入 是否 报废日期 是否破损处理);printf(编号 种类 价格 日期 报废 损坏耗费方式);printf(); while(p)if(strcmp(,find)=0) printf(%4s%6s%8s%4s%10s%4s%10s%4s%4s%4s,p-data.num,p-data.kind,,p-data.price,p-data.buydata,p-data.whether_scrap,p-data.scrapdata,p-data.whether_damage,p-data.mendcost,p-data.handleway); printf();p=p-next;printf();if(flag2)printf(nttt按设备名称%s统计分类的有%d条记录:tttnnnnn,find,flag2);elseprintf(nttt按设备名称%s统计的结果为0个ttnnnn,find);else if(sel=0) return;void Cost_handleway(Node *equip) /设备的破损耗费和遗损处理Node *p;char find20;if(!equip-next)printf(ntt提示:没有资料可以修改!next; while(p!=NULL) if(strcmp(p-data.num,find)=0) /如果找到的话返回的是符合要求break; p=p-next;if(p) /若找到int x;printf();printf(设备 设备 设备名称设备 设备购入 是否 报废日期 是否破损处理);printf(编号 种类 价格 日期 报废 损坏耗费方式);printf();printf(%4s%6s%8s%4s%10s%4s%10s%4s%4s%4s,p-data.num,p-data.kind,,p-data.price,p-data.buydata,p-data.whether_scrap,p-data.scrapdata,p-data.whether_damage,p-data.mendcost,p-data.handleway);printf();while(1)printf(完成修改请输入0否则输入任意数再进行修改:);scanf(%d,&x);if(x=0)break; printf(请输入该设备是否损坏(原来是 %s ):,p-data.whether_damage);scanf(%s,p-data.whether_damage);printf(请输入该设备的破损耗费(原来是 %s ):,p-data.mendcost);scanf(%s,p-data.mendcost);printf(请输入该设备的处理方式(原来是 %s ):,p-data.handleway);scanf(%s,p-data.handleway); printf(nt 提示:该设备的破损耗费和遗损处理修改成功!提示:你要修改的信息不存在!next)printf(ntt提示:没有数据可以查询!next; while(1)if(find=0)break;while(p!=NULL) if(strcmp(p-data.num,find)=0) /如果找到的话返回的是符合要求break; p=p-next;if(p) /若找到printf();printf(设备 设备 设备名称设备 设备购入 是否 报废日期 是否破损处理);printf(编号 种类 价格 日期 报废 损坏耗费方式);printf();printf(%4s%6s%8s%4s%10s%4s%10s%4s%4s%4s,p-data.num,p-data.kind,,p-data.price,p-data.buydata,p-data.whether_scrap,p-data.scrapdata,p-data.whether_damage,p-data.mendcost,p-data.handleway);printf();break;else printf(ntt提示:你要修改的信息不存在!next;FILE *fp1;if(fp1=fopen(d:/设备管理系统.txt,wb)=NULL)return;elsewhile(p1!=NULL)fwrite(p1,sizeof(p1-data),1,fp1); /将文件的内容放入接点中p2=p1;p1=p1-next;free(p2);fclose(fp1); /关闭文件Node *load() /载入二进制文本Node *p,*pNode;FILE *fp1;pNode = NULL;if(fp1=fopen(d:/设备管理系统.txt,rb)=NULL)printf(硬盘中未存有数据!nn);return pNode;elseint bFirst=1;long rs = 1;while (rs)Node *p1 = (Node*)malloc(sizeof(Node);memset(p1,0,sizeof(Node); / 将新的空间清0rs = fread(&p1-data,sizeof(p1-data),1,fp1); /将文件的内容放入接点中if (rs)if (bFirst)/ pNode 记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心脏移植供体分配的应急调配绿色通道
- 心脏淀粉样病的个体化治疗策略制定
- 心肌淀粉样病的影像学误诊防范策略
- 微生物组与肠脑轴疾病的干预策略效果
- 微创神经外科中双器械操作的并发症预防
- 微创三叉神经微血管减压术的术后切口护理要点
- 2025年海上货运代理协议
- 康复资源在老年认知障碍康复中的策略
- 康复干预在老年终末期患者跌倒预防中的环境适配策略
- 应急演练满意度调查改进
- 2026内蒙古包头市昆区残联残疾人专职委员招聘2人参考考试试题及答案解析
- 2025-2026学年辽宁省名校联盟高三(上)月考英语试卷(12月份)
- 2025年福州左海高铁有限公司招聘备考题库带答案详解
- 2026年交管12123学法减分复习考试题库附答案(研优卷)
- 2025年信阳艺术职业学院招才引智公开招聘专业技术人员32名参考题库附答案
- 2025秋人美版(2024)初中美术八年级上册知识点及期末测试卷及答案
- 23G409先张法预应力混凝土管桩
- 提升企业仓储员工工作责任心培训课件
- 中小学图书书目清单
- 右心室心肌梗死
- 中医治疗“石淋”医案66例
评论
0/150
提交评论