您的程序都是些小错误,让我找得够呛,晕死了。您自己看看吧.
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#include "conio.h"
#define null 0
#define LEN sizeof(Lnode)
typedef struct
{
int num;
char name[15];
int age;
char adress[10];
}Stud;
typedef struct LNode
{
Stud Stu;
struct LNode *next;
}Lnode,*LinkList;
FILE *fp;
LinkList L=null;
void Creat_Adrbok();
void Insert_Adrbok();
void Delete_Adrbok();
void Change_Adrbok();
void Find_Adrbok();
void Show_Adrbok();
int menu();
void Creat_Adrbok()
{
int i,t;
LinkList p,s;
L=(LinkList)malloc(sizeof(Lnode));
L->next=null;
printf("Please input the num of the datestruct:\n");
scanf("%d",&i);
for(t=0;t<i;t++)
{
s=(LinkList)malloc(sizeof(Lnode));
printf("请按结构顺序输入第%d个学生的数据:",t+1);
scanf("%d%s%d%s",&s->Stu.num,s->Stu.name,&s->Stu.age,s->Stu.adress);
s->next=L->next;
L->next=s;
}
}
void Insert_Adrbok()
{
LinkList s=null,p=L;
while(p->next)p=p->next;
s=(LinkList)malloc(sizeof(Lnode));
printf("请输入要添加学生的信息\n");
scanf("%d%s%d%s",&s->Stu.num,s->Stu.name,&s->Stu.age,s->Stu.adress);
p->next=s;
s->next=null;
p=null;
}
void Delete_Adrbok()
{
LinkList p,q;
int i;
p=L;
printf("请输入要删除学生的学号");
scanf("%d",&i);
while((p->next)&&(i!=p->next->Stu.num))
p=p->next;
if(!(p->next))
{
printf("输入值错误,找不到此信息\n");
exit(-2);
}
q=p->next;
p->next=q->next;
p=null;
q=null;
}
void Change_Adrbok()
{
LinkList p=L->next;
int i;
printf("请输入要改的学生信息的学号\n");
scanf("%d",&i);
while(p&&(i!=p->Stu.num))
p=p->next;
if(!p)
{
printf("输入值错误,找不到此信息\n");
exit(-2);
}
printf("请输入要改的内容\n");
scanf("%d%s%d%s",&p->Stu.num,p->Stu.name,&p->Stu.age,p->Stu.adress);
p=null;
}
void Find_Adrbok()
{
LinkList p=L;
int i;
printf("请输入要查询的学生信息的学号:\n");
scanf("%d",&i);
while(p&&(i!=p->Stu.num))
p=p->next;
if(!(p))
{
printf("输入值错误,找不到此信息\n");
exit(-2);
}
printf("找到本人的资料如下:\n");
printf("%5d %5s %5d %5s\n",p->Stu.num,p->Stu.name,p->Stu.age,p->Stu.adress);
}
void Show_Adrbok()
{
LinkList p=L->next;
printf("通讯录内容如下 :\n");
while(p)
{
printf("%5d %5s %5d %5s\n",p->Stu.num,p->Stu.name,p->Stu.age,p->Stu.adress);
p=p->next;
}
p=null;
}
int menu()
{
int x;
printf("1-创建一个通讯录:\n");
printf("2-向通讯录添加内容:\n");
printf("3-删除通讯录的一项内容:\n");
printf("4-修改通讯录某项信息:\n");
printf("5-查找某个人的信息并显示:\n");
printf("6- 显示出通讯录的信息:\n");
printf("7- 退出菜单:\n");
do
{
printf("请选择一项功能:\n");
scanf("%d",&x);
}while(x<1||x>7);
return x;
}
int main()
{
LinkList p;
char ch='y';
p=L;
while(ch=='y')
{
switch(menu())
{
case 1:Creat_Adrbok(); break;
case 2:Insert_Adrbok();break;
case 3:Delete_Adrbok();break;
case 4:Change_Adrbok();break;
case 5:Find_Adrbok(); break;
case 6:Show_Adrbok(); break;
default:;
}
puts("continue to operate?y/n");
fflush(stdin);
ch=getchar();
}
fp=fopen("adrbok.txt","wt");
if(fp==null)exit(1);
p=L->next;
do
{
fprintf(fp,"%d%s%d%s\n",p->Stu.num,p->Stu.name,p->Stu.age,p->Stu.adress);
p=p->next;
}while(p!=null);
fclose (fp);
system("pause");
return 0;
}