跨过斯提克斯河 2021-07-22 17:18 采纳率: 100%
浏览 38
已采纳

这个数组数量限制怎么删掉?


#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;
const int TMAX=50;
class Student  
{
public:
    int num;  
    string name;
    string sex;
    int age;
    string Class;
public:
    Student(int n=0,string nm="",string s="",int a=0,string c=""):num(n),name(nm),sex(s),age(a),Class(c){};
    virtual void Input(){};
    virtual void Output(){};
    virtual void Output2(){};
    int GetNum(){return num;}
    
};
class Pupil:public Student
{
public:
    string Chinese;
    string Math;
    string English;
    int choice2;
public:
    Pupil(int n=0,string nm="",string s="男",int a=0,string c="",string l="",string z="",string e="")
        :Student(n,nm,s,a),Chinese(l),Math(z),English(e){};
    void Input()//成员函数用于输入成员信息
    {
        cout<<"输入学号"<<endl;
        cin>>num;
        cout<<"输入姓名"<<endl;
        cin>>name;
        cout<<"选择性别";
        cout<<"(1.男  2.女)"<<endl;
        cout<<"请输入你的选择"<<endl;
        cin>>choice2;
        switch(choice2)
        {
        case 1:sex="男";break;
        case 2:sex="女";break;
        default:cout<<"输入错误,默认为男"<<endl;break;
        }
        cout<<"输入年龄"<<endl;
        cin>>age;
        cout<<"输入班级"<<endl;
        cin>>Class;
        cout<<"输入语文成绩"<<endl;
        cin>>Chinese;
        cout<<"输入数学成绩"<<endl;
        cin>>Math;
        cout<<"输入英语成绩"<<endl;
        cin>>English;
    }
    void Output()
    {
    }

};
class Pup_Manage
{
    Pupil Mid[TMAX];   
    int top;            
public:
    Pup_Manage(){top=0;} 
    void Add();          

};

void Pup_Manage::Add()
{
    if(top>=TMAX)  
    {
        cout<<"用户已满"<<endl;
        return;
    }
    Pupil t;
    cout<<"输入新添加的学生的信息"<<endl;
    t.Input();
    for(int i=0;i<top;i++)
        if (t.GetNum()==Mid[i].GetNum())
        {
        cout<<"该编号的学生已存在"<<endl;
        return;
        }
    Mid[top]=t;
    top=top+1;
    cout<<"添加成功!"<<endl;
}


void PupMenu();
int main()
{
    int choice=0;
    
    do{
        cout<<"                          *****学生信息管理系统*****\n"<<endl;
        cout<<"                                 1=>小学生管理        "<<endl;
        cout<<"                                 2=>中学生管理         "<<endl;
        cout<<"                                 3=>大学生管理         "<<endl;
        cout<<"                                 0=>退出系统           "<<endl;
        cout<<"\n请输入您的选择:";
        cin>>choice;
        switch(choice)
        {
            case 1:PupMenu();break;
            
            case 0:cout<<"\n您已安全退出系统."<<endl;break;
            default:cout<<"\n没有此选项.请重选."<<endl;break;
        }
    }while(choice!=0);

    return 0;
}
void PupMenu()
{
    Pup_Manage t;
    int choice=1;
    while(choice!=0)
    {
        cout<< "                        ====小学生管理====                   "<<endl;
        cout<<"                              1.添加                              "<<endl;
        cout<<"                              2.查找                              "<<endl;
        cout<<"                              3.修改                              "<<endl;
        cout<<"                              4.删除                              "<<endl;
        cout<<"                              5.显示                              "<<endl;
        cout<<"                              6.保存                              "<<endl;
        cout<<"                              7.读取                              "<<endl;
        cout<<"                              8.统计                              "<<endl;
        cout<<"                              0.退出                              "<<endl;
        cout<<"\n输入您操作的选项:";
        cin>>choice;
        switch(choice)
        {
            case 1:t.Add();break;
            case 0:cout<<"退出成功!"<<endl;break;
            default:cout<<"无此选项!请重试!"<<endl;break;
        }
    }
}

TMAX限制了一个数量,想把它删掉,但下面有个Mid[TMAX],这里的TMAX删掉后程序就不能正常运行了,输完数据会直接退出

