小鱼儿 c语言,小鱼儿请进.

小鱼儿请进.

您的程序都是些小错误,让我找得够呛,晕死了。您自己看看吧.

13a2f4bd84d8af35e7645442bb7a26a3.gif

#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

{

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值