进阶C语言-通讯录的实现
温馨提示:这篇文章已超过432天没有更新,请注意相关的内容是否还可用!
通讯录
- 🎈1.设计要求
- 🎈2.程序实现
-
- 🔭2.1打印菜单及初始化通讯录
- 🔭2.2显示所有联系人
- 🔭2.3查找指定的联系人
- 🔭2.4删除指定的联系人
- 🔭2.5查找指定的联系人
- 🔭2.6修改指定联系人
- 🔭2.7按照年龄排序(以此为例)
- 🎈3.全部源码以及实现
🎈1.设计要求
🌞通过前面关于结构体及相关自定义类型的学习,我们就可以写上一个通讯录这样的程序,该程序有如下要求:
- 可以保存100个人的信息。
- 增加人的信息。
- 删除指定联系人的信息。
- 查找指定联系人的信息。
- 修改指定联系人的信息。
- 排序通讯录的信息。
- 显示所有联系人的信息。
🎈人的信息:
- 姓名
- 年龄
- 性别
- 电话
- 地址
✅为了使咱们的程序更加的清晰易懂,我们可以将该工程分为三个文件:
- test.c-测试代码
- contact.h-声明
- contact.c-实现
🎈2.程序实现
🔭2.1打印菜单及初始化通讯录
“contact.h”
#pragma once
//类型的声明
#include
#include
#include
#define Max 100
#define NAME_MAX 10
typedef struct PepInfo
{
char name[NAME_MAX];
int age;
char sex[5];
char tele[12];
char addr[20];
}PInfo;
typedef struct Contact
{
PInfo data[Max];
int sz;//用于记录当前通讯录中存放了多少个人的信息
}Contact;
//初始化通讯录
void InitContact(Contact* c);
“contact.c”
#define _CRT_SECURE_NO_WARNINGS 1
#include "contact.h"
void InitContact(Contact *c)
{
assert(c);
c->sz = 0;
memset(c->data, 0, sizeof(c->data));
}
“test.c”
//文件用于测试通讯录的基本功能。
#define _CRT_SECURE_NO_WARNINGS 1
#include "contact.h"//自己定义的头文件用""
void menu()
{
printf("***********************************\n");
printf("********1.增加联系人***************\n");
printf(" \n");
printf("********2.删除指定联系人的信息*****\n");
printf(" \n");
printf("********3.查找指定联系人的信息*****\n");
printf(" \n");
printf("********4.修改指定联系人的信息*****\n");
printf(" \n");
printf("********5.排序通讯录的信息*********\n");
printf(" \n");
printf("********6.显示所有联系人的信息*****\n");
printf(" \n");
printf("********0.退出程序*****************\n");
printf("***********************************\n");
}
enum Option
{
EXIT,
ADD,
DEL,
SEARCH,
MODIFY,
SHOW,
SORT
};
int main()
{
int input = 0;
Contact con;
//初始化函数
InitContact(&con);
do
{
menu();
printf("请输入你的选择:>");
scanf("%d", &input);
switch (input)
{
case ADD:
break;
case DEL:
break;
case SEARCH:
break;
case MODIFY:
break;
case SHOW:
break;
case SORT:
break;
case EXIT:
printf("退出通讯录\n");
break;
default:
break;
}
} while (input);
return 0;
}
🔭2.2显示所有联系人
“contact.h”
//显示所有联系人 void ShowContact(const Contact* c);
“contact.c”
void ShowContact(const Contact* c)
{
assert(c);
if (c->sz == 0)
{
printf("通讯录为空,无需打印!\n");
}
int i = 0;
printf("%-20s%-5s%-5s%-12s%-30s\n", "姓名", "年龄", "性别", "电话", "地址");
for (int i = 0; i sz; i++)
{
printf("%-20s%-5s%-5s%-12s%-30s\n",
c->data[i].name, c->data[i].age, c
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

