界面展示:
1,菜单界面
2,添加联系人
选择按钮1。
3,显示联系人
选择按钮2,会显示当前通讯录里面的所有联系人信息
#include<iostream>
using namespace std;
#include<string>
//设置最大容量
#define MAXSIZE 300
//联系人结构体
struct person {
string name;
string gender;
int age;
string tlenumber;
string address;
};
通讯录结构体
struct comsys {
struct person p_arry[MAXSIZE];
int length;
};
//主函数
int main(void) {
//初始化结构体数组
comsys com;
com.length = 0;
//函数声明
void showMenu();
void addPerson(comsys * p);
void showPerson(comsys * p);
void printInfoN(comsys * p, int n);
void printInfoI(comsys * p, int i);
int locatePerson(comsys * p, string name, string number);
void serchPerson(comsys * p);
void deletePerson(comsys * p);
void modifyPerson(comsys * p);
void clearPerson(comsys * p);
//函数调用
while (true) {
showMenu();
int select = 0;
cin >> select;
switch (select)
{
case 1://添加
addPerson(&com);
system("pause");
system("cls");
break;
case 2://显示
showPerson(&com);
system("pause");
system("cls");
break;
case 3://删除
deletePerson(&com);
system("pause");
system("cls");
break;
case 4://查找
serchPerson(&com);
system("pause");
system("cls");
break;
case 5://修改
modifyPerson(&com);
system("pause");
system("cls");
break;
case 6://清空
clearPerson(&com);
system("pause");
system("cls");
break;
case 0://退出
cout << "欢迎使用,再见!" << endl;
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}
//菜单显示函数
void showMenu() {
cout << "***********************" << endl;
cout << "* 通讯录 * " << endl;
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;
}
//添加联系人函数
void addPerson(comsys *p) {
string name;
string gender;
int age;
string telnumber;
string address;
cout << "添加姓名:" << endl;
cin >> name;
p->p_arry[p->length].name = name;
cout << "添加性别:" << endl;
cin >> gender;
p->p_arry[p->length].gender = gender;
cout << "添加年龄:" << endl;
cin >> age;
p->p_arry[p->length].age = age;
cout << "添加号码:" << endl;
cin >> telnumber;
p->p_arry[p->length].tlenumber = telnumber;
cout << "添加地址:" << endl;
cin >> address;
p->p_arry[p->length].address = address;
p->length++;
cout << "添加成功!" << endl;
}
//显示联系人
void showPerson(comsys* p) {
void printInfoN(comsys * p, int n);
if (p->length == 0)
cout << "当前没有联系人,请添加(选择1):" << endl;
else
{
printInfoN(p, p->length);
}
}
//打印连续n个联系人
void printInfoN(comsys* p, int n) {
for (int i = 0; i < n; i++) {
cout << "*****************************************************" << endl;
cout << "\t\tname:" << p->p_arry[i].name << endl;
cout << "\t\tgender:" << p->p_arry[i].gender << endl;
cout << "\t\tage:" << p->p_arry[i].age << endl;
cout << "\t\ttelnumber:" << p->p_arry[i].tlenumber<< endl;
cout << "\t\taddress:" << p->p_arry[i].address << endl;
cout << "*****************************************************" << endl;
}
cout << "共计:" << p->length << endl;
}
//打印某个人的信息
void printInfoI(comsys* p, int i) {
cout << "*****************************************************" << endl;
cout << "\t\tname:" << p->p_arry[i].name << endl;
cout << "\t\tgender:" << p->p_arry[i].gender << endl;
cout << "\t\tage:" << p->p_arry[i].age << endl;
cout << "\t\ttelnumber:" << p->p_arry[i].tlenumber << endl;
cout << "\t\taddress:" << p->p_arry[i].address << endl;
cout << "*****************************************************" << endl;
}
//查找某个联系人返回通讯录中的位置
int locatePerson(comsys* p,string name,string number) {
if(p->length==0)
return -1;
else {
for (int i = 0; i < p->length; i++)
if ((name == p->p_arry[i].name) && (number == p->p_arry[i].tlenumber))
return i;
return -1;
}
}
//查找联系人
void serchPerson(comsys* p) {
string name, number;
int locatePerson(comsys * p, string name, string number);
void printInfoI(comsys * p, int i);
if (p->length == 0)
cout << "当前联系人为空,请添加(选择1)" << endl;
else
{
cout << "请输入要查找的名字:" << endl;
cin >> name;
cout << "请输入要查找的号码:" << endl;
cin >> number;
int count = locatePerson(p, name, number);
if (count == -1)
cout << "无对应联系人,请确认后再输入!" << endl;
else
printInfoI(p, count);
}
}
//删除联系人
void deletePerson(comsys*p) {
int locatePerson(comsys * p, string name, string number);
void printInfoI(comsys * p, int i);
string deletename;
string deletenumber;
if (p->length == 0)
cout << "当前联系人为空,请添加(选择1)" << endl;
cout << "请输入要删除的名字:" << endl;
cin >> deletename;
cout << "请输入要删除的号码:" << endl;
cin >> deletenumber;
int count= locatePerson(p, deletename, deletenumber);
if(count!=-1)
{
printInfoI(p, count);
cout << "确认删除请按1,取消请按2:" << endl;
int select1 = 0;
cin >> select1;
switch (select1)
{
case 1:
for (int i = count; i < p->length; i++)
p->p_arry[i]= p->p_arry[i + 1];
p->length--;
cout << "删除成功!" << endl;
break;
case 2:
system("pause");
system("cls");
default:
break;
}
}
}
//修改联系人
void modifyPerson(comsys* p) {
if (p->length == 0)
cout << "当前联系人为空,请添加(选择1)" << endl;
else {
cout << "输入您要修改的联系人姓名:" << endl;
string name;
cin >> name;
cout << "输入您要修改的联系人电话:" << endl;
string number;
cin >> number;
int count = locatePerson(p, name, number);
if (count == -1)
cout << "无对应联系人,请确认后再输入!" << endl;
else
{
printInfoI(p, count);
cout << "---------------------------"<< endl;
cout << "---修改选项---" << endl;
cout << "---(1):姓名---" << endl;
cout << "---(2):性别---" << endl;
cout << "---(3):年龄---" << endl;
cout << "---(4):电话---" << endl;
cout << "---(5):地址---" << endl;
cout << "---(0):取消---" << endl;
cout << "---------------------------";
int select2;
string name;
string gender;
int age;
string telnumber;
string address;
cin >> select2;
while (select2) {
switch (select2)
{
case 1:
cout << "您正在修改姓名,请输入:" << endl;
cin >> name;
p->p_arry[count].name = name;
cout << "修改成功!" << endl;
cout << "请输入对应选项进行操作!" << endl;
cin >> select2;
break;
case 2:
cout << "您正在修改性别,请输入:" << endl;
cin >> gender;
p->p_arry[count].gender = gender;
cout << "修改成功!" << endl;
cout << "请输入对应选项进行操作!" << endl;
cin >> select2;
break;
case 3:
cout << "您正在修改年龄,请输入:" << endl;
cin >> age;
p->p_arry[count].age = age;
cout << "修改成功!" << endl;
cout << "请输入对应选项进行操作!" << endl;
cin >> select2;
break;
case 4:
cout << "您正在修改电话,请输入:" << endl;
cin >> telnumber;
p->p_arry[count].tlenumber = telnumber;
cout << "修改成功!" << endl;
cout << "请输入对应选项进行操作!" << endl;
cin >> select2;
break;
case 5:
cout << "您正在修改地址,请输入:" << endl;
cin >> address;
p->p_arry[count].address = address;
cout << "修改成功!" << endl;
cout << "请输入对应选项进行操作!" << endl;
cin >> select2;
break;
case 0:
system("pause");
break;
default:
break;
}
}
}
}
}
//清空通讯录
void clearPerson(comsys* p) {
cout << "你正在清空联系人,请注意!" << endl;
cout << "确认删除请按1" << endl;
int selectClear;
cin >> selectClear;
if (selectClear == 1)
{
p->length = 0;
cout << "已清空!" << endl;
}
}
版权声明:本文为weixin_55644008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。