C++入门案例——通讯录管理系统 & 控制台项目

在这里插入图片描述

前言

C++入门案例——通讯录管理系统 & 控制台项目

总体概览

实体类设计

在这里插入图片描述

// 设计联系人结构体
struct Person
{
   
	string name;
	int sex;
	int age;
	string tel;
	string addr;
};

// 设计通讯录
struct AddressBooks
{
   
	// 联系人数组
	struct Person personArray[MAX];

	// 当前联系人数量
	int size;

};

显示页面和退出系统

在这里插入图片描述

// 显示界面,main中使用页面封装函数
static void showMenu() {
   
	cout << "=======================" << endl;
	cout << "1、添加联系人" << endl;
	cout << "2、显示联系人" << endl;
	cout << "3、删除联系人" << endl;
	cout << "4、查找联系人" << endl;
	cout << "5、修改联系人" << endl;
	cout << "6、清空联系人" << endl;
	cout << "0、退出系统" << endl;
	cout << "=======================" << endl;
}

在这里插入图片描述

添加联系人

逻辑拆解

1.判断是否达到最大容量,如果达到,则结束,如果未达到,进入下一步;

2.用户输入要添加的人的信息,姓名等,加入到通讯录的数组中;

3.修改通讯录当前人数,更新人数+1;

在这里插入图片描述

相关代码

// 添加联系人
void addPerson(AddressBooks* abs)
{
   
	// 判断是否满
	if (abs->size == MAX)
	{
   
		cout << "通讯录已满,添加失败" << endl;
	}
	else
	{
   
		// 添加联系人
		string name;
		cout << "请输入姓名" << endl;
		cin >> name;
		abs->personArray[abs->size].name = name;

		// 输入性别
		cout << "请输入性别,1男,2女" << endl;
		int sex = 0;
		while (true)
		{
   
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
   
				abs->personArray[abs->size].sex = sex;
				break; // 输入正确,退出循环
			}
			cout << "输入有误,重新输入" << endl;
		}

		// 输入年龄
		int age = 0 ;
		cout << "请输入年龄" << endl;
		cin >> age;
		abs->personArray[abs->size].age = age;

		// 输入电话
		string tel;
		cout << "请输入电话" << endl;
		cin >> tel;
		abs->personArray[abs->size].tel = tel;

		// 输入家庭住址
		string addr;
		cout << "请输入家庭住址" << endl;
		cin >> addr;
		abs->personArray[abs->size].addr = addr;

		// 更新人数
		abs->size++;
		cout << "添加成功!!!" << endl;

		system("pause"); // 按任意键继续
		system("cls"); // 清屏
	}
}

显示联系人

逻辑拆解

1.判断通讯录是否为空,size==0;如果不为空,进入下一步;

2.把数组中的联系人一个一个拿出来,打印相关信息;

3.性别1,2输出位男和女采用三目运算符实现;

在这里插入图片描述

相关代码

// 显示联系人
void showPerson(AddressBooks* abs) {
   

	if (abs->size==0)
	{
   
		cout << "通信录空" << endl;
	}
	else {
   
		for (int i = 0; i < abs->size; i++)
		{
   
			cout << "姓名:" << abs->personArray[i].name << "\t";
			// 三目运算符
			cout << "性别:" << (abs->personArray[i].sex ==1 ? "男":"女") << "\t";
			cout << "住址:" << abs->personArray[i].addr << endl;

		}
		system("pause"); // 按任意键继续
		system("cls"); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arya's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值