前言:之前跟着黑马老师学习时,一边听课一边敲代码,感觉效果不理想,敲完一边都没记住什么,只是为了赶课程进度而去听讲、敲代码,那就只是过了一边脑子。这次自己重新写了一个通讯录,感觉还是收获了很多,同时也增加了自己学习的信心。
犯错:在创建结构体时,创建了联系人结构体,忘了创建通讯录结构体,导致一开始就遇到了问题,通讯录是一个包含 联系人结构体和通讯录人数 的结构体,比如说:添加联系人姓名时,是把
姓名给->通讯录结构体变量 abs的->联系人结构体的->第p_Size个->人员姓名
另外,在删除、查找、修改联系人时,都要先查一下这个人是否存在,封装一个检测联系人是否存在的函数 isExist()
程序如下:
#include <iostream>
using namespace std;
#include <string>
#include <cstdlib>//解决system()不明确问题
#define MAX 1000//最多添加1000人
//创建联系人结构体 联系人信息包括:姓名、性别、年龄、联系电话、家庭住址
struct Person
{
string m_Name;//姓名
int m_Sex;//1-->男,2-->女
int m_Age;//年龄
string m_Phone;//电话
string m_Address;//住址
};
//创建通讯录结构体
struct Personbooks
{
struct Person personArray[MAX];//创建一个Person类的数组,容量1000
int p_Size;//记录通讯录中的人数
};
//封装一个选择功能的界面
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;
}
//1、添加联系