МЕТОДИЧЕСКОЕ ПОСОБИЕ
“СПЕЦИФИКАЦИИ ЗАДАЧ ДЛЯ ПРОВЕРКИ ПРАКТИЧЕСКИХ НАВЫКОВ ПРОГРАММИРОВАНИЯ (УРОВНЯ КОМПЕТЕНТНОСТИ) БАКАЛАВРОВ ПРИ ПРОВЕДЕНИИ ГОСУДАРСТВЕННЫХ ЭКЗАМЕНОВ”
преподаватель
Каткова Светлана Николаевна
Бишкек 2017
Спецификация задачи № VI.1
В здании аэропорта на экранах отображается информация о самолетах, а именно: информация о пункте отправления, пункте назначения, номере рейса, времени прибытия, времени отправления, номере секции для регистрации. Экраны – это средство, которое помогает своевременно зарегистрировать и отправить пассажиров. Важно, чтобы информация на экранах была понятной и верной.
Создайте необходимую информацию в виде таблицы для такого экрана с помощью класса Aeroflot, содержащего в его описании следующие поля:
· номер рейса;
· название пункта отправления;
· название пункта назначения;
· время отправления;
· время прибытия;
· место регистрации.
Напишите код программы, выполняющей следующие действия:
· ввод с клавиатуры значений полей объектов;
· сортировку записей в таблице в алфавитном порядке по названию пунктов назначения;
· вывод на консоль значений полей объектов класса в виде таблицы рейсов;
· удаление из таблицы информации о каком-либо рейсе;
· если рейса нет, выдать соответствующее сообщение;
Задания:
1. Разработайте спецификацию требований к ПО, которая решает эту задачу.
2. Спроектируйте ПО: входной и выходной интерфейсы для консоли; поясните алгоритм решения задачи в виде блок-схемы программы.
3. Определитесь со структурой программы (прототипы, описание, вызов функций), разработайте код на языке объектно-ориентированного программирования С++, протестируйте и отладьте его.
Спецификация задачи № VI.2
Для участия в ежегодном трансконтинентальном Ралли-марафоне «Дакар» по усложненной трассе в Южной Америке выбраны грузовики КАМАЗ и TATRA, которые после 2010 года лидируют в зачете грузовиков.
Решите задачу сравнения скоростей движения грузовиков по разным по проходимости участкам трассы, а именно: по равнине, горам, пустыне. Создайте и выдайте на экран таблицу результатов ралли - марафона. По итогам игры выдайте сообщение о победителе.
Truck name | Desert speed | Mountains speed | Plain speed | Average speed | the sum of points | Status(winner, loser, in a draw) |
Total result:
Для решения задачи используйте классы Kamaz и Tatra, а такжефункциюсравнения скоростей CompSp (). Функция CompSp () возвращает число +1, если объект kamaz движется быстрее объекта tatra; нуль, если их скорости одинаковы; число -1, если объект kamaz движется медленнее объекта tatra.
Оба класса содержат поля: «скорость» и «наименование» грузовой машины, а также методы: инициализация и отображение полей на экране. Определитесь с идентификаторами доступа к членам класса, не нарушая принципа инкапсуляции.
Сделайтефункцию CompSp () дружественной:
· классу Kamaz,
· обоим классам Kamaz и Tatra.
Сделайте класс Tatra дружественным классу Kamaz.
Задания:
1. Разработайте спецификацию требований к ПО, которая решает эту задачу.
2. Спроектируйте ПО: входной и выходной интерфейсы для консоли, поясните алгоритм решения задачи с помощью блок-схемы программы.
3. Определитесь со структурой программы (прототипы, описание, вызов функций), разработайте код на языке объектно-ориентированного программирования С++, протестируйте и отладьте его.
Спецификация задачи № VI.3
Типы данных полезны там, где ошибки могут быть вызваны арифметическим переполнением, которое не допустимо.
Создайте и откомпилируйте класс Int. Перегрузите четыре бинарных целочисленных арифметических операции (+, -, *, /) и унарные операции постфиксной и префиксной форм инкремента с помощью внутренней операторной функции operator так, чтобы их можно было использовать для операций с объектами класса Int.
Если результат какой-либо из них выходит за границы типа int (в 32-битной системе), имеющее значения от 2 147 483 648 до -2 147 483 648, то операция должна послать сообщение об ошибке и завершить программу. Можно ли для выявления ошибки арифметического переполнения использовать концепцию исключения?
Для облегчения проверки переполнения выполняйте вычисления с использованием типа long double. При описании унарных операций возможно использование указателя «this».
Задания:
1. Разработайте спецификацию требований к ПО, которая решает эту задачу.
2. Спроектируйте ПО: входной и выходной интерфейсы для консоли, поясните алгоритм решения задачи cс помощью. блок-схемы программы.
3. Определитесь со структурой программы (прототипы, описание, вызов функций), разработайте код на языке ООП С++, протестируйте и отладьте его.