打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第三题
​第 3 题
【要求】编写一个程序,有若干个教师和研究生,每个研究生有且仅
有一名指导老师,每个老师可以带若干名研究生,建立一个教师对象
数组和研究生对象数组,通过相关函数为每个研究生指定指导老师,
最后输出所有研究生的完整信息和所有教师的完整信息。
【分析】略
【源代码】
#include <iostream>
using namespace std;
class Graduate; //
const int Max=6; //一个教师最多指导的研究生人数
class Teacher //教师类
{ int tno; //编号
char tname[10]; //姓名
char prof[8]; //职称
int num; //实际指导的研究生人数
Graduate *sp[Max]; //指导的研究生
public:
Teacher() {}
Teacher(int n,char na[],char pr[])
{ tno=n;
strcpy(tname,na);
strcpy(prof,pr);
num=0;
}
void addgraduate(Graduate *gp) //给教师增加一个研究生
{ sp[num]=gp;
num++;
}
void Tdisp() //输出一个教师的基本信息
{ cout << tname << "(" << tno << "," << prof << ")" << endl;
}
void Tdispall(); //输出一个教师的完整信息
};
class Graduate //研究生类
{ int sno; //学号
char sname[10]; //姓名
Teacher t; //导师
public:
Graduate(int n,char na[])
{ sno=n;
strcpy(sname,na);
}
void setteacher(Teacher &t1) //指定当前研究生的导师
{ t1.addgraduate(this); //给教师 t1 增加一个研究生
t=t1; //让 t1 作为当前研究生的导师
}
void Gdisp() //输出一个研究生的基本信息
{
cout << " 学号:" << sno << " 姓名:" << sname << endl;
}
void Gdispall() //输出一个研究生的完整信息
{ cout << " 学号:" << sno << " 姓名:" << sname << " 导师:";
t.Tdisp();
}
};
void Teacher::Tdispall()
{ int i;
cout << " " << tname << "(" << tno << "," << prof << ")" << endl;
cout << " 指导研究生人数:" << num << endl;
for (i=0;i<num;i++)
sp[i]->Gdisp();
}
void main()
{ int i;
Teacher t[3]={Teacher(101,"王华","教授"), Teacher(102,"陈立","副教授"),Teacher(103,"李清","教授")};
Graduate g[5]={Graduate(201,"张三"),Graduate(202,"李四"), Graduate(203,"王五"),Graduate(204,"刘六"),Graduate(205,"赵七")};
g[0].setteacher(t[0]); //设置每个研究生的导师
g[1].setteacher(t[2]);
g[2].setteacher(t[1]);
g[3].setteacher(t[2]);
g[4].setteacher(t[0]);
cout << "研究生列表" << endl;
for (i=0;i<5;i++)
g[i].Gdispall();
cout << "教师列表" << endl;
for (i=0;i<3;i++)
t[i].Tdispall();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++虚基类详解
C++习题与解析(引用-02)
大数相乘
178 f0603
0~9(int型)与‘0’~‘9’(char型)的转换
c++string与数字之间的转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服