标签:函数调用 结构体 typedef switch struct
源程序头文件contact.h
#ifndef _CONTACT_H__
#define _CONTACT_H__
#define NAME_MAX 20
#define SEX_MAX 5
#define TELE_MAX 15
#define ADDR_MAX 50
#define PEO_MAX 1000
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct people
{
char name[NAME_MAX];
char sex[SEX_MAX];
int age;
char tele[TELE_MAX];
char addr[ADDR_MAX];
}*pPeople;
typedef struct contact
{
struct people dhb[PEO_MAX];
int count;
}*pCon;
void add_peo(pCon pcon);
void del_peo(pCon pcon);
void search_peo(pCon pcon);
void modify_peo(pCon pcon);
void show_peo(pCon pcon);
void clear_peo(pCon pcon);
#endif</pre>源程序函数段实现<p></p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"
int find(pCon pcon,char * name)
{
int i=0;
while(i<pcon->count)
{
if(strcmp(name,pcon->dhb[i].name)==0)//查找到匹配的姓名就输出i
return i;
i++;
}
return -1;
}
void add_peo(pCon pcon)//增加存储人函数
{
//判断
if(pcon->count==PEO_MAX)
{
printf("存储空间已满\n");
return ;
}
printf("name:>");
scanf("%s",(pcon->dhb[pcon->count]).name);
printf("sex:>");
scanf("%s",(pcon->dhb[pcon->count]).sex);
printf("age:>");
scanf("%d",&((pcon->dhb[pcon->count]).age));
printf("tele:>");
scanf("%s",(pcon->dhb[pcon->count]).tele);
printf("addr:>");
scanf("%s",(pcon->dhb[pcon->count]).addr);
pcon->count++;
}
void del_peo(pCon pcon)//删除函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要删除的姓名:>");
scanf("%s",tmpName);
ret=find(pcon,tmpName);
if(-1 != ret)
{
int j=ret;
for(;j<pcon->count-1;j++)
{
pcon->dhb[j]=pcon->dhb[j+1];//用后面的数据覆盖所要删除的数据
}
pcon->count--;//存储人数减少一位
}
else
{
printf("找不到所要删除的信息\n");
}
}
void search_peo(pCon pcon)//查找函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要查找的姓名:>");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(ret != -1)
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
pcon->dhb[ret].name,
pcon->dhb[ret].sex,
pcon->dhb[ret].age,
pcon->dhb[ret].tele,
pcon->dhb[ret].addr);
}
else
{
printf("不存在所要查找的信息\n");
}
}
void modify_peo(pCon pcon)//修改数据函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要修改的姓名:>");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(-1 != ret)//找到修改姓名之后重新赋值
{
printf("name:>");
scanf("%s",(pcon->dhb[ret]).name);
printf("sex:>");
scanf("%s",(pcon->dhb[ret]).sex);
printf("age:>");
scanf("%d",&((pcon->dhb[ret]).age));
printf("tele:>");
scanf("%s",(pcon->dhb[ret]).tele);
printf("addr:>");
scanf("%s",(pcon->dhb[ret]).addr);
}
}
void show_peo(pCon pcon)//显示函数
{
int i;
for(i=0;i<pcon->count;i++) //显示并打印说有联系人信息
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
pcon->dhb[i].name,
pcon->dhb[i].sex,
pcon->dhb[i].age,
pcon->dhb[i].tele,
pcon->dhb[i].addr);
}
}
void clear_peo(pCon pcon)//清除所有联系人信息
{
pcon->count = 0;
}</pre><p></p><p>源程序主函数调用段</p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"
void show_menu()
{
printf("***************************\n");
printf("* 1>add 2>del *\n");
printf("* 3>search 4>modify *\n");
printf("* 5>show 6>clear *\n");
printf("***************************\n");
}
int main()
{
struct contact my_contact;
int input=1;
my_contact.count = 0;
while(input)
{
show_menu();
printf("please input:>");
scanf("%d",&input);
switch(input)//判断并调用函数
{
case 1:
{
add_peo(&my_contact);
system("cls");//调用清屏函数
break;
}
case 2:
{
del_peo(&my_contact);
system("cls");//调用清屏函数
break;
}
case 3:
search_peo(&my_contact);
break;
case 4:
{
modify_peo(&my_contact);
system("cls");//调用清屏函数
break;
}
case 5:
show_peo(&my_contact);
break;
case 6:
clear_peo(&my_contact);
break;
default:
break;
}
}
return 0;
}void add_peo(pCon pcon)//增加存储人函数
{
//判断
if(pcon->count==PEO_MAX)
{
printf("存储空间已满\n");
return ;
}
printf("name:>");
scanf("%s",(pcon->dhb[pcon->count]).name);
printf("sex:>");
scanf("%s",(pcon->dhb[pcon->count]).sex);
printf("age:>");
scanf("%d",&((pcon->dhb[pcon->count]).age));
printf("tele:>");
scanf("%s",(pcon->dhb[pcon->count]).tele);
printf("addr:>");
scanf("%s",(pcon->dhb[pcon->count]).addr);
pcon->count++;
}
删除联系人函数
void del_peo(pCon pcon)//删除函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要删除的姓名:>");
scanf("%s",tmpName);
ret=find(pcon,tmpName);
if(-1 != ret)
{
int j=ret;
for(;j<pcon->count-1;j++)
{
pcon->dhb[j]=pcon->dhb[j+1];//用后面的数据覆盖所要删除的数据
}
pcon->count--;//存储人数减少一位
}
else
{
printf("找不到所要删除的信息\n");
}
}
查找联系人函数段
void search_peo(pCon pcon)//查找函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要查找的姓名:>");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(ret != -1)
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
pcon->dhb[ret].name,
pcon->dhb[ret].sex,
pcon->dhb[ret].age,
pcon->dhb[ret].tele,
pcon->dhb[ret].addr);
}
else
{
printf("不存在所要查找的信息\n");
}
}
修改联系人函数段
void modify_peo(pCon pcon)//修改数据函数
{
char tmpName[NAME_MAX];
int ret=0;
printf("请输入你所要修改的姓名:>");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(-1 != ret)//找到修改姓名之后重新赋值
{
printf("name:>");
scanf("%s",(pcon->dhb[ret]).name);
printf("sex:>");
scanf("%s",(pcon->dhb[ret]).sex);
printf("age:>");
scanf("%d",&((pcon->dhb[ret]).age));
printf("tele:>");
scanf("%s",(pcon->dhb[ret]).tele);
printf("addr:>");
scanf("%s",(pcon->dhb[ret]).addr);
}
}
void show_peo(pCon pcon)//显示函数
{
int i;
for(i=0;i<pcon->count;i++) //显示并打印说有联系人信息
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
pcon->dhb[i].name,
pcon->dhb[i].sex,
pcon->dhb[i].age,
pcon->dhb[i].tele,
pcon->dhb[i].addr);
}
}
清空联系人函数段
void clear_peo(pCon pcon)//清除所有联系人信息
{
pcon->count = 0;
}用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
标签:函数调用 结构体 typedef switch struct
原文地址:http://blog.csdn.net/s0soul/article/details/44958339