想知道如下的C++程序如何完成?

汽车管理模拟程序
【要求】按以下描述和要求建立两个类moto和All :
class moto{ //汽车类
friend class ALL;
private:
int ; //汽车代号
char ; //汽车类型('A'-货车,'B'-客车)
int ; //空闲/使用(0/1)
float ; //载重量/载客人数
public:
moto(){ id=0; type=NULL; flag=0; weight=0;}
void set(int a, char b) //输入一辆汽车数据
{ id=a; type=b;}
void disp() //输出一辆汽车数据
{ cout<<id<<','<<type<<','<<weight<<endl;}
};
class ALL{ //汽车管理类
private:
moto car[12]; //最多管理12辆汽车
int num; //实际存储的汽车数量
public:
ALL(){num=0;} //构造函数
void AddCar(); //添加一辆新汽车,要求输入代号和类型
void list(); //分别打印客车清单和货车清单
void load(char t,float w); //派出车辆,输入车型和上货重量(或上客人数),
//选择一辆空车修改其数据,输出派出车号
};
请完成以上All类中未定义函数体的成员函数,并调试运行。All类的成员函数AddCar()和list()可以调用moto类的相应成员函数实现其功能。
测试用主函数参考如下:
void main(){
ALL mt;
for(int i=0;i<4;i++) mt.AddCar();
mt.list();
mt.load('A',50);
mt.load('B',40);
mt.load('A',60);
mt.list();
}

学习成绩管理模拟程序
【要求】按以下描述和要求建立两个类student和manage :
class student{ //学生类
friend class manage;
private:
int id; //学号
char name; //姓名首字母
float math; //数学考试成绩
float physic; //物理考试成绩
void input(){cin>>id>>name>>math>>physic;} //输入记录
void display(){
cout<<id<<','<<name<<','<<math<<','<<physic<<endl;
}//输出记录
public:
student(); //构造函数
};
class manage{ //管理类
private:
student s[10]; //存放学生信息,最多可存储10条记录
int num; //数组中已写入数据的元素个数(学生记录个数)
float mav; //数学平均成绩
float pav; //物理平均成绩
public:
manage(){num=0;} //构造函数
void addst(); //在数组s中添加一个学生记录,从键盘输入所需数据。
void list(); //屏幕打印学生信息清单和学生个数,要有数据标题
int cavrage(); //计算所有学生的数学平均成绩和物理平均成绩,
//将计算结果赋给相应的数据成员,并输出至屏幕。
//如果学生记录数为0则函数返回0,否则进行了求平均值计算则返回1。
};

Void manage::addst()
{

其中的addst()和list()可调用student类的成员函数。请完成以上未定义函数体的成员函数,并调试运行。
测试用主函数参考如下:
void main(){
manage ms;
ms.addst();
ms.addst();
ms.addst();
ms.list();
if(ms.cavrage()) cout<<"计算完毕!"<<endl;
else cout<<"学生表为空!"<<endl;
}

是东南大学非电类的早期程序题,希望老师们可以教教我

第一个:

#include <iostream>
using namespace std;
class moto{ //汽车类
    friend class ALL;
private:
    int id;    //汽车代号
    char type; //汽车类型('A'-货车,'B'-客车)
    int flag;  //空闲/使用(0/1)
    float weight; //载重量/载客人数
public:
    moto(){ id=0; type=NULL; flag=0; weight=0;}
    void set(int a, char b) //输入一辆汽车数据
    { id=a; type=b;}
    void disp() //输出一辆汽车数据
    { cout<<id<<','<<type<<','<<weight<<endl;}
};
class ALL{ //汽车管理类
private:
    moto car[12]; //最多管理12辆汽车
    int num; //实际存储的汽车数量
public:
    ALL(){num=0;} //构造函数
    void AddCar(); //添加一辆新汽车,要求输入代号和类型
    void list(); //分别打印客车清单和货车清单
    void load(char t,float w); //派出车辆,输入车型和上货重量(或上客人数),
    //选择一辆空车修改其数据,输出派出车号
};

void ALL::AddCar()
{
    int id;
    char type;
    cout << "请输入代号和类型:";
    cin >> id >> type;
    car[num].set(id,type);
    num++;
}

void ALL::list()
{
    for (int i = 0;i<num;i++)
    {
        car[i].disp();
    }
}

void ALL::load(char t,float w)
{
    for (int i=0;i<num;i++)
    {
        if(car[i].flag == 0 && car[i].type == t)
        {
            car[i].flag = 1;
            car[i].weight =w;
            cout <<"派出车号:" <<car[i].id<<endl;
            break;
        }
    }
}


void main()
{
        ALL mt;
        for(int i=0;i<4;i++) mt.AddCar();
        mt.list();
        mt.load('A',50);
        mt.load('B',40);
        mt.load('A',60);
        mt.list();
}

第二题:

#include <iostream>
using namespace std;
class student{ //学生类
    friend class manage;
private:
    int id; //学号
    char name; //姓名首字母
    float math; //数学考试成绩
    float physic; //物理考试成绩
    void input(){cin>>id>>name>>math>>physic;} //输入记录
    void display(){
        cout<<id<<','<<name<<','<<math<<','<<physic<<endl;
    }//输出记录
public:
    student(); //构造函数
};

student::student()
{
    id = 0;
    name =0;
    math = 0;
    physic = 0;
}


class manage{ //管理类
private:
    student s[10]; //存放学生信息,最多可存储10条记录
    int num; //数组中已写入数据的元素个数(学生记录个数)
    float mav; //数学平均成绩
    float pav; //物理平均成绩
public:
    manage(){num=0;} //构造函数
    void addst(); //在数组s中添加一个学生记录,从键盘输入所需数据。
    void list(); //屏幕打印学生信息清单和学生个数,要有数据标题
    int cavrage(); //计算所有学生的数学平均成绩和物理平均成绩,
    //将计算结果赋给相应的数据成员,并输出至屏幕。
    //如果学生记录数为0则函数返回0,否则进行了求平均值计算则返回1。
};

void manage::addst()
{
    cout << "请输入学生学号、姓名首字母、数学成绩和物理成绩:"<<endl;
    s[num].input();
    num++;
}

void manage::list()
{
    cout << "学生数据列表:"<<endl;
    for (int i=0;i<num;i++)
    {
        s[i].display();
    }
}
int manage::cavrage()
{
    mav = 0;
    pav = 0;
    if (num == 0)
    {
        return 0;
    }else
    {
        for (int i = 0;i<num;i++)
        {
            mav += s[i].math;
            pav += s[i].physic;
        }
        mav /= num;
        pav /= num;
        return 1;
    }
}

    //其中的addst()和list()可调用student类的成员函数。请完成以上未定义函数体的成员函数,并调试运行。
        //测试用主函数参考如下:
void main()
{
    manage ms;
            ms.addst();
            ms.addst();
            ms.addst();
            ms.list();
            if(ms.cavrage()) cout<<"计算完毕!"<<endl;
            else cout<<"学生表为空!"<<endl;
}