您的位置:首页 > 编程语言 > C语言/C++

用C语言实现简单通讯录

2017-05-16 18:10 459 查看

完成一个通讯录,实现以下这几个功能:

1. 添加联系人信息

2. 删除指定联系人信息

3. 查找指定联系人信息

4. 修改指定联系人信息

5. 显示所有联系人信息

6. 清空所有联系人

7. 以名字排序所有联系人

具体实现 如下:

头文件:

contact.h:

#ifndef ___CONTACT_H__
#define __CONTACT_H__
#include <stdio.h>
#include <string.h>
typedef struct  PeoInfo
{
char name[20];
char sex[10];
int age;
char address[30];
char tel[10];
}PeoInfo;
typedef struct Contact
{
PeoInfo data[1000];
int count;
}Contact;
void menu();
void add_con(Contact* pcon);
void del_con(Contact* pcon);
int cmp(Contact* pcon,char name[]);
void find_con(Contact* pcon);
void empty_con(Contact* pcon);
void sort_con(Contact* pcon);
void mod_con(Contact* pcon);
void show_con(Contact* pcon);
#endif //__CONTACT_H__


contact.c:

主要实现过程:

#define _CRT_SECURE_NO_WARNINGS 1
#include "contact.h"
//1.    添加联系人信息
//2.    删除指定联系人信息
//3.    查找指定联系人信息
//4.    修改指定联系人信息
//5.    显示所有联系人信息
//6.    清空所有联系人
//7.    以名字排序所有联系人
void menu()
{
printf("***********************************\n");
printf("**********1:添加   2:删除**********\n");
printf("**********3:查找   4:修改**********\n");
printf("**********5:显示   6:清空**********\n");
printf("*****
4000
*****7:排序   0:退出**********\n");
printf("***********************************\n");
}
int cmp(Contact *pcon,char name[])
{
int i = 0;
for(i=0;i<pcon->count;i++)
{
if(strcmp(pcon->data[i].name,name)==0)
{
return i;
}
}
return -1;
}
void add_con(Contact *pcon)
{
if(pcon->count>1000)
{
printf("空间已满\n");
}
else
{
printf("请输入姓名>");
scanf("%s",pcon->data[pcon->count].name);
printf("请输入性别>");
scanf("%s",pcon->data[pcon->count].sex);
printf("请输入年龄>");
scanf("%d",&pcon->data[pcon->count].age);
printf("请输入地址>");
scanf("%s",pcon->data[pcon->count].address);
printf("请输入电话>");
scanf("%s",pcon->data[pcon->count].tel);
}
pcon->count++;
}
void del_con(Contact* pcon)
{
int ret = 0;
int input  = 0;
int i = 0;
char name[20];
printf("请输入你要删除的人的姓名>");
scanf("%s",name);
ret = cmp(pcon,name);
if(ret == -1)
{
printf("查无此人\n");
return;
}
else
{
printf("****确定是否删除?*****\n");
printf("****1:删除  2:取消****\n");
scanf("%d",&input);
if(input==2)
{
printf("取消成功\n");
return;
}
else
{
for(i=ret;i<pcon->count-1-1;i++)
{
pcon->data[i] = pcon->data[i+1];
}
printf("删除完毕\n");
return;
}
}
}
void find_con(Contact* pcon)
{
int ret = 0;
char name[20];
printf("请输入要查找那个人的名字>");
scanf("%s",name);
ret = cmp(pcon,name);
if(ret == -1)
{
printf("查无此人\n");
return;
}
else
{
printf("姓名:%s\n",pcon->data[ret].name);
printf("性别:%s\n",pcon->data[ret].sex);
printf("年龄:%d\n",pcon->data[ret].age);
printf("地址:%s\n",pcon->data[ret].address);
printf("电话:%s\n",pcon->data[ret].tel);
}
}
void mod_con(Contact* pcon)
{
int ret = 0;
char name[20];
printf("请输入要修改的人的名字>");
scanf("%s",name);
ret = cmp(pcon,name);
if(ret == -1)
{
printf("查无此人\n");
return;
}
else
{
printf("修改的名字>");
scanf("%s",pcon->data[ret].name);
printf("修改的性别>");
scanf("%s",pcon->data[ret].sex);
printf("修改的年龄>");
scanf("%d",&pcon->data[ret].age);
printf("修改的地址>");
scanf("%s",pcon->data[ret].address);
printf("修改的电话>");
scanf("%s",pcon->data[ret].tel);
}
printf("修改完毕\n");
}
void show_con(Contact* pcon)
{
int i = 0;
if(pcon->count == 0)
{
printf("没有成员\n");
return;
}
for(i=0;i<pcon->count;i++)
{
printf("姓名:%s\n",pcon->data[i].name);
printf("性别:%s\n",pcon->data[i].sex);
printf("年龄:%d\n",pcon->data[i].age);
printf("地址:%s\n",pcon->data[i].address);
printf("电话:%s\n",pcon->data[i].tel);
}
}
void empty_con(Contact* pcon)
{
int input = 0;
printf("***** 确定要清空 ?*****\n");
printf("*****1:清空  2:取消****\n");
printf("请选择>");
scanf("%d",&input);
if(input == 2)
{
printf("取消成功\n");
return;
}
if(input)
pcon->count = 0;
}
void sort_con(Contact* pcon)
{
int i = 0;
int j = 0;
for(i=0;i<pcon->count-1;i++)
{
for(j=0;j<pcon->count-1-i;j++)
{
if(strcmp(pcon->data[j].name,pcon->data[j+1].name)>0)
{
PeoInfo temp;
temp = pcon->data[j];
pcon->data[j] = pcon->data[j+1];
pcon->data[j+1] = temp;
}
}
}
printf("排序完成\n");
}


test.c:

#define  _CRT_SECURE_NO_WARNINGS 1
#include "contact.h"
enum OP
{
EXIT,
ADD,
DEL,
FIND,
MOD,
SHOW,
EMPTY,
SORT
};
int main()
{
Contact con;
int input = 0;
con.count = 0;
do
{
menu();
printf("请选择>");
scanf("%d",&input);
switch(input)
{
case ADD:
add_con(&con);
break;
case DEL:
del_con(&con);
break;
case FIND:
find_con(&con);
break;
case MOD:
mod_con(&con);
break;
case SHOW:
show_con(&con);
break;
case EMPTY:
empty_con(&con);
break;
case SORT:
sort_con(&con);
break;
case EXIT:
break;
default:
printf("选择错误\n");
}
} while (input);
return 0;
}


输入信息:



排序:



然后打印:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息