#include <iostream>
#include <string>
using namespace std;
struct Person
{
string m_Name; //名字
string m_Sex; //性别 1男2女
int m_Age; //年龄
string m_Phone; //电话
string m_Addr; //住址
};
#define Max 1000 // 最大人数
struct Addressbooks
{
Person personArray[Max];
int m_Size; // 通讯录中人员个数
};
void addPerson(Addressbooks * abs)
{
//判断通讯录是否已满
if (abs->m_Size == Max) { cout << "通讯录已满" << endl; return; }
//string name;
cout << "请输入姓名" << endl;
cin >> abs->personArray[abs->m_Size].m_Name;
//abs->personArray[abs->m_Size].m_Name=name;
cout << "请输入性别" << endl;
cin >> abs->personArray[abs->m_Size].m_Sex;
cout << "请输入电话" << endl;
cin >> abs->personArray[abs->m_Size].m_Phone;
cout << "请输入年龄" << endl;
cin >> abs->personArray[abs->m_Size].m_Age;
cout << "请输入住址" << endl;
cin >> abs->personArray[abs->m_Size].m_Addr;
++ abs->m_Size;
cout << "添加成功" << endl;
system("pause"); //按任意键继续
system("cls"); //清屏操作
}
void showPerson(Addressbooks *abs)
{
//判断通讯录中人数是否为空
if (abs->m_Size == 0) cout << "通讯录为空" << endl;
for (int i = 0; i < abs->m_Size; i++)
{
cout << "姓名: " << abs->personArray[i].m_Name << "\t";
cout << "性别: " << abs->personArray[i].m_Sex << "\t";
cout << "年龄: " << abs->personArray[i].m_Age << "\t";
cout << "电话: " << abs->personArray[i].m_Phone << "\t";
cout << "地址: " << abs->personArray[i].m_Addr << endl;
}
system("pause"); //按任意键继续
system("cls"); //清屏
}
int isexist(Addressbooks *abs, string name)
{
for (int i = 0; i < abs->m_Size; i ++)
{
if (abs->personArray[i].m_Name == name) return i;// 找到用户输入的名字,并返回其位置
}
cout << "未找到该用户" << endl;
return -1;//未找到用户
}
void deletePerson(Addressbooks *abs)
{
cout << "输入您要删除的联系人" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
for (int i = ret; i < abs->m_Size; i++)
{
abs->personArray[i] = abs->personArray[i + 1];//数据迁移
}
abs->m_Size --;//更新联系人数目
cout << " 删除成功" << endl;
}
system("pause");
system("cls");
}
void findPerson(Addressbooks *abs)
{
cout << "请输入您要查找的联系人" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
cout << "姓名: " << abs->personArray[ret].m_Name << "\t";
cout << "性别: " << abs->personArray[ret].m_Sex << "\t";
cout << "年龄: " << abs->personArray[ret].m_Age << "\t";
cout << "电话: " << abs->personArray[ret].m_Phone << "\t";
cout << "地址: " << abs->personArray[ret].m_Addr << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void modifyPerson(Addressbooks *abs)
{
cout << "输入需要修改联系人的姓名" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
cout << "重新输入姓名" << endl;
cin >> abs->personArray[ret].m_Name;
//abs->personArray[abs->m_Size].m_Name=name;
cout << "重新输入性别" << endl;
cin >> abs->personArray[ret].m_Sex;
cout << "重新输入电话" << endl;
cin >> abs->personArray[ret].m_Phone;
cout << "重新输入年龄" << endl;
cin >> abs->personArray[ret].m_Age;
cout << "重新输入住址" << endl;
cin >> abs->personArray[ret].m_Addr;
}
system("pause");
system("cls");
}
void cleanPeople(Addressbooks *abs)
{
abs->m_Size = 0;
cout << "通讯录已清空" << 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 abs; //创建通讯录结构体变量
abs.m_Size = 0;// 初始化通讯录中当前人员个数
int select = 0; //创建用户输入的变量
while (true)
{
int select = 0; //创建用户输入的变量
showmenu();
cin >> select;
switch (select)
{
case 1: addPerson(&abs);
break;
case 2: showPerson(&abs);
break;
case 3: //cout << "请输入删除联系人姓名" << endl;
/*{ string name;
cin >> name;
if (isexist(&abs, name) == -1) cout << "查无此人" << endl;
}*/
deletePerson(&abs);
break;
case 4:
findPerson(&abs);
break;
case 5:
modifyPerson(&abs);
break;
case 6:
cleanPeople(&abs);
break;
case 0:
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
}
}
system("pause");
return 0;
}
【黑马C++入门 通讯录管理系统】2022.2.26
最新推荐文章于 2024-01-06 15:47:20 发布