C语言实现通讯录的代码怎么写
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这期内容当中小编将会给大家带来有关C语言实现通讯录的代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。(一)实现思路1.通讯录功能添加好友,删除好友,查找好友
千家信息网最后更新 2026年11月04日C语言实现通讯录的代码怎么写
这期内容当中小编将会给大家带来有关C语言实现通讯录的代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
(一)实现思路
1.通讯录功能
添加好友,删除好友,查找好友,修改好友信息,对好友进行排序
2.模块化实现各方面的功能
a. test.c
测试通讯录功能
b. Contact.c
实现通讯录功能
c. Contact.h
包含通讯录实现的头文件
3.代码实现
(二)源代码
A.test.c
#define _CRT_SECURE_NO_WARNINGS 1#include#include #include #include "contact.h" void menu(){ printf("*******************************\n"); printf("*** 1.Add 2.Del ***\n"); printf("*** 3.Search 4.Modify ***\n"); printf("*** 5.Show 6.Sort ***\n"); printf("*** 7.Help 8.About0 ***\n"); printf("*** 0.Exit ***\n"); printf("*******************************\n");} int main(){ int input = 0; //创建通讯录 int size = 0; struct Contact con;//一个结构体里包含1000个人的信息和size; //size表示的是该通讯录里现在的好友数 //初始化通讯录 InitContact(&con);//使size的初始值,以及好友信息初始化为0; do { menu(); printf("请选择:"); scanf("%d", &input); switch (input) { //添加好友信息 case Add: AddContact(&con); break; //删除好友 case Del: DelContact(&con); break; //查找好友信息 case Search: SearchContact(&con); break; //修改好友信息 case Modify: ModifyContact(&con); break; //显示好友信息 case Show: ShowContact(&con); break; //好友排序 case Sort: SortContact(&con); break; //退出 case Exit: printf("退出通讯录!"); break; //通讯录的使用以及帮助 case Help: HelpContact(); break; //关于通讯录 case About: AboutContact(); break; //选择错误 default: printf("选择错误!"); break; } } while (input); return 0;}
B.Contact.h
#define _CRT_SECURE_NO_WARNINGS 1#define Max 1000#define Max_name 20#define Max_sex 5#define Max_tele 12#define Max_addr 30 enum Option{ Exit, Add, Del, Search, Modify, Show, Sort, Help, About }; //创建一个结构体来存放通讯录中要存放的信息struct PeoInfo{ char name[Max_name]; int age; char sex[Max_sex]; char tele[Max_tele]; char addr[Max_addr];}; //通讯录类型struct Contact{ struct PeoInfo data[Max];//存放一个信息,包括好友姓名,年龄,性别,电话,地址 int size;//记录当前已经有的元素个数 //存入一个好友,size加1,表示通讯录人数增加一个}; //声明函数//1.对通讯录进行初始化void InitContact(struct Contact* ps); //增加好友信息void AddContact(struct Contact* ps); //删除好友void DelContact(struct Contact* ps); //查找指定姓名的好友void SearchContact(struct Contact* ps); //显示好友信息void ShowContact(const struct Contact* ps); //修改好友信息void ModifyContact( struct Contact* ps); //按名字首字母对通讯录的好友进行排序void SortContact( struct Contact* ps); //帮助使用通讯录void HelpContact(); //关于通讯录void AboutContact();C.Contact.c
#define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h"#include#include #include //初始化通讯录void InitContact(struct Contact* ps){ memset(ps->data, 0, sizeof(ps->data)); ps->size = 0;//设置通讯录最初只有0个元素} //帮助使用通讯录void HelpContact(){ printf("各按键的使用:\n"); printf("1.添加好友\n"); printf("2.删除好友\n"); printf("3.查找好友信息\n"); printf("4.修改好友信息\n"); printf("5.显示好友信息\n"); printf("6.对好友进行排序\n"); printf("7.帮助使用通讯录\n"); printf("8.关于通讯录\n"); printf("谢谢使用通讯录!\n"); } //关于通讯录void AboutContact(){ printf("通讯录一般指在日常生活中用笔记录,也在手机,电脑,电子字典等电子产品中拥有这个功能。\n");} //增加好友的电话,信息void AddContact(struct Contact* ps){ if (ps->size == Max) { printf("通讯录已满,无法增加!\n"); } else { printf("请输入姓名:"); scanf("%s", ps->data[ps->size].name); //除了年龄,其他都是数组,直接用数组名 printf("请输入年龄:"); scanf("%d", &(ps->data[ps->size].age)); //年龄不是数组,则需要& printf("请输入性别:"); scanf("%s", ps->data[ps->size].sex); printf("请输入电话:"); scanf("%s", ps->data[ps->size].tele); printf("请输入地址:"); scanf("%s", ps->data[ps->size].addr); ps->size++; //添加成功一个1好友,size加1,; printf("添加成功!\n"); } } //在删除,查找,修改的函数中均涉及查找到该好友才能进行//为了避免冗余,我们把查找的这个环节从函数中抽离出来//在函数中直接使用,就不会显得重复 static int Find_by_name(struct Contact* ps, char name[Max_name]){ int i; for (i = 0; i < ps->size; i++) { //将要查找的好友姓名与通讯录中的好友进行比较 if (0 == strcmp(ps->data[i].name, name)) { //若找到,返回其下标 return i; } } //若都循环,比对完了以后还没找到就返回-1 return -1;} //删除好友信息void DelContact(struct Contact* ps){ int j; char name[Max_name]; printf("请输入删除好友的名字:"); scanf("%s", name); //1.查找要删除的人的位置 int pos = Find_by_name(ps, name); //调用函数进行查找,若找到,返回下标,若没找到,返回-1; //2.删除 if (pos==-1) { printf("该好友不存在!\n"); } else { //删除数据 for (j = pos; j < ps->size - 1; j++) { ps->data[j] = ps->data[j + 1]; //删除数据后,后面的元素位置都改变,向前移动一个位置; } ps->size--; //删除一个好友,size-1. printf("删除成功!\n"); }} //查找指定好友信息void SearchContact(struct Contact* ps){ char name[Max_name]; printf("输入要查找的好友姓名:"); scanf("%s", name); int pos = Find_by_name(ps, name); if (pos ==-1) { printf("该好友不存在!\n"); } else { printf("s\t%4s\t%5s\ts\t%20s\n", "名字", "年龄", "性别", "电话", "地址"); printf("s\t%4d\t%5s\ts\t%20s\n", ps->data[pos].name, ps->data[pos].age, ps->data[pos].sex, ps->data[pos].tele, ps->data[pos].addr); } } //修改好友信息void ModifyContact(struct Contact* ps){ char name[Max_name]; printf("请输入需要修改信息的好友姓名:"); scanf("%s", name); int pos=Find_by_name(ps, name); if (pos == -1) { printf("该用户不存在!\n"); } else { printf("请输入姓名:"); scanf("%s", ps->data[pos].name); printf("请输入年龄:"); scanf("%d", &(ps->data[pos].age)); printf("请输入性别:"); scanf("%s", ps->data[pos].sex); printf("请输入电话:"); scanf("%s", ps->data[pos].tele); printf("请输入地址:"); scanf("%s", ps->data[pos].addr); printf("修改成功!\n"); } } //显示出好友的基本信息void ShowContact(const struct Contact* ps){ if (ps->size == 0) { printf("通讯录为空!\n"); } else { int i = 0; printf("s\t%4s\t%5s\ts\t%20s\n", "名字", "年龄", "性别", "电话", "地址"); for (i = 0; i < ps->size; i++) { printf("s\t%4d\t%5s\ts\t%20s\n", ps->data[i].name, ps->data[i].age, ps->data[i].sex, ps->data[i].tele, ps->data[i].addr); } }} //按照名字的首字母进行排序 int cmp_stu_by_name(const void* e1, const void* e2){ return (strcmp(((struct Contact*)e1)->data->name, ((struct Contact*)e2)->data->name));} //我们用qsort()函数对我们的好友按照名字首字母进行排序void SortContact( struct Contact* ps){ qsort(ps->data, ps->size, sizeof(ps->data[0]), cmp_stu_by_name); printf("s\t%4s\t%5s\ts\t%20s\n", "名字", "年龄", "性别", "电话", "地址"); int i; for (i = 0; i < ps->size; i++) { printf("s\t%4d\t%5s\ts\t%20s\n", ps->data[i].name, ps->data[i].age, ps->data[i].sex, ps->data[i].tele, ps->data[i].addr); }}
上述就是小编为大家分享的C语言实现通讯录的代码怎么写了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
好友
通讯
通讯录
信息
输入
年龄
名字
姓名
电话
函数
地址
性别
排序
功能
成功
帮助
代码
位置
元素
字母
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
南京欣网互联网络科技有限公司
苏州找大状互联网科技有限公司
科技互联网公司装修
新华互联网科技学院
北京互联网科技
嘟嘟瓜互联网科技
兼蜜互联网科技
互联网 科技服务平台
米聚互联网科技南京有限公司排面
互联网科技扶贫时间
威龙国际互联网科技公司
合肥互联网科技公司公章图片
美国互联网科技公司
互联网科技包装股
科技信息时代互联网发展
科技互联网公司两年变化
盐城市攀科互联网科技有限公司
重庆科技产业互联网有哪些
伍佰万互联网科技是干嘛的
没上市的科技互联网公司
互联网养老 桔豆科技
中国互联网金融科技基金
甘肃拓世互联网科技有限公司
中国科技互联网公司收入
本届互联网博览会上的黑科技
21世纪互联网科技成就
广州有谷有贝互联网科技有限公司
互联网领先科技成果宣传视频
科技发展第三阶段互联网时代