Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <list>
- #include <vector>
- using namespace std;
- //KLASY
- class User;
- class Teacher;
- class Student;
- class Subject;
- class Lesson;
- class TimeTable;
- class Group;
- //
- ///--USER
- //
- class User {
- protected:
- string firstName;
- string lastName;
- public:
- virtual void introduce() = 0;
- };
- //
- ///-- TEACHER--------------------------------------------------
- //
- class Teacher : public User {
- Subject *subject;
- public:
- virtual void introduce();
- Subject *getSubejct();
- void setSubject(Subject *);
- Teacher(string firstName, string lastName);
- };
- void Teacher::introduce() {
- cout << this->firstName << " " << this->lastName << endl;
- };
- Subject *Teacher::getSubejct() {
- return this->subject;
- }
- Teacher::Teacher(string firstName, string lastName) {
- this->firstName = firstName;
- this->lastName = lastName;
- }
- void Teacher::setSubject(Subject *subject) {
- this->subject = subject;
- }
- //
- ///-- SUBJECT-----------------------
- //
- class Subject {
- string name;
- public:
- Subject(string);
- string getName();
- void setName(string);
- friend Teacher;
- };
- // SUBJECT - metody
- Subject::Subject(string name) {
- this->name = name;
- }
- string Subject::getName() {
- return this->name;
- }
- void Subject::setName(string name) {
- this->name = name;
- }
- //
- ///-- GROUP-------------------------------------------
- //
- class Group {
- private:
- string groupName;
- vector<Student *> students;
- public:
- Student *getStudent(int);
- string getName();
- Group(string);
- friend Student;
- };
- // GROUP - metody
- Student *Group::getStudent(int index) {
- this->students[index];
- }
- string Group::getName() {
- return this->groupName;
- }
- Group::Group(string groupName) {
- this->groupName = groupName;
- }
- //
- //-- STUDENT---------------------------------
- //
- class Student : public User {
- private:
- string albumNumber;
- Group *group;
- public:
- virtual void introduce();
- Group *getGroup();
- Student(string, string, string);
- string getAlbumNumber();
- Student(string, string, string, Group *);
- void setGroup(Group *);
- };
- // STUDENT-metody
- void Student::introduce() {
- cout << this->firstName << ' ' << this->lastName << ' ' << this->albumNumber << endl;
- }
- Group *Student::getGroup() {
- return this->group;
- }
- Student::Student(string firstName, string lastName, string albumNumber) {
- this->firstName = firstName;
- this->lastName = lastName;
- this->albumNumber = albumNumber;
- }
- string Student::getAlbumNumber() {
- return this->albumNumber;
- }
- Student::Student(string firstName, string lastName, string albumNumber, Group *group) {
- this->firstName = firstName;
- this->lastName = lastName;
- this->albumNumber = albumNumber;
- this->group = group;
- this->group->students.push_back(this);
- }
- void Student::setGroup(Group *group) {
- this->group = group;
- this->group->students.push_back(this);
- }
- //
- ///-- MAIN-------------------------------------------
- //
- int main() {
- Teacher *teacher = new Teacher("Jan", "Kowalski");
- Student *student1 = new Student("Adam", "Abacki", "1");
- Student *student2 = new Student("Bartosz", "Babacki", "2");
- Subject *subject1 = new Subject("Programowanie obiektowe");
- Subject *subject2 = new Subject("Podstawy symulacji");
- Group *group = new Group("I912");
- student1->setGroup(group);
- student2->setGroup(group);
- cout << student1->getGroup()->getName();
- group->getStudent(0)->introduce();
- /*
- Lesson *l1 = new Lesson(teacher, group, subject1, 1);
- Lesson *l2 = new Lesson(teacher, group, subject2, 3);
- TimeTable *timeTable = new TimeTable();
- timeTable->addLesson(l1);
- timeTable->addLesson(l2);
- cout << timeTable->isStudentFree(student1, 2); // wypisuje 1
- cout << timeTable->isStudentFree(student1, 3); // wypisuje 0
- Subject *s = timeTable->getStudentLessonSubject(student1, 1);
- if (s != NULL) {
- cout << s->getName(); // wypisuje Programowanie obiektowe
- }
- list < Lesson * > lessonList = timeTable->getStudentLessons(student2);
- for (Lesson *v : lessonList)
- std::cout << v->getNumber() << " " << v->getSubject()->getName() << "\n";
- // wypisuje 1 Programowanie obiektowe
- // 3 Podstawy symulacji
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement