前言
简单的完成 添加、显示、删除、查找、删除、清空和退出通讯录。
通讯录管理系统需要展现每个联系人的姓名、性别、年龄、联系方式及家庭地址。
一个简单的通讯录管理系统?
1.结构体定义
代码如下(示例):
//联系人结构体定义
struct Person
{
string m_Name;//姓名
int m_Sex;//性别
int m_Age;//年龄
string m_Number;//联系方式
string m_Address;//家庭地址
};
#define MAX 1000//最大添加人数
//通讯录结构体
struct Addressbooks
{
struct Person personArray[MAX];
int m_Size;
};
2.菜单界面
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;
}
3.添加联系人
下面展示一些 内联代码片
。
void addPerson(Addressbooks *abs)
{
//判断是否已满
if (abs->m_Size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
//添加姓名
string name;
cout << "请输入姓名: " << endl;
cin >> name;
abs->personArray[abs->m_Size].m_Name = name;
//添加性别
cout << "请选择性别:" << endl;
cout << "1.男" << endl;
cout << "2.女" << endl;
int sex = 0;
while (sex!=1&&sex!=2)
{
//如果输入的是1或2,则可退出循环
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->m_Size].m_Sex = sex;
break;
}
cout << "输入有误,请重新输入" << endl;
}
//添加年龄
cout << "请输入年龄" << endl;
int age;
cin >> age;
abs->personArray[abs->m_Size].m_Age=age;
//添加联系方式
cout << "请输入联系方式:" << endl;
string number;
cin >> number;
abs->personArray[abs->m_Size].m_Number = number;
//添加家庭地址
cout << "请输入家庭地址:" << endl;
string addr;
cin >> addr;
abs->personArray[abs->m_Size].m_Address = addr;
//更新通讯录人数
abs->m_Size++;
cout << "添加成功" << endl;
system("pause");
system("cls");
}
}
4.显示联系人
void showPersom(Addressbooks *abs)
{
//判断人数是否为0
if (abs->m_Size == 0)
{
cout << "当前记录为空" << endl;
}
else
{
for (int i = 0; i < abs->m_Size; i++)
{
cout << "姓名:" << abs->personArray[i].m_Name << "\t";
cout << "年龄:" << (abs->personArray[i].m_Age == 1 ? "男":"女") << "\t";
cout << "性别:" << abs->personArray[i].m_Sex << "\t";
cout << "联系方式:" << abs->personArray[i].m_Number << "\t";
cout << "家庭地址:" << abs->personArray[i].m_Address << endl;
}
}
system("pause");
system("cls");
}
4.删除联系人
void deletePrson(Addressbooks* abs)
{
cout << "请输入要删除的联系人:" << endl;
string name;
cin >> name;
int res = isExist(abs,name);
if (res == -1)
{
cout << "查无此人" << endl;
}
else
{
for (int i = res; i < abs->m_Size; i++)
{
abs->personArray[i] = abs->personArray[i + 1];
}
abs->m_Size--;
cout << "删除成功" << endl;
}
}
5.查找联系人
void findPerson(Addressbooks *abs)
{
cout << "请输入您要查找的联系人:" << endl;
string name;
cin>> name;
int res = isExist(abs, name);
if (res != -1)
{
cout << "姓名:" << abs->personArray[res].m_Name << "\t";
cout << "性别:" << abs->personArray[res].m_Sex << "\t";
cout << "年龄:" << abs->personArray[res].m_Age << "\t";
cout << "联系方式:" << abs->personArray[res].m_Number << "\t";
cout << "家庭地址:" << abs->personArray[res].m_Address << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
6.修改联系人
void modifyPerson(Addressbooks* abs)
{
cout << "请输入要修改的联系人:" << endl;
string name;
cin >> name;
int res = isExist(abs, name);
if (res != -1)
{
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs->personArray[res].m_Name = name;
cout << "请输入性别:" << endl;
cout << "1.男" << endl;
cout << "2.女" << endl;
int sex = 0;
while (sex != 1 && sex != 2)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->m_Size].m_Sex = sex;
break;
}
cout << "输入有误,请重新输入" << endl;
}
cout << "请输入年龄:" << endl;
int age;
cin >> age;
abs->personArray[res].m_Age = age;
cout << "请输入联系方式:" << endl;
string number;
cin >> number;
abs->personArray[res].m_Number = number;
cout << "请输入家庭地址:" << endl;
string address;
cin >> address;
abs->personArray[res].m_Address = address;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
7.清空通讯录
void cleanPerson(Addressbooks* abs)
{
abs->m_Size = 0;
cout << "已清空" << endl;
system("pause");
system("cls");
}
8.查找是否存在某联系人
在删除、修改、查找功能中,我们需要提前判断是否存在该联系人
故需要单独书写以下代码:
int isExist(Addressbooks* abs, string name)
{
for (int i = 0; i < abs->m_Size; i++)
{
if (abs->personArray[i].m_Name == name)
{
return i;
}
}
return -1;
}
总结
主函数调用:
int main()
{
//创建通讯录结构体变量
Addressbooks abs;
abs.m_Size = 0;
int select = 0;//创建用户选择输入的变量
while (true)
{
//菜单调用
showmenu();
cin >> select;
switch (select)
{
case 1://1.添加联系人
addPerson(&abs);//利用地址传递可修改实参
break;
case 2:// 2.显示联系人
showPersom(&abs);
break;
case 3://3.删除联系人
deletePrson(&abs);
break;
case 4://4.查找联系人
findPerson(&abs);
break;
case 5://5.修改联系人
modifyPerson(&abs);
break;
case 6://6.清空联系人
cleanPerson(&abs);
break;
case 0: //0.退出通讯录
cout << "$欢迎下次使用$" << endl;
return 0;
break;
default:
break;
}
}
system("pasue");
return 0;
}
以上为一个简单的通讯录管理系统 可供初学者学习使用的完整c++代码
并没有用到复杂的头文件
本系统只用到最基础的 头文件
。
#include<iostream>
#include<string>
using namespace std;