通讯录源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct Content//........................................结构体{
char name[20];
long number;
char dress[100];
struct Content *next;
}ML;
//ML* head=NULL;
ML* Found()
{
ML *p;
p=(ML *)malloc(sizeof(ML));//指针申请空间
if(p==NULL)
{
printf("创建失败!!!");
exit(0);
}
p->name;
p->number=0;
p->dress;
p->next=NULL;
return p;
}
void Imput(ML *head)//......................................联系人增添{
ML*p=Found();
p->next=head->next;
head->next=p;
printf("\n请输入联系人姓名:");
getchar();
gets(p->name);
printf("\n请输入电话号码::");
scanf("%ld",&p->number);
printf("\n请输入联系人地址:");
getchar();
gets(p->dress);
}
void Revise(ML *head)//.........................................修改
{
char s[10];
int ch;
long nu;
ML *p=Found();
printf("输入需要修改的联系人姓名:");
getchar();
gets(s);
p=head->next;
while(strcmp(p->name ,s))
{
p=p->next;
}
printf("\n-------------------------------------\n");
printf("|**********请输入操作编号***********|\n");
printf("| |\n");
printf("| 1、联系人姓名|\n");
printf("| 2、联系人电话|\n");
printf("| 3、联系人地址|\n");
printf("| 0、退出|\n");
printf("| |\n");
printf("|-----------------------------------|\n");
printf("请选择需要修改的内容:");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
printf("\n请输入名字:");
getchar();
gets(p->name);
printf("修改成功!\n");
break;
}
case 2:
{
printf("\n请输入电话:");
scanf("%ld",&nu);
p->number=nu;
printf("修改成功!\n");
break;
}
case 3:
{
printf("\n请输入地址:");
getchar();
gets(p->dress);
printf("修改成功!\n");
break;
}
default:
break;
}
}
void Delete(ML *head)//........................................删除{
char s[10];
ML *p,*d;
p=Found();
d=Found();
p=head->next;
head->next=p;
printf("输入要删除的联系人姓名:\n");
getchar();
gets(s);
d=head;
do
{
if(!strcmp(p->name ,s))
{
d->next=p->next;
free(p);
printf("删除成功!\n");
return;
}
d=p;
p=p->next;
}while(p!=NULL);
printf("该联系人不存在!!!\n");
}
void Res(ML *head)//.............................................查找
{
char s[10];
ML *p=Found();
p=head->next;
printf("输入要查找的联系人姓名\n");
getchar();
gets(s);
for(;p!=NULL;p=p->next)
{
if(!strcmp(p->name ,s))
{
printf("\n名字:%s",p->name);
printf("\n电话:%ld",p->number);
printf("\n地址:%s\n",p->dress);
return;
}
}
printf("该联系人不存在!!!\n");
}
void Browse(ML *head)//........................................浏览
{
ML *p=Found();
printf("\n**********************************");
if(head->next!=NULL)
{
printf("\n..................................\n");
printf("名字\t电话\t地址\t\n");
for(p=head->next;p!=NULL;p=p->next)
{
printf("%s\t%ld\t%s\t\n",p->name,p->number,p->dress);
}
}
else
printf("\n通讯录为空!!!\n");
printf("\n**********************************\n");
}
int Menu(ML *head)//....................................................菜单{
int ch;
printf("-------------------------------------\n");
printf("|**********请输入操作编号***********|\n");
printf("| |\n");
printf("| 1、添加联系人|\n");
printf("| 2、修改联系人|\n");
printf("| 3、删除联系人|\n");
printf("| 4、查找联系人|\n");
printf("| 5、浏览联系人|\n");
printf("| 0、退出|\n");
printf("| |\n");
printf("|-----------------------------------|\n");
printf("请选择:");
scanf("%d",&ch);
switch(ch)
{
case 1:
Imput(head);
break;
case 2:
Revise(head);
break;
case 3:
Delete(head);
break;
case 4:
Res(head);
break;
case 5:
Browse(head);
break;
default:
break;
}
return ch;
}
void main()//........................................主函数
{
ML *head=Found();
printf("-------------------------------------\n");
printf("|* * * * * * |\n");
printf("| * * * * |\n");
printf("| * * * * |\n");
printf("| * * * * * * |\n");
printf("| * * * 通讯录. * * * |\n");
printf("| |\n");
printf("| * * * * * * |\n");
printf("| * * * |\n");
printf("| * * * ---XXX * * |\n");
printf("|-----------------------------------|\n");
while(Menu(head));
}。