系统中需要实现的功能如下:
1.添加联系人:向通讯录中添加新人,信息包括(姓名,性别,年龄,手机号,地址)最多记录1000人
2.显示联系人:显示通讯录中所以联系人信息
3.删除联系人:按照姓名进行删除指定联系人
4.查找联系人:按照姓名查看指定联系人信息
5.修改联系人:按照姓名重新修改指定联系人
6.清空联系人:清空通讯录中所有信息
7.退出通讯录:退出当前使用的通讯录
#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
//联系人结构体
struct person
{
string m_name;//姓名
int m_sex;//性别
int m_age;//年龄
string m_phonenumber;//手机号
string m_addr;//地址
};
//通讯录结构体
struct addressbooks
{
//联系人数组
struct person arr[MAX];
//联系人个数
int m_num;
};
//1、添加联系人
void addperson(addressbooks *ab)
{
//判断通讯录是否已满,如果满了就不再添加
if(ab->m_num==MAX)
{
cout<<"通讯录已满,无法添加!"<<endl;
return ;
}
else
{
//添加联系人
//姓名
string name;
cout<<"请输入姓名:"<<endl;
cin>>name;
ab->arr[ab->m_num].m_name = name;
//性别
cout<<"请输入性别:"<<endl;
cout<<"1---男"<<endl;
cout<<"2---女"<<endl;
int sex=0;
while(true)
{
cin>>sex;
if(sex==1||sex==2)
{
ab->arr[ab->m_num].m_sex = sex;
break;
}
cout<<"输入错误,请重新输入"<<endl;
}
//年龄
cout<<"请输入年龄:"<<endl;
int age = 0;
cin>>age;
ab->arr[ab->m_num].m_age = age;
//电话
cout<<"请输入联系电话:"<<endl;
string phone;
cin>>phone;
ab->arr[ab->m_num].m_phonenumber = phone;
//住址
cout<<"请输入地址:"<<endl;
string address;
cin>>address;
ab->arr[ab->m_num].m_addr = address;
//更新通讯录人数
ab->m_num++;
cout<<"添加成功!"<<endl;
system("pause");//按任意键继续
system("cls");//清屏操作
}
}
//2、显示所以联系人
void showperson(addressbooks *ab)
{
//判断通讯录中的人数是否为0,若为0,则提示为空
//不为0则显示记录的联系人信息
if(ab->m_num==0)
{
cout<<"当前记录为空!"<<endl;
}
else
{
for(int i=0;i<ab->m_num;i++){
cout<<"姓名: "<<ab->arr[i].m_name<<"\t";
cout<<"性别: "<<(ab->arr[i].m_sex==1?"男":"女")<<"\t";
cout<<"年龄: "<<ab->arr[i].m_age<<"\t";
cout<<"手机号: "<<ab->arr[i].m_phonenumber<<"\t";
cout<<"地址: "<<ab->arr[i].m_addr<<endl;
}
}
system("pause");
system("cls");//清屏
}
//判断联系人是否存在
int isExist(addressbooks *ab,string name)
{
for(int i=0;i<ab->m_num;i++){
if(ab->arr[i].m_name == name)
{
return i;
}
else{
return -1;
}
}
}
//3、删除联系人
void deleteperson(addressbooks *ab)
{
cout<<"请输入你要删除的联系人的姓名:"<<endl;
string name;
cin>>name;
//ret != -1,查到了
//ret == -1,未查到
int ret = isExist(ab,name);
if(ret != -1){
for(int i=ret;i<ab->m_num;i++){
ab->arr[i]=ab->arr[i+1];
}
ab->m_num--;
cout<<"删除成功!"<<endl;
}
else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");//清屏
}
//4、查找联系人信息
void findperson(addressbooks *ab)
{
cout<<"请输入要查找联系人的姓名:"<<endl;
string name;
cin>>name;
//判断指定联系人是否存在通讯录中
int ret = isExist(ab,name);
if(ret!=-1)
{
cout<<"姓名:"<<ab ->arr[ret].m_name<<"\t";
cout<<"性别:"<<ab ->arr[ret].m_sex<<"\t";
cout<<"年龄:"<<ab ->arr[ret].m_age<<"\t";
cout<<"手机号:"<<ab ->arr[ret].m_phonenumber<<"\t";
cout<<"地址:"<<ab ->arr[ret].m_addr<<endl;
}
else
{
cout<<"未找到此人"<<endl;
}
system("pause");
system("cls");//清屏
}
//5、修改指定联系人信息
void modifyperson(addressbooks *ab)
{
cout<<"请输入你要修改的联系人的姓名:"<<endl;
string name;
cin>>name;
int ret=isExist(ab,name);
if(ret!=-1){
//姓名
string name;
cout<<"请输入姓名:"<<endl;
cin>>name;
ab->arr[ret].m_name=name;
//性别
cout<<"请输入性别:"<<endl;
cout<<"1---男"<<endl;
cout<<"2---女"<<endl;
int sex=0;
while(true){
cin>>sex;
if(sex==1||sex==2)
{
ab->arr[ret].m_sex=sex;
break;
}
cout<<"输入错误,请重新输入!"<<endl;
}
//年龄
cout<<"请输入年龄:"<<endl;
int age=0;
cin>>age;
ab->arr[ret].m_age=age;
//手机号
cout<<"请输入手机号:"<<endl;
string number;
cin>>number;
ab->arr[ret].m_phonenumber=number;
//地址
cout<<"请输入地址:"<<endl;
string space;
cin>>space;
ab->arr[ret].m_addr=space;
}
else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");//清屏
}
//清空所以联系人
void cleanperson(addressbooks *ab)
{
ab->m_num=0;
cout<<"通讯录已清空"<<endl;
system("pause");
system("cls");//清屏
}
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;
}
int main()
{
//创建通讯录结构体变量
struct addressbooks abs;
//初始化通讯录中当前人员的个数;
abs.m_num=0;
int select = 0; //创建用户选择输入的变量
while(true)
{
//菜单调用
showMenu();
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、清空联系人
cleanperson(&abs);
break;
case 0://0、退出通讯录
cout<<"欢迎下次使用"<<endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}