?? shebeiguanli.c
字號:
case 4 : scanf("%s",repairmen); strcpy(infor[j-1].repairmen,repairmen);break;
case 5 : scanf("%s",lab); strcpy(infor[j-1].lab,lab); break;
case 6 : scanf("%s",discount); strcpy(infor[j-1].discount,discount); break;
case 7 : scanf("%s",factory); strcpy(infor[j-1].factory,factory); break;
}
for(i=0;i<n;i++)
fwrite(&infor[i],sizeof(struct eq_infor),1,fp);
fclose(fp);
printf("您還要繼續嗎(Y/N)?");getchar();c=getchar();
if(c=='N'||c=='n') flag=0;
}
jiemian(); //回到界面
}
void print_infor(int m) //打印用戶提定的設備信息
{
printf("*****@@@@@ 設 備 信 息 @@@@@*****\n\n");
printf("----編號: %ld\n",infor[m].num);
printf("----名稱: %s\n",infor[m].name);
printf("----類別: %s\n",infor[m].sort);
printf("----購買日期: %s\n",infor[m].date);
printf("----維護人: %s\n",infor[m].repairmen);
printf("----實驗室: %s\n",infor[m].lab);
printf("----折舊率: %s\n",infor[m].discount);
printf("----生產商: %s\n",infor[m].factory);
printf("----故障維護電話: %s\n",infor[m].tel);
printf("----破損耙費: %s\n",infor[m].posun);
printf("----遺損處理: %s\n",infor[m].yisun);
printf("*****@@@@@ 設 備 信 息 @@@@@*****\n\n");
}
void search() //查詢函數
{
int i,m,j,n=0;
FILE*fp;
long num;
char name[20], sort[20], date[20], repairmen[20];
char factory[20], tel[20], lab[20];
printf("----請您選擇查詢的方法:\n\n"); //按關鍵字的查詢方法
printf("----1設備編號 ----2設備名稱\n\n");
printf("----3設備類別 ----4設備購買日期\n\n");
printf("----5設備維護人 ----6設備所在實驗室\n\n");
printf("----7設備生產廠商 ----8設備故障維護電話\n\n");
scanf("%d",&j); //選擇查詢方法
if(j<=0||j>8)
{
printf("您的輸入有誤,請重新選擇查詢方法!\n\n");
scanf("%d",&j);
}
switch(j)
{
case 1: //按設備編號查詢
if((fp=fopen("eq_infor.txt","rb"))==NULL) //打開存放設備信息的文件
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備編號:\n\n");
scanf("%ld",&num);
for(i=0;!feof(fp);i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);//讀文件
if(num==infor[i].num) //對比編號
{
n++;
m=i;
print_infor(m); //打印查詢到的信息
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian(); //回到界面系統
}
}
if(n=0) //查不到指定的編號
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 2: //按設備名稱查詢
if((fp=fopen("eq_infor.txt","r"))==NULL)
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備名稱:\n\n");
scanf("%s",name); //對比名稱
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(name,infor[i].name)==0)
{
n++; //查詢到后,n+1
m=i;
print_infor(m); //打印查詢到的信息
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian(); //查詢完畢,回到界面
}
}
if(n=0) //查詢不到指定的設備名稱
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 3: //按設備類別查詢
if((fp=fopen("eq_infor.txt","r"))==NULL)
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備類別 :\n\n");
scanf("%s",sort);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(sort,infor[i].sort)==0) //對比類別
{
n++; //查詢到后,n+1
m=i;
print_infor(m); //打印查詢到的信息
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0) //查詢不到指定的設備類型
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 4:
if((fp=fopen("eq_infor.txt","r"))==NULL) //按購買日期查詢
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備購買日期:\n\n");
scanf("%s",date);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(date,infor[i].date)==0)
{
n++;
m=i;
print_infor(m);
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0)
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 5:
if((fp=fopen("eq_infor.txt","r"))==NULL) //按設備維護人查詢
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備維護人 :\n\n");
scanf("%s",repairmen);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(repairmen,infor[i].repairmen)==0)
{
n++;
m=i;
print_infor(m);
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0)
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 6: //按設備所在實驗室查詢
if((fp=fopen("eq_infor.txt","r"))==NULL)
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備所在實驗室:\n\n");
scanf("%s",lab);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(lab,infor[i].lab)==0)
{
n++;
m=i;
print_infor(m);
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0)
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 7: //按設備生產廠商查詢
if((fp=fopen("eq_infor.txt","r"))==NULL)
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備生產廠商 :\n\n");
scanf("%s",factory);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(factory,infor[i].factory)==0)
{
n++;
m=i;
print_infor(m);
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0)
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
case 8: //按設備故障維護電話查詢
if((fp=fopen("eq_infor.txt","r"))==NULL)
{
printf("----不能打開文件!\n\n");
return;
}
printf("----請輸入您要查詢的設備故障維護電話:\n\n");
scanf("%s",tel);
for(i=0;i<100;i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(tel,infor[i].tel)==0)
{
n++;
m=i;
print_infor(m);
printf("\n----查詢完畢,按任意鍵返回!\n\n");
getch();
system("cls");jiemian();
}
}
if(n=0)
printf("----您輸入的內容有誤,請核對后重新輸入!\n\n");
break;
}
}
void print_all() //打印所有設備的信息
{
FILE*fp; //定義指針
int i,j;
if((fp=fopen("eq_infor.txt","rb"))==NULL) //文件為空,不能打開
{
printf("不能打開文件!\n");
return;
}
for(i=0;fread(&infor[i],sizeof(struct eq_infor),1,fp)!=0;i++)
{
fseek(fp,i*sizeof(struct eq_infor),0);
fread(&infor[i],sizeof(struct eq_infor),1,fp); //讀存放設備信息的文件
printf("*****@@@@@ 設 備 信 息 @@@@@*****\n\n\n");
printf("----編號: %ld\n",infor[i].num);
printf("----名稱: %s\n",infor[i].name);
printf("----類別: %s\n",infor[i].sort);
printf("----購買日期: %s\n",infor[i].date);
printf("----維護人: %s\n",infor[i].repairmen);
printf("----實驗室: %s\n",infor[i].lab);
printf("----折舊率: %s\n",infor[i].discount);
printf("----生產商: %s\n",infor[i].factory);
printf("----故障維護電話: %s\n",infor[i].tel);
printf("----破損耙費: %s\n",infor[i].posun);
printf("----遺損處理: %s\n",infor[i].yisun);
printf("*****@@@@@ 設 備 信 息 @@@@@*****\n\n\n");
}
printf("\n請選擇需要服務的序號: 1:查詢 2:返回管理頁面\n");
scanf("%d",&j); //打印后,提供修改和查詢信息
getchar();
while(j>2)
{
printf("\n你輸入有誤 請重新輸入:");
scanf("%d",&j);
getchar();
}
switch(j)
{
case 1: system("cls");search();break; //查詢信息
case 2: system("cls");jiemian();break; //回到界面
}
fclose(fp); //關閉文件
}
void tongji() //分類統計設備的信息
{
FILE * fp;
char k1[3]="A"; //假設存在A,B,C,D,E,F六種類型
char k2[3]="B";
char k3[3]="C";
char k4[3]="D";
char k5[3]="E";
char k6[3]="F";
int a, b, c, d,e,f,i; //a,b,c,d,e,f分別為A,B,C,D,E,F六種類型的數量
a=0; b=0; c=0; //它們的初值為0
d=0; e=0;f=0;
if((fp=fopen("eq_infor.txt","rn"))==NULL) //文件為空,不能打開
{
printf("不能打開文件\n");
return;
}
for(i=0;!feof(fp);i++)
{
fread(&infor[i],sizeof(struct eq_infor),1,fp);
if(strcmp(infor[i].sort,k1)==0) a=a+1;
if(strcmp(infor[i].sort,k2)==0) b=b+1;
if(strcmp(infor[i].sort,k3)==0) c=c+1;
if(strcmp(infor[i].sort,k4)==0) d=d+1;
if(strcmp(infor[i].sort,k5)==0) e=e+1;
if(strcmp(infor[i].sort,k6)==0) f=f+1;
}
printf("\n其中A類設備有%d\n",a); //輸出各類型的數量
printf("其中B類設備有%d\n",b);
printf("其中C類設備有%d\n",c);
printf("其中D類設備有%d\n",d);
printf("其中E類設備有%d\n",e);
printf("其中F類設備有%d\n\n\n",f);
fclose(fp); //關閉文件
printf("輸出分類信息完畢,任意鍵返回\n");
getch();
system("cls");
jiemian(); //回到界面
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -