#include<iostream>
#include<string>
#define MAX 1000
using namespace std;
//定义通信结构体
struct Person {
string Name; //姓名
int Sex; //性别:1男 2女
int Age; //年龄
string Phone; //电话
string Address; //住址
};
struct Addressbook {
int size; //记录通信条数
struct Person p[MAX]; // 来储存Person的结构体
};
void add_person(struct Addressbook * abs) {
//姓名
string name;
cout << "输入你要储存的姓名" << endl;
cin >> name;
abs->p[abs->size].Name = name;
//性别
int sex;
cout << "输入该人的性别" << endl;
cin >> sex;
abs->p[abs->size].Sex = sex;
//年龄
int age;
cout << "输入该人的年龄" << endl;
cin >> age;
abs->p[abs->size].Age = age;
//电话
string phone;
cout << "输入该人的电话" << endl;
cin >> phone;
abs->p[abs->size].Phone = phone;
//地址
string address;
cout << "输入该人的地址" << endl;
cin >> address;
abs->p[abs->size].Address = address;
// 计数器自增
abs->size++;
cout << "添加成功" << endl;
system("pause");
system("cls");
}
void display_person(struct Addressbook * abs) {
if (abs->size == 0) {
cout << "结构体数据为空" << endl;
}
else {
for (int i = 0; i < abs->size; i++) {
cout << "姓名为:" << abs->p->Name << "\t性别:" << abs->p->Sex << "\t年龄:" << abs->p->Age << "\t电话:" << abs->p->Phone << "\t地址为:" << abs->p->Address << 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 Addressbook abs; //定义一个Addressbook的结构体
abs.size = 0; //初始化num的值
int choose = 0; //初始化choose的值
while (true) {
showMenu();
cout << "输入你想进行操作的序号:";
cin >> choose;
switch (choose) {
case 1:
//添加联系人
add_person(&abs); //这里为什么要传地址呢,因为我们输入的数据都要保存,而不是函数中允许完就消失
//cout << abs.p[abs.size-1].Name; // 这个用来调试下,输出上一个size的记录数
break;
case 2:
//显示联系人
display_person(&abs); //这里可以传地址也可以传值,因为只需要输出就够了,但是还需要知道当前的结构体中的数量len,用于循环次数
break;
case 3:
//删除联系人
//del_person();
break;
case 4:
//查找联系人
//find_person();
break;
case 5:
//修改联系人
//edit_person();
break;
case 6:
//清空联系人
//clear_person();
break;
case 0:
//退出通讯录
cout << "欢迎下次使用!" << endl;
system("pause");
return 0;
}
}
}
原文:https://www.cnblogs.com/zpchcbd/p/11845913.html