parent
8e42f3a5fe
commit
d9c1bafb5f
@ -0,0 +1,608 @@
|
||||
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
#include<stdlib.h>
|
||||
#include<ctype.h>
|
||||
#define N 10000
|
||||
|
||||
struct Equipment
|
||||
{
|
||||
char bianhao[20];
|
||||
char zhonglei[20];
|
||||
char name[20];
|
||||
char price[20];
|
||||
char buy_date[20];
|
||||
char baofei[20];
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct Equipment equipment[1000];
|
||||
int num=0;
|
||||
|
||||
|
||||
int Equipment_SearchByBuy_date(char riqi[])
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].buy_date,riqi)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int Equipment_SearchByName(char leibie[])
|
||||
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].name,leibie)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int Equipment_SearchByBaofei(char baofei[])
|
||||
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].baofei,baofei)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int Equipment_SearchByPrice(char jiage[])
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].price,jiage)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int Equipment_SearchByZhonglei(char zhonglei[])
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].zhonglei,zhonglei)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int Equipment_SearchByIndex(char id[])
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (strcmp(equipment[i].bianhao,id)==0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void Equipment_DisplaySingle(int index)
|
||||
{
|
||||
printf("设备编号 设备种类 设备名称 设备价格 设备购买时间 实验设备是否报废及报废日期\n");
|
||||
printf("%3s%10s%10s%12s%13s%15s\n",equipment[index].bianhao,equipment[index].zhonglei,equipment[index].name,equipment[index].price,equipment[index].buy_date,equipment[index].baofei);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Equipment_Insert()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
printf("请输入 实验设备编号 →");
|
||||
scanf("%s",&equipment[num].bianhao);
|
||||
printf("请输入 实验设备种类 →");
|
||||
scanf("%s",&equipment[num].zhonglei);
|
||||
printf("请输入 实验设备名称 →");
|
||||
scanf("%s",&equipment[num].name);
|
||||
printf("请输入 实验设备价格 →");
|
||||
scanf("%s",&equipment[num].price);
|
||||
printf("请输入 实验设备购买时间→");
|
||||
scanf("%s",&equipment[num].buy_date);
|
||||
printf("请输入 实验设备是否报废及报废日期→");
|
||||
scanf("%s",&equipment[num].baofei);
|
||||
num++;
|
||||
printf("\n是否继续信息录入 →(y/n)" );
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void Equipment_Modify()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char id[20];
|
||||
int index;
|
||||
printf("\n\n\n\n\n请输入 需要修改的实验设备编号→");
|
||||
scanf("%s",&id);
|
||||
index=Equipment_SearchByIndex(id);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("**该设备不存在! 抱歉**\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你需要修改的设备信息为 →\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
printf("--* 请输入修改新值 *--\n");
|
||||
printf("请输入 设备编号→:");
|
||||
scanf("%s",&equipment[index].bianhao);
|
||||
printf("请输入 设备种类→");
|
||||
scanf("%s",&equipment[index].zhonglei);
|
||||
printf("请输入 设备名称→");
|
||||
scanf("%s",&equipment[index].name);
|
||||
printf("请输入设备价格→");
|
||||
scanf("%s",&equipment[index].price);
|
||||
printf("请输入 设备购买时间 →");
|
||||
scanf("%s",&equipment[index].buy_date);
|
||||
printf("请输入 实验设备是否报废及报废日期→");
|
||||
scanf("%s",&equipment[num].baofei);
|
||||
}
|
||||
printf(" 是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Equipment_Delete()
|
||||
{
|
||||
int i;
|
||||
while(1)
|
||||
{
|
||||
char id[20];
|
||||
int index;
|
||||
printf("请输入 要删除的设备编号 →");
|
||||
scanf("%s",&id);
|
||||
index=Equipment_SearchByIndex(id);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要删除的设备信息为 →\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
printf("是否真的要删除该设备→(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='y')
|
||||
{
|
||||
for (i=index;i<num-1;i++)
|
||||
{
|
||||
equipment[i]=equipment[i+1];
|
||||
}
|
||||
num--;
|
||||
}
|
||||
}
|
||||
printf("是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Equipment_baofeiSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char baofei[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备是否报废及报废日期→");
|
||||
scanf("%s",&baofei);
|
||||
index=Equipment_SearchByBaofei(baofei);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续→(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Equipment_zhongleiSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char zhonglei[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备种类→");
|
||||
scanf("%s",&zhonglei);
|
||||
index=Equipment_SearchByZhonglei(zhonglei);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续→(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Equipment_bianhaoSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char bianhao[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备编号→");
|
||||
scanf("%s",&bianhao);
|
||||
index=Equipment_SearchByIndex(bianhao);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Equipment_priceSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char price[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备价格→");
|
||||
scanf("%s",&price);
|
||||
index=Equipment_SearchByPrice(price);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Equipment_nameSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char name[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备名称→");
|
||||
scanf("%s",&name);
|
||||
index=Equipment_SearchByName(name);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void Equipment_paixubianhao()
|
||||
{
|
||||
int i,j;
|
||||
struct Equipment paixu1;
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
for (j=1;j<num-i;j++)
|
||||
{
|
||||
if (equipment[j-1].bianhao>equipment[j].bianhao)
|
||||
{
|
||||
paixu1=equipment[j-1];
|
||||
equipment[j-1]=equipment[j];
|
||||
equipment[j]=paixu1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Equipment_buydateSelect()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
char buy_date[20];
|
||||
int index;
|
||||
printf("请输入 要查询的设备的购买时间→");
|
||||
scanf("%s",&buy_date);
|
||||
index=Equipment_SearchByPrice(buy_date);
|
||||
if (index==-1)
|
||||
{
|
||||
printf("设备不存在! 抱歉\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("你要查询的设备信息为→\n");
|
||||
Equipment_DisplaySingle(index);
|
||||
}
|
||||
printf("是否继续 →(y/n)");
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Equipment_Add()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
printf("请输入 实验设备编号 →");
|
||||
scanf("%s",&equipment[num].bianhao);
|
||||
printf("请输入 实验设备种类 →");
|
||||
scanf("%s",&equipment[num].zhonglei);
|
||||
printf("请输入 实验设备名称 →");
|
||||
scanf("%s",&equipment[num].name);
|
||||
printf("请输入新的实验设备价格 →");
|
||||
scanf("%s",&equipment[num].price);
|
||||
printf("请输入新的实验设备购买时间→");
|
||||
scanf("%s",&equipment[num].buy_date);
|
||||
printf("请输入新的实验设备是否报废及报废日期→");
|
||||
scanf("%s",&equipment[num].baofei);
|
||||
num++;
|
||||
printf("\n是否继续信息录入 →(y/n)" );
|
||||
getchar();
|
||||
if (getchar()=='n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Equipment_Display()
|
||||
{
|
||||
int i;
|
||||
printf("设备编号 设备种类 设备名称 设备价格 设备购买时间 是否报废及报废日期\n");
|
||||
printf("-------------------------------------------------------------\n");
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
printf("%5s%12s%10s%12s%15s%15s\n",equipment[i].bianhao,equipment[i].zhonglei,equipment[i].name,equipment[i].price,equipment[i].buy_date,equipment[i].baofei);
|
||||
}
|
||||
}
|
||||
|
||||
int Equipment_total()
|
||||
{
|
||||
int i;
|
||||
int count=0;
|
||||
char name[20];
|
||||
printf("请输入想要的设备类别:");
|
||||
scanf("%s",name);
|
||||
for(i=0;i<num;i++)
|
||||
{
|
||||
if(strcmp(equipment[i].name,name)==0)
|
||||
{
|
||||
printf("OK!\n");
|
||||
printf("%5s%12s%10s%12s%15s%15s\n",equipment[i].bianhao,equipment[i].zhonglei,equipment[i].name,equipment[i].price,equipment[i].buy_date,equipment[i].baofei);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
printf("%d\n",count);
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void IO_ReadInfo()
|
||||
{
|
||||
FILE *fp;
|
||||
int i;
|
||||
if ((fp=fopen("shebei.txt","rb"))==NULL)
|
||||
{
|
||||
printf("不能打开文件!\n");
|
||||
return;
|
||||
}
|
||||
if (fread(&num,sizeof(int),1,fp)!=1)
|
||||
{
|
||||
num=-1;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i=0;i<num;i++)
|
||||
{
|
||||
fread(&equipment[i],sizeof(struct Equipment),1,fp);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void IO_WriteInfo()
|
||||
{
|
||||
FILE *fp;
|
||||
int i;
|
||||
if ((fp=fopen("Database.txt","wb"))==NULL)
|
||||
{
|
||||
printf("不能打开文件!\n");
|
||||
return;
|
||||
}
|
||||
if (fwrite(&num,sizeof(int),1,fp)!=1)
|
||||
{
|
||||
printf("写入文件错误!\n");
|
||||
}
|
||||
for (i=0;i<num;i++)
|
||||
{
|
||||
if (fwrite(&equipment[i],sizeof(struct Equipment),1,fp)!=1)
|
||||
{
|
||||
printf("写入文件错误!\n");
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
int choice;
|
||||
int n;
|
||||
int choice2;
|
||||
IO_ReadInfo();
|
||||
while(1)
|
||||
{
|
||||
|
||||
|
||||
printf("\n\n\n\n\n\t\t------实验室设备管理系统------\n\n");
|
||||
printf(" -----1.实验设备信息录入\n");
|
||||
printf(" -----2.实验设备信息更改\n");
|
||||
printf(" -----3.报废设备信息删除\n");
|
||||
printf(" -----4.实验设备信息查询\n");
|
||||
printf(" -----5.实验设备信息排序\n");
|
||||
printf(" -----6.添加新的实验设备\n");
|
||||
printf(" -----7.按类别对设备进行统计\n");
|
||||
printf(" -----8.浏览设备信息\n");
|
||||
printf(" -----9.退出\n");
|
||||
printf("------*------*-----*-----*-----*-----*------\n");
|
||||
printf("-----请选择(1-8):");
|
||||
scanf("%d",&choice);
|
||||
getchar();
|
||||
switch(choice)
|
||||
{
|
||||
case 1:
|
||||
Equipment_Insert();
|
||||
break;
|
||||
case 2:
|
||||
Equipment_Modify();
|
||||
break;
|
||||
case 3:
|
||||
Equipment_Delete();
|
||||
break;
|
||||
case 4:
|
||||
printf("请选择(1/2/3/4/5/6) → 1.按设备是否报废及报废日期查询 2.按设备种类查询 3.按设备编号查询 4.按设备价格查询 5.按设备名称查询 6.按设备购买时间查询\n");
|
||||
scanf("%d",&choice2);
|
||||
switch(choice2)
|
||||
{
|
||||
case 1:
|
||||
Equipment_baofeiSelect();
|
||||
break;
|
||||
case 2:
|
||||
Equipment_zhongleiSelect();
|
||||
break;
|
||||
case 3:
|
||||
Equipment_bianhaoSelect();
|
||||
break;
|
||||
case 4:
|
||||
Equipment_priceSelect();
|
||||
break;
|
||||
case 5:
|
||||
Equipment_nameSelect();
|
||||
break;
|
||||
case 6:
|
||||
Equipment_buydateSelect();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
|
||||
Equipment_paixubianhao();
|
||||
Equipment_Display();
|
||||
break;
|
||||
|
||||
break;
|
||||
case 6:
|
||||
Equipment_Add();
|
||||
break;
|
||||
case 7:n=Equipment_total();
|
||||
break;
|
||||
case 8:
|
||||
Equipment_Display();
|
||||
break;
|
||||
case 9:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
system("Pause");
|
||||
system("cls");
|
||||
IO_WriteInfo();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in new issue