系统中主要功能如下:
- 添加联系人: 向通讯录中添加新人
- 显示联系人:显示通讯录中的所有联系人信息
- 删除联系人:按照姓名删除指定联系人信息
- 查找联系人:按照姓名查找指定联系人信息
- 修改联系人:按照姓名重新修改指定联系人
- 清空联系人:清空通讯录中所有信息
- 退出通讯录系统: 退出当前使用的通讯录
#include <iostream>
using namespace std;
#include <string>
// 定义一个宏
#define MAX 1000 // 最大数
// 定义联系人结构体
struct Person
{
string name; //姓名
// 性别: 1 男 2女
int m_Sex;
int m_Age;
string m_Phone;
string m_Addr;
};
// 定义通讯录看结构体
struct Addressbooks
{
Person personArray[MAX]; // 通讯录中保存的联系人数组
int m_Size; // 通讯录中的人员个数
};
// 添加一个人到通讯录
void addPerson(Addressbooks * p) {
if (p->m_Size == MAX)
{
cout << "通讯录已满,无法在添加人员了" << endl;
return;
}
else
{
// 姓名
string name;
cout << "请输入姓名:" << endl;
cin >> name;
p->personArray[p->m_Size].name = name;
// 性别
cout << "请输入性别:" << endl;
cout << "男:1;女 : 2" << endl;
int gender = 0;
while (true)
{
cin >> gender;
if (gender == 1 || gender == 2)
{
p->personArray[p->m_Size].m_Sex = gender;
break;
}
cout << "输入有误,请重新输入" << endl;
}
// 年龄
int age;
cout << "请输入年龄:" << endl;
cin >> age;
p->personArray[p->m_Size].m_Age = age;
// 手机号
string phone;
cout << "请输入手机号码:" << endl;
cin >> phone;
p->personArray[p->m_Size].m_Phone = phone;
//地址
string address;
cout << "请输入地址:" << endl;
cin >> address;
p->personArray[p->m_Size].m_Addr = address;
p->m_Size += 1;
cout << "添加成功" << endl;
// 请按任意键继续
system("pause");
// 代表清屏操作
system("cls");
}
}
// 显示联系人
void showPerson(Addressbooks* p) {
if (p->m_Size == 0)
{
cout << "您的通讯录还是空的,快去添加把!" << endl;
return;
}
for (size_t i = 0; i < p->m_Size; i++)
{
cout << "姓名:" << p->personArray[i].name
<< " 性别:" << ((p->personArray[i].m_Sex == 1) ? "男" : "女")
<< " 年龄:" << p->personArray[i].m_Age
<< " 手机号码:" << p->personArray[i].m_Phone
<< " 地址:" << p->personArray[i].m_Addr << endl;
}
// 请按任意键继续
system("pause");
// 代表清屏操作
system("cls");
}
int isExist(Addressbooks* p, string name) {
int result = -1;
// 根据姓名查找
for (int i = 0; i < p->m_Size; i++)
{
if (p->personArray[i].name == name)
{
result = i;
break;
}
}
return result;
}
// 删除联系人
void deletePerson(Addressbooks* p) {
cout << "请输入您要删除的联系人的名称:" << endl;
string name;
cin >> name;
int result = isExist(p, name);
if (result == -1)
{
cout << "查无此人" << endl;
return;
}
for (int i = result; i < p->m_Size; i++)
{
p->personArray[i] = p->personArray[i + 1];
}
p->m_Size--;
cout << "删除成功" << endl;
system("pause");
system("cls");
}
void queryPerson(Addressbooks* p) {
cout << "请输入您要查询人的姓名:" << endl;
string name;
cin >> name;
int result = isExist(p, name);
if (result == -1)
{
cout << "查无此人" << endl;
return;
}
cout << "姓名:" << p->personArray[result].name
<< " 性别:" << ((p->personArray[result].m_Sex == 1) ? "男" : "女")
<< " 年龄:" << p->personArray[result].m_Age
<< " 手机号码:" << p->personArray[result].m_Phone
<< " 地址:" << p->personArray[result].m_Addr << endl;
system("pause");
system("cls");
}
// 显示按钮
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;
}
int main() {
// 创建通讯录对象
Addressbooks addressbooks;
// 初始化结构体变量
addressbooks.m_Size = 0;
while (true)
{
showMenu();
int select = 0;
cout << "请输入您的选择:\n" << endl;
cin >> select;
switch (select)
{
case 1:
addPerson(&addressbooks);
break;
case 2:
showPerson(&addressbooks);
break;
case 3:
deletePerson(&addressbooks);
break;
case 4:
queryPerson(&addressbooks);
break;
case 5:
break;
case 6:
break;
case 0:
cout << "退出通讯录系统" << endl;
return 0;
default:
break;
}
}
// 请按任意键继续
system("pause");
return 0;
}