功能要求
1.添加联系人(姓名,性别,年龄,电话,住址)
2.显示全部联系人
3.删除联系人
4.查找联系人
5.修改联系人
6.清空联系人
0.退出
各功能的实现都由函数封装实现
代码如下
#include<iostream>
#include<string>
using namespace std;
struct connect { //联系人
string name; //姓名
string sex; //性别
int age=0; //年龄
string tel; //电话
string home; //住址
};
struct list { //通讯录
connect clist[50]; //最多存50个
int size=0; //当前联系人数目
};
void showMenu() //显示菜单
{
cout << "****************************" << endl
<< "** 1.添加联系人 **" << endl
<< "** 2.显示全部联系人 **" << endl
<< "** 3.删除联系人 **" << endl
<< "** 4.查找联系人 **" << endl
<< "** 5.修改联系人 **" << endl
<< "** 6.清空联系人 **" << endl
<< "** 0.退出 **" << endl
<< "****************************" << endl;
cout << "请输入你的选择:" << endl;
}
void addconnect(list *mylist) //添加联系人
{
string name;
cout << "请输入姓名" << endl;
cin >> name;
mylist->clist[mylist->size].name = name;
string sex;
cout << "请输入性别" << endl;
cin >> sex;
mylist->clist[mylist->size].sex = sex;
int age;
cout << "请输入年龄" << endl;
cin >> age;
mylist->clist[mylist->size].age = age;
string tel;
cout << "请输入电话" << endl;
cin >> tel;
mylist->clist[mylist->size].tel = tel;
string home;
cout << "请输入地址" << endl;
cin >> home;
mylist->clist[mylist->size].home = home;
mylist->size++; //人数+1
cout << "添加成功" << endl;
system("pause");
system("cls");
}
void showconnect(list *mylist) //显示通讯录
{
if (mylist->size == 0)
cout << "通讯录为空" << endl;
else
{
int i;
for (i = 0; i < mylist->size; i++) //显示功能
{
cout << "姓名: " << mylist->clist[i].name << "\t";
cout << "性别: " << mylist->clist[i].sex << "\t";
cout << "年龄: " << mylist->clist[i].age << "\t";
cout << "电话: " << mylist->clist[i].tel << "\t";
cout << "住址: " << mylist->clist[i].home << endl;
}
}
system("pause");
system("cls");
}
int exist(list *mylist,string name) //查找位置
{
int i;
for (i = 0; i < mylist->size; i++)
{
if (mylist->clist[i].name == name)
return i;
}
return -1; //有相同的则返回相同值序号,无相同则返回-1
}
void shanchu(list *mylist)
{
int i;
string tempname;
cout << "输入想要删除信息的人名" << endl;
cin >> tempname;
i = exist(mylist, tempname);
if (i != -1)
{
for (; i < mylist->size; i++)
mylist->clist[i] = mylist->clist[i + 1]; //后一个数据覆盖前一个
mylist->size--;
cout << "删除成功" << endl;
}
else cout << "无这个人" << endl;
system("pause");
system("cls");
}
void search(list* mylist) //查找联系人
{
int i;
string tempname;
cout << "输入想要查找信息的人名" << endl;
cin >> tempname;
i = exist(mylist, tempname);
if (i != -1)
{
cout << "姓名: " << mylist->clist[i].name << endl;
cout << "性别: " << mylist->clist[i].sex << endl;
cout << "年龄: " << mylist->clist[i].age << endl;
cout << "电话: " << mylist->clist[i].tel << endl;
cout << "住址: " << mylist->clist[i].home << endl;
}
else cout << "无这个人" << endl;
system("pause");
system("cls");
}
void change(list* mylist) //修改联系人
{
int i;
string tempname;
cout << "输入想要修改信息的人名" << endl;
cin >> tempname;
i = exist(mylist, tempname);
if (i != -1)
{
string name;
cout << "请输入姓名" << endl;
cin >> name;
mylist->clist[i].name = name;
string sex;
cout << "请输入性别" << endl;
cin >> sex;
mylist->clist[i].sex = sex;
int age;
cout << "请输入年龄" << endl;
cin >> age;
mylist->clist[i].age = age;
string tel;
cout << "请输入电话" << endl;
cin >> tel;
mylist->clist[i].tel = tel;
string home;
cout << "请输入地址" << endl;
cin >> home;
mylist->clist[i].home = home;
cout << "修改成功" << endl;
}
else cout << "无这个人" << endl;
system("pause");
system("cls");
}
void paolu(list *mylist)
{
mylist->size = 0;
cout << "已清空" << endl;
system("pause");
system("cls");
}
int main()
{
list mylist;
mylist.size = 0; //新建通讯录,初始化人数为0
int select = 0;
while (true)
{
showMenu();
cin >> select;
switch (select)
{
case(1):addconnect(&mylist); break;
case(2):showconnect(&mylist); break;
case(3):shanchu(&mylist); break;
case(4):search(&mylist); break;
case(5):change(&mylist); break;
case(6):paolu(&mylist); break;
case(0):
cout << "欢迎下次光临" << endl;
return 0;
}
}
}