#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
 
 
// 设计联系人结构体
struct Person
{
    // 姓名
    string m_Name;
    // 性别  1:男  2:女
    int m_sex;
    //地址
    string m_Addr;
    // 电话
    string m_Phone;
    // 学校
    int m_school;
    // 专业
    int m_major;
};
 
struct Addressbooks
{
    // 通讯录中保存的联系人数组
    struct Person personArray[MAX];
 
    // 通讯录中当前记录联系人个数
    int m_size;
};
 
 
// 1.菜单页面
void showMenu()
{
    cout << "*****************************" << endl;
    cout << "*****     1:添加联系人    *****" << endl;
    cout << "*****     2:显示联系人    *****" << endl;
    cout << "*****     3:删除联系人    *****" << endl;
    cout << "*****     4:查找联系人    *****" << endl;
    cout << "*****     5:修改联系人    *****" << endl;
    cout << "*****     0:退出通讯录    *****" << endl;
    cout << "*****************************" << endl;
}
 
// 2.添加联系人
void addPerson(Addressbooks* abs)
{
    // 判断通讯录是否已满
    if (abs->m_size == MAX)
    {
        cout << "通讯录已满,无法添加" << endl;
        return;
    }
    else
    {
        // 姓名
        string name;
        cout << "请输入姓名:" << endl;
        cin >> name;
        abs->personArray[abs->m_size].m_Name = name;
 
        // 性别
        cout << "请输入性别(1:男  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;
        }
        
        // 地址
        string address;
        cout << "请输入地址:" << endl;
        cin >> address;
        abs->personArray[abs->m_size].m_Addr = address;
 
        // 电话
        string phone;
        cout << "请输入电话:" << endl;
        cin >> phone;
        abs->personArray[abs->m_size].m_Phone = phone;
 
        // 学校
        int school;
        cout << "请输入学校:" << endl;
        cin >> school;
        abs->personArray[abs->m_size].m_school = school;

// 专业
        int major;
        cout << "请输入专业:" << endl;
        cin >> major;
        abs->personArray[abs->m_size].m_major = major;

// 更新通讯录人数
        abs->m_size++;
 
        cout << "添加成功" << endl;
 
        system("pause");    // 按下任意键继续
        system("cls");        // 清屏
    }
}
 
// 显示联系人
void showPerson(Addressbooks* abs)
{
    // 判断通讯录中人数是否为0
    if (abs->m_size == 0)
    {
        cout << "通讯录为空" << endl;
        return;
    }
    else
    {
        for (int i = 0; i < abs->m_size; i++)
        {
            cout << "姓名:" << abs->personArray[i].m_Name << endl;
            cout << "性别(1:男  2:女):" << (abs->personArray[i].m_sex == 1 ? "男" : "女") << endl;
            cout << "地址" << abs->personArray[i].m_Addr << endl;
            cout << "电话:" << abs->personArray[i].m_Phone << endl;
            cout << "学校:" << abs->personArray[i].m_school << endl;
            cout << "专业:" << abs->personArray[i].m_major << endl;
        }
    }
    system("pause");
    system("cls");
}
 
// 检测联系人是否存在,存在返回编号,不存在返回-1
int isExit(Addressbooks* abs, string name)
{
    for (int i = 0; i < abs->m_size; i++)
    {
        if (abs->personArray[i].m_Name == name)
        {
            return i;
        }
 
    }
    return -1;
}
 
// 删除指定联系人
void deletePerson(Addressbooks* abs)
{
    cout << "请输入删除联系人姓名:" << endl;
    string name;
    cin >> name;
 
    int judge;
    judge = isExit(abs, name);
    if(judge == -1)
    {
        cout << "查无此人" << endl;
    }
    else
    {
        // 数据前移
        for (int i = judge; i < abs->m_size; i++)
        {
            abs->personArray[i] = abs->personArray[i + 1];
        }
        abs->m_size--;
        cout << "删除成功" << endl;
    }
    system("pause");
    system("cls");
}
 
