#include "stdio.h" #include "conio.h" struct qq { char num[12]; char name[10]; char age[2]; }Qq[1]; main() { int kk=1;char choice; loop2 : init(); loop : scanf("%c",&choice); switch(choice) { case 'n': case 'N': newf();break; case 'a': case 'A': break; case 'l': case 'L': system("cls");listf();getch();system("cls");goto loop2; case 'f': case 'F': findf();getch();goto loop2; case 'd': case 'D': deletef();getch();goto loop2; case 'q': case 'Q': return 0; default: goto loop; } while(kk==1) { addf(); printf("enter 1 to continue add.\n"); scanf("%d",&kk); system("cls"); } goto loop2; } int init() { printf("\n**************************************\n"); printf("******第一次用本程序请按n(new)********\n"); printf("*********增加记录请按a(add)***********\n"); printf("*******查看记录情况请按l(list)********\n"); printf("*****查询某个记录情况请按f(find)******\n"); printf("********删除记录请按d(delete)*********\n"); printf("***********退出请按q(quit)************\n"); printf("**************************************\n"); } int newf() { FILE *fp,*Fp; int n; Fp=fopen("QQ","w"); fclose(Fp); fp=fopen("num","w"); n=0; fprintf(fp,"%d",n); fclose(fp); } int addf() { FILE *fp1,*fp;int n; printf("**************************************\n"); printf("******请依次输入QQ号,姓名,年龄.*******\n"); printf("**************************************\n"); fp1=fopen("QQ","a"); scanf("%s%s%s",&Qq[0].num,&Qq[0].name,&Qq[0].age); fwrite(&Qq[0],sizeof(struct qq),1,fp1); fclose(fp1); fp=fopen("num","r"); fscanf(fp,"%d",&n); fclose(fp); fp=fopen("num","w"); n++; fprintf(fp,"%d",n); fclose(fp); } int listf() { FILE *fp;int n,i,k=0; fp=fopen("num","r"); fscanf(fp,"%d",&n); fclose(fp); fp=fopen("QQ","r"); for (i=0;i<n;i++) { fread(&Qq[0],sizeof(struct qq),1,fp); printf("QQ:%s\nname:%s\nage:%s\n\n\n",&Qq[0].num,&Qq[0].name,&Qq[0].age); k++; if (k%4==0) {printf("\nput any key continue\n"); getch();system("cls");k=0;} } fclose(fp); } int findf() { char namef[10];int n,i; FILE *fp; printf("\n*******请输入姓名********\n"); scanf("%s",&namef); fp=fopen("num","r"); fscanf(fp,"%d",&n); struct qq q[n]; fclose(fp); fp=fopen("QQ","r"); for (i=0;i<n;i++) { fread(&q[i],sizeof(struct qq),1,fp); if (strcmp(q[i].name,namef)==0) { printf("QQ:%s\nname:%s\nage:%s\n\n\n",q[i].num,q[i].name,q[i].age); fclose(fp); return 0; } } printf("sorry, the name can't be found.\n"); printf("put any key continue.\n"); fclose(fp); } int deletef() { char namef[10];int n,i,kk=-1; FILE *fp; printf("\n*******请输入要删除QQ人的姓名********\n"); scanf("%s",&namef); fp=fopen("num","r"); fscanf(fp,"%d",&n); struct qq q[n]; fclose(fp); fp=fopen("QQ","r"); for (i=0;i<n;i++) { fread(&q[i],sizeof(struct qq),1,fp); if (strcmp(q[i].name,namef)==0) kk=i; } fclose(fp); if (kk==-1) { printf("sorry, the name can't be found.\n"); printf("put any key continue.\n"); return 0; } else fp=fopen("QQ","w"); for (i=0;i<kk;i++) fwrite(&q[i],sizeof(struct qq),1,fp); for (i=kk+1;i<n;i++) fwrite(&q[i],sizeof(struct qq),1,fp); fclose(fp); n=n-1; fp=fopen("num","w"); fprintf(fp,"%d",n); fclose(fp); }

评论