标签:
<span style="font-size:18px;">头文件contact.h</span>
<span style="font-size:18px;"> </span>
<pre name="code" class="cpp"><span style="font-size:18px;">#include<string.h>
#include<stdio.h>
#ifndef __CONTACT_H__
#define __CONTACT_H__
#define MAX_NAME 20
#define MAX_SEX 10
#define MAX_TELE 12
#define MAX_ADDR 20
#define MAX_DHB 1000
typedef struct Peo<span style="white-space:pre"> </span>//结构体存储人的信息
{
char name[MAX_NAME];
char sex[MAX_SEX];
int age;
char tele[MAX_TELE];
char addr[MAX_ADDR];
}PEO;
typedef struct Contact<span style="white-space:pre"> </span>//结构体包装的电话本
{
PEO dhb[MAX_DHB];
int count;
}PCON,*Pcon;
Pcon pcon;
void add_peo(Pcon pcon);
void del_peo(Pcon pcon);
void mod_peo(Pcon pcon);
void sear_peo(Pcon pcon);
void show_peo(Pcon pcon);
void clear_peo(Pcon pcon);
#endif</span><span style="font-size:18px;">源文件test.c</span>
<span style="font-size:18px;"> </span>
</pre><pre name="code" class="cpp"><span style="font-size:18px;">#include"contact.h"
void print_menu()
{
printf("*************************\n");
printf("***1.add 2.del ***\n");
printf("***3.modify 4.search***\n");
printf("***5.show 6.clear ***\n");
printf("*************************\n");
}
int main()
{
int input = 1;
PCON con;
con.count = 0;
while (input)
{
print_menu();
printf("请选择> ");
scanf("%d", &input);
switch (input)
{
case 1:
add_peo(&con);
break;
case 2:
del_peo(&con);
break;
case 3:
mod_peo(&con);
break;
case 4:
sear_peo(&con);
break;
case 5:
show_peo(&con);
break;
case 6:
clear_peo(&con);
break;
default:
break;
}
}
return 0;
}</span><span style="font-size:18px;"> </span>
<span style="font-size:18px;">源文件contact.c</span>
<span style="font-size:18px;"> </span>
<pre name="code" class="cpp"><span style="font-size:18px;">#include"contact.h"
int find(char name[],Pcon pcon)<span style="white-space:pre"> </span>//实现查找一个人的信息的函数
{
int i=0;
for (i = 0; i < pcon->count; i++)
{
if (strcmp(name, pcon->dhb[i].name) == 0)
return i;
else
return -1;
}
}
void add_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现增加一个人的信息函数
{
if (MAX_DHB == pcon->count)
{
printf("电话本已满");
}
printf("请输入名字:");
scanf("%s", pcon->dhb[pcon->count].name);
printf("请输入性别:");
scanf("%s", pcon->dhb[pcon->count].sex);
printf("请输入年龄:");
scanf("%d", &(pcon->dhb[pcon->count].age));
printf("请输入电话:");
scanf("%s", pcon->dhb[pcon->count].tele);
printf("请输入地址:");
scanf("%s", pcon->dhb[pcon->count].addr);
printf("添加成功!");
pcon->count++;
}
void del_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现删除一个人的信息的函数
{
int ret = 0;
int i = 0;
char name[MAX_NAME];
printf("请输入要删除的人的名字:");
scanf("%s", name);
ret=find(name, pcon);
if (ret == -1)
printf("没有此人");
for (i = ret; i < pcon->count - 1; i++)
{
pcon->dhb[i] = pcon->dhb[i + 1];
}
printf("删除成功!");
pcon->count --;
}
void mod_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现修改一个人的信息的函数
{
char name[MAX_NAME];
int ret = 0;
printf("请输入要修改的人的名字:");
scanf("%s", name);
ret=find(name, pcon);
if (ret == -1)
printf("没有此人");
else
{
printf("请输入名字:");
scanf("%s", pcon->dhb[ret].name);
printf("请输入性别:");
scanf("%s", pcon->dhb[ret].sex);
printf("请输入年龄:");
scanf("%d", &(pcon->dhb[ret].age));
printf("请输入电话:");
scanf("%s", pcon->dhb[ret].tele);
printf("请输入地址:");
scanf("%s", pcon->dhb[ret].addr);
printf("修改成功!");
}
}
void sear_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现查找一个人的信息函数
{
char name[MAX_NAME];
int ret = 0;
printf("请输入要查找的人的名字:");
scanf("%s", name);
ret=find(name, pcon);
if (ret == -1)
printf("查无此人");
printf("%20s\t", pcon->dhb[ret].name);
printf("%10s\t", pcon->dhb[ret].sex);
printf("%20d\t", pcon->dhb[ret].age);
printf("%20s\t", pcon->dhb[ret].tele);
printf("%20s\n", pcon->dhb[ret].addr);
}
void show_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现显示所有人信息的函数
{
int i = 0;
for (i = 0; i < pcon->count; i++)
{
printf("%5s", pcon->dhb[i].name);
printf("%5s", pcon->dhb[i].sex);
printf("%5d", pcon->dhb[i].age);
printf("%15s", pcon->dhb[i].tele);
printf("%8s\n", pcon->dhb[i].addr);
}
}
void clear_peo(Pcon pcon)<span style="white-space:pre"> </span>//实现清空所有人信息的函数
{
pcon->count = 0;
}</span>标签:
原文地址:http://blog.csdn.net/kkmdmcgxi/article/details/45828715