C++简单项目跟练【通讯录管理系统001】
Person结构体内层(相较于Addressbooks结构体而言)定义函数(将需要添加的各个内容都写到函数体里,方便后续使用)经过测试发现不能循环添加联系人,添加新的代码(添加到。【函数创建使用的指针】,【函数体的调用与指针】为了方便后期维护,需要设置最大存储用户数量。3. main函数中创建通讯录。Addressbooks结构体。(在输出有误时如何重启函数)4. 封装添加联系人函数。5. 测试添
·
目录
3.1 在switch函数用指针abs链接Preson结构体
一. 实现添加联系人效果
1.1 大致步骤:
1. 设计联系人结构体
2. 设计通讯录结构体
3. main函数中创建通讯录
4. 封装添加联系人函数
5. 测试添加联系人功能
1. 创建联系人结构体(Person结构体)
Person结构体内层(相较于Addressbooks结构体而言)
struct Person
{
string n_Name;
int m_Sex;//性别【男1,女2】
int m_Age;
string m_Phone;
string m_QQ;
string m_School;
};
注意结构体中【定义各量】
2. 创建通讯录结构体(Addressbooks结构体)
//2. 设计通讯录结构体【上限是1000人,方便后续维护】
#define MAX 1000
//通讯录结构体
struct Addressbooks
{
struct Person personArray[MAX];//通讯录中保存的联系人数组
int m_Size;//通讯录中人员个数
};
细读结构体Addressbooks代码学习:【结构体如何嵌套】,【结构体如何定义】
3. main函数中创建通讯录
//【放在main函数主体里面】
Addressbooks abs;
//初始化通讯录中当前人员个数
abs.m_Size = 0;//初始化通讯录中人员个数为0
学习【如何调用结构体】
3.1 在switch函数用指针abs链接Preson结构体
switch函数中部分代码:
case 1: //添加联系人
addPerson(&abs);//要使用地址传递(可以修饰实参) (因为值传递修饰不了数据)
break;
主函数内完整代码:
int main()
{
int select = 0;
Addressbooks abs; //初始化通讯录中当前人员个数
abs.m_Size = 0;//初始化通讯录中人员个数为0
while (true)
{
showMenu();
cin >> select;
switch (select)
{
case 1: //添加联系人
addPerson(&abs);//要使用地址传递(可以修饰实参) (因为值传递修饰不了数据)
break;
case 2://显示联系人
break;
case 3://删除联系人
break;
case 4://查找联系人
break;
case 5://修改联系人
break;
case 6://清空联系人
break;
case 0://退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
break;
default:
break;
}
}
return 0;
}
4. 封装添加联系人函数addPerson
//1.添加联系人
void addPerson()
{
//添加后续内容
}
定义函数(将需要添加的各个内容都写到函数体里,方便后续使用)
4.1 添加各种内容
//姓名://性别://年龄://电话://学校信息:
4.1.1 姓名:
string name;
cout << "请输入您的姓名" << endl;
cin >> name;
abs->personArray[abs->m_Size].n_Name = name;
4.1.2 性别:
注:性别这一栏比较特殊(填1或2判断男女)
//性别:
int sex;
cout << "请输入性别(男:1;女:2)" << endl;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->m_Size].m_Sex = sex;
break;
}
cout << "请重新输入:" << endl;
}
注: 学习【嵌套使用函数(在输出有误时如何重启函数)】
4. 1.3 年龄:
//年龄:
cout << "请输入年龄:" << endl;
int age;
cin >> age;
abs->personArray[abs->m_Size].m_Age = age;
4. 1.4 电话:
/电话:
cout << "请输入您的电话号码:" << endl;
string phone;
cin >> phone;
abs->personArray[abs->m_Size].m_Phone = phone;
4.1.5 学校信息:
//学校信息:
cout << "请输入学校名称:" << endl;
string school;
cin >> school;
abs->personArray[abs->m_Size].m_School = school;
4.2 填充封装信息:
将各种内容填充到定义函数addPerson中
//1.添加联系人
void addPerson(Addressbooks* abs)
{
//姓名:
string name;
cout << "请输入您的姓名" << endl;
cin >> name;
abs->personArray[abs->m_Size].n_Name = name;
//添加具体联系人
//添加姓名,性别,年龄,电话..
//性别:
int sex;
cout << "请输入性别(男:1;女:2)" << endl;
while (true)
{
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 phone;
cin >> phone;
abs->personArray[abs->m_Size].m_Phone = phone;
//学校信息:
cout << "请输入学校名称:" << endl;
string school;
cin >> school;
abs->personArray[abs->m_Size].m_School = school;
}
注意:【函数创建使用的指针】,【函数体的调用与指针】
4.2.1 补充函数addPerson的一些功能
为了方便后期维护,需要设置最大存储用户数量
使用if_else语句来实现此操作:
//判断通讯录是否已满,如果已满就不再添加
if (abs->m_Size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
//...上述部部分代码
}
扩充完整:
//1.添加联系人
void addPerson(Addressbooks* abs)
{
//判断通讯录是否已满,如果已满就不再添加
if (abs->m_Size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
//姓名:
string name;
cout << "请输入您的姓名" << endl;
cin >> name;
abs->personArray[abs->m_Size].n_Name = name;
//添加具体联系人
//添加姓名,性别,年龄,电话..
//性别:
int sex;
cout << "请输入性别(男:1;女:2)" << endl;
while (true)
{
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 phone;
cin >> phone;
abs->personArray[abs->m_Size].m_Phone = phone;
//学校信息:
cout << "请输入学校名称:" << endl;
string school;
cin >> school;
abs->personArray[abs->m_Size].m_School = school;
}
}
5. 测试并完善添加联系人功能
经过测试发现不能循环添加联系人,添加新的代码(添加到addPerson函数中):
//更新通讯录里的数据【保存通讯录输入信息】
abs->m_Size++;//【执行数据更新操作】
cout << "数据添加成功" << endl;
system("pause");//【请按任意键继续】
system("cls");//清屏操作
添加后代码:
//1.添加联系人
void addPerson(Addressbooks* abs)
{
//判断通讯录是否已满,如果已满就不再添加
if (abs->m_Size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
//姓名:
string name;
cout << "请输入您的姓名" << endl;
cin >> name;
abs->personArray[abs->m_Size].n_Name = name;
//添加具体联系人
//添加姓名,性别,年龄,电话..
//性别:
int sex;
cout << "请输入性别(男:1;女:2)" << endl;
while (true)
{
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 phone;
cin >> phone;
abs->personArray[abs->m_Size].m_Phone = phone;
//学校信息:
cout << "请输入学校名称:" << endl;
string school;
cin >> school;
abs->personArray[abs->m_Size].m_School = school;
//更新通讯录里的数据【保存通讯录输入信息】
abs->m_Size++;//【执行数据更新操作】
cout << "数据添加成功" << endl;
system("pause");//【请按任意键继续】
system("cls");//清屏操作
}
}
二. 结合昨日代码进行汇总(可运行)
#include<iostream>
using namespace std;
#include<string>
void showMenu()
{
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;
}
struct Person
{
string n_Name;
int m_Sex;//性别【男1,女2】
int m_Age;
string m_Phone;
string m_School;
};
#define MAX 1000
struct Addressbooks
{
struct Person personArray[MAX];//通讯录中保存的联系人数组
int m_Size;//通讯录中人员个数
};
//1.添加联系人
void addPerson(Addressbooks* abs)
{
//判断通讯录是否已满,如果已满就不再添加
if (abs->m_Size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
//姓名:
string name;
cout << "请输入您的姓名" << endl;
cin >> name;
abs->personArray[abs->m_Size].n_Name = name;
//添加具体联系人
//添加姓名,性别,年龄,电话..
//性别:
int sex;
cout << "请输入性别(男:1;女:2)" << endl;
while (true)
{
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 phone;
cin >> phone;
abs->personArray[abs->m_Size].m_Phone = phone;
//学校信息:
cout << "请输入学校名称:" << endl;
string school;
cin >> school;
abs->personArray[abs->m_Size].m_School = school;
//更新通讯录里的数据【保存通讯录输入信息】
abs->m_Size++;//【执行数据更新操作】
cout << "数据添加成功" << endl;
system("pause");//【请按任意键继续】
system("cls");//清屏操作
}
}
int main()
{
int select = 0;
Addressbooks abs; //初始化通讯录中当前人员个数
abs.m_Size = 0;//初始化通讯录中人员个数为0
while (true)
{
showMenu();
cin >> select;
switch (select)
{
case 1: //添加联系人
addPerson(&abs);//要使用地址传递(可以修饰实参) (因为值传递修饰不了数据)
break;
case 2://显示联系人
break;
case 3://删除联系人
break;
case 4://查找联系人
break;
case 5://修改联系人
break;
case 6://清空联系人
break;
case 0://退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
break;
default:
break;
}
}
return 0;
}
更多推荐
所有评论(0)