【c语言】实现一个通讯录
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
//头文件:
#ifndef _CONTACT__ #define _CONTACT__ #define NAME_MAX 20 #define SEX_MAX 5 #define TELE_MAX 20 #define ADDR_MAX 30 #define SB_MAX 1000 #include <stdio.h> #include <string.h> typedef struct sb { char name[NAME_MAX]; char sex[SEX_MAX]; int age; char tele[TELE_MAX]; char addr[ADDR_MAX]; }*sbcon; typedef struct contact { struct sb telen[SB_MAX]; int count; }*pCon; void add(pCon pcon); void dele(pCon pcon); void search(pCon pcon); void modify(pCon pcon); void show(pCon pcon); void clear(pCon pcon); #endif 功能函数如下: <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->telen[i].name) == 0 ) return i; i++; } return -1; } //添加联系人 void add(pCon pcon) { //判断电话本是否满了 if(pcon->count == SB_MAX) { printf("电话本已满\n"); return; } else { printf("姓名:"); scanf("%s",(pcon->telen[pcon->count]).name); printf("性别:"); scanf("%s",(pcon->telen[pcon->count]).sex); printf("年龄:"); scanf("%d",&(pcon->telen[pcon->count]).age); printf("联系电话:"); scanf("%s",(pcon->telen[pcon->count]).tele); printf("家庭住址:"); scanf("%s",(pcon->telen[pcon->count]).addr); pcon->count++; } } //删除联系人 void dele(pCon pcon) { int ret = 0; char tname[NAME_MAX]; printf("请输入要删除的名字:"); scanf("%s",tname); ret = find(pcon,tname); if( -1 != ret ) { int j = ret; for(; j < pcon->count-1; j++) { pcon->telen[j] = pcon->telen[j+1]; } pcon->count--; } else printf("没有找到你要删除的人\n"); } //查找联系人 void search(pCon pcon) { int ret = 0; char tname[NAME_MAX]; printf("请输入要修改的名字:"); scanf("%s",tname); ret = find(pcon,tname); if( -1 != ret ) { printf("%s\t%s\t%d\t%s\t%s\t\n", (pcon->telen[ret]).name, (pcon->telen[ret]).sex, (pcon->telen[ret]).age, (pcon->telen[ret]).tele, (pcon->telen[ret]).addr); } else printf("没有找到你要找的人\n"); } //修改联系人 void modify(pCon pcon) { int ret = 0; char tname[NAME_MAX]; printf("请输入要修改的名字:"); scanf("%s",tname); ret = find(pcon,tname); if( -1 != ret ) { printf("姓名:"); scanf("%s",(pcon->telen[ret]).name); printf("性别:"); scanf("%s",(pcon->telen[ret]).sex); printf("年龄:"); scanf("%d",&(pcon->telen[ret]).age); printf("联系电话:"); scanf("%s",(pcon->telen[ret]).tele); printf("家庭住址:"); scanf("%s",(pcon->telen[ret]).addr); } else printf("没有找到你要找的人\n"); } //展示 void show(pCon pcon) { int i = 0; for(; i < (pcon->count); i++) { printf("%s\t%s\t%d\t%s\t%s\t\n", (pcon->telen[i]).name, (pcon->telen[i]).sex, (pcon->telen[i]).age, (pcon->telen[i]).tele, (pcon->telen[i]).addr); } } //清空 void clear(pCon pcon) { pcon->count = 0; printf("电话本是空的\n"); }
//主函数:
#include "contact.h" void shou_menue() { printf("*********************************\n"); printf("* 1:添加联系人 2:删除联系人 *\n"); printf("* 3:查找联系人 4:修改联系人 *\n"); printf("* 5:显示联系人 6:清空联系人 *\n"); printf("*********************************\n"); } int main() { struct contact my_contact; int input = 1; my_contact.count = 0; while(input) { shou_menue(); printf("请选择你想要的操作:"); scanf("%d",&input); switch(input) { case 1: add(&my_contact); break; case 2: dele(&my_contact); break; case 3: search(&my_contact); break; case 4: modify(&my_contact); break; case 5: show(&my_contact); break; case 6: clear(&my_contact); break; default: break; } } return 0; }
以下是运行结果截图:
添加联系人以及显示联系人:
删除联系人:
查找联系人:
修改联系人:
清空联系人:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。