通讯录的实现(一)静态实现
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1.添加联系人信息2.删除指定联系人信息3.查找指定联系人信息4.修改指定联系人信息5.显示所有联系人信息6.清空所有联系人7.以名字排序所有联系人以下提供第一种方法:1.静态实现:#define_CRT_SECURE_NO_WARNINGS1#ifndef__CONTACT_H__#define__CONTACT_H__#include<stdio.h>#include<string.h>enumOP{EXIT,ADD,DEL,MODIFY,SEARCH,DISPLAY,SORT,CLEAR};#defineNAME_MAX20#defineSEX_MAX5#defineTELE_MAX12#defineADDR_MAX25#defineMAX1000typedefstructPerInfo{charname[NAME_MAX];intage;charsex[SEX_MAX];chartele[TELE_MAX];charaddr[ADDR_MAX];}PeoInfo;typedefstructContact{PeoInfodata[MAX];intsize;}Contact,*Pcon;voidinit_contact(Pconpcon);void_add_contact(Pconpcon);void_display_contact(Pconpcon);void_del_contact(Pconpcon);void_search_contact(Pconpcon);void_modify_contact(Pconpcon);void_sort_contact(Pconpcon);void_clear_contact(Pconpcon);#endif//__CONTACT_H__
函数实现部分:
#define_CRT_SECURE_NO_WARNINGS1#include"Contact.h"////git//svn//voidinit_contact(Pconpcon){memset(pcon->data,0,MAX*sizeof(PeoInfo));pcon->size=0;}void_add_contact(Pconpcon){if(pcon->size>=MAX){printf("电话本满了\n");return;}printf("请输入名字:>");scanf("%s",pcon->data[pcon->size].name);printf("请输入年龄:>");scanf("%d",&(pcon->data[pcon->size].age));printf("请输入性别:>");scanf("%s",pcon->data[pcon->size].sex);printf("请输入电话:>");scanf("%s",pcon->data[pcon->size].tele);printf("请输入地址:>");scanf("%s",pcon->data[pcon->size].addr);pcon->size++;printf("添加成功\n");}void_display_contact(Pconpcon){inti=0;printf("%9s\t%3s\t%4s\t%11s\t%10s\n","name","age","sex","tele","addr");for(i=0;i<pcon->size;i++){printf("%9s\t%3d\t%4s\t%11s\t%10s\n",pcon->data[i].name,pcon->data[i].age,pcon->data[i].sex,pcon->data[i].tele,pcon->data[i].addr);}}staticintfind_entry(Pconpcon,char*name){inti=0;for(i=0;i<pcon->size;i++){if(strcmp(pcon->data[i].name,name)==0){returni;}}return-1;}void_del_contact(Pconpcon){intpos=0;intindex=0;charname[NAME_MAX];if(pcon->size==0){printf("电话本空\n");return;}printf("请输入要删除人的名字:>");scanf("%s",name);pos=find_entry(pcon,name);if(pos==-1){printf("找不到要删除的人\n");return;}//for(index=pos;index<pcon->size;index++){pcon->data[index]=pcon->data[index+1];}pcon->size--;printf("删除成功\n");}void_search_contact(Pconpcon){charname[NAME_MAX]={0};intpos=0;printf("请输入要查找人的名字:>");scanf("%s",name);pos=find_entry(pcon,name);if(pos==-1){printf("指定联系人不存在\n");return;}else{printf("%9s\t%3s\t%4s\t%11s\t%10s\n","name","age","sex","tele","addr");printf("%9s\t%3d\t%4s\t%11s\t%10s\n",pcon->data[pos].name,pcon->data[pos].age,pcon->data[pos].sex,pcon->data[pos].tele,pcon->data[pos].addr);}}void_modify_contact(Pconpcon){charname[NAME_MAX]={0};intpos=0;printf("请输入要修改人的名字:>");scanf("%s",name);pos=find_entry(pcon,name);if(pos==-1){printf("指定联系人不存在\n");return;}else{printf("请输入名字:>");scanf("%s",pcon->data[pos].name);printf("请输入年龄:>");scanf("%d",&(pcon->data[pos].age));printf("请输入性别:>");scanf("%s",pcon->data[pos].sex);printf("请输入电话:>");scanf("%s",pcon->data[pos].tele);printf("请输入地址:>");scanf("%s",pcon->data[pos].addr);}}//volatilevoid_sort_contact(Pconpcon){inti=0;intj=0;for(i=0;i<pcon->size-1;i++)//控制排序趟数{for(j=0;j<pcon->size-1-i;j++){if(strcmp(pcon->data[j].name,pcon->data[j+1].name)>0){PeoInfotmp={0};tmp=pcon->data[j];pcon->data[j]=pcon->data[j+1];pcon->data[j+1]=tmp;}}}}void_clear_contact(Pconpcon){pcon->size=0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。