123456。,。,

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
//main函数块***************************
//封装显示该页面
//在main函数中调用封装好的函数
#include 
using namespace std;
#include "addpeson.h"

//菜单界面 
void  showmenu() {
    cout << "*****  1.添加联系人  *****" << endl;
    cout << "*****  2.显示联系人  *****" << endl; 
    cout << "*****  3.删除联系人  *****" << endl;
    cout << "*****  4.查找联系人  *****" << endl;
    cout << "*****  5.修改联系人  *****" << endl;
    cout << "*****  6.清空联系人  *****" << endl;
    cout << "*****  7.退出通讯录  *****" << endl;
}
  
int main() {
    //创建通讯录的结构体变量
    struct addressbook abs;
    abs.size = 0;
    
    while (true) {
        int select = 0;//创建一个用户选择的项目
        showmenu();
        cin >> select;

        switch (select) {//选择功能
        case 1:  //添加联系人
            addperson(&abs);
        case 2:  //显示联系人
            showperson(&abs);
        case 3:  //删除联系人
        case 4:  //查找联系人
        case 5:  //修改联系人
        case 6:  //清空联系人
        case 7:  //退出通讯录
            cout << "欢迎下次使用" << endl;
            break;
        default:
            break;
        }
    }
    system("pause");    ///警告    C6262    函数使用堆叠的 "92008" 字节。请考虑将一些数据移动到堆
    return 0;
}

//showperson(2)函数块
#include 
using namespace std;
#include "addpeson.h"

void showperson(addressbook*abs) {
    //判断通讯录中的人数是否为零
    if (abs->size == 0) {
        cout << "通讯录为空" << endl;
    }
    else {
        int num = 0;
        for (num = 0; num < abs->size; num--) {    //警告    C6293    定义错误的 for-loop
            string gender =( abs->personarray[num].sex == 1 ? "男" : "女" );   //警告    C6385    正在从 "abs->personarray" 读取无效数据
            cout << "姓名:" << abs->personarray[num].name << "\t性别:" << gender << "\t年龄:" << abs->personarray[num].age << "\t电话号码:" << abs->personarray[num].phonenumber << "\t住址" << abs->personarray[num].address << endl;
        }
    }


    system("cls");
}

//addperson.h代码块*****************************
#define MAX 1000
//设置联系人结构体
struct person {
    //姓名
    string name;
    //性别
    int sex;
    //年龄
    int age;
    //电话
    string phonenumber;
    //住址
    string address;
};

//设置通讯录结构体
struct addressbook {
    //保存的联系人的数组
    struct person personarray[MAX];
    //通讯录的联系人个数
    int size=0;
}; 

void addperson(addressbook* abs);
void showperson(addressbook*abs);
运行结果及报错内容

严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6293 定义错误的 for-loop。 showperson(2).cpp 12
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6385 正在从 "abs->personarray" 读取无效数据。 showperson(2).cpp 13
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6262 函数使用堆叠的 "92008" 字节。请考虑将一些数据移动到堆。通讯录管理系统.cpp 18

我想要达到的结果