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

下载本文档

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

文档简介

1、C 语言程序设计报告1课程设计题目:实验室设备管理里系统实验设备信息包括:设备编号、设备种类(如:微机打印机 扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期 等。试设计一实验设备信息管理系统,使之能提供以下功能:(1 )能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作; 实现对设备进行 分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废 的)等多种方式查询;另外还要根据键盘式

2、选择菜单以实现功能选择。3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块 实验设备分类统计模块和实验设备查询模块。主函数流程图:4建立实验设备信息结构体结构体成员包括设备编号设备名称部门编号部门名称设备价格 设备购买时间 是否报废 报废日期。5应用程序功能详细说明程序运行后进入管理系统,显示目录:录入设备信息,修改设备信息,查询设备信息,统计设备信息,报废设备信息,退出录入设备信息 系统提示用户在原有的基础上录入新的设备信息。流程图如下:(1)修改记录 系统要求用户输入要修改的设备编号, 这时系统会显示设备的具体信息,用户只需该设备新的信息按要

3、求输入即可对信息进行修改。流程图如下:(2)显示记录无记录退出,有记录者按要求输出。流程图如下:有记录者按要求输出(3)统计分类如下:若有资料可以统计J则按要求分类统计输出。流程图判断是否有资料可以没有资料可以统计 跳(4)查询记录若信息为空,则不能查询。流程图如下:输入要统计的分类序按输入序号调用各功旷结束判断是否有资料为空 资料为空跳出输入要杳询的分类序按输入序号调用各功结束(6)结束语也初学习了编写一个实用程序的流程,提咼了动手操作能力,也提咼了对编程的兴趣。我相信经过努力后,我的编程能力一定会得到提高。源程序代码清单:void main()Node *equip;FILE *fp;in

