C语言试验室设备管理系统_第1页
C语言试验室设备管理系统_第2页
C语言试验室设备管理系统_第3页
C语言试验室设备管理系统_第4页
C语言试验室设备管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持C语言程序设计报告1课程设计题目:实验室设备管理里系统实验设备信息包括:设备编号、设备种类(如:微机 打印机 扫描仪 等等)、设备名称、 设备价格、设备购入日期、是否报废、报废日期等。试设计一实验设备信息管理系统,使之 能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改, 需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备 查询需要提供查找操作,设备的查询可根据设备编号设备种类 设备

2、购入日期 正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持4建立实验设备信息结构体报废结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废日期。5应用程序功能详细说明程序运行后进入管理系统,显示目录:添加记录、修改记录、显示记录、分类统计、查 询记录(1) 添加记录 系统提示用户在原有的基础上录入新的设备信息。流程图如下:开始输入ID号,并将指针指向最依次

3、输入设备机构体内容,文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持(2) 修改记录 系统要求用户输入要修改的设备ID号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。流程图如下:(3) 显示记录 无记录退出,有记录者按要求输出。流程图如下:文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持(4) 统计分类 若有资料可以统计,则按要求分类统计输出。流程图如下:(5) 查询记录 若信息为空,则不能查询。流程图如下:文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持(6)结束语通过本次c 语言的程序设计,我不仅提高巩固了c 语言

