C语言程序设计:通讯录程序设计
发布网友
发布时间:2022-04-20 18:31
我来回答
共1个回答
热心网友
时间:2024-02-25 12:17
简单通讯录管理程序,代码如下:#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
typedef
struct
student
*ST;
struct
student
{
char
stN[20];
char
stVal[128];
char
stNo[10];
char
stTel[12];
ST
next;
};
ST
head
=
NULL;
int
ShowNode()
{
char
no[20]
=
{0};
ST
t;
printf("输入姓名:");
scanf("%s",
no);
for
(t
=
head;
t;
t
=
t->next)
{
if
(!memcmp(t->stN,
no,
strlen(no)))
{
printf("姓名:%s,
地址:%s
邮编:%s
电话:%s\n",
t->stN,
t->stVal,
t->stNo,
t->stTel);
return
0;
}
}
printf("无此人信息\n");
return
0;
}
int
ChangeNode()
{
char
no[20];
ST
t;
printf("输入姓名:");
scanf("%s",
no);
for
(t
=
head;
t;
t
=
t->next)
{
if
(!memcmp(t->stN,
no,
strlen(no)))
{
printf("输入新的记录:\n");
printf("地址:");
scanf("%s",
t->stVal);
printf("邮编:");
scanf("%s",
t->stNo);
printf("英语成绩:");
scanf("%s",
t->stTel);
return
0;
}
}
printf("无此人信息\n");
return
0;
}
int
InsertNode()
{
ST
t;
t
=
(ST)malloc(sizeof
*t);
printf("输入姓名:");
scanf("%s",
t->stN);
printf("输入地址:");
scanf("%s",
t->stVal);
printf("输入邮编:");
scanf("%s",
t->stNo);
printf("输入电话:");
scanf("%s",
t->stTel);
t->next
=
head;
head
=
t;
return
0;
}
int
DelNode()
{
ST
x,
y;
char
no[20]
=
{0};
printf("输入姓名:");
scanf("%s",
no);
for
(x
=
y
=
head;
x;
y
=
x,
x
=
x->next)
{
if
(!memcmp(x->stN,
no,
strlen(no)))
{
if
(x
==y)
{
x
=
head
=
head->next;
y->next
=
NULL;
free(y);
return
0;
}
else
{
y->next
=
x->next;
x->next
=
NULL;
free(x);
return
0;
}
}
}
printf("无此学生\n");
return
0;
}
int
main(void)
{
int
i;
while(1)
{
printf("查询记录:1\n"
"更改记录:2\n"
"插入记录:3\n"
"删除记录:4\n"
"退出:5\n");
scanf("%d",
&i);
if
(1==i)
{
ShowNode();
}
else
if(2==i)
{
ChangeNode();
}
else
if(3==i)
{
InsertNode();
}
else
if(4==i)
{
DelNode();
}
else
if(5==i)
{
break;
}
else
{
printf("输入错误!请重新输入!\n");
continue;
}
}
return
0;
}