c语言实验室设备管理报告,C语言_实验室设备管理系统方案

《C语言_实验室设备管理系统方案》由会员分享,可在线阅读,更多相关《C语言_实验室设备管理系统方案(13页珍藏版)》请在人人文库网上搜索。

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

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

3、息按要求输入即可对信息进行修改。流程图如下:(2) 显示记录 无记录退出,有记录者按要求输出。流程图如下:(3) 统计分类 若有资料可以统计,则按要求分类统计输出。流程图如下:(4)查询记录若信息为空,则不能查询。流程图如下:(6)结束语通过本次c语言的程序设计,我不仅提高巩固了c语言的基础,也初学习了编写一个实用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。我相信经过努力后,我的编 程能力一定会得到提高。源程序代码清单:void mai n()Node *equip;FILE *fp;int flag;Node *p,*q;printf(tttt设备管理系统 n);equip=(No。

4、de*)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); /* while(1)printf( *prin tf(n1prin tf(n2prin tf(n3prin tf(n4 printf(将文件的内容放入接点中*/*关闭文件*/添加记录n);修改记录n);显示记录n);统计分类n);“ n5 查询记。

5、录 n”);将该接点挂入链表中*/I目录 *);提示:已经退出系统,ByeBye!n);break; 增加记录*/修改记录*/prin tf(nO*-EXIT-* n);prin tf(请输入你要操作的序号scan f(%d, &flag);switch(flag)case 0: prin tf(ncase 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);brea。

6、k;/* default: printf(n 显示记录信息*/统计记录*/查询记录*/提示:输入错误!n); break;Struct shebei char ID10; char name15; char kin d15; char over15; char yes no 10; 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。

7、ULL)/*这个循环的作用是使r为最后一个有用的结点*/r=r- next; /*将指针置于最末尾*/while(1)printf(提示:输入0则返回主菜单!n);printf(n请你输入设备ID号:);scan f(%s,id);if(strcmp(id,0)=0) break;p=(Node *)malloc(sizeof(Node); /*申请空间 */strcpy(p-data .I D,id);printf(n请输入设备名称:);sca nf(%s,p-data .n ame);printf(n请输入设备种类:);scan f(%s,p-data.ki nd);printf(n请输入。

8、报废日期:);scan f(%s,&p-data.over);prin tf(n请输入设备是否报废:”);sca nf(%s,&p-data.yes no);prin tf(n请输入设备购买时间:);scan f(%s,&p-data.time);printf(n请输入设备价格:);scan f(%s,&p-data.price);printf(提示:已经完成一条记录的添加。n);p- next=NULL;r-next=p; /*这一步是必需的,将p与先前的链表连起来构成一条新链表*/r=p; /*也是必需的将r又重设为新链的最后一个有用结点*/void Modify(Node *equip)。

9、/* 修改 */Node *p;char find20;if(!equip-n ext)printf(n提示:没有资料可以修改!n);return;printf(请输入要修改的设备ID号:);scan f(%s,fi nd);p=equip-n ext;while(p!=NULL)if(strcmp(p-dataD,fi nd)=0) /*如果找到的话返回的是符合要求*/break;p=p-n ext;if(p) /* 若找到*/int x;while(1)printf(完成修改请输入0否则输入任意数再进行修改:”);scan f(%d, &x);if(x=0)break;printf(请输入。

10、新设备号(原来是 %s ):,p-data.ID);scan f(%s,p-dataD);printf(请输入新设备名称(原来是 %s ):,p-data.name);sca nf(%s,p-data .n ame);printf(请输入新设备设备种类名称(原来是%s ):,p-data.kind);scan f(%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.ye。

11、s no);printf(请输入新设备购买时间(原来是%s ):,p-data.kind);sea nf(%s,p-data.time);printf(请输入新设备价格(原来是 %s ):,p-data.priee);sea nf(%s,p-data.price);printf(n提示:该项记录资料已经成功修改!n);else prin tf(n提示:你要修改的信息不存在!n); void Disp(Node *equip)/* 输出记录 */Node *p;p=equip-n ext;if(!p)printf(n提示:没有记录可以显示!n);return;printf(tttt显示结果 n)。

12、;printf(设备号码设备名称设备种类报废日期是否报废购买时间价格n);while(p)prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data .n ame,p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);p=p-n ext;void Tongji(Node *equip)/* 统计 */Node *p;int sel;i nt flag2=0,ha=0; char fin d20;p=equip-n ext;if(!equip-next) /。

13、*若链表为空 */printf(n提示:没有资料可以统计分类 !n);return;printf(提示:n=0退出n=1按设备号统计n=2按设备名称统计n);scan f(%d, &sel);if(sel=1)prin tf(n输入你要统计分类的设备号:”);scan f(%s,fi nd);while(p)if(strcmp(p-data .1 D,fi nd)=O)flag2+;if(flag2=1 &ha!=flag2) printf(”设备号码设备名称设备种类报废日期是否报废购买时间价格n ”);prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn。

14、,p-dataD,p-data .n ame,p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price); ha=flag2;elseif(flag2ha)pri ntf(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.time,p-data.price);ha=flag2;p=p-n ext;if(flag2)prin tf(n*按设备号 %s 统计分类的有。

15、 %d 条记录:*、nn”,fin d,flag2);else printf(n 按设备号%s统计的结果为 0个nn,find);else if(sel=2)prin tf(n输入你要统计分类的设备名称:”);scan f(%s,fi nd);while(p)if(strcmp(p-data .n ame,fi nd)=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,。

16、p-data.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;elseif(flag2ha)pri ntf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-data.ID,p-data.n ame,p-data.k in d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;p=p-n ext;if(flag2)prin tf(n*按 设 备 名 称 %s 统计 的 有 %d 条录 * nn”,fin 。

17、d,flag2);else printf(n按设备名称%s统计分类的结果为0个nn,find);else if(sel=0) return;查询模块void chaxun(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按设备名称查询nscan f(%d, &sel);if(sel=1)prin tf(n输入你要查询的设备号。

18、:);scan f(%s,fi nd);while(p)if(strcmp(p-data .I D,fi nd)=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.kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;elseif(flag2ha)pri ntf(n%-10s。

19、%-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.time,p-data.price);ha=fla g2;p=p-n ext;if(flag2)prin tf(n*按 设 备号%s%d*nn,fi nd,flag2);else printf(n按设备号%s统计的结果为 0个nn,find);else if(sel=2)prin tf(n输入你要查询的设备名称:”);scan f(%s,fi nd);while(p)if(strcmp(p-da。

20、ta .n ame,fi nd)=0)flag2+;if(flag2=1 &ha!=flag2) prin tf(设备号码设备名称设备种类报废日期是否报废购买时间价格n);prin tf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-dataD,p-data .n ame,p-data .kin d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=flag2;else if(flag2ha)pri ntf(n%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,p-data.ID,p-data.n ame,p-data.k in d,p-data.over,p-data.yes no ,p-data.time,p-data.price);ha=fla g2;p=p-n ext;if(flag2)prin tf(n*设 备 名 称 %s 查 询 有 %d录:*nn find flag2)else printf(n按设备名称 %s查询 结果为0个nn,find);else if(sel=0) return。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值