4、的基础,也初学习了编写一个实用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。我相信经过努力后,我的编程能力一定会得到提高。源程序代码清单:void main()Node *equip;FILE *fp;int flag;Node *p,*q;printf("tttt 设备管理系统n");equip=(Node*)malloc(sizeof(Node);equip->next=NULL;p=equip;fp=fopen(" 设备管理系统","wb+");q=(Node*)malloc(sizeof(Node);if(fre

5、ad(q,sizeof(Node),1,fp) /* 将文件的内容放入接点中* / q->next=NULL;p->next=q;p=q;/*将该接点挂入链表中*/fclose(fp); /* 关闭文件*/while(1)printf(”*目录*”'printf("n1添加记录n");printf("n2修改记录n");printf("n3显示记录n");printf("n4统计分类n");printf( n“5 查询记录n” );printf("n0*-EXIT-*n");

6、printf(" 请输入你要操作的序号:");scanf("%d",&flag);switch(flag) case 0: printf("n>>>>>>>>>> 提示 :已经退出系统,ByeBye!n");break;case 1: Add(equip); break; /* 增加记录*/case 2: Modify(equip); break;/* 修改记录*/文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持case 3: Disp(equip); b

7、reak;/* 显示记录信息 */case 4: Tongji(equip); break;/* 统计记录 */case 5:chaxun(equip);break;/* 查询记录 */default: printf("n>>>>>>>>>> 提示:输入错误!n"); break;Struct shebei char ID10; char name15; char kind15; char over15; char yesno10; char time10; char price10;void Add(Node *

8、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(">>>>>>>>>>提示输入0则返回主菜单!n");printf("n请你输入设备ID号:");scanf(&

9、quot;%s",id);if(strcmp(id,"0")=0) break;p=(Node *)malloc(sizeof(Node);/* 申请空间 */strcpy(p->data.ID,id);printf("n请输入设备名称:");scanf("%s”,p->);printf("n请输入设备种类:");scanf("%s",p->data.kind);printf("n请输入报废日期:");scanf("%s"

10、;,&p->data.over);printf("n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("n请输入设备购买时间:");scanf("%s",&p->data.time);printf("n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>&g

11、t;提示:已经完成一条记录的添加。n");p->next=NULL;r->next=p; /*这一步是必需的,将p与先前的链表连起来构成一条新链表*/文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持r=p; /*也是必需的.将r又重设为新链的最后一个有用结点*/ void Modify(Node *equip)/* 修改 */Node *p;char find20;if(!equip->next) printf("n>>>>>>>>>>提示:没有资料可以修改!n");retu

12、rn;printf("请输入要修改的设备ID号:"); scanf("%s",find);p=equip->next;while(p!=NULL) if(strcmp(p->data.ID,find)=0)/* 如果找到的话返回的是符合要求*/break;p=p->next;if(p) /* 若找至iJ */ int x; while(1)printf("完成修改请输入0否则输入任意数再进行修改:"); scanf("%d",&x);if(x=0)break;printf("请输

13、入新设备号(原来是 %s ):",p->data.ID);scanf("%s",p->data.ID);printf("请输入新设备名称(原来是 %s ):",p->);scanf("%s”,p->);printf("请输入新设备设备种类名称(原来是%s ):",p->data.kind); scanf("%s",p->data.kind);printf("请输入新设备报废日期名称(原来是 %s ):",

14、p->data.over);scanf("%s”,p->data.over);printf("请输入新设备是否报废(原来是%s ):",p->data.yesno);scanf("%s”,p->data.yesno);printf("请输入新设备购买时间(原来是%s ):",p->data.kind); scanf("%s",p->data.time);文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持printf(" 请输入新设备价格(原来是%s ):&q

15、uot;,p->data.price);scanf("%s",p->data.price);printf("n>>>>>>>>>> 提示:该项记录资料已经成功修改!n"); else printf("n>>>>>>>>>> 提示 : 你要修改的信息不存在!n");void Disp(Node *equip)/* 输出记录*/Node *p;p=equip->next; if(!p)printf(&q

16、uot;n>>>>>>>>>> 提示:没有记录可以显示!n");return;printf("tttt 显示结果n");printf(" 设备号码设备名称设备种类报废日期是否报废购买时间价格 n");while(p) printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p->data.kind,p-> data.over,p->data.yesno

17、,p->data.time,p->data.price);p=p->next; void Tongji(Node *equip)/* 统计 */ Node *p;int sel;int flag2=0,ha=0; char find20;p=equip->next;if(!equip->next) /* 若链表为空*/printf("n>>>>>>>>>> 提示:没有资料可以统计分类!n");return; printf(">>>>>> 提

18、示 :n=>0 退出 n=>1 按设备号统计n=>2 按设备名称统计n");scanf("%d",&sel);if(sel=1) printf("n 输入你要统计分类的设备号:");scanf("%s",find);文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持while(p)if(strcmp(p->data.ID,find)=0)flag2+;if(flag2=1&&ha!=flag2) printf(" 设备号码设备名称设备种类报废日期是否报废购

19、买时间价格 n");printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p->data.kind,p-> data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2;elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->

20、,p-> data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2; p=p->next;if(flag2)printf("n* 按设备号 s 统计分类的有 d 条记录:*nn",find,flag2);else printf("n 按设备号%s 统计的结果为0 个 nn",find);else if(sel=2)printf("n 输入你要统计分类的设备名称:");scanf("%s",f

21、ind);while(p)if(strcmp(p->,find)=0)flag2+;if(flag2=1&&ha!=flag2) printf(" 设备号码设备名称设备种类报废日期是否报废购买时间价格 n");printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p->data.kind,p-> data.over,p->data.yesno,p->data.time,p->data.p

22、rice);ha=flag2;elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p-> data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2; p=p->next;文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持if(flag2)printf("n*按设备名称 $统计的有 d 条记录

23、:*nn",find,flag2);else printf("n 按设备名称%s 统计分类的结果为0 个 nn",find);else if(sel=0) return;(6) 查询模块void chaxun(Node *equip)/* 查询 */ Node *p;int sel;int flag2=0,ha=0; char find20;p=equip->next;if(!equip->next) /* 若链表为空*/printf("n>>>>>>>>>> 提示 :资料为空!n&

24、quot;);return;printf(">>>>>>> 提示 :n=>0 退出 n=>1 按设备号查询n=>2 按设备名称查询n");scanf("%d",&sel);if(sel=1)printf("n 输入你要查询的设备号:");scanf("%s",find);while(p)if(strcmp(p->data.ID,find)=0)flag2+;if(flag2=1&&ha!=flag2) printf("

25、; 设备号码设备名称设备种类报废日期是否报废购买时间价格 n");printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p->data.kind,p-> data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2; elseif(flag2>ha)printf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data.ID,p->,p->data.kind,p->data.over,p->data.yesno,p->data.time,p->data.price);ha=flag2; p=p->next;if(flag2)10文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持

温馨提示

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

评论

0/150

提交评论