简单的通讯录管理系统,包含下面这些功能
代码加上注释一共200行,还算简洁。
代码如下:
#include<iostream>
using namespace std;
#define max 1000
//菜单
void meau()
{
cout << "\n********************" << 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
{
//1.姓名
string name;
//2.性别
string sex;
//3.年龄
int age;
//4.电话
string tele;
};
//设计通讯录结构体
struct addressbook
{
struct person personarray[max];//联系人数组
int size;//当前保存人数
};
//1.新建联系人
void addperson(addressbook * abs)
{
//判断通讯录是否已满
if (abs->size == max)
{
cout << "通讯录已满,无法继续添加!" << endl;
return;
}
else
{
//具体添加
//1.姓名
cout << "请输入姓名:" << endl;
cin >> abs->personarray[abs->size].name;
//2.性别
cout << "请输入性别:" << endl;
cin >> abs->personarray[abs->size].sex;
//3.年龄
cout << "请输入年龄:" << endl;
cin >> abs->personarray[abs->size].age;
//4.电话
cout << "请输入电话:" << endl;
cin >> abs->personarray[abs->size].tele;
//保存人数+1
abs->size++;
//提示添加成功
cout << "添加成功!" << endl;
}
}
//2.显示联系人
void showperson(addressbook* abs)
{
if (abs->size == 0)
{
cout << "通讯录为空,无法显示!" << endl;
return;
}
else
{
for (int i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->personarray[i].name << "\t";
cout << "性别:" << abs->personarray[i].sex << "\t";
cout << "年龄:" << abs->personarray[i].age << "\t";
cout << "电话:" << abs->personarray[i].tele << endl;
}
}
}
//检查联系人是否存在
// 存在返回该联系人在通讯录数组中的位置,不存在返回-1;
//参数 1. 通讯录 2.姓名
int isexist(addressbook* abs,string name)
{
for (int i = 0; i < abs->size; i++)
if (abs->personarray[i].name == name)
return i;
return -1;
}
//3.删除联系人
void deleteperson(addressbook* abs)
{
cout << "请输入您要删除的联系人的姓名" << endl;
string name1;
cin >> name1;
int ret = isexist(abs, name1);
if ( ret== -1)
cout << "查无此人!" << endl;
else
{
for (int i = ret; i < abs->size - 1; i++)
abs->personarray[i] = abs->personarray[i + 1];
abs->size--;
cout << "删除成功!" << endl;
}
}
//4.查找联系人
void findperson(addressbook* abs)
{
cout << "请输入您要查找的联系人的姓名" << endl;
string name1;
cin >> name1;
int ret = isexist(abs, name1);
if (ret == -1)
cout << "查无此人!" << endl;
else
{
cout << "\t该联系人信息如下" << endl;
cout << "姓名:" << abs->personarray[ret].name << endl;
cout << "性别:" << abs->personarray[ret].sex << endl;
cout << "年龄:" << abs->personarray[ret].age << endl;
cout << "电话:" << abs->personarray[ret].tele << endl;
}
}
void modifyperson(addressbook* abs)
{
cout << "请输入您要修改的联系人的姓名" << endl;
string name1;
cin >> name1;
int ret = isexist(abs, name1);
if (ret == -1)
cout << "查无此人!" << endl;
else
{
//1.姓名
cout << "请修改姓名:" << endl;
cin >> abs->personarray[ret].name;
//2.性别
cout << "请修改性别:" << endl;
cin >> abs->personarray[ret].sex;
//3.年龄
cout << "请修改年龄:" << endl;
cin >> abs->personarray[ret].age;
//4.电话
cout << "请修改电话:" << endl;
cin >> abs->personarray[ret].tele;
//提示修改成功
cout << "修改成功!" << endl;
}
}
//6.清空联系人
void clearperson(addressbook* abs)
{
abs->size = 0;
cout << "通讯录已清空" << endl;
}
int main()
{
//创建结构体变量
addressbook abs;
//初始化保存人数
abs.size = 0;
int select;
while (1)
{
meau();
cin >> select;
switch (select)
{
case 1://1.新建联系人
addperson(&abs);
break;
case 2://2.显示联系人
showperson(&abs);
break;
case 3://3.删除联系人
deleteperson(&abs);
break;
case 4://4.查找联系人
findperson(&abs);
break;
case 5://5.修改联系人
modifyperson(&abs);
break;
case 6://6.清空联系人
clearperson(&abs);
break;
case 0://0.退出联系人
cout << "欢迎下次使用" << endl;
system("pause"); return 0;
default://输错处理
break;
}
//清空屏幕
system("pause");
system("cls");
}
return 0;
}