1、 N+4 建立实验设备信息结构体结构体成员包括设备编号 设备名称 部门编号 部门名称 设备价格 设备购买时间 是否报废 报废日期。5应用程序功能详细说明程序运行后进入管理系统,显示目录:录入设备信息,修改设备信息,查询设备信息,统计设备信息,报废设备信息,退出录入设备信息 系统提示用户在原有的基础上录入新的设备信息。流程图如下:(1) 修改记录 系统要求用户输入要修改的设备编号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。(2) 显示记录 无记录退出,有记录者按要求输出。(3) 统计分类 若有资料可以统计,则按要求分类统计输出。(4) 查询记录 若信息为空
2、,则不能查询。(6)结束语 通过本次c语言的程序设计,我不仅提高巩固了c语言的基础,也初学习了编写一个实用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。我相信经过努力后,我的编程能力一定会得到提高。源程序代码清单: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(fread(q,
3、sizeof(Node),1,fp) /*将文件的内容放入接点中* /q-p-next=q;p=q; /*将该接点挂入链表中*/ fclose(fp); /*关闭文件*/ while(1) *目录*n1添加记录nn2修改记录nn3显示记录nn4统计分类nprintf(“n5 查询记录n”);n0*-EXIT-*n请输入你要操作的序号:scanf(%d,&flag);switch(flag) case 0: printf(n提示:已经退出系统,ByeBye!nbreak;case 1: Add(equip); break; /*增加记录*/ case 2: Modify(equip);/*修改记
4、录*/ case 3: Disp(equip);/*显示记录信息*/ case 4: Tongji(equip);/*统计记录 */case 5:chaxun(equip);/*查询记录*/default:输入错误!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
5、=equip-next; /*使s为第一个有用的结点 */while(r-next!=NULL) /*这个循环的作用是使r为最后一个有用的结点*/ r=r- /*将指针置于最末尾 */输入0则返回主菜单!n请你输入设备ID号:%s,id);if(strcmp(id,0)=0) break;p=(Node *)malloc(sizeof(Node); /*申请空间 */strcpy(p-data.ID,id);n请输入设备名称:,p-data.name);n请输入设备种类:data.kind);n请输入报废日期:data.over);n请输入设备是否报废:data.yesno);n请输入设备购买
6、时间:data.time);n请输入设备价格:data.price);已经完成一条记录的添加。r-next=p; /*这一步是必需的,将p与先前的链表连起来构成一条新链表*/ r=p; /*也是必需的.将r 又重设为新链的最后一个有用结点 */void Modify(Node *equip)/*修改*/ Node *p;char find20;if(!next) 没有资料可以修改!return;请输入要修改的设备ID号:,find);p=equip-while(p!=NULL) if(strcmp(p-data.ID,find)=0) /*如果找到的话返回的是符合要求*/ p=p-if(p)
7、/*若找到*/ int x;完成修改请输入0否则输入任意数再进行修改:x);if(x=0) break;请输入新设备号(原来是 %s ):data.ID);请输入新设备名称(原来是 %s ):请输入新设备设备种类名称(原来是 %s ):请输入新设备报废日期名称(原来是 %s ):请输入新设备是否报废(原来是 %s ):请输入新设备购买时间(原来是 %s ):请输入新设备价格(原来是 %s ):该项记录资料已经成功修改!else printf(你要修改的信息不存在!void Disp(Node *equip)/*输出记录*/ p) 没有记录可以显示!tttt显示结果n设备号码 设备名称 设备种类
8、 报废日期 是否报废 购买时间 价格nwhile(p) n%-10s%-10s%-10s%-10s%-10s%-10s%-10sndata.ID,p-data.name,p-data.kind,p-data.over,p-data.yesno,p-data.time,p-void Tongji(Node *equip)/*统计*/int sel;int flag2=0,ha=0; char find20;next) /*若链表为空 */没有资料可以统计分类!n=0退出n=1按设备号统计n=2按设备名称统计nsel);if(sel=1) n输入你要统计分类的设备号:data.ID,find)=0) flag2+;if(flag2=1&ha!=flag2) printf(ha=flag2;else if(f
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1