仪器仪表管理系统.docx
《仪器仪表管理系统.docx》由会员分享,可在线阅读,更多相关《仪器仪表管理系统.docx(53页珍藏版)》请在冰豆网上搜索。
仪器仪表管理系统
仪器仪表管理系统
系统功能的基本要求:
(1)新的仪器仪表的信息的录入;
(2)在借出、归还、维修时对仪器仪表信息的修改;
(3)对报废仪器仪表信息的删除;
(4)按照一定的条件查询、统计符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息的查询、按时间段(如在2004年1
月1日到2004年10月10日购买、借出、维修的仪器仪表等)查询、按时间点(借入时间、借入时间、归还时间)查询等,统计功能至少包括按
时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)统计、按仪器仪表基本信息的统计等;
(5)对查询、统计的结果打印输出。
#include
#include
#include
#include
#defineN9999
structmeter
{
intnum;
charname[20];
intmt;
intjrt;
intjct;
intgt;
intwt;
charzt[4];
}met[N];
voidmain()
{
voidmenu(inty);intenter(inty);intmodify(inty);voidsearch(inty);
voidsearch_1(inty);voidsearch_2(inty);voidsearch_3(inty);voidsearch_4(inty);voidsearch_5(inty);
voidsearch_m(inty);voidsearch_jr(inty);voidsearch_jc(inty);voidsearch_g(inty);voidsearch_w(inty);
voidsearch_md(inty);voidsearch_jrd(inty);voidsearch_jcd(inty);voidsearch_gd(inty);voidsearch_wd(inty);
voidsave(intw,intn);voidprintf_face();voidprintf_back(inty);voidexit();intf();intff();voidfff();voidffff(inty);staticinty;
puts("\n*******************************仪器仪表信息管理系统*****************************");
y=f();
menu(y);
}
voidmenu(inty)
{
intn;
puts("\n\n\n\t\t\t*************主菜单*************");
puts("\n\t\t\t\t1.浏览仪器仪表信息");
puts("\n\t\t\t\t2.录入仪器仪表信息");
puts("\n\t\t\t\t3.查询仪器仪表信息");
puts("\n\t\t\t\t4.修改仪器仪表信息");
puts("\n\t\t\t\t5.退出信息管理系统");
puts("\n\t\t\t********************************");
printf("\t\t\t请选择下一步操作:
[]\b\b");
scanf("%d",&n);
while(n<1||n>5)
{
puts("警告输入错误!
");
printf("\n\t\t\t请选择下一步操作:
[]\b\b");
getchar();
scanf("%d",&n);
}
system("cls");
switch(n)
{
case1:
fff();puts("\t\t\t*******1.浏览仪器仪表信息*******");ff();puts("\t\t\t**********退出浏览系统**********");puts("\t\t\t\t浏览成功!
");ffff(y);break;
case2:
f();fff();y=enter(y);ffff(y);break;
case3:
f();fff();puts("\t\t\t*******3.查询仪器仪表信息*******");search(y);ffff(y);break;
case4:
f();fff();y=modify(y);ffff(y);break;
case5:
exit(0);
}
}
intenter(inty)
{
inti,n,a,b,a2,p[4]={0,0,0,0};
puts("\t\t\t*********2.录入仪器仪表信息*********");
puts("\n\n仪器仪表信息储存示例:
(y表示可借,n表示不可借)");
printf("序号仪器编号名称购买时间借入时间借出时间归还时间维修时间状态信息");
printf("000000000aaaa2010010120100101201001012010010120100101y\n");
printf("999911111bbbb2010010120100101201001012010010120100101n");
printf("\n新录入信息将储存在文件met.txt中.");
printf("\n\n扫描已储存信息文件met.txt?
[]1).是2).否\b\b\b\b\b\b\b\b");
scanf("%d",&a);
while(a<1||a>2)
{
puts("警告输入错误!
");
printf("\n扫描已储存信息文件met.txt?
[]1).是2).否\b\b\b\b\b\b\b\b");
getchar();
scanf("%d",&a);
}
if(a==1)
{
system("cls");
puts("\n*******************************仪器仪表信息管理系统*****************************");
puts("\t\t\t*********2.录入仪器仪表信息*********");
ff();
}
printf("\n\t\t\t开始录入信息(剩余可用储存:
%d条)",9999-y);
printf("\n\n\n新录入仪器仪表信息个数:
");
scanf("%d",&n);
while(n<1||n>9999-y)
{
puts("警告输入错误!
");
printf("\n录入的仪器仪表信息个数:
");
getchar();
scanf("%d",&n);
}
system("cls");
puts("\n*******************************仪器仪表信息管理系统*****************************");
puts("\t\t\t*********2.录入仪器仪表信息*********");
printf("\n\n序号仪器编号名称购买时间借入时间借出时间归还时间维修时间状态信息");
for(i=y;i{
if(i+1>=1000)b=0;
elseif(i+1>=100)b=1;
elseif(i+1>=10)b=2;
elseb=3;
for(a2=0;a2
printf("%d",i+1);
scanf("%d%s%d%d%d%d%d%s",&met[i].num,met[i].name,&met[i].mt,&met[i].jrt,&met[i].jct,&met[i].gt,&met[i].wt,met[i].zt);
}
save(0,y+n);
y=y+n;
puts("\t\t\t************退出录入系统************");
puts("\t\t\t\t保存成功!
");
returny;
}
intmodify(inty)
{
intc,w1,i,p,k,b1,a2,a1,a3,a4=-1,x,m[4]={0,0,0,0};
FILE*fp;
structmeterb;structmeterp1;
puts("\t\t\t*******4.修改仪器仪表信息*******");
do
{
printf("\n仪器仪表序号(输入0可以退出):
");
scanf("%d",&p);k=p-1;
while(p<0)
{
puts("警告输入错误!
");
printf("\n仪器仪表序号(输入0可以退出):
");
getchar();
scanf("%d",&p);k=p-1;
}
if(p==0)
{
puts("\t\t\t**********退出修改系统**********");
puts("\t\t\t\t取消修改!
");ffff(y);exit(0);
}
if(k>=y)printf("\n\t\t\t\t不存在此信息!
");
}while(k>=y);
printf("\n序号仪器编号名称购买时间借入时间借出时间归还时间维修时间状态信息");
if(k+1>=1000)b1=0;
elseif(k+1>=100)b1=1;
elseif(k+1>=10)b1=2;
elseb1=3;
if(met[k].num>=10000)a2=0;
elseif(met[k].num>=1000)a2=1;
elseif(met[k].num>=100)a2=2;
elseif(met[k].num>=10)a2=3;
elsea2=4;
for(x=0;xprintf("%d",k+1);
for(a1=0;a1printf("%d",met[k].num);
printf("%-4s%-8d%-8d%-8d%-8d%-8d%s\n",met[k].name,met[k].mt,met[k].jrt,met[k].jct,met[k].gt,met[k].wt,met[k].zt);
printf("\n确认修改此信息?
[]1).确认2).退出系统\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%d",&a3);
while(a3<1||a3>2)
{
puts("警告输入错误!
");
printf("\n确认修改此信息?
[]1).确认2).退出系统\b\b\b\b\b\b\b\b\b\b\b\b");
getchar();
scanf("%d",&a3);
}
if(a3==2)
{
puts("\t\t\t**********退出修改系统**********");
puts("\t\t\t\t取消修改!
");ffff(y);exit(0);
}
do
{
p1.num=met[k].num;strcpy(p1.name,met[k].name);p1.mt=met[k].mt;p1.jrt=met[k].jrt;p1.jct=met[k].jct;p1.gt=met[k].gt;p1.wt=met[k].wt;strcpy(p1.zt,met[k].zt);
printf("\n\t\t\t\t1).仪器仪表编号\n\t\t\t\t2).仪器仪表名称\n\t\t\t\t3).购买时间\n\t\t\t\t4).借入时间\n\t\t\t\t5).借出时间\n\t\t\t\t6).归还时间\n\t\t\t\t7).维修时间\n\t\t\t\t8).状态信息\n\t\t\t\t9).删除此信息\n请选择修改操作[]\b\b");
scanf("%d",&c);
while(c<1||c>9)
{
puts("警告输入错误!
");
printf("\n请重新选择:
[]\b\b");
getchar();
scanf("%d",&c);
}
switch(c)
{
case1:
printf("仪器仪表编号改为:
");scanf("%d",&b.num);met[k].num=b.num;break;
case2:
printf("仪器仪表名称改为:
");scanf("%s",b.name);strcpy(met[k].name,b.name);break;
case3:
printf("购买时间改为:
");scanf("%d",&b.mt);met[k].mt=b.mt;break;
case4:
printf("借入时间改为:
");scanf("%d",&b.jrt);met[k].jrt=b.jrt;break;
case5:
printf("借出时间改为:
");scanf("%d",&b.jct);met[k].jct=b.jct;break;
case6:
printf("归还时间改为:
");scanf("%d",&b.gt);met[k].gt=b.gt;break;
case7:
printf("维修时间改为:
");scanf("%d",&b.wt);met[k].wt=b.wt;break;
case8:
printf("状态信息改为:
");scanf("%s",b.zt);strcpy(met[k].zt,b.zt);break;
case9:
a4=k;break;
}
if(c!
=9)
{
printf("\n序号仪器编号名称购买时间借入时间借出时间归还时间维修时间状态信息");
if(k+1>=1000)b1=0;
elseif(k+1>=100)b1=1;
elseif(k+1>=10)b1=2;
elseb1=3;
if(met[k].num>=10000)a2=0;
elseif(met[k].num>=1000)a2=1;
elseif(met[k].num>=100)a2=2;
elseif(met[k].num>=10)a2=3;
elsea2=4;
for(x=0;xprintf("%d",k+1);
for(a1=0;a1printf("%d",met[k].num);
printf("%-4s%-8d%-8d%-8d%-8d%-8d%s\n",met[k].name,met[k].mt,met[k].jrt,met[k].jct,met[k].gt,met[k].wt,met[k].zt);
}
printf("\n确定修改?
[]\t1).确定2).重新修改\b\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%d",&w1);
if(2==w1)
{
met[k].num=p1.num;strcpy(met[k].name,p1.name);met[k].mt=p1.mt;met[k].jrt=p1.jrt;met[k].jct=p1.jct;met[k].gt=p1.gt;met[k].wt=p1.wt;strcpy(met[k].zt,p1.zt);a4=-1;
}
while(w1<1||w1>2)
{
puts("警告输入错误!
");
printf("\n确定修改?
[]\t1).确定2).重新修改\b\b\b\b\b\b\b\b\b\b\b\b\b");
getchar();
scanf("%d",&w1);
}
}while(w1==2);
if((fp=fopen("met.txt","w"))==NULL)
{
printf("\n不能打开文件!
\n");
return0;
}
for(i=0;i{
if(i!
=a4)fprintf(fp,"%d%s%d%d%d%d%d%s\n",met[i].num,met[i].name,met[i].mt,met[i].jrt,met[i].jct,met[i].gt,met[i].wt,met[i].zt);
}
fclose(fp);
puts("\t\t\t**********退出修改系统**********");
puts("\t\t\t\t修改成功!
");
if(a4!
=-1)y=y-1;
returny;
}
voidsearch(inty)
{
intc;
printf("\n\t\t\t\t1).仪器仪表编号\n\t\t\t\t2).仪器仪表名称\n\t\t\t\t3).状态信息\n\t\t\t\t4).时间点查询\n\t\t\t\t5).时间段查询\n\n\t\t\t请选择查找方式:
[]\b\b");
scanf("%d",&c);
while(c<1||c>5)
{
puts("警告输入错误!
");
printf("\n\t\t\t请选择查找方式:
[]\b\b");
getchar();
scanf("%d",&c);
}
switch(c)
{
case1:
search_1(y);break;
case2:
search_2(y);break;
case3:
search_3(y);break;
case4:
search_4(y);break;
case5:
search_5(y);break;
}
search(y);
}
voidsearch_1(inty)
{
inti,j,k=-1,x=0;structmetera;inta1,a2,b,c,m[4]={0,0,0,0};
puts("\n\t\t\t\t1.按编号查询==>");
printf("\n\n请输入编号:
");
scanf("%d",&a.num);
while(a.num<0)
{
puts("警告输入错误!
");
getchar();
printf("\n请输入编号:
");
scanf("%d",&a.num);
}
for(i=0;i{
if(a.num==met[i].num)
{
k=i;
if(x==0)printf_face();x=x+1;
if(k+1>=1000)b=0;
elseif(k+1>=100)b=1;
elseif(k+1>=10)b=2;
elseb=3;
if(met[k].num>=10000)c=0;
elseif(met[k].num>=1000)c=1;
elseif(met[k].num>=100)c=2;
elseif(met[k].num>=10)c=3;
elsec=4;
for(a2=0;a2
printf("%d",k+1);
for(a1=0;a1printf("%d",met[k].num);
printf("%-4s%-8d%-8d%-8d%-8d%-8d%s\n",met[k].name,met[k].mt,met[k].jrt,met[k].jct,met[k].gt,met[k].wt,met[k].zt);
}
}
if(k==-1)
{
system("cls");
puts("\n*******************************仪器仪表信息管理系统*****************************");
puts("\t\t\t*******3.查询仪器仪表信息*******");
printf("\n\t\t\t\t不存在此记录!
");
}
printf("\n\n\t\t\t\t1).重新此类查询\n\t\t\t\t2).重新其他查询\n\t\t\t\t3).退出查询系统\n\n\t\t\t请选择下一步操作:
[]\b\b");
scanf("%d",&j);
if(j==1||j==2)
{system("cls");
puts("\n*******************************仪器仪表信息管理系统*****************************");
puts("\t\t\t*******3.查询仪器仪表信息*******");}
while(j<1||j>3)
{
puts("警告输入错误!
");
printf("\n\t\t\t请选择下一步操作:
[]\b\b");
getchar();
scanf("%d",&j);
if(j==1||j==2)
{system("cls");
puts("\n*******************************仪器仪表信息管理系统*****************************");
puts("\t\t\t*******3.查询仪器仪表信息*******");}
}
if(j==1){search_1(y);}
elseif(j!
=2){puts("\t\t\t**********退出查询系统**********");printf_back(y);}
}
voidsearch_2(inty)
{
inti,j,k=-1,x=0;structmetera;inta1,a2,b,c,m[4]={0,0,0,0};
puts("\n\t\t\t\t2.按名称查询==>");
printf("\n\n请输入名称:
");
scanf("%s",a.name);
for(i=0;i{
if(strcmp(a.name,met[i].name)==0)
{
k=i;
if