#include<iostream>
#include<math.h>
#include<string>
#include<cstdlib>
using namespace std;
#define MAX 1000
struct Linkman
{
string name;
string gender;
int age;
string phoneNumber;
string address;
};
void displayMenu()
{
cout << "**************************************************" << endl;
cout << "**************** 1.添加联系人 ****************" << endl;
cout << "**************** 2.显示联系人 ****************" << endl;
cout << "**************** 3.删除联系人 ****************" << endl;
cout << "**************** 4.查找联系人 ****************" << endl;
cout << "**************** 5.修改联系人 ****************" << endl;
cout << "**************** 6.清空联系人 ****************" << endl;
cout << "**************** 0.退出通讯录 ****************" << endl;
return;
}
void addLinkman(Linkman* linkman,int* headcountp)
{
int headcount = *headcountp;
if (headcount < MAX)
{
cout << "请输入联系人的姓名:";
cin >> linkman[headcount].name;
cout << "请输入联系人的性别:";
cin >> linkman[headcount].gender;
cout << "请输入联系人的年龄:";
cin >> linkman[headcount].age;
cout << "请输入联系人的联系电话:";
cin >> linkman[headcount].phoneNumber;
cout << "请输入联系人的家庭住址:";
cin >> linkman[headcount].address;
cout << "添加成功!" << endl;
*headcountp = headcount + 1;
}
else
{
cout << "添加失败!通讯录最大容纳" << MAX << "人!";
}
return;
}
void showLinkman(Linkman* linkman, int headcount)
{
if (headcount != 0)
{
for (int i = 0; i < headcount; i++)
{
cout << "姓名:" << (linkman + i)->name << " ";
cout << "性别:" << (linkman + i)->gender << " ";
cout << "年龄:" << (linkman + i)->age << " ";
cout << "联系电话:" << (linkman + i)->phoneNumber << " ";
cout << "家庭住址:" << (linkman + i)->address << " ";
cout << endl;
}
}
else
{
cout << "该通讯录为空!" << endl;
}
}
void searchLinkman(Linkman* linkman, int headcount)
{
cout << "请输入您要查找人的姓名:";
string name;
cin >> name;
int flag = 0;
for (int i = 0; i < headcount; i++)
{
if (name == (linkman + i)->name)
{
cout << "姓名:" << (linkman + i)->name << " ";
cout << "性别:" << (linkman + i)->gender << " ";
cout << "年龄:" << (linkman + i)->age << " ";
cout << "联系电话:" << (linkman + i)->phoneNumber << " ";
cout << "家庭住址:" << (linkman + i)->address << " ";
cout << endl;
flag++;
}
}
if (flag == 0)
{
cout << "查无此人!" << endl;
}
return;
}
void deleteLinkman(Linkman* linkman, int* headcountp)
{
int flag = 0;
cout << "请输入您所要删除的联系人:";
string name;
cin >> name;
for (int i = 0; i < *headcountp; i++)
{
if (name == (linkman + i)->name)
{
for (int j = i; j < *headcountp - 1; j++)
{
*(linkman + j) = *(linkman + j + 1);
}
cout << "成功删除第" << i+1 << "位联系人!" << endl;
*headcountp -= 1;
flag++;
}
}
if (flag == 0)
{
cout << "查无此人!" << endl;
}
return;
}
void amendLinkman(Linkman* linkman, int headcount)
{
int flag = 0;
cout << "请输入您所要修改的联系人:";
string name;
cin >> name;
for (int i = 0; i < headcount; i++)
{
if (name == (linkman + i)->name)
{
cout << "请输入联系人的姓名:";
cin >> (linkman + i)->name;
cout << "请输入联系人的性别:";
cin >> (linkman + i)->gender;
cout << "请输入联系人的年龄:";
cin >> (linkman + i)->age;
cout << "请输入联系人的联系电话:";
cin >> (linkman + i)->phoneNumber;
cout << "请输入联系人的家庭住址:";
cin >> (linkman + i)->address;
cout << "修改成功!" << endl;
flag++;
}
}
if (flag == 0)
{
cout << "查无此人!" << endl;
}
return;
}
void cleanLinkman(int* headcountp)
{
*headcountp = 0;
cout << "清空成功!" << endl;
return;
}
int main()
{
Linkman linkman[MAX]; //最多记录1000人
int headcount = 0; //记录已经存在的联系人数目
int choose;
bool control;
control = true;
while (control)
{
system("cls");
displayMenu();
cin >> choose;
switch (choose)
{
case 0:
cout << "欢迎下次使用" << endl;
control = false;
break;
case 1:
addLinkman(linkman, &headcount);
break;
case 2:
showLinkman(linkman, headcount);
break;
case 3:
deleteLinkman(linkman, &headcount);
break;
case 4:
searchLinkman(linkman, headcount);
break;
case 5:
amendLinkman(linkman, headcount);
break;
case 6:
cleanLinkman(&headcount);
break;
default :
cout << "无此选项!" << endl;
break;
}
system ("pause");
}
return 0;
}
网友评论