如何将主函数代码写到外面?

/*输入一批学生某门课程考试的各题的分数,计算每个人的总分,
统计各分数段 0~49, 50~59, 60~69,70~79, 80~89, 90~100 的人数及占总人数的百分比。
要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分。
输出要求:课程名称,考试日期,学生班号;各分数段的人数及百分比。*/ 



#include 
#include 
using namespace std;
class Stu {
    public:
        Stu() {}
        ~Stu() {}
        string ClassName;
        string TestDate;
        string ClassNumber;
        string name;
        string num;
        double T[5];
        void input() {
            cout<<"请输入课程名称:";
            cin>>ClassName;
            cout<<"请输入考试日期:";
            cin>>TestDate;
            cout<<"请输入学生班号:";
            cin>>ClassNumber;
            cout<<"请输入学生姓名:";
            cin>>name;
            cout<<"请输入学生学号:";
            cin>>num;
            for(int i=0; i<5; i++) {
                cout<<"请输入学生该课程第"<1<<"题成绩:";
                cin>>T[i];
            }
            cout<0; i<10; i++) {
                sum+=T[i];
            }
            return sum;
        }
};

class Info {
    public:
        string classname;
        string testdate;
        string classnum;
        int n[6];
        int N;
        Info() {
            for(int i=0; i<6; i++) {
                n[i]=0;
            }
            N=0;
        }

};

int main() {
    int i,j,studentNum;
    cout<<"请输入学生人数:";
    cin>>studentNum;
    Stu stu[studentNum];
    Info info[studentNum];
    
    for(i=0; i0].classname =stu[0].ClassName ;
    info[0].testdate =stu[0].TestDate;
    info[0].classnum =stu[0].ClassNumber;
    
    for(i=0; i0; kClassName ==info[k].classname &&
                    stu[i].TestDate ==info[k].testdate &&
                    stu[i].ClassNumber ==info[k].classnum ) {
                double score=stu[i].getscore();
                if(score<=49&&score>=0)
                    info[k].n[0]++;
                else if(score<=59&&score>=50)
                    info[k].n[1]++;
                else if(score<=69&&score>=60)
                    info[k].n[2]++;
                else if(score<=79&&score>=70)
                    info[k].n[3]++;
                else if(score<=89&&score>=80)
                    info[k].n[4]++;
                else if(score<=100&&score>=90)
                    info[k].n[5]++;
                info[k].N++;
            } else {
                j++;
                info[j-1].classname =stu[i].ClassName ;
                info[j-1].testdate =stu[i].TestDate ;
                info[j-1].classnum =stu[i].ClassNumber ;
            }
        }
    }
    
    for(i=0; i"课程名称:"<"考试日期:"<"学生班号:"<"0~49分人数:"<0]<"50~59分人数:"<1]<"60~69分人数:"<2]<"70~79分人数:"<3]<"80~89分人数:"<4]<"90~100分人数:"<5]<"0~49分人数占总人数百分比:"<0]*100/info[i].N<<"%"<"50~59分人数占总人数百分比:"<1]*100/info[i].N<<"%"<"60~69分人数占总人数百分比:"<2]*100/info[i].N<<"%"<"70~79分人数占总人数百分比:"<3]*100/info[i].N<<"%"<"80~89分人数占总人数百分比:"<4]*100/info[i].N<<"%"<"90~100分人数占总人数百分比:"<5]*100/info[i].N<<"%"<"pause");
    return 0;
}

写到外面是指新的代码文件嘛,这样的话可以将Stu类代码分开存,再将主函数里for循环那些也分开存到新的文件,这样代码就可维护,可扩展,灵活性也好