进阶C语言-通讯录的实现

2024-02-26 1393阅读

温馨提示:这篇文章已超过432天没有更新,请注意相关的内容是否还可用!

进阶C语言-通讯录的实现

通讯录

  • 🎈1.设计要求
  • 🎈2.程序实现
    • 🔭2.1打印菜单及初始化通讯录
    • 🔭2.2显示所有联系人
    • 🔭2.3查找指定的联系人
    • 🔭2.4删除指定的联系人
    • 🔭2.5查找指定的联系人
    • 🔭2.6修改指定联系人
    • 🔭2.7按照年龄排序(以此为例)
  • 🎈3.全部源码以及实现

🎈1.设计要求

🌞通过前面关于结构体及相关自定义类型的学习,我们就可以写上一个通讯录这样的程序,该程序有如下要求:

  1. 可以保存100个人的信息。
  2. 增加人的信息。
  3. 删除指定联系人的信息。
  4. 查找指定联系人的信息。
  5. 修改指定联系人的信息。
  6. 排序通讯录的信息。
  7. 显示所有联系人的信息。

🎈人的信息:

  • 姓名
  • 年龄
  • 性别
  • 电话
  • 地址

✅为了使咱们的程序更加的清晰易懂,我们可以将该工程分为三个文件:

  • 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
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]