博主:不许代码码上红
欢迎:点赞、收藏、关注、评论。
格言: 大鹏一日同风起,扶摇直上九万里。文章目录
- 一、系统功能介绍
- 二、新建项目
- 三、菜单列表
- 四、退出系统
- 五、添加联系人
- 六、显示联系人
- 七、删除联系人
- 八、查找联系人
- 九、修改联系人
- 十、清空联系人
1、添加联系人:向通讯录中添加联系人
2、显示联系人:显示通讯录中所有联系人信息
3、删除联系人:按照姓名删除指定的联系人
4、查找联系人:按照姓名查看特定联系人信息
5、修改联系人:按照姓名修改联系人信息
6、清空联系人:清空统续录中所有信息
7、退出通讯录系统
菜单功能:用户可以使用的功能
代码
#include
using namespace std;
//封装函数showMenu来显示菜单界面
void showMenu() {
cout << "******通讯录管理系统_C++******" << endl;
cout << "1、添加联系人" << endl;
cout << "2、显示联系人" << endl;
cout << "3、删除联系人" << endl;
cout << "4、查找联系人" << endl;
cout << "5、修改联系人" << endl;
cout << "6、清空联系人" << endl;
cout << "7、退出通讯录系统" << endl;
cout << "************" << endl;
}
int main() {
showMenu();
return 0;
}
1、使用switch分支语句
代码
int select = 0;
while (true) {
cin >> select;
switch (select) {
case 0:
cout << "欢迎下次使用!" << endl;
system("pause");
return 0;
break; //退出通讯录功能
}
}
1、创建联系人结构体
代码
//联系人结构体
struct person {
string m_name;
//1、男性 2、女性
int m_gender;
int m_age;
string m_phone;
string m_address;
};
2、创建通讯录结构体
代码
struct AddressBooks {
//通讯录中保存的联系人的个数
struct person personArray[MAX];
//通讯录中当前联系人个数
int m_size = 0;
};
3、封装添加联系人函数
代码
//添加联系人函数
void addPerson(AddressBooks* abs) {
//先判断通讯录是否已满
if (abs ->m_size == MAX) {
cout << "通讯录已满!" << endl;
return;
}
else {
//添加姓名
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs->personArray[abs->m_size].m_name = name;
//添加性别
cout << "请输入性别:" << endl;
cout << "1---男" << endl;
cout << "2---女" << endl;
int gender = 0;
//写一个while循环,防止输入的不是1或者2
while (true) {
cin >> gender;
if (gender == 1 || gender == 2) {
abs->personArray[abs->m_size].m_gender = gender;
break;
}
cout << "输入有误,请重新输入!" << endl;
}
//添加年龄
cout << "请输入年龄:" << endl;
int age = 0;
cin >> age;
abs->personArray[abs->m_size].m_age = age;
//添加电话
cout << "请输入电话:" << endl;
string phone;
cin >> phone;
abs->personArray[abs->m_size].m_phone = phone;
//添加住址
cout << "请输入地址:" << endl;
string address;
cin >> address;
abs->personArray[abs->m_size].m_address = address;
//更新通讯录人数
abs->m_size++;
cout << "添加成功" << endl;
//清屏
system("pause");
system("cls");
}
}
5、联系人信息包括:姓名、性别、年龄、联系电话、家庭住址
1、显示通讯录中所有的联系人信息
代码
case 2:
showPerson(&abs);
break;//显示联系人
2、封装显示联系人的函数
代码
//2、显示所有的联系人信息
void showPerson(AddressBooks *abs) {
if (abs->m_size == 0) {
cout << "当前记录为空!" << endl;
}
else {
for (int i = 0; i < abs->m_size; i++) {
cout << "姓名:" << abs->personArray[i].m_name << "\t";
//三目运算符
cout << "性别:" << (abs->personArray[i].m_gender == 1 ? "男":"女" )<< "\t";
cout << "年龄:" << abs->personArray[i].m_age << "\t";
cout << "电话:" << abs->personArray[i].m_phone << "\t";
cout << "住址:" << abs->personArray[i].m_address << endl;
}
}
system("pause");
system("cls");
}
1、封装检测联系人是否存在函数
代码
//3、检测联系人是否存在函数
int isExist(AddressBooks * abs,string name) {
for (int i = 0; i < abs->m_size; i++) {
if (abs->personArray[i].m_name == name) {
return i;
}
}
return -1;
}
2、封装删除联系人函数
代码
//封装删除联系人函数
void deletePerson(AddressBooks *abs) {
cout << "请输入要删除的联系人:" << endl;
string name;
cin >> name;
//ret = -1未查到
//ret !=-1查到了
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;
}
else {
cout << "查无此人!" << endl;
}
//清屏
system("pause");
system("cls");
}
代码
1、封装查找联系人的函数
//4、查找联系人
void findPerson(AddressBooks *abs) {
cout << "请输入要查找的联系人姓名:" << endl;
string name;
cin >> name;
//判断联系人是否在通讯录中
int ret = isExist(abs, name);
if (ret != -1) {
cout << "查找成功" << endl;
cout << "姓名:"<< abs->personArray[ret].m_name << "\t";
cout << "性别:" << abs->personArray[ret].m_gender << "\t";
cout << "年龄:" << abs->personArray[ret].m_age << "\t";
cout << "电话:" << abs->personArray[ret].m_phone << "\t";
cout << "住址:" << abs->personArray[ret].m_address << endl;
}
else {
cout << "查无此人" << endl;
}
system("pasue");
system("cls");
}
1、封装修改联系人函数
代码
//修改指定联系人信息
void modifyPerson(AddressBooks *abs) {
cout << "请输入要修改的联系人:" << endl;
string name;
cin >> name;
int ret = isExist(abs, name);
if (ret != -1) {
cout << "找到联系人!" << endl;
//修改姓名
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs->personArray[ret].m_name = name;
//修改性别
int gender;
cout << "请输入性别:" << endl;
cout << "1---男;2---女" << endl;
while (true) {
cin >> gender;
if (gender == 1 || gender == 2) {
abs->personArray[ret].m_gender = gender;
break;
}
}
//修改年龄
int age;
cout << "请输入年龄:" << endl;
cin >> age;
abs->personArray[ret].m_age = age;
//修改手机号
string phone;
cout << "请输入手机号:" << endl;
cin >> phone;
abs->personArray[ret].m_phone = phone;
//修改住址
string address;
cout << "请输入住址:" << endl;
cin >> address;
abs->personArray[ret].m_address = address;
}
else {
cout << "查无此人!" << endl;
}
system("pause");
system("cls");
}
1、封装函数实现清空联系人
代码
//6、清空所有联系人
void cleanPerson(AddressBooks *abs) {
int flag = 0;
cout << "是否确认清空?" << endl;
cout << "1---确认" << endl;
cout << "2---取消" << endl;
cin >> flag;
switch (flag) {
case 1:
abs->m_size = 0;//做逻辑清空
cout << "通讯录已经清空!" << endl;
break;
case 2:
cout << "已经取消操作!" << endl;
break;
}
system("pause");
system("cls");
}
如果对您的C++学习有帮助的话,就三联一下吧!