C++通讯管理系统------实现增删改查的小练习

仅以此文标记C++的C部分基础语法学习结束

程序非常简单,注意指针传递和值传递

#include <iostream>
#include <string>
#define MAX 2000
using namespace std;
//设计联系人的结构体
struct Person {//姓名string m_Name;//性别 1男 2女int m_Sex;//年龄int m_Age;//电话string m_Phone;//地址string m_Addr;
};
//设计通讯录的结构体
struct Addressbooks {//通讯录中保存的联系人数组struct Person personArray[MAX];//联系人个数int m_Size;
};
//1、添加联系人
void addPerson(Addressbooks * abs) {if (abs->m_Size == MAX) {cout << "通讯录已满" << endl;}else {string name;cout << "请输入姓名:" << endl;cin >> name;abs->personArray[abs->m_Size].m_Name = name;cout << "请输入性别:" << endl;cout << "1---男" << endl;cout << "2---女" << endl;int sex = 0;while (true){cin >> sex;if (sex == 1 || sex == 2) {abs->personArray[abs->m_Size].m_Sex = sex;break;}cout << "输入性别有误,请重新输入:" << endl;}cout << "请输入年龄:" << endl;int age = 0;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 address;cin >> address;abs->personArray[abs->m_Size].m_Addr = address;abs->m_Size++;cout << "添加成功" << endl;system("pause");system("cls");//清屏}
}
//2、显示所有联系人
void showPerson(Addressbooks * abs) {if (abs->m_Size == 0) {cout << "通信录中没有联系人" << endl;}else {for (int i = 0; i < abs->m_Size; i++){cout << "姓名:" << abs->personArray[i].m_Name << "\t";cout << "性别:" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t";cout << "年龄:" << abs->personArray[i].m_Age << "\t";cout << "电话:" << abs->personArray[i].m_Phone << "\t";cout << "地址:" << abs->personArray[i].m_Addr << endl;}}system("pause");system("cls");//清屏
}
//检测联系人是否存在,如果存在返回联系人在数组中的位置,不存在返回-1
int isExist(Addressbooks * abs, string name) {for (int i = 0; i < abs->m_Size; i++){if (abs->personArray[i].m_Name == name) {return i;}}return -1;
}//3、删除联系人
void deletePerson(Addressbooks * abs) {cout << "请输入要删除的联系人姓名:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1) {for (int i = ret;i < abs->m_Size;i++) {abs->personArray[i] = abs->personArray[i + 1];}abs->m_Size--;cout << "删除成功" << endl;}else {cout << "输入的联系人不存" << endl;}system("pause");system("cls");//清屏
}
//4、查找联系人
void findPerson(Addressbooks * abs) {cout << "输入要查找的联系人:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1) {cout << "姓名:" << abs->personArray[ret].m_Name << "\t";cout << "性别:" << (abs->personArray[ret].m_Sex == 1 ? "男" : "女") << "\t";cout << "年龄:" << abs->personArray[ret].m_Age << "\t";cout << "电话:" << abs->personArray[ret].m_Phone << "\t";cout << "地址:" << abs->personArray[ret].m_Addr << endl;}else {cout << "没有查找到联系人" << endl;}system("pause");system("cls");//清屏
}
//5、修改联系人
void modifyPerson(Addressbooks * abs) {cout << "输入要修改的联系人:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1) {string name;cout << "请输入姓名:" << endl;cin >> name;abs->personArray[ret].m_Name = name;cout << "请输入性别:" << endl;cout << "1---男" << endl;cout << "2---女" << endl;int sex = 0;while (true){cin >> sex;if (sex == 1 || sex == 2) {abs->personArray[ret].m_Sex = sex;break;}cout << "输入性别有误,请重新输入:" << endl;}cout << "请输入年龄:" << endl;int age = 0;cin >> age;abs->personArray[ret].m_Age = age;cout << "请输入电话:" << endl;string phone;cin >> phone;abs->personArray[ret].m_Phone = phone;cout << "请输入地址:" << endl;string address;cin >> address;abs->personArray[ret].m_Addr = address;cout << "修改成功" << endl;}else {cout << "没有查找到联系人" << endl;}system("pause");system("cls");//清屏
}
//6、清空联系人
void cleanPerson(Addressbooks * abs) {abs->m_Size = 0;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();cin >> select;switch (select) {case 0:cout << "欢迎下次使用" << endl;system("pause");return 0;break;case 1:addPerson(&abs);//1、添加联系人break;case 2:showPerson(&abs);//2、显示所有联系人break;case 3:deletePerson(&abs);//3、删除联系人break;case 4:findPerson(&abs);//4、查找联系人break;case 5:modifyPerson(&abs);//5、修改联系人break;case 6:cleanPerson(&abs);//6、清空联系人break;default:break;}}return 0;
}

C++通讯管理系统------实现增删改查的小练习相关推荐

  1. java+SQL做学生信息管理系统(增删改查)

    java+SQL做学生信息管理系统(增删改查) [过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1cLKJPKXauLCl-Vwah6wFIQ ...

  2. 学生管理系统实现增删改查

    学生管理系统实现增删改查 文章目录 学生管理系统实现增删改查 前言 一.代码块 二.代码分析 1.代码思路 2,学生类 3,接口 4,chuli类 5, 在主类中,kaishi方法 5,显示效果 前言 ...

  3. 使用javaweb进行用户管理系统的增删改查,分页和条件查询

    使用javaweb进行用户管理系统的增删改查,分页和条件查询 如有转载请标注来源!!!谢谢配合 源码已经上传,可以自行下载 https://download.csdn.net/download/wei ...

  4. Springboot+vue 增删改查的小项目

    Springboot+vue 增删改查的小项目 文章目录 Springboot+vue 增删改查的小项目 前言 源码 1. 介绍 2.核心功能 3.软件架构 3.1 目录结构 4.项目流程 4.1导入 ...

  5. JSP学籍信息管理系统实现增删改查的相关功能操作

    JSP学籍信息管理系统 前言 这是我大二上学期那年学习JSP做的实训项目,现在把它贴在网上供自己和需要的人进行回顾和参考,如有哪里做的不规范还请指出,因为这是第一次做的项目所以不是特别完善,界面也不够 ...

  6. iOS 简单的学生管理系统(增删改查)

    思路 这个简单的学生管理系统学生信息只有姓名,班级,年龄 我在app执行时加了个开始界面,在AppDelegate.m 中将根视图设为需要显示的开机界面即可 首先写登陆注册界面,注册需要查重,并转到登 ...

  7. 用 Vue 实现学生信息管理系统的增删改查操作,模拟数据库操作(但并没有连接数据库)

    Ⅰ.项目准备与解题思路: 1.项目准备: 其一.要有写 HTML + CSS + JS 的软件: (如:VSCode 工具): 其二.要提前下载好 Vue 环境,因为在项目中会引用 'vue.js' ...

  8. java socket 实现增删改查 + 在线答题小案例

    实现效果 (1) 在client端可以实现对数据库的操作(Select,Insert,Update,Delete) (2)数据库中创建一个考试表和学生表,考试表中问题是四项选择题(10道以上),cli ...

  9. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

最新文章

  1. view函数_数据科学系列:数据处理(6)字符串函数基于R(二)
  2. 对AFTER触发器的一些整理
  3. 【BC】如何将自定义的区域菜单添加到系统默认的菜单中
  4. 为什么Math.abs(Integr.MIN_VALUE)==Integer.MIN_VALUE
  5. Eureka的服务自我保护
  6. CuraEngine源码编译
  7. java license 验证方案_truelicense实现JAVA的license机制(包括license生成和验证)
  8. 最小费用流bellman-ford算法总结
  9. Navicat导入xlsx文件提示无法打开文件
  10. 忍不住推荐一款作图工具draw.io
  11. 每周全球科技十大新闻(2020.11.2-11.8)
  12. 达梦数据库,删除表重复数据
  13. 未来已经降临,只是先后有别
  14. matlab平摆线曲率参数方程,参数方程中曲线欣赏—平摆线解读.ppt
  15. 交通灯c51汇编语言,单片机交通灯实验汇编语言程序
  16. c语言求一年中的多少天
  17. mixamo骨骼_[蛮牛教程]不用建模软件,给心仪的模型绑骨骼!
  18. Unity 动画融合 IK MatchTarget 导播
  19. 联想thinkpad E425搭建服务器
  20. python设计游戏的背景_04_游戏背景 — 黑马程序员《Python入门教程完整版》笔记...

热门文章

  1. CSS 3.0实现云雾特效
  2. 事务,什么是事务,为何用事务?
  3. 【事务】本地事务和分布式事务的区别
  4. githubusercontent.com被墙
  5. H桥驱动小功率直流电机正反转
  6. Hadoop数据库:基于Hadoop的数据库Hbase介绍
  7. 解读微信终端开源背后的故事
  8. 初始单片机:51单片机最小系统最全讲解
  9. pytest单元测试框架
  10. [转]UAP studio基础使用技巧