目标:实现简单的增查改删
1.联系人结构体
//创建联系人结构体
struct Person
{
string Name;
int Sex; //1 表示男 2表示女
int Age;
int Phone_number;
string Address;
};
2.通讯录结构体
头文件:
#include<iostream>
#include<string>
#define people_Max 500
using namespace std;
//创建通讯录结构体
struct AddressBook
{
struct Person man[people_Max];//通讯录最大人数
int Size;//通讯录中含有的人数
};
3.菜单
//菜单
void menu()
{
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;
}
4.总流程
int main()
{
//创建一个通讯录
AddressBook abs;
abs.Size = 0;//初始化个数
while (1)
{
//显示人数
cout << "已有人数:" << abs.Size << endl;
menu();
cout << "请输入你要的功能" << endl;
int choice;
cin >> choice;
switch (choice)
{
case 1://添加联系人
addperson(&abs);
break;
case 2://显示联系人
show_people(&abs);
break;
case 3://删除联系人
deldeteperson(&abs);
break;
case 4://查找联系人
system("cls");
int number;
cout << "请输入你要查找的联系人的电话号码" << endl;
cin >> number;
findPerson(&abs,number);
break;
case 5://修改联系人
amendPerson(&abs);
break;
case 6://清空联系人
emptyPerson(&abs);
break;
case 0://退出
exit();
return 0;
break;
default:
cout << "输入不合法请重新输入" << endl;
break;
}
}
}
5.添加联系人
//添加联系人
void addperson(AddressBook *p)
{
if (p->Size >= people_Max)
{
cout << "通讯录已满,无法添加" << endl;
}
else
{
string name;
int age;
int sex;
int number;
string address;
cout << "请输入姓名" << endl;
cin >>name;
p->man[p->Size].Name = name;
cout << "请输入性别 1男 /2 女" << endl;
while (1)
{
cin >> sex;
if (sex != 1 || sex != 2)
{
p->man[p->Size].Sex = sex;
break;
}
cout << "输入错误,请重新输入" << endl;
}
cout << "请输入年龄" << endl;
cin >> age;
p->man[p->Size].Age = age;
cout << "请输入电话号码" << endl;
cin >>number;
p->man[p->Size].Phone_number = number;
cout << "请输入住址" << endl;
cin >>address;
p->man[p->Size].Address = address;
//人数加一
p->Size++;
cout << "添加成功" << endl;
system("cls");//清屏
}
}
6。显示联系人
//显示联系人
void show_people(AddressBook *p)
{
cout <<" ------------联系人如下所示------------" << endl;
for (int i = 0; i < p->Size; i++)
{
cout << "姓名:" << p->man[i].Name << " ";
if (p->man[i].Sex == 1)
cout << "性别:男";
else
cout << "性别:女";
cout<< " " <<"年龄:" << p->man[i].Age << " "
<< "电话号码:" << p->man[i].Phone_number << " " <<
"家庭住址" << p->man[i].Address << endl;
}
}
7.查找联系人
//查找联系人
int findPerson(AddressBook *p,int number)
{
if (p->Size == 0)
{
cout << "通讯录为空";
return -1;
}
for (int i = 0; i < p->Size; i++)
{
if (p->man[i].Phone_number == number)
{
cout<< "姓名:" << p->man[i].Name << " ";
if (p->man[i].Sex == 1)
cout << "性别:男";
else
cout << "性别:女";
cout << " " << "年龄:" << p->man[i].Age << " "
<< "电话号码:" << p->man[i].Phone_number << " " <<
"家庭住址" << p->man[i].Address << endl;
return i;
}
}
cout << "不存在此联系人" << endl;
}
8.修改联系人
//信息列表
void perplrmenu()
{
cout << "----------------" << endl;
cout << "-----1.姓名-----" << endl;
cout << "-----2.性别-----" << endl;
cout << "-----3.年龄-----" << endl;
cout << "-----4.电话号码-" << endl;
cout << "-----5.家庭住址-" << endl;
cout << "-----6.全部-----" << endl;
cout << "----------------" << endl;
}
//修改联系人
void amendPerson(AddressBook *p)
{
system("cls");
int number;
cout << "请输入你要修改的联系人 的电话号码" << endl;
cin >> number;
int a=findPerson(p,number);
if (a < 0)
{
cout << "该联系人不存在" << endl;
}
else
{
perplrmenu();
X:
cout << "请输入你要修改的信息 " << endl;
int ab;
cin >> ab;
if (ab > 6 || ab < 1)
{
goto X;
}
string name;
int sex;
int age;
int number1;
int address;
switch (ab)
{
case 1:
cout << "请输入新的姓名" << endl;
cin >> name;
p->man[a].Name = name;
break;
case 2:
cout << "请输入新的性别 1男/2 女" << endl;
cin >> sex;
p->man[a].Sex = sex;
break;
case 3:
cout << "请输入新的年龄" << endl;
cin >> age;
p->man[a].Age = age;
break;
case 4:
cout << "请输入新的电话号码" << endl;
cin >> number1;
p->man[a].Phone_number = number1;
break;
case 5:
cout << "请输入新的住址" << endl;
cin >> address;
p->man[a].Address = address;
break;
case 6:
cout << "请输入新的姓名" << endl;
cin >> name;
p->man[a].Name = name;
cout << "请输入新的性别 1男/2 女" << endl;
cin >> sex;
p->man[a].Sex = sex;
cout << "请输入新的年龄" << endl;
cin >> age;
p->man[a].Age = age;
cout << "请输入新的电话号码" << endl;
cin >> number1;
p->man[a].Phone_number = number1;
cout << "请输入新的住址" << endl;
cin >> address;
p->man[a].Address = address;
break;
default:
break;
}
}
system("cls");
cout << "修改成功" << endl;
}
9.删除联系人
//删除联系人
void deldeteperson(AddressBook *p)
{
cout << "请输入你要删除联系人的电话号码" << endl;
int number;
cin >>number;
int a1=findPerson(p,number);
if (a1 < 0)
{
cout << "该联系人不存在" << endl;
}
else
{
for (a1; a1 < p->Size; a1++)
{
p->man[a1] = p->man[a1 + 1];
}
//人数减一
p->Size--;
cout << "删除成功" << endl;
}
}
10.清空
//清空
void emptyPerson(AddressBook *p)
{
p->Size = 0;
cout << "清空成功" << endl;
system("cls");
}