代码如下:
#include<iostream>
using namespace std;
#include<string.h>
#include<cstdlib>
#define MAX 100
struct Person {
string name;
string six;
int age;
string phonenumber;
string add;
};
struct Addressbooks {
int size;
Person pArray[MAX];
};
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;
}
void addPerson(Addressbooks * abs) {
if (abs->size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs->pArray[abs->size].name = name;
string six;
cout << "请输入性别:" << endl;
cin >> six;
abs->pArray[abs->size].six = six;
int age;
cout << "请输入年龄:" << endl;
cin >> age;
abs->pArray[abs->size].age = age;
string phonenumber;
cout << "请输入手机号:" << endl;
cin >> phonenumber;
abs->pArray[abs->size].phonenumber = phonenumber;
string add;
cout << "请输入地址:" << endl;
cin >> add;
abs->pArray[abs->size].add = add;
abs->size++;
cout << "添加成功!" << endl;
system("pause");
system("cls");//清屏
}
}
void showPerson(Addressbooks* abs)
{
if (abs->size == 0)
{
cout << "通讯录列表为空" << endl;
}
else
{
int count = 0;
while (count < abs->size) {
cout << "姓名: " << abs->pArray[count].name << "\t";
cout << "性别: " << abs->pArray[count].six << "\t";
cout << "年龄: " << abs->pArray[count].age << "\t";
cout << "电话: " << abs->pArray[count].phonenumber << "\t";
cout << "地址: " << abs->pArray[count].add << endl;
count++;
}
}
system("pause");
system("cls");
}
int existence(Addressbooks* abs, string name) {
for (int i = 0; i < abs->size; i++) {
if (name == abs->pArray[i].name) {
return i;
}
}
return -1;
}
void deletePerson(Addressbooks * abs) {
cout << "请输入查找的姓名" << endl;
string name;
cin >> name;
int ret = existence(abs,name);
if (ret == -1)
{
cout << "查无此人" << endl;
}
else
{
for (int i = ret; i< abs->size; i++)
{
abs->pArray[i] = abs->pArray[i + 1];
}
abs->size--;
}
cout << "删除成功!" << endl;
system("pause");
system("cls");
}
void findPerson(Addressbooks* abs)
{
cout << "请输入查找的姓名" << endl;
string name;
cin >> name;
int count =existence(abs,name);
if (count == -1)
{
cout << "查无此人" << endl;
}
else
{
cout << "姓名: " << abs->pArray[count].name << "\t";
cout << "性别: " << abs->pArray[count].six << "\t";
cout << "年龄: " << abs->pArray[count].age << "\t";
cout << "电话: " << abs->pArray[count].phonenumber << "\t";
cout << "地址: " << abs->pArray[count].add << endl;
}
system("pause");
system("cls");
}
void modifyPerson(Addressbooks*abs)
{
cout << "请输入您要修改的人名" << endl;
string name;
cin >> name;
int ret = existence(abs,name);
if (ret == -1)
{
cout << "查无此人" << endl;
}
else
{
cout << "请选择你要修改的信息 1.姓名 2.性别 3.年龄 4.电话号 5.住址 0.退出" << endl;
int select = 0;
bool flag = true;
while (flag)
{
cin >> select;
switch (select)
{
case 1:
cout << "修改为:";
{string name;
cin >> name;
abs->pArray[ret].name = name; }
break;
case 2:
cout << "修改为:";
{string six;
cin >> six;
abs->pArray[ret].six = six;
}
break;
case 3:
cout << "修改为:";
{int age;
cin >> age;
abs->pArray[ret].age = age;
}
break;
case 4:
cout << "修改为:";
{string phonenumber;
cin >> phonenumber;
abs->pArray[ret].phonenumber = phonenumber;
}
break;
case 5:
cout << "修改为:";
{string add;
cin >> add;
abs->pArray[ret].add = add;
}
break;
case 0:
flag = false;
break;
}
}
}
system("pause");
system("cls");
}
void clearPerson(Addressbooks* abs)
{
abs->size = 0;
cout << "清空完成" << endl;
system("pause");
system("cls");
}
int main(){
int select = 0;
Addressbooks abs;
abs.size = 0;
while (true) {
showMenu();
cin >> select;
switch (select)
{
case 1:
addPerson(&abs);
break;
case 2:
showPerson(&abs);
break;
case 3:
deletePerson(&abs);
break;
case 4:
findPerson(&abs);
break;
case 5:
modifyPerson(&abs);
break;
case 6:
clearPerson(&abs);
break;
case 0:
cout << "欢迎下次使用!" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}