sirbi

prac2.2

May 18th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <clocale>
  4. using namespace std;
  5.  
  6. //Ввод данных (сеттор)
  7. //OK//  Конструктор по умолчанию): создает запись о человеке
  8. //OK//  Зачисление(выдача студенческого билета)
  9. //OK//  Продление срока действия студенческого билета
  10. //Вывод данных(геттор)
  11. //OK//  Полные сведения о студенте
  12. //OK//  Факт состояния «Студенческий билет действует»
  13. //OK//  Количество времени до окончания обучения
  14.  
  15. class DefaultStudent {
  16. public:
  17.     DefaultStudent(string NameOfUniversity, int CardStudent, int Course, int PeriodOfStudyYEAR, int DateOfIssueDAY, int DateOfIssueMONTH, int DateOfIssueYEAR) {
  18.         SetNameOfUniversity(NameOfUniversity);
  19.         SetCardStudent(CardStudent);
  20.         SetCourse(Course);
  21.         SetPeriodOfStudyYEAR(PeriodOfStudyYEAR);
  22.        
  23.     }
  24.     //срок обучения в годах
  25.     int GetPeriodOfStudyYEAR() { return PeriodOfStudyYEAR; }
  26.     //номер студ билета
  27.     int GetCardStudent() { return CardStudent; }
  28.     //номер курса
  29.     int GetCourse() { return Course; }
  30.     //название универа
  31.     string GetNameOfUniversity() { return NameOfUniversity; }
  32.    
  33. protected:
  34.  
  35.     int PeriodOfStudyYEAR = 0;      //период обучения в годах
  36.     string NameOfUniversity = "";   //название вуза
  37.     int CardStudent = 0;            //номер студенческого
  38.     int Course = 0;                 //номер курса
  39.     //сетторы
  40.     void SetNameOfUniversity(string NameOfUniversity_s) {
  41.         NameOfUniversity = NameOfUniversity_s;
  42.     }
  43.     void SetCardStudent(int CardStudent_s) {
  44.         CardStudent = CardStudent_s;
  45.     }
  46.     void SetCourse(int Course_s) {
  47.         Course = Course_s;
  48.     }
  49.     void SetPeriodOfStudyYEAR(int PeriodOfStudyYEAR_s) {
  50.         PeriodOfStudyYEAR = PeriodOfStudyYEAR_s;
  51.     }
  52. };
  53.  
  54. class Student : public DefaultStudent {
  55. public:
  56.     Student(string NameOfUniversity, int CardStudent, int Course, int PeriodOfStudyYEAR, int DateOfIssueDAY, int DateOfIssueMONTH, int DateOfIssueYEAR) : DefaultStudent(NameOfUniversity, CardStudent, Course,PeriodOfStudyYEAR, DateOfIssueDAY, DateOfIssueMONTH, DateOfIssueYEAR) {}
  57.     void StartZachislenie() { Zachislenie(); }
  58.     void StartDateOfIssue() { DateOfIssue(); }
  59.     void StartDateOfValidity() { DateOfValidity(); }
  60.     void StartProdlenie() { Prodlenie(); }
  61.     void StartFactStudentCardOnline() { FactStudentCardOnline(); }
  62. private:
  63.     void Zachislenie() {
  64.         cout << "Добавить студента? (y/n) ";
  65.         string AddStudentChoice = "";
  66.         cin >> AddStudentChoice;
  67.         if (AddStudentChoice == "y") {
  68.  
  69.             cout << "Введите название университета: ";
  70.             string NewNameOfUniversity = "";
  71.             cin >> NewNameOfUniversity;
  72.             DefaultStudent::SetNameOfUniversity(NewNameOfUniversity);
  73.            
  74.             cout << "Введите номер студенческого билета (5 цифр): ";
  75.             int NewCardStudent = 0;
  76.             cin >> NewCardStudent;
  77.             DefaultStudent::SetCardStudent(NewCardStudent);
  78.  
  79.             cout << "Введите курс: ";
  80.             int NewCourse = 0;
  81.             cin >> NewCourse;
  82.             DefaultStudent::SetCourse(NewCourse);
  83.  
  84.             cout << "Введите период обучения: ";
  85.             int NewPeriodOfStudyYEAR = 0;
  86.             cin >> NewPeriodOfStudyYEAR;
  87.             DefaultStudent::SetPeriodOfStudyYEAR(NewPeriodOfStudyYEAR);
  88.  
  89.             cout << "\nСозданый профиль студента:"
  90.                  << "\nНазвание университета: " << GetNameOfUniversity()
  91.                  << "\nНомер студенческого билета: " << GetCardStudent()
  92.                  << "\nКурс: " << GetCourse()
  93.                  << "\nПериод обучения: " << GetPeriodOfStudyYEAR() << "\n" << endl;
  94.         }
  95.         else {
  96.             cout << "Отмена операции.\n" << endl;
  97.         }
  98.     }
  99.     //дата зачисления
  100.     void DateOfIssue() {
  101.         cout << "Введите день зачисления (1-31): ";
  102.         cin >> DateOfIssueDAY;
  103.         cout << "Введите месяц зачисления числом (1-12): ";
  104.         cin >> DateOfIssueMONTH;
  105.         cout << "Введите год зачисления: ";
  106.         cin >> DateOfIssueYEAR;
  107.     }
  108.     //срок действия
  109.     void DateOfValidity() {
  110.         cout << "Какой сейчас год?\n>";
  111.         cin >> WhatIsNowYear;
  112.         YearEndEdu = DateOfIssueYEAR + GetPeriodOfStudyYEAR();
  113.         DateOfValidityYEAR = YearEndEdu - WhatIsNowYear;
  114.         cout << "Окончание обучения через " << DateOfValidityYEAR << " года." << endl;
  115.     }
  116.     //продление студака
  117.     void Prodlenie() {
  118.         cout << "Хотите продлить студенческий билет студента 007? (y/n): ";
  119.         string ProdlitStudentCardChoice = "";
  120.         cin >> ProdlitStudentCardChoice;
  121.         if (ProdlitStudentCardChoice == "y") {
  122.             cout << "Укажите на какой срок продлить студенческий билет: ";
  123.             cin >> TimeProdleniya;
  124.             YearEndEdu2 = YearEndEdu + TimeProdleniya;
  125.             cout << "Билет студента 007 продлен до " << YearEndEdu2 << " года." << endl;
  126.         }
  127.         else {
  128.             cout << "Отмена операции.\n" << endl;
  129.         }
  130.     }
  131.     //Факт состояния «Студенческий билет действует»
  132.     void FactStudentCardOnline() {
  133.         cout << "Выполнить проверку на действительность студенческого билета? (y/n): ";
  134.         string CheckStudentCardChoice = "";
  135.         cin >> CheckStudentCardChoice;
  136.         if (CheckStudentCardChoice == "y") {
  137.             if (YearEndEdu2 || YearEndEdu > WhatIsNowYear) {
  138.                 cout << "\nСтуденческий билет действует.";
  139.             }
  140.             else {
  141.                 cout << "\nСтуденческий билет не действует.";
  142.             }
  143.         }
  144.         else {
  145.             cout << "Отмена операции.\n" << endl;
  146.         }
  147.     }
  148. protected:
  149.     //дата зачисления
  150.     int DateOfIssueDAY = 0;         //день
  151.     int DateOfIssueMONTH = 0;       //месяц
  152.     int DateOfIssueYEAR = 0;        //год
  153.     //окончания действия студа через
  154.     int DateOfValidityDAY = 0;      //день
  155.     int DateOfValidityMONTH = 0;    //месяц
  156.     int DateOfValidityYEAR = 0;     //год
  157.     //год окончания обучения
  158.     int YearEndEdu = 0;
  159.     int YearEndEdu2 = 0;
  160.     //время продления студака
  161.     int TimeProdleniya = 0;
  162.     //какой сейчас год
  163.     int WhatIsNowYear = 0;
  164. };
  165.  
  166. int main() {
  167.     setlocale(LC_ALL, "ru");
  168.     Student human("УГАТУ", 12345, 1, 4, 1, 9, 2019);
  169.     cout << "Следующие данные введены посредством сеттора конструктора в 168 строке." << endl;
  170.     cout << "Данные о студенте \n"
  171.          << "Университет: " << human.GetNameOfUniversity() << "\n"
  172.          << "Номер студенческого билета: " << human.GetCardStudent() << "\n"
  173.          << "Курс: " << human.GetCourse() << "\n"
  174.          << "Нормативный срок обучения: " << human.GetPeriodOfStudyYEAR() << "\n";
  175.     human.StartZachislenie();
  176.     human.StartDateOfIssue();
  177.     human.StartDateOfValidity();
  178.     human.StartProdlenie();
  179.     human.StartFactStudentCardOnline();
  180. }
Advertisement
Add Comment
Please, Sign In to add comment