4、t flag;Node *p,*q;printf("tttt设备管理系统 n");equip=(Node*)malloc(sizeof(Node);equip->n ext二NULL;p=equip;fp=fopen("设备管理系统","wb+");q=(Node*)malloc(sizeof(Node);if(fread(q,sizeof(Node),1,fp) /*将文件的内容放入接点中 * /q-> next二NULL;p->n ext=q;p=q;/*将该接点挂入链表中*/ fclose(fp); /* 关闭

5、文件 */提示:已经退出系增加记录*/修改记录*/显示记录信息*/统计记录*/查询记录*/提示:输入错误!n"); break;while(1)pri ntf("*'*目录 *pri ntf("n1添加记录n");prin tf("n2修改记录n");pri ntf("n3显示记录n");pri ntf("n4统计分类n");printf(“n5 查询记录 n” );pri ntf("nO* 七XIT-*n");prin tf(" 请输入你要操作的序号:&q

6、uot;);sea nf("%d", &flag);switch(flag)case 0:prin tf("n>>>>>>>>>>统,ByeBye!n");break;case 1: Add(equip); break; /* case 2: Modify(equip); break;/* case 3: Disp(equip); break;/* case 4: Ton gji(equip); break;/* case 5:chax un( equip);break;/* defau

7、lt: prin tf("n>>>>>>>>>>Struct shebei char ID10; char name15; char kind15; char over15; char yesno10; char time10;char price10;void Add(Node *equip) /*添加记录 */Node*p,*r,*s;char id10; /*先用于输入ID,也用于判断是否跳出循环*/r二equip;s=equip->next; /*使s为第一个有用的结点*/while(r->next!二N

8、ULL)/*这个循环的作用是使r为最后一个有用的结占*/八、1r=r-> next; /* 将指针置于最末尾*/while(1)printf(">>>>>>>>>> 提示:输入0则返回主菜单!n");printf("n请你输入设备ID号:");"sca nf("%s",id);if(strcmp(id,"0")=0) break;strcpy(p->data .1 D,id);printf("n请输入设备名称:")

9、;sca nf("%s",p->data. name);printf("n请输入设备种类:");sca nf("%s",p->data.ki nd);printf("n请输入报废日期:");sca nf("%s",&p->data.over);printf("n请输入设备是否报废:");sca nf("%s",&p->data.yes no);printf("n请输入设备购买时间:");sca n

10、f("%s",&p->data.time);printf("n请输入设备价格:");sca nf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。n");p-> next二NULL;r->next=p; /*这一步是必需的,将p与先前的链表连起来构成一条新链表*/r=p; /*也是必需的.将r又重设为新链的最后一个有用结点*/void Modify(Node

11、 *equip)/* 修改 */Node *p;char fin d20;if(!equip->n ext)printf("n>>>>>>>>>>提示:没有资料可以修改!n");return;printf("请输入要修改的设备ID号:");sea nf("%s",fi nd);岬p=equip->n ext;while(p!二NULL)if(strcmp(p->dataD,fi nd)=0) /*如果找到的话返回的是符合要求*/break;p=p->n

12、 ext;if(p) /*若找到 */” 一int x;while(1)sea nf("%d", &x);if(x=O)break;printf("请输入新设备号(原来是%s ):",p->data.lD);scan f("%s",p->data.ID);printf("请输入新设备名称(原来是%s ):",p->);sca nf("%s",p->data. name);printf("请输入新设备设备种类名称(原来是%s ):&quo

13、t;,p->data.kind);sca nf("%s",p->data.ki nd);printf("请输入新设备报废日期名称(原来是%s ):",p->data.over);sca nf("%s",p->data.over);printf("请输入新设备是否报废(原来是%s ):",p->data.yesno);sca nf("%s",p->data.yes no);printf("请输入新设备购买时间(原来是%s ):",p->

14、data.kind);sca nf("%s",p->data.time);printf("请输入新设备价格(原来是%s ):",p->data.price);sca nf("%s",p->data.price);printf("n>>>>>>>>>>提示:该项记录资料已经成功修改!n");else prin tf("n>>>>>>>>>>提示:你要修改的信息不存在!n&

15、quot;);Node *p;p=equip->n ext;if(!p)printf("n>>>>>>>>>>提示:没有记录可以显示!n");return;printf("tttt显示结果 n");printf(" 设备号码设备名称设备种类报废日期是否报废购买时间价格n");while(p)prin tf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->dataD,p->data .n ame,p-&

16、gt;data.k in d,p->data.over,p->data.yes no ,p->data.t ime,p->data.price);p=p->n ext;void To ngji(Node *equip)/* 统计 */Node *p;int sel;i nt flag2=0,ha=0; char fin d20;p=equip->n ext;if(!equip->next) /*若链表为空 */printf("n>>>>>>>>>>提示:没有资料可以统计分类!n&qu

17、ot;);return;printf(">>>>>> 提示:n=>0退出n=>1按设备号统计n=>2按设备名称统计n");sca nf("%d", &sel);if(sel=1)prin tf("n输入你要统计分类的设备号:");sca nf("%s",fi nd);while(p)if(strcmp(p->dataD,fin d)=0)flag2+;if(flag2=1 &&ha!=flag2) printf(" 设备号

18、码设备名称设备种类报废日期是否报废购买时间价格n");prin tf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->dataD,p->data .n ame,p->data.k in d,p->data.over,p->data.yes no ,p->data.t ime,p->data.price);ha=flag2;elseif(flag2>ha)pri ntf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->

19、data .I D,p->data. name,p->data.ki nd,p->data.over,p->data.yesn o,p->data.time,p->data.price);ha二flag2;p=p->n ext;if(flag2)printf("n*按设备号%s统计分 类的有%d条记录:*nn",fi nd,flag2);else printf("n按设备号s统计的结果为 0个nn",find);else if(sel=2) while(p)if(strcmp(p->data .n ame,

20、fi nd)=O)flag2+;if(flag2=1 &&ha!=flag2) printf("设备号码设备名称设备种类报废日期是否报废购买时间价格n");prin tf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->dataD,p->data .n ame,p->data.k in d,p->data.over,p->data.yes no ,p->data.t ime,p->data.price);ha=flag2;else if(flag2>ha

21、)pri ntf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data .I D,p->data. name,p->data.ki nd,p->data.over,p->data.ye sno ,p->data.time,p->data.price);ha二flag2; p=p->n ext;if(flag2) *else printf("n 按设备名称s统计分类的结果为 0个nn",find);else if(sel=0) retur n;(6)查询模块void

22、chaxu n(Node *equip)/* 查询 */Node *p;int sel;i nt flag2=0,ha=0; char fin d20;p=equip->n ext;if(!equip->next) /*若链表为空 */printf("n>>>>>>>>>>提示:资料为空!n");return;printf(">>>>>>> 提示:n=>0 退出 n=>1 按设备号查询 n=>2按设备名称查询n");sca

23、nf("%d", &sel);if(sel=1)while(p) if(strcmp(p->dataD,fin d)=0)flag2+;if(flag2=1 &&ha!=flag2) printf("设备号码设备名称设备种类报废日期是否报废购买时间价格n");prin tf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->dataD,p->data .n ame,p->data.k in d,p->data.over,p->data.ye

24、s no ,p->data.t ime,p->data.price);ha=flag2;elseif(flag2>ha)pri ntf("n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn",p->data .I D,p->data. name,p->data.ki nd,p->data.over,p->data.yesn o,p->data.time,p->data.price);ha二flag2;p=p->n ext;if(flag2)printf("n*按设备号 %s 查询有 %d 条记*nn",fi nd,flag

温馨提示

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

最新文档

评论

0/150

提交评论