Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <clocale>
- using namespace std;
- //Ввод данных (сеттор)
- //OK// Конструктор по умолчанию): создает запись о человеке
- //OK// Зачисление(выдача студенческого билета)
- //OK// Продление срока действия студенческого билета
- //Вывод данных(геттор)
- //OK// Полные сведения о студенте
- //OK// Факт состояния «Студенческий билет действует»
- //OK// Количество времени до окончания обучения
- class DefaultStudent {
- public:
- DefaultStudent(string NameOfUniversity, int CardStudent, int Course, int PeriodOfStudyYEAR, int DateOfIssueDAY, int DateOfIssueMONTH, int DateOfIssueYEAR) {
- SetNameOfUniversity(NameOfUniversity);
- SetCardStudent(CardStudent);
- SetCourse(Course);
- SetPeriodOfStudyYEAR(PeriodOfStudyYEAR);
- }
- //срок обучения в годах
- int GetPeriodOfStudyYEAR() { return PeriodOfStudyYEAR; }
- //номер студ билета
- int GetCardStudent() { return CardStudent; }
- //номер курса
- int GetCourse() { return Course; }
- //название универа
- string GetNameOfUniversity() { return NameOfUniversity; }
- protected:
- int PeriodOfStudyYEAR = 0; //период обучения в годах
- string NameOfUniversity = ""; //название вуза
- int CardStudent = 0; //номер студенческого
- int Course = 0; //номер курса
- //сетторы
- void SetNameOfUniversity(string NameOfUniversity_s) {
- NameOfUniversity = NameOfUniversity_s;
- }
- void SetCardStudent(int CardStudent_s) {
- CardStudent = CardStudent_s;
- }
- void SetCourse(int Course_s) {
- Course = Course_s;
- }
- void SetPeriodOfStudyYEAR(int PeriodOfStudyYEAR_s) {
- PeriodOfStudyYEAR = PeriodOfStudyYEAR_s;
- }
- };
- class Student : public DefaultStudent {
- public:
- Student(string NameOfUniversity, int CardStudent, int Course, int PeriodOfStudyYEAR, int DateOfIssueDAY, int DateOfIssueMONTH, int DateOfIssueYEAR) : DefaultStudent(NameOfUniversity, CardStudent, Course,PeriodOfStudyYEAR, DateOfIssueDAY, DateOfIssueMONTH, DateOfIssueYEAR) {}
- void StartZachislenie() { Zachislenie(); }
- void StartDateOfIssue() { DateOfIssue(); }
- void StartDateOfValidity() { DateOfValidity(); }
- void StartProdlenie() { Prodlenie(); }
- void StartFactStudentCardOnline() { FactStudentCardOnline(); }
- private:
- void Zachislenie() {
- cout << "Добавить студента? (y/n) ";
- string AddStudentChoice = "";
- cin >> AddStudentChoice;
- if (AddStudentChoice == "y") {
- cout << "Введите название университета: ";
- string NewNameOfUniversity = "";
- cin >> NewNameOfUniversity;
- DefaultStudent::SetNameOfUniversity(NewNameOfUniversity);
- cout << "Введите номер студенческого билета (5 цифр): ";
- int NewCardStudent = 0;
- cin >> NewCardStudent;
- DefaultStudent::SetCardStudent(NewCardStudent);
- cout << "Введите курс: ";
- int NewCourse = 0;
- cin >> NewCourse;
- DefaultStudent::SetCourse(NewCourse);
- cout << "Введите период обучения: ";
- int NewPeriodOfStudyYEAR = 0;
- cin >> NewPeriodOfStudyYEAR;
- DefaultStudent::SetPeriodOfStudyYEAR(NewPeriodOfStudyYEAR);
- cout << "\nСозданый профиль студента:"
- << "\nНазвание университета: " << GetNameOfUniversity()
- << "\nНомер студенческого билета: " << GetCardStudent()
- << "\nКурс: " << GetCourse()
- << "\nПериод обучения: " << GetPeriodOfStudyYEAR() << "\n" << endl;
- }
- else {
- cout << "Отмена операции.\n" << endl;
- }
- }
- //дата зачисления
- void DateOfIssue() {
- cout << "Введите день зачисления (1-31): ";
- cin >> DateOfIssueDAY;
- cout << "Введите месяц зачисления числом (1-12): ";
- cin >> DateOfIssueMONTH;
- cout << "Введите год зачисления: ";
- cin >> DateOfIssueYEAR;
- }
- //срок действия
- void DateOfValidity() {
- cout << "Какой сейчас год?\n>";
- cin >> WhatIsNowYear;
- YearEndEdu = DateOfIssueYEAR + GetPeriodOfStudyYEAR();
- DateOfValidityYEAR = YearEndEdu - WhatIsNowYear;
- cout << "Окончание обучения через " << DateOfValidityYEAR << " года." << endl;
- }
- //продление студака
- void Prodlenie() {
- cout << "Хотите продлить студенческий билет студента 007? (y/n): ";
- string ProdlitStudentCardChoice = "";
- cin >> ProdlitStudentCardChoice;
- if (ProdlitStudentCardChoice == "y") {
- cout << "Укажите на какой срок продлить студенческий билет: ";
- cin >> TimeProdleniya;
- YearEndEdu2 = YearEndEdu + TimeProdleniya;
- cout << "Билет студента 007 продлен до " << YearEndEdu2 << " года." << endl;
- }
- else {
- cout << "Отмена операции.\n" << endl;
- }
- }
- //Факт состояния «Студенческий билет действует»
- void FactStudentCardOnline() {
- cout << "Выполнить проверку на действительность студенческого билета? (y/n): ";
- string CheckStudentCardChoice = "";
- cin >> CheckStudentCardChoice;
- if (CheckStudentCardChoice == "y") {
- if (YearEndEdu2 || YearEndEdu > WhatIsNowYear) {
- cout << "\nСтуденческий билет действует.";
- }
- else {
- cout << "\nСтуденческий билет не действует.";
- }
- }
- else {
- cout << "Отмена операции.\n" << endl;
- }
- }
- protected:
- //дата зачисления
- int DateOfIssueDAY = 0; //день
- int DateOfIssueMONTH = 0; //месяц
- int DateOfIssueYEAR = 0; //год
- //окончания действия студа через
- int DateOfValidityDAY = 0; //день
- int DateOfValidityMONTH = 0; //месяц
- int DateOfValidityYEAR = 0; //год
- //год окончания обучения
- int YearEndEdu = 0;
- int YearEndEdu2 = 0;
- //время продления студака
- int TimeProdleniya = 0;
- //какой сейчас год
- int WhatIsNowYear = 0;
- };
- int main() {
- setlocale(LC_ALL, "ru");
- Student human("УГАТУ", 12345, 1, 4, 1, 9, 2019);
- cout << "Следующие данные введены посредством сеттора конструктора в 168 строке." << endl;
- cout << "Данные о студенте \n"
- << "Университет: " << human.GetNameOfUniversity() << "\n"
- << "Номер студенческого билета: " << human.GetCardStudent() << "\n"
- << "Курс: " << human.GetCourse() << "\n"
- << "Нормативный срок обучения: " << human.GetPeriodOfStudyYEAR() << "\n";
- human.StartZachislenie();
- human.StartDateOfIssue();
- human.StartDateOfValidity();
- human.StartProdlenie();
- human.StartFactStudentCardOnline();
- }
Advertisement
Add Comment
Please, Sign In to add comment