C语言实验室设备管理系统Word格式.docx
《C语言实验室设备管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实验室设备管理系统Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
N+
4建立实验设备信息结构体
结构体成员包括设备编号设备名称部门编号部门名称设备价格设备购买时间是否报废报废日期。
5应用程序功能详细说明
程序运行后进入管理系统,显示目录:
录入设备信息,修改设备信息,查询设备信息,统计设备信息,报废设备信息,退出
录入设备信息系统提示用户在原有的基础上录入新的设备信息。
流程图如下:
(1)修改记录系统要求用户输入要修改的设备编号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。
(2)显示记录无记录退出,有记录者按要求输出。
(3)统计分类若有资料可以统计,则按要求分类统计输出。
(4)查询记录若信息为空,则不能查询。
(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->
data.ID,id);
\n请输入设备名称:
p->
data.name);
\n请输入设备种类:
data.kind);
\n请输入报废日期:
data.over);
\n请输入设备是否报废:
data.yesno);
\n请输入设备购买时间:
data.time);
\n请输入设备价格:
data.price);
已经完成一条记录的添加。
r->
next=p;
/*这一步是必需的,将p与先前的链表连起来构成一条新链表*/
r=p;
/*也是必需的.将r又重设为新链的最后一个有用结点*/
voidModify(Node*equip)/*修改*/
Node*p;
charfind[20];
if(!
next)
没有资料可以修改!
return;
请输入要修改的设备ID号:
find);
p=equip->
while(p!
=NULL)
if(strcmp(p->
data.ID,find)==0)/*如果找到的话返回的是符合要求*/
p=p->
if(p)/*若找到*/
intx;
完成修改请输入0否则输入任意数再进行修改:
x);
if(x==0)
{break;
请输入新设备号(原来是%s):
data.ID);
请输入新设备名称(原来是%s):
请输入新设备设备种类名称(原来是%s):
请输入新设备报废日期名称(原来是%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"
data.ID,p->
data.name,p->
data.kind,p->
data.over,p->
data.yesno,p->
data.time,p->
voidTongji(Node*equip)/*统计*/
intsel;
intflag2=0,ha=0;
charfind[20];
next)/*若链表为空*/
没有资料可以统计分类!
\n===>
0退出\n===>
1按设备号统计\n===>
2按设备名称统计\n"
sel);
if(sel==1)
\n输入你要统计分类的设备号:
data.ID,find)==0)
flag2++;
if(flag2==1&
&
ha!
=flag2)
{printf("
ha=flag2;
elseif(f