博主:👍不许代码码上红
欢迎:🐋点赞、收藏、关注、评论。
格言: 大鹏一日同风起,扶摇直上九万里。文章目录
- 一、系统功能介绍
- 二、新建项目
- 三、菜单列表
- 四、退出系统
- 五、添加联系人
- 六、显示联系人
- 七、删除联系人
- 八、查找联系人
- 九、修改联系人
- 十、清空联系人
1、添加联系人:向通讯录中添加联系人
2、显示联系人:显示通讯录中所有联系人信息
3、删除联系人:按照姓名删除指定的联系人
4、查找联系人:按照姓名查看特定联系人信息
5、修改联系人:按照姓名修改联系人信息
6、清空联系人:清空统续录中所有信息
7、退出通讯录系统
创建新项目(visual studio2022)
创建源文件
菜单功能:用户可以使用的功能
1、封装函数showMenu()来显示菜单功能
代码
#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或者2while (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");}}
4、测试添加联系人功能
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++学习有帮助的话,就三联一下吧!