#include<stdio.h>
#define NUM 100
void input()
;void search()
;void search_num();
void dele()
;void dele_name();
void dele_num()
;void modi()
;void modi_num();
void output()
;void stat()
;void fun()
;void run();
struct emploee /*èå·¥æ°æ®ç»æ*/
{
char no[5];
char name[8];
char sex[3];
int age;
int salar;
}emp[NUM],newemp;
main()
{int x;
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(" 0. éåºç³»ç»\n");
printf("\n");
printf("*** 欢è¿ä½¿ç¨è工工èµç®¡çç³»ç» ***\n");
printf("请éæ©(0-8):\n");
scanf("%d",&x);
switch(x)
{
case 1: input();break;
case 2: search();break;
case 3: modi();break;
case 4: dele();break;
case 5: output();break;
case 6: stat();break;
case 7: run();break;
case 8: fun();break;
default:printf("\n Wrong!");
}
if(x==0)break;
}
}
void input()
{
FILE *fp;
int n,i;
if ((fp=fopen("emp","wb"))==NULL)
{
printf("ä¸è½å»ºç«empæ件\n");
exit(1);
}
printf("è¾å
¥è工人æ°:");
scanf("%d",&n);
printf("è¾å
¥æ ¼å¼:èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ<Enter>\n");
for(i=0;i<n;i++) /* 循ç¯è·ån个èå·¥è®°å½ */
{
printf("第%d个èå·¥:",i+1);
scanf("%s%s%s%d%d",emp[i].no,emp[i].name,emp[i].sex,
&emp[i].age,&emp[i].salar);
}
for(i=0;i<n;i++) /*å°n个è工记å½åå
¥æ件*/
fwrite(&emp[i],sizeof(struct emploee),1,fp);
fclose(fp);
}
/*************************ç»è®¡æ¨¡å**********************/
void stat( )
{
FILE *fp;
int n,num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("ä¸è½æå¼empæ件\n");
exit(1);
}
printf("å·¥èµæ°:");
scanf("%d",&num);
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
for(n=0;fread(&emp,sizeof(struct emploee),1,fp);n++)
if(emp[n].salar>=num)
printf("%6d%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar);
fclose(fp);
}
/********************å é¤æ¨¡å*******************/
void dele()
{
int x;
while(1)
{
printf("\n\n\t\tå é¤åèå\n");
printf("\t\t*********\n");
printf("\t\t 1.æèå·¥å·å é¤è®°å½\n");
printf("\t\t 0.è¿å主èå\n");
printf("\t\t*********\n");
printf("\t 请éæ©(0-1):");
scanf("%d",&x);
switch(x)
{case 1:dele_num();break;
default:printf("\nWrong!");
}
if(x==0)break;
}
}
void dele_num()
{
FILE *fp;
int i,j,n;
char num[5];
if((fp=fopen("emp","rb"))==NULL)
{
printf("ä¸è½æå¼empæ件\n");
exit(1);
}
printf("å é¤å:\n");
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp);n++)
printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar); /*n为empæ件ä¸è®°å½æ°*/
printf("è¦å é¤çèå·¥å·:");
scanf("%s",num);
for(i=0;(strcmp(emp[i].no,num)!=0&&i<n);i++)
if(i>=n)
{
printf("\t没æ%sèå·¥å·çèå·¥\n",num);
exit(2);
}
fclose(fp);
fp=fopen("emp","w+");
if(n==1) /*ä¸ä¸ªè®°å½å·²ç»å é¤äº*/
{
fclose(fp);
exit(3);
}
for(j=0;j<i;j++)
fwrite(&emp[j],sizeof(struct emploee),1,fp);
for(j=i+1;j<n;j++)
fwrite(&emp[j],sizeof(struct emploee),1,fp);
printf("å é¤å:\n");
fseek(fp,0,SEEK_SET);
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
printf("%6s%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/********************ä¿®æ¹æ¨¡å*******************/
void modi()
{
int x;
while(1)
{
printf("\n\n\t\tä¿®æ¹åèå\n");
printf("\t\t*********************\n");
printf("\t\t1. æèå·¥å·ä¿®æ¹\n");
printf("\t\t0. è¿å主èå\n");
printf("\t\t*********************\n");
printf("\t请éæ©(0-1):");
scanf("%d",&x);
switch(x)
{
case 1:modi_num();break;
default:printf("\nè¾é误!");
}
if(x==0)break;
}
}
void modi_num()
{
FILE *fp;
int i,j;
char num[5];
if((fp=fopen("emp","rb+"))==NULL)
{
printf("ä¸è½ æå¼empæ件\n");
exit(1);
}
printf("è¦ä¿®æ¹çèå·¥å·:");
scanf("%s",num);
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num))break;
if(feof(fp))
{
printf("\t没æ%sèå·¥å·çèå·¥\n",num);
exit(2);
}
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
printf("è¾å
¥æ ¼å¼:èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ<Enter>\n");
printf("第%d个记å½:",i+1);
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,
&newemp.salar);/*è·åæ°çè工记å½*/
fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR);
/*æ件æéæå该修æ¹çè®°å½å¼å¤´*/
fwrite(&newemp,sizeof(struct emploee),1,fp);/*ç¨newempè¦çå½åè®°å½*/
printf(" ä¿®æ¹å:\n");
fseek(fp,0,SEEK_SET);/*æ¾ç¤ºä¿®æ¹åçæ件æ°æ®*/
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/*************************æ¥è¯¢æ¨¡å***********************/
void search( )
{
int x;
while(1)
{
printf("\n\n\t\tæ¥åèå\n");
printf("\t\t********************\n");
printf("\t\t 1.æèå·¥å·æ¥è¯¢\n");
printf("\t\t 0.è¿å主èå\n");
printf("\t\t********************\n");
printf("\t请éæ©(0-1):");
scanf("%d",&x);
switch(x)
{
case 1:search_num();break;
default :printf("\n Wrong!");
}
if(x==0) break;
}
}
void search_num()
{
FILE *fp;
int i;
char num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("ä¸è½æå¼empæ件\n");
exit(1);
}
printf("è¦æ¥è¯¢çèå·¥å·:");
scanf("%s",num);
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num)) break;
if(feof(fp))
{
printf("\tæ¥æ æ¤äºº\n");
exit(2);
}
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}
/*******************è¾åºæ¨¡å********************/
void output()
{int i;
FILE *fp;
if((fp=fopen("emp","r"))==NULL)
{printf("ä¸è½æå¼empæ件\n");
exit(0);
}
printf("è®°å½å· èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
{
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
}
fclose(fp);
}
/******************追å 模å*******************/
void run()
{
FILE *fp;
int n,i,j;
if((fp=fopen("emp","ab+"))==NULL)
{printf("ä¸è½æå¼empæ件\n");
exit(0);
}
printf("è¦è¿½å çè工人æ°:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("è¾å
¥æ ¼å¼:èå·¥å· å§å æ§å« å¹´é¾ å·¥èµ<enter>\n");
printf("è工记å½:");
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,
&newemp.salar);
/*è·åä¸ä¸ªè工记å½*/
fwrite(&newemp,sizeof(struct emploee),1,fp);
/*å°è¯¥è工记å½åå
¥æ件*/
}
fclose(fp);
}
/*******************æ¾ç¤ºæ¨¡å****************/
void fun()
{printf("\t\t******************************************\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t* è°¢ è°¢ 使 ç¨ ! *\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t******************************************\n");
}
温馨提示:答案为网友推荐,仅供参考