介绍

制作菜单
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;
}

大体框架

结构体设计
联系人结构体
struct person {
string name;
int sex;
int age;
string phone;
string addr;
};
通讯录结构体
struct AddressBooks {
struct person personArray[Max]; //人员保存
int person_size; //人员数
};
添加联系人
void AddPerson(AddressBooks* abs) { //添加联系人
if (abs->person_size == Max) {
cout << "通讯录已满" << endl;
return;
}
else {
cout << "姓名" << endl;
cin >> abs->personArray[abs->person_size].name;
cout << "性别(1-man,2-women)" << endl;
int input = 0;
while (1) {
cin >> input;
if (input == 1 || input == 2) {
abs->personArray[abs->person_size].sex = input;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "年龄(0-200)" << endl;
int age = 0;
while (1) {
cin >> age;
if (age >= 0 && age <200) {
abs->personArray[abs->person_size].age = age;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "电话" << endl;
cin >> abs->personArray[abs->person_size].phone;
cout << "地址" << endl;
cin >> abs->personArray[abs->person_size].addr;
abs->person_size++;
cout << "添加成功" << endl;
}
system("pause");
system("cls");
}
显示联系人
void ShowPerson(AddressBooks* abs) { //显示所有联系人
if (abs->person_size == 0) //通讯录为空
cout << "通讯录为空" << endl;
else {
for (int i = 0; i < abs->person_size; i++) {
cout << "姓名:\t" << abs->personArray[i].name <<"\t";
cout << "性别:\t" << (abs->personArray[i].sex == 1 ? "男" : "女") << "\t";
cout << "年龄:\t" << abs->personArray[i].age << "\t";
cout << "电话:\t" << abs->personArray[i].phone << "\t";
cout << "地址:\t" << abs->personArray[i].addr << endl;
}
}
system("pause");
system("cls");
}
删除联系人
int isExist(AddressBooks* abs, string name) { //检查联系人是否存在并且返回位置编号
for (int i = 0; i < abs->person_size; i++) {
if (abs->personArray[i].name == name) {
return i;
}
}
return -1;
}
void DeletePeron(AddressBooks* abs) { //删除联系人
cout << "输入删除人员姓名" << endl;
string name;
cin >> name;
int ret = isExist(abs, name);
if (ret != -1) {
for (int i = ret; i < abs->person_size-1; i++) {
abs->personArray[i] = abs->personArray[i + 1];
}
abs->person_size--;
cout << "删除成功" << endl;
}
else {
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 << "姓名:\t" << abs->personArray[ret].name << "\t";
cout << "性别:\t" << (abs->personArray[ret].sex == 1 ? "男" : "女") << "\t";
cout << "年龄:\t" << abs->personArray[ret].age << "\t";
cout << "电话:\t" << abs->personArray[ret].phone << "\t";
cout << "地址:\t" << abs->personArray[ret].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].name;
cout << "性别(1-man,2-women)" << endl;
int input = 0;
while (1) {
cin >> input;
if (input == 1 || input == 2) {
abs->personArray[ret].sex = input;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "年龄(0-200)" << endl;
int age = 0;
while (1) {
cin >> age;
if (age >= 0 && age < 200) {
abs->personArray[ret].age = age;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "电话" << endl;
cin >> abs->personArray[ret].phone;
cout << "地址" << endl;
cin >> abs->personArray[ret].addr;
cout << "修改成功" << endl;
}
else {
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
清空通讯录
void CleanPerson(AddressBooks* abs) { //清空通讯录
abs->person_size = 0;
cout << "通讯录已清空" << endl;
system("pause");
system("cls");
}
所有实现代码
#include <iostream>
using namespace std;
#define Max 1000
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;
}
struct person {
string name;
int sex;
int age;
string phone;
string addr;
};
struct AddressBooks {
struct person personArray[Max]; //人员保存
int person_size; //人员数
};
void AddPerson(AddressBooks* abs) { //添加联系人
if (abs->person_size == Max) {
cout << "通讯录已满" << endl;
return;
}
else {
cout << "姓名" << endl;
cin >> abs->personArray[abs->person_size].name;
cout << "性别(1-man,2-women)" << endl;
int input = 0;
while (1) {
cin >> input;
if (input == 1 || input == 2) {
abs->personArray[abs->person_size].sex = input;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "年龄(0-200)" << endl;
int age = 0;
while (1) {
cin >> age;
if (age >= 0 && age <200) {
abs->personArray[abs->person_size].age = age;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "电话" << endl;
cin >> abs->personArray[abs->person_size].phone;
cout << "地址" << endl;
cin >> abs->personArray[abs->person_size].addr;
abs->person_size++;
cout << "添加成功" << endl;
}
system("pause");
system("cls");
}
void ShowPerson(AddressBooks* abs) { //显示所有联系人
if (abs->person_size == 0) //通讯录为空
cout << "通讯录为空" << endl;
else {
for (int i = 0; i < abs->person_size; i++) {
cout << "姓名:\t" << abs->personArray[i].name <<"\t";
cout << "性别:\t" << (abs->personArray[i].sex == 1 ? "男" : "女") << "\t";
cout << "年龄:\t" << abs->personArray[i].age << "\t";
cout << "电话:\t" << abs->personArray[i].phone << "\t";
cout << "地址:\t" << abs->personArray[i].addr << endl;
}
}
system("pause");
system("cls");
}
int isExist(AddressBooks* abs, string name) { //检查联系人是否存在并且返回位置编号
for (int i = 0; i < abs->person_size; i++) {
if (abs->personArray[i].name == name) {
return i;
}
}
return -1;
}
void DeletePeron(AddressBooks* abs) { //删除联系人
cout << "输入删除人员姓名" << endl;
string name;
cin >> name;
int ret = isExist(abs, name);
if (ret != -1) {
for (int i = ret; i < abs->person_size-1; i++) {
abs->personArray[i] = abs->personArray[i + 1];
}
abs->person_size--;
cout << "删除成功" << endl;
}
else {
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 << "姓名:\t" << abs->personArray[ret].name << "\t";
cout << "性别:\t" << (abs->personArray[ret].sex == 1 ? "男" : "女") << "\t";
cout << "年龄:\t" << abs->personArray[ret].age << "\t";
cout << "电话:\t" << abs->personArray[ret].phone << "\t";
cout << "地址:\t" << abs->personArray[ret].addr << endl;
}
else {
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void CleanPerson(AddressBooks* abs) { //清空通讯录
abs->person_size = 0;
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].name;
cout << "性别(1-man,2-women)" << endl;
int input = 0;
while (1) {
cin >> input;
if (input == 1 || input == 2) {
abs->personArray[ret].sex = input;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "年龄(0-200)" << endl;
int age = 0;
while (1) {
cin >> age;
if (age >= 0 && age < 200) {
abs->personArray[ret].age = age;
break;
}
else {
cout << "输入有误,重新输入" << endl;
}
}
cout << "电话" << endl;
cin >> abs->personArray[ret].phone;
cout << "地址" << endl;
cin >> abs->personArray[ret].addr;
cout << "修改成功" << endl;
}
else {
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
int main() {
int select = 0;
AddressBooks abs; //创建通讯录
abs.person_size = 0; //初始化人员数
while(1) {
showMenu(); //菜单展示
cin >> select;
switch (select) {
case 1: //添加联系人
AddPerson(&abs);
break;
case 2: //显示联系人
ShowPerson(&abs);
break;
case 3: //删除联系人
DeletePeron(&abs);
break;
case 4: //查找联系人
FindPerson(&abs);
break;
case 5: //修改联系人
ModifyPerson(&abs);
break;
case 6: //清空联系人
CleanPerson(&abs);
break;
case 0: //退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
system("cls");
break;
}
}
return 0;
}
