要求:通讯录可以存储1000个人的信息,每个人的信息包括姓名,性别,年龄,电话号码,住址等。
创建两个结构体实现:一个实现通讯录 ,一个创建计数器,写多个函数 分别实现
1.添加联系人信息
2.删除指定联系人信息
3.查找指定联系人信息
4.修改指定联系人信息
5.现实联系人信息
6.清空所有联系人
头文件如下:
#ifndef __CONTACT_H__
#define __CONTACT_H__
#define NAME_LEN 20
#define SEX_LEN 5
#define TELE_LEN 12
#define ADDR_LEN 20
#defineMAX_PEO 1000
typedef struct Person
{
char name[NAME_LEN];
int age;
char sex[SEX_LEN];
char tele[TELE_LEN];
char addr[ADDR_LEN];
}PEO,*PPEO;
typedef struct Contact
{
PEO dhb[MAX_PEO];//存储人的信息
int count;//记录有效个数
}PCON,*Pcon;
void add_peo(Pcon pcon);
void del_peo(Pcon pcon);
void search(Pcon pcon);
void modify(Pcon pcon);
void show(Pcon pcon);
void clear(Pcon pcon);
#endif
代码片:
#include"head.h"
#include
#include
void menu()
{
printf("**** 登陆页面 ****\n");
printf("**** 主页面 ****\n");
printf("**** 1.输入通讯录 ****\n");
printf("**** 2.删除通讯录显示通讯录 ****\n");
printf("**** 3.显示通讯录 ****\n");
printf("**** 4.查找通讯录 ****\n");
printf("**** 5.修改通讯录 ****\n");
printf("**** 6.清空函数 ****\n");
}
int find(char *na,Pcon pcon)
{
int i=0;
for(i=0;icount;i++)
{
if(strcmp(na,pcon->dhb[i].name)==0)
{
return i;
}
else
{
printf("没有你要查找的值,请重新输入:");
return -1;
}
}
}
void add_peo(Pcon pcon)
{
if(pcon->count
{
printf("请输入联系人信息:\n");
printf("请输入姓名\n: ");
scanf("%s",pcon->dhb[pcon->count].name);
printf("请输入性别\n: ");
scanf("%s",pcon->dhb[pcon->count].sex);
printf("请输入电话号码\n: ");
scanf("%d",pcon->dhb[pcon->count].tele);
printf("请输入住址\n: ");
scanf("%s",pcon->dhb[pcon->count].addr);
printf("请输入年龄\n: ");
scanf("%d",&pcon->dhb[pcon->count].age);
pcon->count++;
}
}
void show(Pcon pcon)
{
int i;
for(i=0;icount;i++)
{
printf("姓名:%s\n",pcon->dhb[i].name);
printf("性别:%s\n",pcon->dhb[i].sex);
printf("年龄:%d\n",pcon->dhb[i].age);
printf("电话号码:%s\n",pcon->dhb[i].tele);
printf("地址:%s\n",pcon->dhb[i].addr);
}
}
void search(Pcon pcon)
{
int i;
int ret;
char name[NAME_LEN];
printf("请输入要查找的姓名:");
scanf("%s",name);
ret=find(name,pcon);
if(ret==-1)
printf("你查找的名字不存在\n");
else
{
printf("姓名:%s\n",pcon->dhb[ret].name);
printf("性别:%s\n",pcon->dhb[ret].sex);
printf("年龄:%d\n",pcon->dhb[ret].age);
printf("电话号码:%s\n",pcon->dhb[ret].tele);
printf("地址:%s\n",pcon->dhb[ret].addr);
}
}
void del_peo(Pcon pcon)
{
int ret,index;
char name[NAME_LEN];
printf("请输入要查找的姓名:");
scanf("%s",name);
ret=find(name,pcon);
if(ret!=-1)
{
for(index=ret;indexcount-1;index++)
{
pcon->dhb[index]=pcon->dhb[index+1];
pcon->count--;
}
}
else
printf("没有你要查找的值,请重新输入:");
}
void modify(Pcon pcon)
{
int i,ret;
char name[NAME_LEN];
printf("请输入要修改的姓名:");
scanf("%s",name);
ret=find(name,pcon);
if(ret==-1)
printf("要修改的值不存在\n");
else
{
printf("请输入修改后的姓名:");
scanf("%s",pcon->dhb[ret].name);
printf("请输入修改后的性别:");
scanf("%s",pcon->dhb[ret].sex);
printf("请输入修改后的年龄:");
scanf("%s",pcon->dhb[ret].age);
printf("请输入修改后的电话号码:");
scanf("%s",pcon->dhb[ret].tele);
printf("请输入修改后的住址:");
scanf("%s",pcon->dhb[ret].addr);
printf("修改成功!\n");
}
}
void clear(Pcon pcon)
{
pcon->count=0;
}
int main()
{
PCON con;
int input = 1;
con.count = 0;
while(input)
{
menu();
printf("请选择>:");
scanf("%d",&input);
switch(input)
{
case 1:
add_peo(&con);
break;
case 2:
del_peo(&con);
break;
case 3:
show(&con);
break;
case 4:
search(&con);
break;
case 5:
modify(&con);
break;
case 6:
clear(&con);
break;
default:
break;
}
}
return 0;
}