c++实例之通讯录管理系统之清空联系人功能(七)
#include<iostream>
using namespace std;
constexpr auto MAX = ; //联系人结构体
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 == || sex == ) {
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 showPerson(AddressBooks* abs) {
if (abs->m_size == ) {
cout << "当前记录为空" << endl;
}else {
for (int i = ; i < abs->m_size; i++) {
cout << "姓名:" << abs->personArray[i].m_name << "\t"
<< "性别:" << (abs->personArray[i].m_sex == ? "男" : "女") << "\t"
<< "年龄:" << abs->personArray[i].m_age << "\t"
<< "电话:" << abs->personArray[i].m_phone << "\t"
<< "地址:" << abs->personArray[i].m_address << endl;
}
}
system("pause");
system("cls");
}
//判断联系人是否存在,若存在,则返回所在下标,否则返回-1
int isExist(AddressBooks* abs,string name) {
for (int i = ; i < abs->m_size; i++)
{
if (abs->personArray[i].m_name == name) {
return i;
}
}
return -;
} //真正的删除操作
void del(AddressBooks* abs, int id) {
for (int i = id; i < abs->m_size; i++)
{
abs->personArray[i] = abs->personArray[i + ];
}
abs->m_size--;
} //查找并删除
void deletePerson(AddressBooks* abs) {
string name;
cout << "请输入要删除的名字:";
cin >> name;
int tmp;
tmp = isExist(abs, name);
if (tmp != -){
del(abs, tmp);
cout << "删除成功"<<endl;
}else{
cout << "查无此人"<<endl;
}
system("pause");
system("cls");
} //显示单个人信息
void showPerson(AddressBooks* abs,int i) {
cout << "姓名:" << abs->personArray[i].m_name << "\t"
<< "性别:" << (abs->personArray[i].m_sex == ? "男" : "女") << "\t"
<< "年龄:" << abs->personArray[i].m_age << "\t"
<< "电话:" << abs->personArray[i].m_phone << "\t"
<< "地址:" << abs->personArray[i].m_address << endl;
} //查找并返回相应信息
void findPerson(AddressBooks* abs) {
string name;
cout << "请输入要查找的名字:";
cin >> name;
int tmp;
tmp = isExist(abs, name);
if (tmp != -) {
cout << "找到该人" << endl;
showPerson(abs, tmp);
}
else {
cout << "查无此人" << endl;
}
system("pause");
system("cls");
} //清空联系人
void clearAll(AddressBooks* abs) {
abs->m_size = ;//逻辑清空
cout << "通讯录已被清空!" << endl;
}
void modifyPerson(AddressBooks* abs) {
string name;
cout << "请输入要修改的名字:";
cin >> name;
int tmp;
tmp = isExist(abs, name);
if (tmp != -) {
cout << "找到该人" << endl;
showPerson(abs, tmp);
string name;
int sex;
int age;
string phone;
string address;
cout << "请输入姓名:";
cin >> name;
while (true) {
cout << "请输入性别(0代表男,1代表女):";
cin >> sex;
if (sex == || sex == ) {
break;
}
else {
cout << "您输入有误,请重新输入!" << endl;
}
}
cout << "请输入年龄:";
cin >> age;
cout << "请输入电话:";
cin >> phone;
cout << "请输入地址:";
cin >> address;
abs->personArray[tmp].m_name = name;
abs->personArray[tmp].m_sex = sex;
abs->personArray[tmp].m_age = age;
abs->personArray[tmp].m_phone = phone;
abs->personArray[tmp].m_address = address;
cout << "修改成功!" << endl;
}
else {
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 = ;
int select = ;
while(true){
showMenu();
cout << "请输入相应的选项:" << endl;
cin >> select;
switch (select){
case ://添加
addPerson(&abs);
break;
case ://显示
showPerson(&abs);
break;
case ://删除
deletePerson(&abs);
break;
case ://修改
modifyPerson(&abs);
break;
case ://查找
findPerson(&abs);
break;
case ://清空
clearAll(&abs);
break;
case ://退出
cout << "欢迎下次使用" << endl;
system("pause");
return ;
break;
}
}
}
c++实例之通讯录管理系统之清空联系人功能(七)的更多相关文章
- C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录)
1 /** 2 * ProjectNmae:通讯录管理系统 3 * 功能: 4 * 添加联系人:向通讯录添加新人 5 * 显示联系人:显示通讯录中的所有联系人信息 6 * 删除联系人:按照姓名进行删除 ...
- C++入门-控制台版的通讯录管理系统
通讯录管理系统 1.系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别 ...
- iOS学习之Object-C语言简单的通讯录管理系统
用这几天学的OC的知识,写了一个实现简单功能的通讯录管理系统,在这里分享给大家: 通讯录管理系统 * 需求: 1.定义联系人类Contact.实例变量:姓名(拼音,首字母大写).性别.电话号码.住址 ...
- c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...
- c++—通讯录管理系统
一.运用所学的结构体.地址指针等基础知识,完成通讯录管理系统 二.系统主要有以下6个功能: 1.添加联系人2.显示联系人 3.删除联系人 4.查找联系人5.修改联系人 6.清空联系人 1 #inclu ...
- c++通讯录管理系统
代码拷贝 #include<iostream> #include<string> #include<stdlib.h> #define MAX 1000 using ...
- C++课程设计 通讯录管理系统 原码及解析
设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...
- 通讯录管理系统(C++)
前言 本程序采用VS2019开发实现 博主尽可能完善并健壮了程序功能,如有不理想之处,请加以指正,博主会在第一时间修改完善.原创不易,望"推荐","关注",&q ...
- c语言实现通讯录管理系统(c课程设计)
工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...
随机推荐
- LG P2822 NOIP2016D2T1 组合数问题
一句话题意 给定n.m和k,求对于所有的i(0<=i<=n)和j(0<=j<=min(i,m)),有多少对(i,j)使\(C_i^j\)使k的倍数 数据范围 部分分.满分做法和 ...
- redis 学习(17) -- RDB
redis -- RDB 什么是 RDB 经过RDB之后,redis会将内存中的数据创建一份快照到硬盘中,称为RDB文件(二进制) 当redis重新启动时,会加载硬盘中的RDB文件,加载到内存中完成数 ...
- asp.net 8 Request,Response,Server
Request成员: 1.Request.UrlReferrer 获取请求的来源,可以防盗链 Response.Write(Request.Url.ToString());//获取当前请求的URL地址 ...
- asp.net 3.三层架构
1.新建项目和类库 CZBK.ItcastProject (空白项目) CZBK.ItcastProject.BLL (类库) -- 逻辑业务 CZBK.ItcastProject.Common (类 ...
- ubuntu下安装python-selenuim自动化测试的谷歌浏览器驱动安装的位置
谷歌插件下载地址 https://npm.taobao.org/mirrors/chromedriver selenium下载地址 https://pypi.org/simple/selenium/ ...
- JavaScript函数式编程——柯里化
柯里化原理 如何实现柯里化 柯里化的应用 一.柯里化原理 柯里化:在数学和计算机科学中,柯里化是一种使用多个参数的一个函数转换成一系列使用一个参数的函数的技术. 前端使用柯里化的用途主要就应该是简化代 ...
- vue +echarts树状图
<template> <div :class="className" :id="id" :style="{height:height ...
- php--常见算法3
<?php function leijia($number){ $arr=[]; for($i=1;$i<=$number;$i++) { for($j=1;$j<=$number; ...
- pycharm的快捷键以及快捷意义
ctrl+a 全选 ctrl+c 复制(默认复制整行) ctrl+v 粘贴 ctrl+x 剪切(默认复制整行) ctrl+f 搜索 ctrl+z 撤销 ctrl+shift+z 反撤销 ctrl+d ...
- fastadmin 隐藏操作栏按钮
formatter: function (value, row, index) { var that = $.extend({}, this); $(table).data({"operat ...