利用C语言结构体实现通讯录
本文实例为大家分享了C语言结构体实现通讯录的具体代码,供大家参考,具体内容如下
用来存储1000个人的信息的通讯录,每个人的信息包括:
姓名、性别、年龄、电话、住址
程序如下:
#include#include #include structPeople { charname[20]; charsex[5]; intage; chartel[15]; charaddr[50]; };//定义人的信息结构体(包含各种信息) structContact { structPeopleperson[1000];//定义通讯录结构体 intn;//(包含人的信息的结构体和用户个数n) }; typedefstructContact*p; voidmenu(); intadd(pq);//p是一个结构体指针类型,q是一个指向structContact的一个指针 intdelete(pq);//例如:typedefint*int即int*p==>intp intfind(pq); intmodify(pq); intshow(pq); intclear(pq);//函数的声明 voidmenu()//目录格式 { printf("====================欢迎来到苏嵌154通讯录==================\n"); printf("----------------------1.添加联系人信息---------------------\n"); printf("----------------------2.删除指定联系人信息-----------------\n"); printf("----------------------3.查找指定联系人信息-----------------\n"); printf("----------------------4.修改指定联系人信息-----------------\n"); printf("----------------------5.显示所有联系人信息-----------------\n"); printf("----------------------6.清空所有联系人---------------------\n"); printf("----------------------0.谢谢使用---------------------------\n"); printf("====================欢迎来到苏嵌154通讯录==================\n"); } intadd(pq)//添加联系人 { if((*q).n>=1000) { printf("contactisfull!\n"); return-1; } else { printf("输入姓名:\n"); scanf("%s",(*q).person[(*q).n].name); printf("输入性别:\n"); scanf("%s",(*q).person[(*q).n].sex); printf("输入年龄:\n"); scanf("%d",&(*q).person[(*q).n].age); printf("输入电话:\n"); scanf("%s",(*q).person[(*q).n].tel); printf("输入地址:\n"); scanf("%s",(*q).person[(*q).n].addr); ((*q).n)++; } return0; } intdelete(pq)//删除联系人 { intret=find(q);//调用查找函数并保存其值 if(ret!=-1) { inti=0; i=ret;//这里要用另一个变量来保存输入的姓名 for(i=0;i<(*q).n-1;i++) { (*q).person[i]=(*q).person[i+1];//用后一个覆盖前边的,如果要删除的是最后一个不进行此步骤 } (*q).n--;//直接减去最后一个即count-- } return0; } intfind(pq)//查找联系人 { inti=0; charret[20];//用另一个数组来保存姓名 printf("输入姓名:\n"); scanf("%s",ret); while(i<=(*q).n) { if(strcmp(ret,(*q).person[i].name)==0)//比较输入的姓名和通讯录中已有的姓名 { printf("姓名\t性别\t年龄\t电话\t地址\4t\n");//制表符来制作表头 printf("%s\t",(*q).person[i].name); printf("%s\t",(*q).person[i].sex); printf("%d\t",(*q).person[i].age); printf("%s\t",(*q).person[i].tel); printf("%s\4t\n",(*q).person[i].addr); returni; } i++; } printf("你丫的我班没这个人\n"); return-1; } intmodify(pq)//修改函数,首先找到如要修改的姓名,然后重新输入 { intret=find(q); if(ret!=-1) { printf("输入修改的姓名:\n"); scanf("%s",(*q).person[ret].name); printf("输入修改的性别:\n"); scanf("%s",(*q).person[ret].sex); printf("输入修改的年龄:\n"); scanf("%d",&((*q).person[ret].age)); printf("输入修改的电话:\n"); scanf("%s",(*q).person[ret].tel); printf("输入修改的地址:\n"); scanf("%s",(*q).person[ret].addr); } else { printf("你丫的我班没这个人\n"); } return0; } intshow(pq)//显示全部联系人 { inti=0; printf("姓名\t性别\t年龄\t电话\t地址\4t\n"); for(i=0;i<(*q).n;i++) { printf("%s\t",(*q).person[i].name); printf("%s\t",(*q).person[i].sex); printf("%d\t",(*q).person[i].age); printf("%s\t",(*q).person[i].tel); printf("%s\4t\n",(*q).person[i].addr); } printf("\n"); return0; } intclear(pq)//清除所有人,直接让成员个数变为0 { (*q).n=0; return0; } intmain() { intn=1; structContactpeople;//调用通讯录结构体 people.n=0;//初始化n while(n) { menu(); printf("请选择你的骚操作:\n"); scanf("%d",&n); switch(n)//switchcase语句分支选择不同函数实现不同作用 { case1: { add(&people); break; } case2: { delete(&people); break; } case3: { find(&people); break; } case4: { modify(&people); break; } case5: { show(&people); break; } case6: { clear(&people); break; } default: { return0; break; } } } return0; }
这样就实现了一个简单的通讯录。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。