Advertisement
SIKER_98

asd

Jan 30th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <list>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. //KLASY
  9. class User;
  10.  
  11. class Teacher;
  12.  
  13. class Student;
  14.  
  15. class Subject;
  16.  
  17. class Lesson;
  18.  
  19. class TimeTable;
  20.  
  21. class Group;
  22.  
  23. //
  24. ///--USER
  25. //
  26. class User {
  27.  
  28. protected:
  29. string firstName;
  30. string lastName;
  31.  
  32. public:
  33. virtual void introduce() = 0;
  34. };
  35.  
  36. //
  37. ///-- TEACHER--------------------------------------------------
  38. //
  39. class Teacher : public User {
  40. Subject *subject;
  41. public:
  42. virtual void introduce();
  43.  
  44. Subject *getSubejct();
  45.  
  46. void setSubject(Subject *);
  47.  
  48. Teacher(string firstName, string lastName);
  49. };
  50.  
  51. void Teacher::introduce() {
  52. cout << this->firstName << " " << this->lastName << endl;
  53. };
  54.  
  55. Subject *Teacher::getSubejct() {
  56. return this->subject;
  57. }
  58.  
  59. Teacher::Teacher(string firstName, string lastName) {
  60. this->firstName = firstName;
  61. this->lastName = lastName;
  62. }
  63.  
  64. void Teacher::setSubject(Subject *subject) {
  65. this->subject = subject;
  66. }
  67.  
  68. //
  69. ///-- SUBJECT-----------------------
  70. //
  71. class Subject {
  72. string name;
  73. public:
  74. Subject(string);
  75.  
  76. string getName();
  77.  
  78. void setName(string);
  79.  
  80. friend Teacher;
  81. };
  82.  
  83. // SUBJECT - metody
  84. Subject::Subject(string name) {
  85. this->name = name;
  86. }
  87.  
  88. string Subject::getName() {
  89. return this->name;
  90. }
  91.  
  92. void Subject::setName(string name) {
  93. this->name = name;
  94. }
  95.  
  96. //
  97. ///-- GROUP-------------------------------------------
  98. //
  99.  
  100. class Group {
  101. private:
  102. string groupName;
  103. vector<Student *> students;
  104. public:
  105.  
  106. Student *getStudent(int);
  107.  
  108. string getName();
  109.  
  110. Group(string);
  111.  
  112. friend Student;
  113. };
  114.  
  115. // GROUP - metody
  116. Student *Group::getStudent(int index) {
  117. this->students[index];
  118. }
  119.  
  120. string Group::getName() {
  121. return this->groupName;
  122. }
  123.  
  124. Group::Group(string groupName) {
  125. this->groupName = groupName;
  126. }
  127.  
  128.  
  129. //
  130. //-- STUDENT---------------------------------
  131. //
  132. class Student : public User {
  133. private:
  134. string albumNumber;
  135. Group *group;
  136. public:
  137. virtual void introduce();
  138.  
  139. Group *getGroup();
  140.  
  141. Student(string, string, string);
  142.  
  143. string getAlbumNumber();
  144.  
  145. Student(string, string, string, Group *);
  146.  
  147. void setGroup(Group *);
  148. };
  149.  
  150. // STUDENT-metody
  151.  
  152. void Student::introduce() {
  153. cout << this->firstName << ' ' << this->lastName << ' ' << this->albumNumber << endl;
  154. }
  155.  
  156. Group *Student::getGroup() {
  157. return this->group;
  158. }
  159.  
  160. Student::Student(string firstName, string lastName, string albumNumber) {
  161. this->firstName = firstName;
  162. this->lastName = lastName;
  163. this->albumNumber = albumNumber;
  164. }
  165.  
  166. string Student::getAlbumNumber() {
  167. return this->albumNumber;
  168. }
  169.  
  170. Student::Student(string firstName, string lastName, string albumNumber, Group *group) {
  171. this->firstName = firstName;
  172. this->lastName = lastName;
  173. this->albumNumber = albumNumber;
  174. this->group = group;
  175. this->group->students.push_back(this);
  176. }
  177.  
  178. void Student::setGroup(Group *group) {
  179. this->group = group;
  180. this->group->students.push_back(this);
  181. }
  182.  
  183.  
  184.  
  185. //
  186. ///-- MAIN-------------------------------------------
  187. //
  188. int main() {
  189.  
  190.  
  191. Teacher *teacher = new Teacher("Jan", "Kowalski");
  192. Student *student1 = new Student("Adam", "Abacki", "1");
  193. Student *student2 = new Student("Bartosz", "Babacki", "2");
  194. Subject *subject1 = new Subject("Programowanie obiektowe");
  195. Subject *subject2 = new Subject("Podstawy symulacji");
  196. Group *group = new Group("I912");
  197. student1->setGroup(group);
  198. student2->setGroup(group);
  199. cout << student1->getGroup()->getName();
  200. group->getStudent(0)->introduce();
  201. /*
  202. Lesson *l1 = new Lesson(teacher, group, subject1, 1);
  203. Lesson *l2 = new Lesson(teacher, group, subject2, 3);
  204. TimeTable *timeTable = new TimeTable();
  205. timeTable->addLesson(l1);
  206. timeTable->addLesson(l2);
  207. cout << timeTable->isStudentFree(student1, 2); // wypisuje 1
  208. cout << timeTable->isStudentFree(student1, 3); // wypisuje 0
  209. Subject *s = timeTable->getStudentLessonSubject(student1, 1);
  210. if (s != NULL) {
  211. cout << s->getName(); // wypisuje Programowanie obiektowe
  212. }
  213. list < Lesson * > lessonList = timeTable->getStudentLessons(student2);
  214. for (Lesson *v : lessonList)
  215. std::cout << v->getNumber() << " " << v->getSubject()->getName() << "\n";
  216. // wypisuje 1 Programowanie obiektowe
  217. // 3 Podstawy symulacji
  218. */
  219. return 0;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement