Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба6 / Laba 6 (3)
.cpp#include <iostream>
#include <string>
#include <vector>
#include <locale>
using namespace std;
class Event {
protected:
string date;
string personName;
public:
Event(const string& d, const string& name) : date(d), personName(name) {}
virtual void print_res() const = 0; // Чисто виртуальная функция
virtual ~Event() {}
};
class Test : public Event {
string subject;
bool passed;
public:
Test(const string& d, const string& name, const string& subj, bool pass)
: Event(d, name), subject(subj), passed(pass) {}
void print_res() const override {
cout << "Зачёт по " << subject << " (" << date << "), студент: " << personName
<< ", Результат: " << (passed ? "СДАЛ" : "НЕ СДАЛ") << endl;
}
};
class Exam : public Event {
string subject;
int grade;
public:
Exam(const string& d, const string& name, const string& subj, int gr)
: Event(d, name), subject(subj), grade(gr) {}
void print_res() const override {
cout << "Экзамен по " << subject << " (" << date << "), студент: " << personName
<< ", Оценка: " << grade << endl;
}
};
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
vector<Event*> session;
session.push_back(new Test("01.06.2023", "Иванов И.И.", "Физическая культура", true));
session.push_back(new Exam("05.06.2023", "Иванов И.И.", "Математика", 4));
session.push_back(new Test("02.06.2023", "Петрова А.С.", "Иностранный язык", true));
session.push_back(new Exam("06.06.2023", "Петрова А.С.", "Программирование", 5));
session.push_back(new Exam("07.06.2023", "Сидоров П.К.", "Физика", 3));
cout << "Сессия:" << endl;
cout << "========" << endl;
for (Event* event : session) {
event->print_res();
}
// Освобождение памяти
for (Event* event : session) {
delete event;
}
return 0;
}
Соседние файлы в папке Лаба6