img
但正常情况会回到上一个页面

  • 写回答

3条回答 默认 最新

  • robot8me 2021-07-22 17:53
    关注

    img

    #include<iostream>
    #include<string>
    #include<fstream>
    #include<iomanip>
    #include <vector>
    
    using namespace std;
    const int TMAX = 50;
    class Student
    {
    public:
        int num;
        string name;
        string sex;
        int age;
        string Class;
    public:
        Student(int n = 0, string nm = "", string s = "", int a = 0, string c = "") :num(n), name(nm), sex(s), age(a), Class(c) {};
        virtual void Input() {};
        virtual void Output() {};
        virtual void Output2() {};
        int GetNum() { return num; }
    };
    class Pupil :public Student
    {
    public:
        string Chinese;
        string Math;
        string English;
        int choice2;
    public:
        Pupil(int n = 0, string nm = "", string s = "男", int a = 0, string c = "", string l = "", string z = "", string e = "")
            :Student(n, nm, s, a), Chinese(l), Math(z), English(e) {};
        void Input()//成员函数用于输入成员信息
        {
            cout << "输入学号" << endl;
            cin >> num;
            cout << "输入姓名" << endl;
            cin >> name;
            cout << "选择性别";
            cout << "(1.男  2.女)" << endl;
            cout << "请输入你的选择" << endl;
            cin >> choice2;
            switch (choice2)
            {
            case 1:sex = "男"; break;
            case 2:sex = "女"; break;
            default:cout << "输入错误,默认为男" << endl; break;
            }
            cout << "输入年龄" << endl;
            cin >> age;
            cout << "输入班级" << endl;
            cin >> Class;
            cout << "输入语文成绩" << endl;
            cin >> Chinese;
            cout << "输入数学成绩" << endl;
            cin >> Math;
            cout << "输入英语成绩" << endl;
            cin >> English;
        }
        void Output()
        {
        }
    };
    class Pup_Manage
    {
        std::vector<Pupil> Mid;// [TMAX];
        int top;
    public:
        Pup_Manage() { top = 0; }
        void Add();
    };
    void Pup_Manage::Add()
    {
        //if (top >= TMAX)
        //{
        //    cout << "用户已满" << endl;
        //    return;
        //}
        Pupil t;
        cout << "输入新添加的学生的信息" << endl;
        t.Input();
        for (int i = 0; i<top; i++)
            if (t.GetNum() == Mid[i].GetNum())
            {
                cout << "该编号的学生已存在" << endl;
                return;
            }
        Mid.push_back(t);
        top = top + 1;
        cout << "添加成功!" << endl;
    }
    
    void PupMenu();
    int main()
    {
        int choice = 0;
        do {
            cout << "                          *****学生信息管理系统*****\n" << endl;
            cout << "                                 1=>小学生管理        " << endl;
            cout << "                                 2=>中学生管理         " << endl;
            cout << "                                 3=>大学生管理         " << endl;
            cout << "                                 0=>退出系统           " << endl;
            cout << "\n请输入您的选择:";
            cin >> choice;
            switch (choice)
            {
            case 1:PupMenu(); break;
            case 0:cout << "\n您已安全退出系统." << endl; break;
            default:cout << "\n没有此选项.请重选." << endl; break;
            }
        } while (choice != 0);
        return 0;
    }
    void PupMenu()
    {
        Pup_Manage t;
        int choice = 1;
        while (choice != 0)
        {
            cout << "                        ====小学生管理====                   " << endl;
            cout << "                              1.添加                              " << endl;
            cout << "                              2.查找                              " << endl;
            cout << "                              3.修改                              " << endl;
            cout << "                              4.删除                              " << endl;
            cout << "                              5.显示                              " << endl;
            cout << "                              6.保存                              " << endl;
            cout << "                              7.读取                              " << endl;
            cout << "                              8.统计                              " << endl;
            cout << "                              0.退出                              " << endl;
            cout << "\n输入您操作的选项:";
            cin >> choice;
            switch (choice)
            {
            case 1:t.Add(); break;
            case 0:cout << "退出成功!" << endl; break;
            default:cout << "无此选项!请重试!" << endl; break;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月22日
  • 修改了问题 7月22日
  • 创建了问题 7月22日

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大