// 查找指定联系人
void findPerson(Addressbooks* abs)
{
    cout << "请输入查找的联系人姓名:" << endl;
    string name;
    cin >> name;
 
    int judge;
    judge = isExit(abs, name);
    if (judge == -1)
    {
        cout << "查无此人" << endl;
    }
    else
    {
        cout << "姓名:" << abs->personArray[judge].m_Name << endl;
        cout << "性别(1:男  2:女):" << (abs->personArray[judge].m_sex == 1 ? "男" : "女") << endl;
        cout << "地址" << abs->personArray[judge].m_Addr << endl;
        cout << "电话:" << abs->personArray[judge].m_Phone << endl;
        cout << "学校:" << abs->personArray[judge].m_school << endl;
        cout << "专业:" << abs->personArray[judge].m_major << endl;
    }
    system("pause");
    system("cls");
}
 
// 更改指定联系人
void modifyPerson(Addressbooks* abs)
{
    cout << "请输入更改的联系人姓名:" << endl;
    string name;
    cin >> name;
 
    int judge;
    judge = isExit(abs, name);
    if (judge == -1)
    {
        cout << "查无此人" << endl;
    }
    else
    {
        while (true)
        {
            cout << "姓名:" << abs->personArray[judge].m_Name << endl;
            cout << "性别(1:男  2:女):" << (abs->personArray[judge].m_sex == 1 ? "男" : "女") << endl;
            cout << "地址" << abs->personArray[judge].m_Addr << endl;
            cout << "电话:" << abs->personArray[judge].m_Phone << endl;
            cout << "学校:" << abs->personArray[judge].m_school <<endl;
            cout << "专业:" << abs->personArray[judge].m_major <<"\n" << endl;
 
            cout << "请输入要修改的内容\n1:姓名\t2:性别\t3:地址\t4:电话\t5:学校\t6:专业\t0:退出" << endl;
            int rev;
            cin >> rev;
            switch (rev)
            {
            case 1:
            {
                cout << "请输入更改后的姓名" << endl;
                string new_name;
                cin >> new_name;
                abs->personArray[judge].m_Name = new_name;
                break;
            }
            case 2:
            {
                cout << "请输入更改后的性别" << endl;
                int new_sex;
                while (true)
                {
                    cin >> new_sex;
                    if (new_sex == 1 || new_sex == 2)
                    {
                        abs->personArray[judge].m_sex = new_sex;
                        break;
                    }
                    cout << "输入有误,请重新输入" << endl;
                }
                break;
            }
            case 3:
            {
                string new_address;
                cout << "请输入地址:" << endl;
                cin >> new_address;
                abs->personArray[judge].m_Addr = new_address;
                break;
            }
            case 4:
            {
                string new_phone;
                cout << "请输入更改后的电话:" << endl;
                cin >> new_phone;
                abs->personArray[judge].m_Phone = new_phone;
                break;
            }
            case 5:
            {
                int new_school;
                cout << "请输入更改后的学校:" << endl;
                cin >> new_school;
                abs->personArray[judge].m_school = new_school;
                break;
            }
            case 6:
                int new_major;
                cout << "请输入更改后的专业:" << endl;
                cin >> new_major;
                abs->personArray[judge].m_major = new_major;
                break;
            case 0:
            {
                cout << "修改完成" << endl;
                system("pause");
                system("cls");
                return;
            }
            default:
                break;
            }
 
            system("pause");
            system("cls");
        }
    }
}
 
int main()
{
    // 创建通讯录结构体变量
    Addressbooks abs;
    // 初始化通讯录中当前人员个数
    abs.m_size = 0;
 
 
    int select = 0;        // 用户选择变量
 
    while (true)
    {
        showMenu();
 
        cin >> select;
 
        switch (select)
        {
        case 1:        // 添加联系人
            addPerson(&abs);
            break;
        case 2:        // 显示联系人
            showPerson(&abs);
            break;
        case 3:        // 删除联系人
            deletePerson(&abs);
            break;
        case 4:        // 查找联系人
            findPerson(&abs);
            break;
        case 5:        // 修改联系人
            modifyPerson(&abs);
            break;
        case 0:        // 退出通讯录
        {
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
        }
        default:
            break;
        }
    }
}

