用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)

来源:互联网 发布:淘宝网店卖什么比较好 编辑:程序博客网 时间:2024/05/12 21:36

源程序头文件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)//查找到匹配的姓名就输出ireturn 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;}



0 0
原创粉丝点击