structaddbok*creat(void)*引用结构体addbok*
{
inti=2;
structaddbok*p1,*p2,*========================Enteranewrecord,STOPby\"0\"===========================");
printf("\n");
printf("NO.1:
\n");
printf("Num.:
");
scanf("%ld",&p1->num);
if(p1->num==0)
{printf("\n\n");
printf("\nWrittenover\n");
getch();
system("cls");
return(=n+1;
if(n==1){");
printf("NO.%d:
\n",i);
i=i+1;
printf("Num.:
");
scanf("%ld",&p1->num);
if(p1->num==0)
{p2->next=NULL;
printf("\n\n");
printf("\nWrittenover\n");
getch();
system("cls");
return(\n");
printf("\nWrittenover\n");
getch();
system("cls");
return(intn;
structaddbok*add(structaddbok*");
while(yy!
=0)
{
p1=(structaddbok*)malloc(LEN);
p0=p2=");
printf("\n");
printf("Num.:
");
scanf("%ld",p1->num);
printf("Name:
");
scanf("%s",p1->nam);
printf("Tel.:
");
scanf("%s",p1->tel);
printf("Sex:
");
scanf("%s",p1->sex);
printf("Age:
");
scanf("%d",&p1->age);
printf("Birthday:
");
scanf("%s",p1->bir);
printf("Dormitory:
");
scanf("%s",p1->dor);
if(p2==NULL)
{
n=n+1;
=n+1;
p2->next=p1;
p1->next=NULL;
}
else
{
while(p2->next!
=NULL)
{
p0=p2;
p2=p2->next;
}
n=n+1;
p2->next=p1;
p1->next=NULL;
}
}
printf("\n----Writtenover----\n");
printf("\nEnter\"0\"tothemenu,Anykeygoon:
");
scanf("%d",&yy);
}
system("cls");
return(intn;
structaddbok*del(structaddbok*=================================Deleterecord=================================\n");
while(yy!
=0)
{
if(");
gotoend;}
printf("\nEnterthenum.youwanttodelete:
");
scanf("%ld",&num);
p1==n-1;
printf("\n-----~Delete~------\n");
gotoend;}
else
{p2->next=p1->next;n=n-1;
printf("\n-----~Delete~------\n");
gotoend;}
}
else{printf("\nSorry,cannotfindtherecord!
\n");
gotoend;}
end:
{printf("\nEnter\"0\"tothemenu,Anynumbergoon:
");
scanf("%d",&yy);}
}
system("cls");
return(intn;
structaddbok*modify(structaddbok*================================Modifyarecord================================\n");
if(===Norecordnow===\n");
return(");
printf("%-12s%-12s%-12s%-10s%-10s%-10s%-12s","Num.","Name","Tel.","Sex","Age","Birthday","Dormitory");
printf("%-12ld%-12s%-12s%-10s%-10d%-10s%-12s\n",p1->num,p1->nam,p1->tel,p1->sex,p1->age,p1->bir,p1->dor);
printf("\n================================================================================\n");
while(yy!
=0)
{printf("\n*************WhichonedoyouwanttoModify?
***************\n");
printf("1:
Num.2:
Name\n");
printf("3:
Tel.4:
Age\n");
printf("\n************************************************************\n");
printf("yourchoose:
");
scanf("%d",&x);
switch(x)
{
case1:
printf("OriginNum.:
%ld\n",p1->num);
printf("PleaseinputanewNum.:
");
scanf("%ld",&num);
p1->num=num;
printf("\n**Success!
**\n");
break;
case2:
printf("Originname\n",p1->nam);
printf("\nPleaseinputanewname:
");
scanf("%s",p1->nam);
printf("\n**Success!
**\n");
break;
case3:
printf("OriginTel.:
%s===\n",p1->tel);
printf("\nPleaseinputanewTel.:
");
scanf("%s",p1->tel);
printf("\n**Success!
**\n");
break;
case4:
printf("Originage:
%d===\n",p1->age);
printf("\nPleaseinputthenewage:
");
scanf("%d",&p1->age);
printf("\n**Success!
**\n");
break;
}
printf("\nEnter\"0\"tothemenu,Anynumbergoon:
");
scanf("%d",&yy);
}
}
else{printf("\nSorry,cannotfindtherecordyouwant!
\n");getch();}
system("cls");
return(intn;
structaddbok*read(void)
{
inti;
structaddbok*p1,*p2,*kt;
FILE*fp;
system("cls");
fp=fopen("addbok.txt","rb");
n=getw(fp);
p1=p2=(structaddbok*)malloc(LEN);
kt=p1;
fread(p1,sizeof(structaddbok),1,fp);
for(i=0;i<(n-1);i++)*此语句可以这样用我不知道,网上翻来的*
{
p1=(structaddbok*)malloc(LEN);
p2->next=p1;
p2=p1;
fread(p1,sizeof(structaddbok),1,fp);*读写一个数据块*
}
fclose(fp);
printf("\n===AlreadyReading===\n\n");
getch();
return(kt);
}
具体实现:
从外部文件读取addbok.txt,addbok.txt是保存了用户所输入的记录的文件。
其中for语句有点顺序的问题,可是我不知道怎么改。
save.c
#includevoidsave(structaddbok*");
printf("*1:
AutoSaveasaddbook_yy.txt*\n");
printf("*2:
Coveratxt*\n");
printf("*3:
Renameatxt*\n");
printf("************************************************************\n");
v=getch();
switch(v)
{case'1':
system("cls");
if((fp=fopen("addbok.txt","wb"))==NULL)
{
printf("cannotopenthefile\n");
return;
}
putw(n,fp);
for(i=0;i{
if(fwrite(p,sizeof(structaddbok),1,fp)!
=1)
{printf("Writeerror\n");}
p=p->next;
}
fclose(fp);
printf("\n===Success!
===\n\n");
getch();break;
case'2':
clrscr();
printf("\n\n\n\n\t\tEnterthefilename:
");
scanf("%s",&tr);
system("cls");
if((fp=fopen(tr,"wb"))==NULL)
{
printf("Cannotopenthefile\n");
return;
}
putw(n,fp);
for(i=0;i{
if(fwrite(p,sizeof(structaddbok),1,fp)!
=1)
{printf("Writeerror\n");}
p=p->next;
}
fclose(fp);
printf("\n===Success!
===\n\n");
getch();break;
case'3':
clrscr();
printf("\n\n\n\n\t\tEnterthefilename:
");
scanf("%s",&tr);
system("cls");
if((fp=fopen(tr,"wb"))==NULL)
{
printf("Cannotopenthefile\n");
return;
}
putw(n,fp);
for(i=0;i{
if(fwrite(p,sizeof(structaddbok),1,fp)!
=1)
{printf("Writeerror\n");}
p=p->next;
}
fclose(fp);
printf("\n===Success!
===\n\n");
getch();break;
}
}
具体实现:
保存记录到外部文件addbook_yy.txt。
search.c
#includevoidsearch(structaddbok******************************SearchRecord*********************************\n");
printf("\n===========================NoRecord!
=======================================\n");
getch();
system("cls");
return;}
while(j!
=0)
{
printf("\n*****************************SearchRecord*********************************\n");
printf("Choosewahtyouwant:
\n");
printf("\n1:
Num.\n2:
Name\n3:
Tel.\n4:
Dormitry\n\t\t");
b=getch();
switch(b)
{case'1':
printf("PleaseinputtheNum.:
");
scanf("%ld",&t);
printf("\n");
for(i=0,k=0;i{
if((p->num)==t)
{k=1;
break;
}p=p->next;
}
if(k==0)
{printf("****Sorry,cannotfind!
****\n");}
else
{
printf("\n================================================================================");
PR;
printf("%-12ld%-12s%-12s%-10s%-10d%-10s%-12s\n",p->num,p->nam,p->tel,p->sex,p->age,p->bir,p->dor);
printf("================================================================================\n");
}
printf("\n");
printf("\nEnter\"0\"tothemenu,Anynumbergoon:
");
scanf("%d",&j);
p=");
for(i=0,k=0;i{
if((0==strcmp(p->nam,tr)))
{k=1;
break;
}p=p->next;
}
if(k==0)
{printf("****Sorry,cannotfind!
****\n");}
else
{
printf("\n================================================================================");
PR;
printf("%-12ld%-12s%-12s%-10s%-10d%-1