在线等c++编程设置选课系统问题,急

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:12:29
四、任务一
某高校中,有大专生,本科生,研究生等不同类型学生。老师开设一定数目课程,供学生选择。学生需要选课,选课后,有各科成绩。研究生既是学生需要选课,完成一定学分的课程学习,也需要在导师指导下完成一定的科研任务。
试用面向对象的思想,建立该问题的类。并在这些类基础上,编写(C++)应用程序。要求能操作学生选课,显示学生以及老师信息。
提示:
(1)研究生从老师与学生多继承;
(2)如何表示一个学生选多门课;如何表示一个老师教授多门课;
(3)学生与老师可以从一个共同的基类people继承派生。
以上类要有合适的重载构造、析构函数以及拷贝构造函数。
(注意以后与数据库内容相区别)
这是我们的c++课程设计题,原题目给的就是我所贴出来的,其他什么也没有,。网上也有很多源代码,但和该题都有差别,初步是这样想的,定义people类,派生出老师和学生,研究生是由学生和老师派生出来的,用数组表示很多门课可供选择,我觉得要定义一个人类,老师类,学生类,研究生类,大专生类,本科生类,大专生和本科生的区别是所选的课的名称不同 .六月二十七号之前交即可

#include <iostream>
#include <cstring>
using std::cout;
using std::endl;

class Course{
public:
Course():name(0),next(0){}
Course(char n[]);
~Course(){delete[] name;}
void setName(char n[]);
void setNextCourse(Course* c);
char *getName(){return name;}
Course* getNext(){return next;}
private:
char* name;
Course* next;
};

Course::Course(char n[]){
name=new char[strlen(n)+1];
strcpy(this->name,n);
}

void Course::setName(char n[]){
delete[] name;
this->name=new char[strlen(n)+1];
strcpy(this->name,n);
}

void Course::setNextCourse(Course* c){
this->next=c;
}

class Person{
public:
Person():id(0),name(0),courses(0){}
Person(char i[],char n[]);
~Person();
void setID(char i[]);
void setName(char n[]);
char *getID(){return id;}
char *get