怎么解决运行时输入错误,请重新输入以及专业无法输入的问题相关推荐

  1. 【解决】Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * xxx

    [解决]Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * xxx 参考文章: (1)[解决]Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * ...

  2. 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法

    载的时候提示:"写入到文件时产生错误(请用磁盘检查工具检查修复)"的解决办法: 下载的文件要是大于2G,而你的硬盘分区格式是FAT32的话就有可能会出现这种情况,虽然FAT32支持 ...

  3. c语言错误1004,excel宏运行时提示错误1004的三种解决方法

    在使用excel宏功能的时候,一些网友会遇到excel宏运行不了,软件提示:"运行时错误1004,应用程序定义或对象定义错误"的问题,那么,excel宏运行时错误1004怎么办?幸 ...

  4. 打开ftp服务器上的文件夹时发生错误 请检查是否,以及220 227 报错

    2019独角兽企业重金招聘Python工程师标准>>> 在没有进行设置过程中,进行连接到ftp的服务器中之后,会提示的是错误的信息为"打开ftp服务器上的文件夹时发生错误 ...

  5. 所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器......

    警告:所生成项目的处理器架构"MSIL"与引用"***"的处理器架构"x86"不匹配.这种不匹配可能会导致运行时失败.请考虑通过配置管理器更 ...

  6. pycharm运行时出现错误解决方法(持续更新中)

    1."unindent does not match any outer indentation level" 表示没有缩进,要缩进,复制黏贴代码的话要重新敲.缩进一遍 2.pyc ...

  7. linux命令输入错误怎么弄,Bash-Insulter:一个在输入错误命令时嘲讽用户的脚本 | Linux 中国...

    这是一个非常有趣的脚本,每当用户在终端输入错误的命令时,它都会嘲讽用户. – Magesh Maruthamuthu 它让你在解决一些问题时会感到快乐.有的人在受到终端嘲讽的时候感到不愉快.但是,当我 ...

  8. Java的知识点6—— 强制类型转换、基本类型转化时常见错误和问题、 简单的键盘输入和输出

     强制类型转换 强制类型转换,又被称为造型,用于显式的转换一个数值的类型.在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出. public class Test2 {pu ...

  9. 解决运行时提示系统禁止运行脚本

    项目场景: 我之前用的运行命令都是npm 现在考虑到yar似乎优势更多,Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载. 同时利用并行下载以最大化资源利用率,因此安装速度更快. 超级安全. ...

  10. Centos7 优盘U盘安装以及解决安装时引导错误

    一.使用UltraISO将安装镜像iso文件,写入优盘(写入硬盘映像).将优盘盘符名改为CENTOS7,否则以后引导很麻烦 二.将优盘插入要安装CentOS7的电脑,设置开机U盘启动 三.并启动到安装 ...

最新文章

  1. 模板 - Min_25 筛法求素数和
  2. Visual Studio 2010 C++ 工程文件解读
  3. c语言怎么让字母倒序排列尼,如何倒序单词顺序输出 ? 我是没辙了
  4. Windows7系统技巧:常用的10个快捷键
  5. figma设计_如何在Figma中构建设计入门套件(第二部分)
  6. 用jetty起maven工程debug报source not found
  7. Tomcat服务与搭建(一)
  8. 网页嵌套:一个html嵌套到另一个html中
  9. 激烈讨论:我身边的IT认证
  10. python中global_Python中的global variables和local variables
  11. 软件开发需求分析规范
  12. 【WebGIS bug】WARNING: Too many active WebGL contexts. Oldest context will be lost.
  13. 【Lua基础系列】之热更新
  14. markdown语法手册完整版
  15. 03_我不是潘金莲,聊相似性推荐
  16. 网易云课堂-数据结构-练习题实现-00,打印沙漏
  17. 苹果iOS/iPadOS 15.2 Beta 1发布 app隐私报告?
  18. 两亚太国家宣布其央行不会发行数字货币
  19. 为什么单片机管脚设计成低电平才有效
  20. Mysql——》通信方式:半双工

热门文章

  1. 自力更生给笔记本电脑换固态并重装系统
  2. 微信小程序014租房-房屋租赁合同系统
  3. [极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?
  4. 2021年西式面点师(初级)考试题库及西式面点师(初级)考试试题
  5. 模具行业ERP信息化(转)
  6. cuda编程思想和opencv_gpu图像处理
  7. strtok字符串分割函数
  8. Vue 的属性、方法和生命周期
  9. 怎么用虚拟机当做服务器吗,虚拟主机可以当服务器用吗
  10. 阳光直射对计算机有影响吗,办公电脑需要注意的风水