用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
源程序头文件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; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。