软件测试最全C++入门案例——通讯录管理系统 & 控制台项目,2024年最新面试流程4轮技术面+1轮HR

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

}


## 显示联系人


### 逻辑拆解


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


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


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


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/be425fdbac1b4caaacd0703fba49087f.png)


### 相关代码



// 显示联系人
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"); // 清屏
}

}


## 根据名字删除联系人


### 逻辑拆解


1.先判断一下是否存在该联系人,如果不存在,退出;如果存在,进入下一步;


2.从要删除的联系人开始,把后面的联系人一个一个迁移;


3.最后把通讯录中的人员数量 -1;


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9d77eedbeeea40849bec3d97e087d63c.png)


### 相关代码



///
/// 监测人名是否存在
///
///
///
///

int isExist(AddressBooks* abs, string name) {
for (int i = 0; i < abs->size; i++)
{
if (abs->personArray[i].name==name)
{
return i; // 返回位置
}
}
return -1;
}

// 删除指定的联系人
void deletePerson(AddressBooks* abs) {
cout << “输入要删除的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
system(“pause”); // 按任意键继续
system(“cls”); // 清屏
}
else {
cout << “已找到” << endl;
for (int i = index; i < abs->size; i++)
{
// 数据迁移
abs->personArray[i] = abs->personArray[i + 1];
abs->size–; // 更新人员数量
cout << “删除成功” << endl;
system(“pause”); // 按任意键继续
system(“cls”); // 清屏
}
}
}


## 根据名字查找联系人


### 逻辑拆解


1.输入要查找的人的姓名,


2.判断该姓名是否存在数组中,如果存在进入下一步;


3.根据上一步获取该人在数组中的位置,进行人员信息的打印;


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b6bea38ef1444eccb849f70978e0d9b5.png)


### 相关代码



// 查找联系人
void findPerson(AddressBooks* abs) {
cout << “输入要查找的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
}
else {
cout << “已找到” << endl;
cout << “姓名:” << abs->personArray[index].name << “\t”;
// 三元表达式
cout << “性别:” << (abs->personArray[index].sex == 1 ? “男” : “女”) << “\t”;
cout << “住址:” << abs->personArray[index].addr << endl;
}

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

}


## 修改联系人


### 逻辑拆解


1.输入要修改的联系人的name;


2.查询是否存在该联系人,如果存在,则进入下一步;


3.输入该联系人的新的信息,姓名等;


### 相关代码



// 修改联系人
void modifyPerson(AddressBooks* abs) {
cout << “输入要修改的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
}
else {
cout << “已找到” << endl;
cout << “姓名:” << abs->personArray[index].name << “\t”;
// 三元表达式
cout << “性别:” << (abs->personArray[index].sex == 1 ? “男” : “女”) << “\t”;
cout << “住址:” << abs->personArray[index].addr << endl;

	// 进行修改
	string name;
	cout << "请输入姓名" << endl;
	cin >> name;
	abs->personArray[index].name = name;

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

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

}


## 清空所有联系人


### 逻辑拆解


1.因为清空操作需要慎重考虑,因此加入了二次确认的机制;


2.清空联系人把当前记录的联系人的数量置为0即可;


### 相关代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/919d11cfee3e476fb3d4cc18e27308ea.png)



// 清空所有联系人
void cleanPerson(AddressBooks* abs) {
cout << “即将清空所有联系人,是否继续,继续输入1” << endl;
int flag;
cin >> flag;
if (flag == 1)
{
abs->size = 0; // 将当前记录的联系人数量置为0,做逻辑删除
cout << “清空成功” << endl;
system(“pause”); // 按任意键继续
system(“cls”); // 清屏
}
else
{
cout << “您取消了清空” << endl;
}
}


### 完整代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/28541affe70d4eccb481b58fbb82d6fb.png)



include

include

define MAX 1000 // 定义常量

using namespace std;

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

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

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

};

// 添加联系人
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"); // 清屏
}

}

// 显示联系人
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"); // 清屏
}

}

///
/// 监测人名是否存在
///
///
///
///

int isExist(AddressBooks* abs, string name) {
for (int i = 0; i < abs->size; i++)
{
if (abs->personArray[i].name==name)
{
return i; // 返回位置
}
}
return -1;
}

// 删除指定的联系人
void deletePerson(AddressBooks* abs) {
cout << “输入要删除的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
system(“pause”); // 按任意键继续
system(“cls”); // 清屏
}
else {
cout << “已找到” << endl;
for (int i = index; i < abs->size; i++)
{
// 数据迁移
abs->personArray[i] = abs->personArray[i + 1];
abs->size–; // 更新人员数量
cout << “删除成功” << endl;
system(“pause”); // 按任意键继续
system(“cls”); // 清屏
}
}
}

// 查找联系人
void findPerson(AddressBooks* abs) {
cout << “输入要查找的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
}
else {
cout << “已找到” << endl;
cout << “姓名:” << abs->personArray[index].name << “\t”;
// 三元表达式
cout << “性别:” << (abs->personArray[index].sex == 1 ? “男” : “女”) << “\t”;
cout << “住址:” << abs->personArray[index].addr << endl;
}

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

}

// 修改联系人
void modifyPerson(AddressBooks* abs) {
cout << “输入要修改的联系人的name” << endl;
string name;
cin >> name;
int index = isExist(abs, name);
if (index == -1)
{
cout << “查无此人” << endl;
}
else {
cout << “已找到” << endl;
cout << “姓名:” << abs->personArray[index].name << “\t”;
// 三元表达式
cout << “性别:” << (abs->personArray[index].sex == 1 ? “男” : “女”) << “\t”;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ut << “姓名:” << abs->personArray[index].name << “\t”;
// 三元表达式
cout << “性别:” << (abs->personArray[index].sex == 1 ? “男” : “女”) << “\t”;

[外链图片转存中…(img-sRlVLm9C-1715550123267)]
[外链图片转存中…(img-XZj8k6Wg-1715550123267)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值