C++程序设计 感觉满简单的 只有2个条件嘛 又不用删除 不用修改 简单就好 达标就行 谢谢了

2024-11-07 00:35:26
推荐回答(4个)
回答(1):

很明显教师与学生之间是聚合关系

下面是程序

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 student;   /* 学生信息 */

};

/* 构造函数 */

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::const_iterator i = student.begin(); i != student.end(); ++i)

   {

      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;

}

回答(2):

这个是靠你面相对象的设计思想 当然不用你删除什么的 重点考的是类定义耦合聚合问题
最好自己做 这题你都问 就是在浪费你的学费

回答(3):

定义两个类,一个student类或结构体。还一个是用来操作的teach类,包括一个student类型的数组和教师姓名信息的string,包括的成语函数自己可以定义了,输入,输出等等

回答(4):

楼上的“Student[20];”没有定义变量名,可以改为:
Student students[20];
定义Student类型的数组students