ООП. Лабораторная работа 1. Лабораторная работа 1 по дисциплине Объектноориентированное программирование студент группы Проверил преподаватель
Скачать 154 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Факультет инфокоммуникаций Кафедра инфокоммуникационных технологий Лабораторная работа №1по дисциплине: «Объектно-ориентированное программирование» Выполнил: студент группы: Проверил: преподаватель Минск 2022 Часть 1. Среда разработки Visual Studio. Создание простейшей программы средствами MFC.Упражнение 1. Необходимо вставить еще одну кнопку с названием Beep c итендификатором IDC_BEEP_BUTTON, при нажатии на которую компьютер подает сигнал через диамик компьютера. Функция для подачи сигнала - MessageBeep((WORD)-2); Упражнение 2. Необходимо вставить еще одну кнопку, на нажатие которой появляется сообщение вида: Код программы: void ChelloworldDlg::OnClickedSayhelloButton() { MessageBox(L"Say Hello");// TODO: добавьте свой код обработчика уведомлений } void ChelloworldDlg::OnClickedBeepButton() { // TODO: Add your control notification handler code here MessageBeep((WORD)-2); } void ChelloworldDlg::OnClickedMessageButton() { // TODO: добавьте свой код обработчика уведомлений MessageBox(L"Say Hello",L"My first project", MB_YESNOCANCEL | MB_ICONSTOP); } Результат выполнения: Часть 2. Среда разработки Visual Studio 2017Код программы: #include #include int main() { std::cout << "Hello world!\n"; return 0; } Результат выполнения: Часть 3. Введение в тип данных КЛАССУровень 1 Упражнение: написать объектную программу, иллюстрирующую прямой и косвенный способы обращения к методам. Пользовательский класс должен содержать необходимые элементы – данные, метод установки их начальных значений, метод просмотра текущего состояния полей класса, метод, решающий поставленную задачу. Описание метода должно быть вне класса. 3) Сегодня вы заступили на должность главврача больницы "Healthy like a bull". И первое что бы вы хотели узнать – это процент выздоравивших больных и симулянтов от общего числа пациентов. Чтобы все отделения могли быстро выдать вам правильный результат, не запутавшись в этих процентах и делениях, создайте класс с 3 полями (типа int): convalescents, sick, simulators и метод, который вернет количество выздоравивших, больных и симулянтов в % от общего числа пациентов. На всякий случай, общее количество пациентов convalescents sick simulators ; Код программы // bolnica.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include class Bolnye { public: int convalescents; int sick; int simulators; double one, two, tree; void Metod(); }; void Bolnye::Metod() { if (simulators == 0, convalescents == 0, sick == 0) std::cout << "Все выздоровели!!."; else { one = sick * 100 / (convalescents + sick + simulators); std::cout <<"%Больных=" << one << std::endl; two= convalescents * 100/ (convalescents + sick + simulators); std::cout << "%Здоровых=" << two << std::endl; tree = simulators * 100 / (convalescents + sick + simulators); std::cout << "%Симулянтов=" << tree << std::endl; } } int main() { setlocale(LC_ALL, "ru"); Bolnye*metod = new Bolnye; std::cout << "Введите Больных: "; std::cin >> metod->sick; std::cout << "Введите Симулянтов: "; std::cin >> metod->simulators; std::cout << "Введите Здоровых: "; std::cin >> metod->convalescents; metod->Metod(); delete metod; } Результат выполнения: Уровень 2 Упражнение: написать объектную программу, иллюстрирующую прямой и косвенный способы обращения к методам. Пользовательский класс должен содержать необходимые элементы – данные, метод установки их начальных значений, метод просмотра текущего состояния полей класса, метод, решающий поставленную задачу. Описание метода должно быть вне класса. Выполнение задания уровня 2 должно происходить в классах, созданных для выполнения уровень 1, весь функционал и поля уровень 1 должны быть сохранены. 3) Вы получили статистику пациентов, а что насчет персонала? Сколько людей на вас вообще работает? Это необходимо срочно выяснить, да еще и в процентном отношении. Ваша задача: Добавить 3 поля (тип int): Doctor, Nurse, MedicalOrderly и метод, который выведет количество сотрудников каждого типа в процентах от общего количества сотрудников; Код программы // bolnica2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include using namespace std; class Bolnye { public: int convalescents; int sick; int simulators; double one, two, tree; int Doctor; int Nurse; int MedicalOrderly; void Metod(); }; void Bolnye::Metod() { if (simulators == 0, convalescents == 0, sick == 0) std::cout << "Все выздоровели!!."; else { one = sick * 100 / (convalescents + sick + simulators); std::cout << "%Больных=" << one << std::endl; two = convalescents * 100 / (convalescents + sick + simulators); std::cout << "%Здоровых=" << two << std::endl; tree = simulators * 100 / (convalescents + sick + simulators); std::cout << "%Симулянтов=" << tree << std::endl; } if (Doctor == 0, Nurse == 0, sick == 0) std::cout << "Все выздоровели!!."; else { one = MedicalOrderly * 100 / (Nurse + MedicalOrderly + Doctor); std::cout << "%Персонала=" << one << std::endl; two = Nurse * 100 / (Nurse + MedicalOrderly + Doctor); std::cout << "%Медсестер=" << two << std::endl; tree = Doctor * 100 / (Nurse + MedicalOrderly + Doctor); std::cout << "%Врачей=" << tree << std::endl; } } int main() { setlocale(LC_ALL, "ru"); Bolnye*metod = new Bolnye; std::cout << "Введите Больных: "; std::cin >> metod->sick; std::cout << "Введите Симулянтов: "; std::cin >> metod->simulators; std::cout << "Введите Здоровых: "; std::cin >> metod->convalescents; std::cout << "Введите Персонал: "; std::cin >> metod->MedicalOrderly; std::cout << "Введите Врачей: "; std::cin >> metod->Doctor; std::cout << "Введите Медсестер: "; std::cin >> metod->Nurse; metod->Metod(); delete metod; } Уровень 3 Два бандита Джек и Фрэнк решили выехать отдохнуть на природу. Пока жарился шашлык, Джек и Фрэнк решили пострелять по банкам из-под кока-колы чтобы убить время. Они поставили банки на бревно (не больше 15) первый начал стрелять справа, второй начал стрелять слева. В один момент они оба выстрелили в последнюю банку из-за чего началась ссора. Джек утверждал, что Фрэнк теперь должен отдать ему свой шампур шашлыка за то, что тот лишил его удовольствия в простреливании последней банки. В ответ Фрэнк сказал, что это Джек должен отдать ему свой шампур шашлыка по тем же причинам. В итоге они решили что Джек отдаст свой шампур с шашлыком Фрэнку, а Фрэнк Джек отдаст свой шампур с шашлыком Джеку. Теперь осталось только убрать банки, вот только из за ссоры никто не помнил сколько именно банок они поставили для стрельбы. Каждый из них помнил только сколько банок он подстрелил сам. Давайте поможем Джеку и Френку узнать сколько банок у них было изначально и сколько банок не успел подстрелить Джек и сколько банок не успел подстрелить Френк. Ваша задача: создать класс Relaxation в котором будет 2 поля (тип int): Frank и Jack в которых будет хранится информация о том, сколько банок подстрелил каждый из них. Так же класс должен содержать метод который выведет сколько банок не успел подстрелить Frank и сколько банок не успел подстрелить Jack. Входные данные: 2 числа - количество банок, простреленных Фрэнком и Джеком соответственно. Выходные данные: 3 числа - количество банок, не подстреленных Фрэнком и Джеком соответственно и общее количество банок.
Листинг программы: // jack.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include using namespace std; class Relaxation { public: int Frank, Jack; void metod(); }; void Relaxation::metod() { setlocale(LC_ALL, "ru"); int Summa = Frank + Jack - 1; cout << "Всего было " << Summa << " банок" << endl; cout << "Frank не успел подстрелить " << Summa - Frank << " банок" << endl; cout << "Jack не успел подстрелить " << Summa - Jack << " банки" << endl; } int main() { Relaxation Popal; Popal.Frank = 4; Popal.Jack = 7; Popal.metod(); } Результат выполнения: Вывод: изучили основы программирования в среде Visual Studio 2017, научились создавать простейшие проекты. |