c++实例之通讯录管理系统之添加联系人功能(二)
时间:2022-07-23
本文章向大家介绍c++实例之通讯录管理系统之添加联系人功能(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
添加联系人
1.设计联系人结构体
2.设计通讯录结构体
3.main函数中创建通讯录
4.分装添加联系人函数
5.测试添加联系人功能
#include<iostream>
using namespace std;
constexpr auto MAX = 1000;
//联系人结构体
struct Person
{
string m_name;
int m_sex;
int m_age;
string m_phone;
string m_address;
};
//通讯录结构体
struct AddressBooks
{
//联系人数组
struct Person personArray[MAX];
//记录联系人个数
int m_size;
};
//添加人员
void addPerson(AddressBooks* abs) {
//判断通讯录是否已满,已满就不再添加
if (abs->m_size == MAX) {
cout << "通讯录已满" << endl;
}
else{
string name;
int sex;
int age;
string phone;
string address;
cout << "请输入姓名:";
cin >> name;
while (true) {
cout << "请输入性别(0代表男,1代表女):";
cin >> sex;
if (sex == 0 || sex == 1) {
break;
}else{
cout << "您输入有误,请重新输入!" << endl;
}
}
cout << "请输入年龄:";
cin >> age;
cout << "请输入电话:";
cin >> phone;
cout << "请输入地址:";
cin >> address;
abs->personArray[abs->m_size].m_name = name;
abs->personArray[abs->m_size].m_sex = sex;
abs->personArray[abs->m_size].m_age = age;
abs->personArray[abs->m_size].m_phone = phone;
abs->personArray[abs->m_size].m_address = address;
abs->m_size++;
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() {
//创建通讯录结构体变量
AddressBooks abs;
abs.m_size = 0;
int select = 0;
while(true){
showMenu();
cout << "请输入相应的选项:" << endl;
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");
return 0;
break;
}
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL优化--概述以及索引优化分析
- MySQL优化--查询分析工具以及各种锁
- MySQL优化--MVCC
- Linux入门--基础命令
- Linux入门--权限管理、任务调度、磁盘管理
- 【Rust日报】2020-08-05 -- 如何在2020年进一步加快 Rust 编译器的速度
- Linux学习--网络、进程、服务、软件管理
- IOS label 设置行高
- 重学数据结构(序:概览)
- 【Rust日报】2020-08-06 使用 Rust 编写的 Lambdas 在 AWS IoT 和 SQS 队列之间传递消息
- react-router-config的使用
- Spring 源码解读第七弹!bean 标签的解析
- Kubeflow实战: 入门介绍与部署实践
- matplotlib基础绘图命令之violinplot
- 性能分析(3)- 短时进程导致用户 CPU 使用率过高案例