实验室设备信息管理系统要求实验室设备信息至少包含,设备编号,设备名称,设备价格,设备数量,设备总价等信息。管理实验室设备,支持添加、删除、修改、查询功能。
(1) 输入记录模块:输入实验室设备信息,并计算出设备总价存入文件。
(2) 查询记录模块:可以根据设备编号,设备名称来查询实验室设备详细信息。
(3) 修改记录模块:可以根据设备编号,修改实验室设备详细信息。
(4) 删除记录模块:可以根据设备编号,设备名称,删除实验室设备信息。
(5) 统计模块:可以根据设备编号统计共有多少种设备。可以统计所有设备的总数量。(选做部分:可以对实验室设备信息按照数量进行排序)
参考:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct equipment
{
char name[50];
char type[30];
char num[30];
float price;
char term[30];
char host[30];
char date[9];
struct equipment *next;
}EQU;
EQU *addEquipment(EQU *head,EQU *p)
{
EQU *q;
if(head==0)
{
head=p;
q=p;
printf("成功增加了一个设备信息!\n");
}
else
{
q=head;
while(q->next!=0)
{
q=q->next;
}
q->next=p;
q=p;
printf("成功增加了一个设备信息!\n");
}
q->next=0;
return head;
}
EQU *searchEquipment(EQU *head,char *p)
{
EQU *ne,*be;
if(head==0)
{
printf("当前没有设备可以查找!\n");
return 0;
}
if(strcmp(head->name,p)==0)
{
printf("成功找到该设备!\n");
return head;
}
be=ne=head;
while(strcmp(ne->name,p)!=0&&ne->next!=0)
{
be=ne;
ne=ne->next;
}
if(strcmp(ne->name,p)==0)
{
printf("成功找到该设备!\n");
return ne;
}
else
{
printf("没有找到!\n");
return 0;
}
}
EQU *delEquipment(EQU *head,char *p)
{
EQU *be,*ne;
if(head==0)
{
printf("没有设备可删除!\n");
return head;
}
if(strcmp(head->date,p)==0)
{
be=head;
head=head->next;
free(be);
printf("成功删除该设备!\n");
}
else
{
be=ne=head;
while(strcmp(ne->date,p)!=0&&ne->next!=0)
{
be=ne;
ne=ne->next;
}
if(strcmp(ne->date,p)==0)
{
be->next=ne->next;
free(ne);
printf("成功删除该设备!\n");
}
else printf("没有找到该设备!\n");
}
return head;
}
void releasechain(EQU *head)
{
EQU *p;
while(head!=0)
{
p=head;
head=head->next;
free(p);
}
}
main()
{
EQU *head=0,*t,*p;
int i;
char name[50],date[9];
printf("菜单:\n");
printf("1.设备增加\n");
printf("2.设备查询\n");
printf("3.设备删除\n");
printf("请输入需要完成的功能序号,输入0时结束程序:");
scanf("%d",&i);
while(i!=0)
{
switch(i)
{
case 1:
t=(EQU *)malloc(sizeof(EQU));
printf("请输入需要增加的设备名称,类型,编号,价格,所属部门,领用人和购买日期:\n");
scanf("%s %s %s %f %s %s %s",t->name,t->type,t->num,&t->price,t->term,t->host,t->date);
head=addEquipment(head,t);
break;
case 2:
printf("请输入需要查找的设备名:");
scanf("%s",name);
if((p=searchEquipment(head,name))!=0)
printf("该设备的类型为%s\n",p->type);
break;
case 3:
printf("请输入需要删除的设备的购买日期:");
scanf("%s",date);
head=delEquipment(head,date);
break;
}
printf("请输入需要完成的功能序号,输入0时结束程序:");
scanf("%d",&i);
}
releasechain(head);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!