C语言实验室设备管理系统Word格式.docx
《C语言实验室设备管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实验室设备管理系统Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
![C语言实验室设备管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/30/21ae04fa-9712-4e0e-9d6a-e23300d54ddf/21ae04fa-9712-4e0e-9d6a-e23300d54ddf1.gif)
查询
输入
添加
修改
统计
模块
主函数流程图:
开始
显示一系列功能选择
N+
输入n,判断m,
能否0到5
据n值调用各功能模块函数
结束
4成立实验设施信息构造体
构造体成员包含设施编号设施种类设施名称设施价钱设施购入日期能否报废报废
日期。
5应用程序功能详尽说明
程序运转后进入管理系统,显示目录:
增添记录、改正记录、显示记录、分类统计、查问记录
(1)增添记录系统提示用户在原有的基础上录入新的设施信息。
流程图以下:
输入ID号,并将指针指向最
末端
挨次输入设施机构体内容,
达成一条增添记录
提示一达成一条记录增添
(2)
改正记录
系统要求用户输入要改正的设施
ID号,这时系统会显示设施的详细信息,
用户只要该设施新的信息按要求输入即可对信息进行改正。
判断能否有资料能够统计分
类
没有资料能够统计跳出
输入要统计的分类序号
按输入序号调用各功能模块
函数
(3)显示记录无记录退出,有记录者按要求输出。
没有记录能够显示,跳出
有记录者按要求输出
(4)统计分类如有资料能够统计,则按要求分类统计输出。
(5)查问记录若信息为空,则不可以查问。
判断能否有资料为空
资料为空跳出
输入要查问的分类序号
(6)结束语
经过本次c语言的程序设计,我不单提升稳固了c语言的基础,也初学习了编写一个实
用程序的流程,提升了着手操作能力,也提升了对编程的兴趣。
我相信经过努力后,我的编程能力必定会获得提升。
源程序代码清单:
voidmain()
{
Node*equip;
FILE*fp;
intflag;
Node*p,*q;
printf("
\t\t\t\t
设施管理系统\n"
);
equip=(Node*)malloc(sizeof(Node));
equip->
next=NULL;
p=equip;
fp=fopen("
设施管理系统"
"
wb+"
q=(Node*)malloc(sizeof(Node));
if(fread(q,sizeof(Node),1,fp))/*
将文件的内容放入接点中*/
q->
p->
next=q;
p=q;
/*
将该接点挂入链表中*/
}
fclose(fp);
/*
封闭文件*/
while
(1)
********************
目录***********************"
\n1
增添记录\n"
\n2
改正记录\n"
\n3
显示记录\n"
\n4
统计分类\n"
printf(
“\n5查问记录n”);
\n0*-EXIT-*\n"
请输入你要操作的序号
:
"
scanf("
%d"
&
flag);
switch(flag)
case0:
printf("
\n>
>
提示:
已经退出系统,ByeBye!
\n"
break;
case1:
Add(equip);
break;
增添记录*/
case2:
Modify(equip);
改正记录*/
case3:
Disp(equip);
/*case4:
Tongji(equip);
/*case5:
chaxun(equip);
/*default:
显示记录信息*/
统计记录*/
查问记录*/
输入错误!
Structshebei
{charID[10];
charname[15];
charkind[15];
charover[15];
charyesno[10];
chartime[10];
charprice[10];
voidAdd(Node*equip)/*
Node*p,*r,*s;
charid[10];
先用于输入ID,
也用于判断能否跳出循环*/
r=equip;
s=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->
请输入设施名称:
p->
;
请输入设施种类:
请输入报废日期:
请输入设施能否报废
请输入设施购置时间
请输入设施价钱:
提示:
已经达成一条记录的增添。
\n"
p->
r->
next=p;
/*这一步是必要的,将p与先前的链表连起来组成一条新链表*/
r=p;
也是必要的
.将
r
又重设为新链的最后一个实用结点
voidModify(Node*equip)/*
Node*p;
charfind[20];
if(!
next)
改正*/
没有资料能够改正!
return;
请输入要改正的设施
find);
p=equip->
N
while(p!
=NULL)
if(strcmp(p->
find)==0)/*
假如找到的话返回的是切合要求*/
p=p->
if(p)/*
若找到*/
intx;
达成改正请输入0不然输入随意数再进行改正:
x);
if(x==0)
{break;
请输入新设施号(本来是%s):
请输入新设施名称(本来是%s):
请输入新设施设施种类名称
(本来是%s):
请输入新设施报废日期名称
请输入新设施能否报废
请输入新设施购置时间
请输入新设施价钱(本来是%s):
该项记录资料已经成功改正!
elseprintf("
你要改正的信息不存在!
voidDisp(Node*equip)/*输出记录*/
p)
没有记录能够显示!
\t\t\t\t显示结果\n"
设施号码设施名称设施种类报废日期能否报废
购置时间
价钱\n"
while(p)
\n%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n"
p=p->
voidTongji(Node*equip)/*统计*/
intsel;
intflag2=0,ha=0;
charfind[20];
next)/*
若链表为空
没有资料能够统计分类
!
\n===>
0退出\n===>
1按设施号统计\n===>
2按设施名称统计\n"
scanf("
sel);
if(sel==1)
\n输入你要统计分类的设施号:
find)==0)
flag2++;
if(flag2==1&
&
ha!
=flag2)
{printf("
设施号码设施名称设施种类报废日期能否报废购置时间价钱\n"
ha=flag2;
elseif(flag2>
ha){printf("
p-
ha=flag2;
if(flag2)
\n***************按设备号%s统计分类的有%d条记
录:
************\n\n"
find,flag2);
else{printf("
\n按设施号%s统计的结果为0个\n\n"
elseif(sel==2)
\n输入你要统计分类的设施名称:
\n***********按设备名称%s统计的有%d条记
***************\n\n"
\n按设施名称%s统计分类的结果为0个\n\n"
elseif(sel==0)return;
(6)查问模块
voidchaxun(Node*equip)/*查问*/
资料为空
\n====>
0退出\n====>
1按设施号查问\n====>
2按设施名称查问\n"
\n输入你要查问的设施号:
\n**************按设备号%s查询有%d条记
*****************\n\n"
\n输入你要查问的设施名称:
\n************设备名称%s查询有%d
条记
********************\n\n"
\n按设施名称%s查问结果为0个\n\n"