很明显教师与学生之间是聚合关系
下面是程序
Teacher.h
#ifndef TEACHER_H
#define TEACHER_H
#include
#include
#include
#include"Student.h"
class Teacher
{
public:
Teacher(std::string); /* 构造函数 */
void connect(Student*); /* 关联教师与学生 */
void display() const; /* 显示学生信息 */
std::string getName() const; /* 获取教师姓名 */
private:
std::string name; /* 教师姓名 */
std::vector
};
/* 构造函数 */
Teacher::Teacher(std::string n)
{
name = n;
}
/* 关联教师与学生 */
inline void Teacher::connect(Student *pstu)
{
student.push_back(pstu);
}
/* 获取教师姓名 */
inline std::string Teacher::getName() const
{
return name;
}
/* 显示学生信息 */
inline void Teacher::display() const
{
for(std::vector
{
std::cout << "学生学号 " << (*i) -> getID() << '\n'
<< "学生姓名 " << (*i) -> getName() << '\n'
<< "研究方向 " << (*i) -> getResearch() << std::endl;
std::cout << std::endl;
}
}
#endif //TEACHER_H
Student.h
#ifndef STUDENT_H
#define STUDENT_H
#include
class Student
{
public:
Student(std::string, std::string, std::string); /* 构造函数 */
std::string getName() const; /* 获取学生姓名 */
std::string getID() const; /* 获取学生学号 */
std::string getResearch() const; /* 获取研究方向 */
private:
std::string name; /* 学生姓名 */
std::string ID; /* 学生学号 */
std::string research; /* 研究方向 */
};
/* 构造函数 */
Student::Student(std::string n, std::string id, std::string r) : name(n), ID(id), research(r)
{}
/* 获取学生姓名 */
inline std::string Student::getName() const
{
return name;
}
/* 获取学生学号 */
inline std::string Student::getID() const
{
return ID;
}
/* 获取研究方向 */
inline std::string Student::getResearch() const
{
return research;
}
#endif //STUDENT_H
application.cpp
#include
#include"Student.h"
#include"Teacher.h"
using std::cout;
using std::endl;
int main()
{
//定义学生对象
Student student1("0001", "学生1", "方向1");
Student student2("0002", "学生2", "方向2");
Student student3("0003", "学生3", "方向3");
//定义导师对象
Teacher teacher("导师1");
//导师与学生关联
Student *point = &student1;
teacher.connect(point);
point = &student2;
teacher.connect(point);
point = &student3;
teacher.connect(point);
//显示导师指导的学生
cout << teacher.getName() << "指导的学生有" << '\n' < teacher.display(); return 0; }
这个是靠你面相对象的设计思想 当然不用你删除什么的 重点考的是类定义耦合聚合问题
最好自己做 这题你都问 就是在浪费你的学费
定义两个类,一个student类或结构体。还一个是用来操作的teach类,包括一个student类型的数组和教师姓名信息的string,包括的成语函数自己可以定义了,输入,输出等等
楼上的“Student[20];”没有定义变量名,可以改为:
Student students[20];
定义Student类型的数组students