设计一个大学教师和学生管理程序,教师包括编号、姓名、职称和教研室数据的输入输出

更新时间:2023-06-07 06:43:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

设计一个大学教师和学生管理程序,教师包

第三大题 设计一个大学教师和学生管理程序,教师包括编号、姓名、职称和教研室数据的输入输出。大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算机平均分;研究生包括编号、姓名、性别、班号、指导教师和研究方法数据输入输出;博士后数据的输入输出博士后既是教师也是研究生。

要求:

输入并输出一个教师,一个大学生和一个博士后的数据。

设计:

设计一个person类,它包括编号和姓名的输入输出,从它派生一个teacher类用于满足教师数据的操作,再从它派生一个student类,增加性别和班号的输入输出,然后从student类派生出大学生类unstudent和研究生类graduate。分别实现大学生和研究生数据的操作,最后由graduate类和teacher类派生出博士后类postdoctor,这些类的继承关系即类层次如图:

由于postdoctor类从graduate类和teacher类派生,而graduate类和teacher类都是从person类派生的,为解决二义性将teacher类和student类从person类的继承改为虚继承。

#include "iostream.h"

#include "iomanip.h"

class person

{

public:

void input();

void print()

{

cout<<setw(10)<<"num"<<setw(10)<<"name"<<endl;

cout<<setw(10)<<num<<setw(10)<<name<<endl;

}

private:

int num;

int name;

};

void person::input()

{

cout<<"please num:";

cin>>num;

cout<<"please name:";

cin>>name;

return;

}

class teacher:virtual public person

{

public:

void input()

{

设计一个大学教师和学生管理程序,教师包

person:input();

cout<<"please zch:";

cin>>zch;

cout<<"please jysh:";

cin>>jysh;

return;

}

void print()

{

person:print();

cout<<setw(10)<<"zch"<<setw(10)<<"jysh"<<endl;

cout<<setw(10)<<zch<<setw(10)<<jysh<<endl;

}

private:

char *zch;

char *jysh;

};

class student:virtual public person

{

public:

void input()

{

person:input();

cout<<"please xb:";

cin>>xb;

cout<<"please bh:";

cin>>bh;

return;

}

void print()

{

student:print();

cout<<setw(10)<<"xb"<<setw(10)<<"bh"<<endl;

cout<<setw(10)<<xb<<setw(10)<<bh<<endl;

}

private:

char *xb;

char *bh;

};

class unstudent: public student

{

public:

void input()

设计一个大学教师和学生管理程序,教师包

{

student:input();

cout<<"please yy:";

cin>>yy;

cout<<"please gs:";

cin>>gs;

cout<<"please sjjg:";

cin>>sjjg;

return;

}

void print()

{

student:print();

cout<<setw(10)<<"yy"<<setw(10)<<"gs"<<setw(10)<<"sjjg"<<endl; cout<<setw(10)<<yy<<setw(10)<<gs<<setw(10)<<sjjg<<endl; }

void average()

{

cout<<setw(10)<<"average"<<endl;

cout<<setw(10)<<float(yy+gs+sjjg)/3.0<<endl;

}

private:

int yy;

int gs;

int sjjg;

float aver;

};

class graduate: public student

{

public:

void input()

{

student:input();

cout<<"please zdls:";

cin>>zdls;

cout<<"please yjff:";

cin>>yjff;

return;

}

void print()

{

student:print();

cout<<setw(10)<<"zdls"<<setw(10)<<"yjff"<<endl;

设计一个大学教师和学生管理程序,教师包

cout<<setw(10)<<zdls<<setw(10)<<yjff<<endl; }

private:

char *zdls;

char *yjff;

};

class postdoctor: public graduate,public teacher {

public:

void input()

{

graduate:input();

teacher:input();

return;

}

void print()

{

graduate:print();

teacher:print();

}

};

void main()

{

postdoctor aaa;

aaa.print();

graduate bbb;

bbb.print();

unstudent ccc;

ccc.print();

ccc.average();

}

本文来源:https://www.bwwdw.com/article/qqi1.html

Top