若tea 2022-09-18 07:09 采纳率: 100%
浏览 13
已结题

C++通讯录管理出现警告

警告内容如图所示,不清楚怎么消除警告。源码如下

img

#include<iostream>
using namespace std;
#include <string>           /*    通讯录     */
#define Max 1000

struct person
{
    string m_Name;
    int m_Sex;//1.男   2.女
    int m_Age;
    string m_Phone;
    string m_Addr;
};
struct Addressbooks//设计通讯录结构体
{
    struct person personArray[Max];
    int m_many;
};
void addPerson(Addressbooks * abs)
{
    if (abs->m_many >= Max) 
    {
        cout << "通讯录已满,无法添加!" << endl;
        return;
    }
    else//添加联系人
    {
        //姓名
        string name;
        cout << "请输入姓名: " << endl;
        cin >> name;
        abs->personArray[abs->m_many].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_many].m_Sex = sex;
                break;
            }
            cout << "输入有误,请重新输入" << endl;
        }
        //年龄
        cout << "请输入年龄" << endl;
        int age=0;
        while (true)
        {
            cin >> age;
            if (age > 0 && age < 120)
            {
                abs->personArray[abs->m_many].m_Age = age;
                break;
            }
            cout << "输入有误,请重新输入" << endl;
        }
        //电话
        cout << "请输入联系电话" << endl;
        string Phone;
        cin >> Phone;
        abs->personArray[abs->m_many].m_Phone = Phone;
        //住址
        cout << "请输入具体地址" << endl;
        string Addr;
        cin >> Addr;
        abs->personArray[abs->m_many].m_Addr = Addr;
        abs->m_many++;
        cout << "添加成功" << endl;
        system("cls");
        system("pause");
    }

};

void showPerson(Addressbooks * abs)
{
    if (abs->m_many == 0)
    {
        cout << "当前记录为空" << endl;
    }
    else
    {
        for (int i = 0; i < abs->m_many; 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");//清屏
}

int isExist(Addressbooks* abs, string name)
{
    for (int i = 0; i < abs->m_many; i++)
    {
        if (abs->personArray[i].m_Name == name)
        {
            return i;
        }
    }
    return -1;//未找到联系人
}

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_many; i++)//进行删除
        {
            abs->personArray[i] = abs->personArray[i + 1];//数据前移
        }
        abs->m_many--;//更新人数
        cout << "删除成功" << endl;
    }
    else
    {
        cout << "查无此人" << endl;
    }

    system("pause");
    system("cls");
}

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 << "\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");
}

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[abs->m_many].m_Sex = sex;
                break;
            }
            cout << "输入有误,请重新输入" << endl;
        }
        //年龄
        cout << "请输入年龄" << endl;
        int  age = 0;
        while (true)
        {
            cin >> age;
            if (age > 0 && age < 120)
            {
                abs->personArray[abs->m_many].m_Age = age;
                break;
            }
            cout << "输入有误,请重新输入" << endl;
        }

        //电话
        cout << "请输入联系电话" << endl;
        string Phone;
        cin >> Phone;
        abs->personArray[abs->m_many].m_Phone = Phone;

        //住址
        cout << "请输入具体地址" << endl;
        string Addr;
        cin >> Addr;
        abs->personArray[abs->m_many].m_Addr = Addr;
        cout << "修改成功" << endl;
    }
    else
    {
        cout << "查无此人" << endl;
    }
    system("pause");
    system("cls");
}

void cleanPerson(Addressbooks* abs)//清空通讯录
{
    cout << "您是否确实需要清空联系人?" << endl;
    cout << "若是,请按1;若不是,请按9 " << endl;
    int over = 0;
    cin >> over;
    if (over == 1)
    {
        abs->m_many = 0;
        cout << "通讯录联系人已经清空" << endl;
        system("pause");
        system("cls");
    }
    else
    {
        cout << "已退出清空联系人的功能" << endl;
        system("pause");
        system("cls");
    }
}

void showMeau()
{
    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_many = 0;//初始化通讯录当前人数

    int select = 0;
    while (true)
    {
        showMeau();//显示菜单

        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 6://清空联系人
            cleanPerson(&abs);
            break;
        case 0:
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            break;
        }
    };
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-18 08:39
    关注

    提示你结构成员变量没有初始化。消除方式就是定义结构变量后,立即对结构成员变量赋予初始值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月3日
  • 已采纳回答 10月3日
  • 创建了问题 9月18日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备