如何实现所有的功能都能使用?

#include "StdAfx.h"
#include "Mainpanel.h"
#include "DoBuydetail.h"

Mainpanel::Mainpanel(void)
{
    mainwindow();
}
Mainpanel::~Mainpanel(void)
{
}

void Mainpanel::mainwindow() 
{
    welcome();
    while (1) {
        cout << "请输入您的用户名:";
        cin >> username;
        cout << "请输入您的密码:";
        cin >> password;
        if (mydouser.checkuser(username, password))
        {
            cout << "尊敬的" << username << ",欢迎使用本软件。" << endl;
            usergrade = mydouser.thistimeusergrade;
            break;
        }
        else {
            cout << "您输入的信息有误,请重新输入。" << endl;
        }
    }
    if (usergrade == 0) {
        adminwindow();
    }
    else {
        userwindow();
    }
}
void Mainpanel::welcome() {
    cout << "\t\t***************************************************" << endl;
    cout << "\t\t*                                                 *" << endl;
    cout << "\t\t*           欢迎使用书店管理系统1.0               *" << endl;
    cout << "\t\t*                作者:吕志海                     *" << endl;
    cout << "\t\t*                 2020.5.27                       *" << endl;
    cout << "\t\t*                                                 *" << endl;
    cout << "\t\t***************************************************" << endl;
}
void Mainpanel::adminwindow() {
    int flag;
    while (1) {
        cout << "\t\t***************************************************" << endl;
        cout << "\t\t*      1:查看个人信息请按1                       *" << endl;
        cout << "\t\t*      2:修改个人信息请按2                       *" << endl;
        cout << "\t\t*      3:维护用户资料请按3                       *" << endl;
        cout << "\t\t*      4:维护图书资料请按4                       *" << endl;
        cout << "\t\t*      5:维护书商资料请按5                       *" << endl;
        cout << "\t\t*      6:维护采购单资料请按6                     *" << endl;
        cout << "\t\t*      7:维护采购单详情资料请按7                 *" << endl;
        cout << "\t\t*      8:维护订单资料请按8                       *" << endl;
        cout << "\t\t*      9:维护订单详情资料请按9                   *" << endl;
        cout << "\t\t*      0:退出请按0                               *" << endl;
        cout << "\t\t***************************************************" << endl;
        cout << "请输入数字选择对应的操作:";
        cin >> flag;
        if (flag == 0)
            break;
        else {
            switch (flag) {
            case 1:mydouser.displayoneself(); break;
            case 2:mydouser.modifypassword(); break;
            case 3:handlewindow(3); break;
            case 4:handlewindow(4); break;
            case 5:handlewindow(5); break;
            case 6:handlewindow(6); break;
            case 7:handlewindow(7); break;
            case 8:handlewindow(8); break;
            case 9:handlewindow(9); break;
            default:cout << "输入有误,请重试!"; break;
            }
        }
    }
    cout << endl;
}
void Mainpanel::userwindow()
{
    int flag;
    while (1) 
    {
        cout << "\t\t***************************************************" << endl;
        cout << "\t\t*      1:查看个人信息请按1                       *" << endl;
        cout << "\t\t*      2:修改密码请按2                           *" << endl;
        cout << "\t\t*      3:查看图书信息请按3                       *" << endl;
        cout << "\t\t*      4:查看个人购书记录请按4                   *" << endl;
        cout << "\t\t*      0:退出请按0                               *" << endl;
        cout << "\t\t***************************************************" << endl;
        cout << "请输入数字选择对应的操作:";
        cin >> flag;
        if (flag == 0)
            break;
        else {
            switch (flag)
            {
            case 1:mydouser.displayoneself(); break;
            case 2:mydouser.modifypassword(); break;
            case 3:cout << "查看图书信息" << endl; break;
            case 4:cout << "按照用户名查找订单详情中的个人购书记录" << endl; break;
            default:cout << "输入有误,请重试!" << endl; break;
            }
        }
    }
    cout << endl;
}
void Mainpanel::handlewindow(int kind)
{
    string s;
    switch (kind)
    {
    case 3:s = "用户"; break;
    case 4:s = "图书"; break;
    case 5:s = "书商"; break;
    case 6:s = "采购单"; break;
    case 7:s = "采购单详情"; break;
    case 8:s = "订单"; break;
    case 9:s = "订单详情"; break;
    }
    int flag;
    while (1)
    {
        cout << "\t\t***************************************************" << endl;
        cout << "\t\t*      1:查看所有" << s << "信息请按1                 *" << endl;
        cout << "\t\t*      2:修改一条" << s << "信息请按2                 *" << endl;
        cout << "\t\t*      3:插入一条新" << s << "信息请按3               *" << endl;
        cout << "\t\t*      4:删除一条" << s << "信息请按4                 *" << endl;
        cout << "\t\t*      5:查找并显示一条" << s << "信息请按5           *" << endl;
        cout << "\t\t*      0:返回上级菜单请按0                            *" << endl;
        cout << "\t\t***************************************************" << endl;
        cout << "请输入数字选择对应的操作:";
        cin >> flag;
        if (flag == 0)
            break;
        else 
        {
            switch (flag) 
            {    
                switch (kind)
                {
                case 1:mydouser.displayalluser(); break;
                case 2:mydouser.modifyoneuser(); break;
                case 3:mydouser.insertoneuser(); break;
                case 4:mydouser.deleteoneuser(); break;
                case 5:mydouser.selectoneuser(); break;
                default:cout << "输入有误,请重试!"; break;
                }
            }
        }
    }
    cout << endl;
}

 

参考GPT和自己的思路:

该代码段是一个图书管理系统的主界面代码,包含了管理员界面和普通用户界面的选择。在管理员界面中可以进行用户、图书、书商、采购单、采购单详情、订单和订单详情的维护,包括查看、修改、插入、删除和查找等操作;在普通用户界面中可以查看个人信息、修改密码、查看图书信息和查看个人购书记录。代码逻辑比较清晰,但部分代码比较冗长,可以优化。要实现所有功能都能使用,则需要完善细节,确保代码能够正确执行。