Задание 1 - Алтайский государственный технический

advertisement
СТО АлтГТУ
13.62.1.0667-2011
СТАНДАРТ ОРГАНИЗАЦИИ
Система качества АлтГТУ
Образовательный стандарт
высшего профессионального образования АлтГТУ
ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ
УЧЕБНОЙ ДИСЦИПЛИНЫ
ПРОГРАММИРОВАНИЕ
230100 «Информатика и вычислительная техника»
Б.3.Б.1
ФГБОУ ВПО «Алтайский государственный технический университет
им. И.И. Ползунова»
СТО АлтГТУ 13.62.1.0667-2011
Предисловие
1) РАЗРАБОТАН кафедрой «Системы автоматизированного проектирования»
АлтГТУ.
2) Стандарт дисциплины разработан на основании ФГОС ВПО направления
подготовки 230100 «Информатика и вычислительная техника», утверждённого 9
ноября 2009 г.
3) Стандарт дисциплины «Программирование» по своему назначению,
структуре и содержанию полностью соответствует требованиям УМКД.
4) ВВЕДЕН ВПЕРВЫЕ
II
СТО АлтГТУ 13.62.1.0667-2011
СОДЕРЖАНИЕ
1 Область применения ……………………………………………………………........
2 Нормативные ссылки ……………………………………………………………........
3 Общие сведения о дисциплине. Паспорт дисциплины ………………………...
3.1 Выписка из рабочего учебного плана ООП……………………………………..
3.2 Цели и задачи освоения дисциплины. ………………………………………….
3.3 Место дисциплины в структуре ООП направления (специальности) ……..
3.4 Требования к результатам освоения дисциплины …………………………..
3.5 Объем и виды занятий по дисциплине………………………………………..
4 Рабочая программа дисциплины……………………………………………………
4.1 Содержание дисциплины………………………………………………………….
4.1.1 Тематический план дисциплины………………………………………………
4.1.2 Учебно-методическое и информационное обеспечение дисциплины…
4.1.3 Формы и содержание текущей и промежуточной аттестации по
дисциплине ………………………………………………………………………………..
4.1.4 Учебно-методическая карта дисциплины…………………………………..
4.2 Условия освоения и реализации дисциплины……………………………….
4.2.1 Методические рекомендации студентам по изучению дисциплины ….
4.2.2 Организация самостоятельной работы студентов……………… ………..
4.2.3 Методические рекомендации преподавателю дисциплины….. ………...
4.2.4 Образовательные технологии…………………………………………………
4.2.5 Особенности преподавания дисциплины……………………………………
4.2.6 Материально-техническое обеспечение дисциплины…………………….
5 Лист согласования рабочей программы дисциплины…………………………
6 Изменения к стандарту дисциплины…………………………………………. …...
Приложение А (обязательное) ……………………………………………………….
и др. приложения
1
1
2
2
2
2
3
3
4
4
4
4
4
5
6
6
6
6
6
7
7
7
7
8
III
СТО АлтГТУ 13.62.1.0667-2011
СТАНДАРТ ОРГАНИЗАЦИИ
Система качества АлтГТУ
Образовательный стандарт высшего
профессионального образования АлтГТУ
ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ
УЧЕБНОЙ ДИСЦИПЛИНЫ
Программирование
Введён впервые
УТВЕРЖДАЮ
Начальник УМУ
______________________________________
(подпись)
( Ф.И.О.)
Дата__________________
(число, месяц, год)
1 Область применения
1.1Стандарт дисциплины устанавливает общие требования к содержанию,
структуре, объему дисциплины «Программирование» и условиям ее реализации
в АлтГТУ.
1.2 Действие стандарта распространяется:
а) на студентов, обучающихся по направлению 230100 «Информатика и
вычислительная техника»
б) на преподавателей и сотрудников структурных подразделений,
задействованных в образовательном процессе по дисциплине.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие
государственные стандарты и стандарты АлтГТУ:
Федеральные государственные образовательные стандарты высшего
профессионального образования по указанным выше направлениям подготовки.
СТП 12 005 - 2004 Система менеджмента качества. Образовательный
стандарт высшего профессионального образования АлтГТУ. Самостоятельная
работа студентов. Общие требования.
СТП 12 570 - 2006 Система менеджмента качества. Образовательный
стандарт высшего профессионального образования АлтГТУ. Общие требования к
текстовым, графическим и программным документам.
СТП 12 700-2007 Образовательный стандарт высшего профессионального
образования АлтГТУ. Лабораторные работы. Общие требования к содержанию,
выполнению и оформлению.
СМК ОПД 01 – 19 - 2008 Система менеджмента качества. Положение о
модульно-рейтинговой системе квалиметрии учебной деятельности студентов.
СТО 12400-2009 Образовательный стандарт высшего профессионального
образования АлтГТУ. Курсовой проект (курсовая работа). Общие требования к
содержанию, организации выполнения и оформлению.
1
СТО АлтГТУ 13.62.1.0667-2011
СТО АлтГТУ 12 310 - 2011 Система качества. Образовательный стандарт
высшего профессионального образования АлтГТУ. Образовательный стандарт
учебной дисциплин. Общие требования к структуре, содержанию и оформлению
СТО АлтГТУ 12 560 - 2011 Система менеджмента качества.
Образовательный стандарт высшего профессионального образования АлтГТУ.
Текущая и промежуточная аттестация студентов.
3 Общие сведения о дисциплине. Паспорт дисциплины
3.1 Выписка из рабочего учебного плана ООП
Лекции
Лаб. работы
СРС
Лекции
Лаб. работы
СРС
58
76
В интерактивной
СРС
22
34
34
68
Лаб. работы
34
Компетенции
Лекции
34
ОК – 1, 6; ПК -2, 3, 5, 7
Сессия
144
34
Кафедра
В семестре
156
34
САПР
Лаб. работы
136
3
семестр
Лекции
2
семестр
68
1
семестр
Всего
14
СРС
204
2
Всего часов
3
504
Расч. задание
12
3
Аудиторные
занятия
Трудоёмкость (ЗЕ)
Курсовая работа
Б.3.
Б.1
Экзамен
Код дисциплины
Распределение по
семестрам
3.2 Цели и задачи освоения дисциплины
Целью освоения дисциплины «Программирование» является получение
студентами необходимых базовых знаний по основам программирования на
языках С++ и Java для дальнейшего изучения современных технологий
программирования и практической деятельности.
Задачи дисциплины:
 Изучение процедурного программирования на С++;
 Изучение основ объектно-ориентированного программирования на С++;
 Изучение основ объектно-ориентированного языка программирования Java;
 Изучение основ библиотек Qt и Swing для программирования GUI.
3.3 Место дисциплины в структуре ООП направления
Дисциплина «Программирование» относится к базовой части цикла
профессиональных дисциплин рабочего учебного плана ООП.
Изучение дисциплины "Программирование" базируется на знаниях
школьного курса информатики и вычислительной техники. Дисциплина
«Программирование»
является
базовой
для
многих
дисциплин
профессионального цикла, например, таких как «Базы данных», «Современные
технологии программирования».
2
СТО АлтГТУ 13.62.1.0667-2011
3.4 Требования к результатам освоения дисциплины
В результате изучения дисциплины студенты должны обладать знаниями,
умениями и навыками, приведенными в таблице 3.1
Таблица 3.1
Код
компетен
ции по
ФГОС
В результате изучения дисциплины
обучающиеся должны:
Содержание
компетенции
(или ее части)
знать
уметь
ОК–1
Владеет
культурой
мышления, способен к
обобщению, анализу,
восприятию
информации,
постановке цели и
выбору
путей
её
достижения.
-программировать
линейные,
ветвящиеся
и
циклические
алгоритмы на С++
с использованием
функций, файлов,
массивов, строк и
структур;
ОК–6
-синтаксис
и
семантику
конструкций языка
С++
для
программирования
линейных,
ветвящихся,
циклических
алгоритмов
с
использованием
функций, файлов,
массивов, строк и
структур;
Стремится
к
саморазвитию,
повышению
своей
квалификации
и
-основные
мастерства.
конструкции
-создавать в С++
консольные
программы
с
использованием
классов
и
объектов;
Осваивать методики
использования
программных средств
для
решения -назначение,
практических задач;
правила создания и
-работать в С++ с
файловыми
потоками,
обрабатывать
исключения,
создавать
и
использовать
основные
динамические
структуры данных;
ВПО или
владеть
ООП
языка
С++ для создания
объектноориентированных
программ;
ПК-2
использования
основных
динамических
структур
данных,
основы STL;
ПК-5
ПК-7
Использовать
современные
инструментальные
средства и технологии
программирования
Готовить
презентации, научнотехнические
отчеты
-основные
конструкции языка
Java для создания
объектноориентированных
программ;
-правила обработки
исключений в Java,
назначение
и
правила
использования
основных
коллекций.
программировать
в
Java
с
использованием
классов
и
объектов;
- навыками
построения
блок-схем;
-навыками
работы
в
системе
программиров
ания для языка
С++;
-навыками
работы
в
системе
программиров
ания для языка
Java;
-навыками
построения
диаграмм
классов UML
-обрабатывать
исключения
в
Java, создавать и
использовать
основные
коллекции
-навыками
оформления
отчетов
по
3
СТО АлтГТУ 13.62.1.0667-2011
по
результатам
выполненной работы,
оформлять
результаты
исследований в виде
статей и докладов на
научно-технических
конференциях
ПК-3
Разрабатывать
интерфейсы
«человек-ЭВМ»
лабораторным
работам,
индивидуально
му заданию и
курсовой
работе
- основы Qt;
- основы Swing
-программировать
GUI с использованием Qt;
программировать
GUI с использованием Swing;
3.5 Объем и виды занятий по дисциплине
Объем и виды занятий по дисциплине представлены в Паспорте
дисциплины:
Паспорт дисциплины
Кафедра
«Системы автоматизированного проектирования»
Дисциплина Б.3.Б.1 «Программирование»
Статус дисциплины базовая
Направление 230100 «Информатика и вычислительная техника»
Профили «Вычислительные машины, комплексы, системы и сети»
«Системы автоматизированного проектирования»
Форма обучения очная
Объем дисциплины 504 часа
Общая трудоёмкость дисциплины 14 зачётных единиц
РАСПРЕДЕЛЕНИЕ ПО ВИДАМ ЗАНЯТИЙ
Учебные занятия (часы)
Аудиторные занятия
Семестр Всего
1
2
3
4
90
126
144
всего
практические
аудито
лаборат.
лекц.
занятия
рных
работы
(семинары)
занятий
68
68
68
34
34
34
34
34
34
Наличие
курсовых
проектов (КП),
курсовых
СРС
работ (КР),
расчетных
заданий (РЗ)
22
58
76
РЗ
КР
Форма
промежуточ
ной
аттестации
(зачёт,
экзамен)
ЭКЗАМЕН
ЭКЗАМЕН
ЭКЗАМЕН
СТО АлтГТУ 13.62.1.0667-2011
4 Рабочая программа дисциплины
4.1 Содержание дисциплины
4.1.1 Тематический план дисциплины
1-й семестр
Тема 1 Основы С++
Лекция 1,2 (4 час. [1-3, 11-13, 16-18]).
Понятие программирования. История создания языков программирования С
и С++. Состав языка программирования. Алфавит и лексемы языка С++. Типы
данных языка С++. Структура простой программы на языке С++. Понятие
препроцессора, компилятора, компоновщика. Характеристика этапов создания
исполняемой программы. Переменные и константы. Операции и выражения.
Преобразования типов. Ввод и вывод данных: понятие потока, стандартные
потоки в стиле С и С++, примеры программ.
Лабораторная работа № 1. (6 час. [21, 1-3, 11-13, 16-18])
Тема 2 Операторы
Лекция 3,4,5 (6 час. [1-3, 11-13, 16-18]).
Понятие оператора. Условные операторы if и switch. Вложенные условные
операторы. Условная операция. Операторы цикла (while, do while, for). Операторы
передачи управления: break, continue, return, exit, goto, примеры программ.
Лабораторная работа № 2. (5 час. [21, 1-3, 11-13, 16-18])
Тема 3 Функции
Лекция 6,7 (4 час. [1-3, 11-13, 16-18]).
Понятие функции в С++. Определение и объявление (прототип) функции.
Вызов функций. Формальные и фактические параметры функций. Понятие,
синтаксис описания указателей и ссылок. Инициализация и разыменование
указателей. Способы передачи параметров в функцию. Правила оформления
многомодульных программ. Рекурсивные функции. Функции с аргументами по
умолчанию. Встраиваемые функции. Указатели на функцию. Примеры программ с
использованием функций.
Лабораторная работа № 3. (5 час. [21, 1-3, 11-13, 16-18])
Тема 4 Файлы
Лекция 8,9 (4 час. [1-3, 11-13, 16-18]).
Понятие файла. Текстовые и бинарные файлы. Файлы в стиле языка С:
открытие файла, чтение данных из файла, запись данных в файл, произвольный
доступ к элементам файла, закрытие файла, примеры программ. Работа с
файлами и потоками в стиле языка С++ (на примере текстовых файлов).
5
СТО АлтГТУ 13.62.1.0667-2011
Лабораторная работа № 4. (6 час. [21, 1-3, 11-13, 16-18])
Тема 5 Массивы
Лекции 10,11,12,13 (8 час. [1-3, 11-13, 16-18])
Понятие массива. Одномерные массивы со статическим выделением
памяти: синтаксис описания, инициализация и доступ к элементам, примеры.
Понятие указателя. Операции над указателями, примеры. Понятие и создание
динамической переменной. Понятие динамического массива. Создание
одномерных динамических массивов в С++. Ввод/вывод одномерных массивов.
Связь массивов и указателей. Одномерные массивы в качестве параметров
функций. Основные алгоритмы обработки одномерных массивов: удаление
элемента, вставка элемента, сортировка элементов массива.
Двумерные массивы со статическим выделением памяти: синтаксис
описания, инициализация, доступ к элементам, примеры. Создание двумерных
динамических массивов в С++. Ввод/вывод двумерных массивов. Массивы в
качестве параметров функций. Основные алгоритмы обработки двумерных
массивов.
Лабораторная работа № 5. Массивы (6 час. [21, 1-3, 11-13, 16-18])
Тема 6 Строки, структуры, объединения и перечисления
Лекции 14,15,16,17 (8 час. [1-3, 11-13, 16-18])
Понятие строки в языке С и С++. Строки в стиле языка С: синтаксис
объявления, инициализация, примеры. Способы ввода-вывода строк. Основные
библиотечные функции для работы со строками в стиле языка С, примеры их
использования. Передача строк в качестве параметров функций. Строки и
текстовые файлы.
Переименование типов данных. Структуры в стиле языка С: понятие,
способы объявления, примеры. Инициализация и доступ к элементам структур.
Указатели на структуры. Массивы структур. Передача структур в качестве
параметров функций. Структуры и бинарные файлы. Перечислимый тип данных,
объединение: назначение, синтаксис описания, примеры.
Лабораторная работа № 6. (6 час. [21, 1-3, 11-13, 16-18])
Самостоятельная работа студентов (22 час.)
Самостоятельная работа студентов включает подготовку к защите
лабораторных. Подготовка к защите лабораторных работ состоит из следующих
частей:
1. Подготовка к защите лабораторной работы № 1 (4 час. [1-3, 11-13, 16-18])
2. Подготовка к защите лабораторной работы № 2 (3 час. [1-3, 11-13, 16-18])
3. Подготовка к защите лабораторной работы № 3 (3 час. [1-3, 11-13, 16-18])
4. Подготовка к защите лабораторной работы № 4 (4 час. [1-3, 11-13, 16-18])
5. Подготовка к защите лабораторной работы № 5 (4 час. [1-3, 11-13, 16-18])
6. Подготовка к защите лабораторной работы № 6 (4 час. [1-3, 11-13, 16-18])
6
СТО АлтГТУ 13.62.1.0667-2011
2-й семестр
Тема 1 Классы и объекты С++
Лекция 1,2 (4 час. [1-3, 11-13, 16-18]).
Понятие класса и объекта. Синтаксис объявления класса. Инкапсуляция.
Статические и динамические объекты: понятие и способы создания. Доступ к
полям и методам объекта. Конструкторы и деструкторы. Виды конструкторов.
Интерфейс и реализация класса. Массивы объектов. Понятие указателя this.
Друзья класса. Перегрузка операций. Статические поля и методы. Класс string.
Лабораторная работа № 1. (6 час. [22, 1-3, 11-13, 16-18])
Тема 2 Отношения между классами и объектами
Лекция 3,4,5 (6 час. [1-3, 11-13, 16-18]).
Простое и множественное наследование в С++: назначение, синтаксис
описания
производных
классов,
конструкторы
производных
классов.
Полиморфизм в С++: перегрузка и переопределение методов, виртуальные
функции. Абстрактные классы. Виртуальные базовые классы. Реализация в С++
отношений между классами и объектами: ассоциация, агрегация, композиция и
зависимость.
Лабораторная работа № 2. (5 час. [22, 1-3, 11-13, 16-18])
Тема 3 Основы программирования GUI с использованием Qt
Лекция 6,7 (4 час. [4, 14, 19]).
Понятие
и краткая история Qt. Структура простой программы,
использующей Qt. Обзор иерархии классов Qt. Основные классы модуля QtCore и
QtGui. Структура Qt-проекта. Понятие и назначение qmake, moc , uic и rcc.
Характеристика механизма сигналов и слотов объектной модели Qt.
Характеристика механизма свойств объектной модели Qt.
Лабораторная работа № 3. (5 час. [22, 4, 14, 18,19])
Тема 4 Классы файловых потоков. Обработка исключительных
ситуаций
Лекция 8,9 (4 час. [1-3, 11-13, 16-18]).
Классы стандартных и файловых потоков С++. Ввод – вывод данных
стандартных типов и типов, определенных пользователем. Форматированный
ввод-вывод. Перегрузка операций извлечения из потока и включения в поток для
объектов класса. Синтаксис операторов обработки исключений. Формы записи
обработчиков исключений. Исключения в конструкторах и деструкторах. Классы
исключений.
Лабораторная работа № 4. (6 час. [22, 1-3, 11-13, 16-18])
Тема 5 Динамические структуры данных
Лекция 10,11,12,13 (8 час. [1-3, 11-13, 16-18]).
Понятие динамических структур данных. Основные динамические структуры
данных: списки (односвязные и двусвязные списки, стеки, очереди, деки),
7
СТО АлтГТУ 13.62.1.0667-2011
бинарные деревья: понятие и назначение, алгоритм создания, основные операции
и примеры использования.
Лабораторная работа № 5. (6 час. [22, 1-3, 11-13, 16-18])
Тема 6 Шаблоны. Стандартная библиотека шаблонов
Лекция 14,15,16,17 (8 час. [1-3, 11-13, 16-18]).
Шаблоны функций и шаблоны классов: назначение, синтаксис и примеры
использования. Состав стандартной библиотека шаблонов (STL). Характеристика
и примеры использования основных контейнерных классов STL.
Лабораторная работа № 6. (6 час. [22, 1-3, 11-13, 16-18])
Самостоятельная работа студентов (58 час.)
Самостоятельная работа студентов включает подготовку к защите
лабораторных работ (22 час.), а также выполнение и защиту индивидуального
задания (36 час.).
Подготовка к защите лабораторных работ состоит из следующих частей:
Подготовка к защите лабораторной работы № 1 (4 час. [1-3, 11-13, 16-18])
Подготовка к защите лабораторной работы № 2 (3 час. [1-3, 11-13, 16-18])
Подготовка к защите лабораторной работы № 3 (3 час. [4, 14,19])
Подготовка к защите лабораторной работы № 4 (4 час. [1-3, 11-13, 16-18])
Подготовка к защите лабораторной работы № 5 (4 час. [1-3, 11-13, 16-18])
Подготовка к защите лабораторной работы № 6 (4 час. [1-3, 11-13, 16-18])
1.
2.
3.
4.
5.
6.
Цель индивидуального задания: углубленное изучение темы 3 «Основы
программирования GUI с использованием Qt». (36 час. [24, 4, 14,19])
Выполняя индивидуальное задание студенты должны самостоятельно
изучить возможности библиотеки Qt по созданию статических и динамических
графических изображений и выполнить два индивидуальных варианта заданий:
1. Создание статических графических изображений (18 час.)
2. Создание динамических графических изображений; (18 час.)
Варианты индивидуальных заданий и методические указания по их
выполнению приводятся в приложении В.
3-й семестр
Тема 1 Введение в Java.
Лекция 1, 2 (4 час.; [5-8, 15-17]).
История создания языка программирования Java. Виртуальная Java-машина,
байт-код, JIT-компиляция. Категории программ, написанных на языке Java.
Алфавит языка Java. Простая программа на языке Java. Типы данных и
переменные. Константы. Операции. Консольный ввод-вывод. Операторы.
Статические поля и методы. Передача параметров в методы.
Понятие массива в Java. Описание, определение и инициализация массива,
примеры программ обработки массивов.
Лабораторная работа № 1. (6 час. [23, 5-8, 15-17, 20])
8
СТО АлтГТУ 13.62.1.0667-2011
Тема 2 Классы и объекты.
Лекция 3, 4 (4 час.; [5-8, 15-17]).
Понятие строки в Java. Класс String: способы создание строк, сцепление строк.
Методы класса String для работы со строками. Класс StringBuffer: конструкторы,
методы для работы со строками. Синтаксический разбор строки: класс
StringTokenizer.
Синтаксис описания классов. Создание объектов. Сборка мусора.
Инкапсуляция данных. Конструкторы. Перегрузка методов. Ключевое слово this в
конструкторах. Блоки инициализации. Рекомендации по разработке классов.
Массивы объектов.
Лабораторная работа № 2. (5 час. [23, 5-8, 15-17, 20])
Тема 3 Отношения между классами и объектами
Лекция 5, 6 (4 час.; [5-8, 15-17]).
Наследование: расширение классов, замещение (переопределение) методов,
иерархия
наследования.
Полиморфизм.
Динамическое
связывание.
Предотвращение наследования: терминальные классы и методы. Абстрактные
классы. Защищенный доступ (protected). Как применять наследование.
Интерфейсы: понятие, назначение и синтаксис описания. Оператор interface и
оператор implements. Константы в интерфейсах. Отношения между классами в
UML и их реализация в Java. Пакеты: использование пакетов, Добавление класса
в пакет, указание пути к пакетам, область видимости пакета.
Лабораторная работа № 3. (5 час. [23, 5-8, 15-17, 20])
Тема 4 Основы программирования GUI с использованием Swing.
Лекция 7, 8, 9, 10, 11 ( 10 час.; [9,10]).
Введение в библиотеку Swing: окно JFrame, панель содержимого, класс
Container, класс JPanel, менеджер последовательного размещения, менеджер
граничного размещения, менеджер табличного размещения, менеджер блочного
размещения, особенности выравнивания элементов, ручное размещение
элементов, автоматическое определение размеров компонентов, «упаковка» окна,
рамки. Основные визуальные компоненты Swing. Обработка событий в Swing.
Понятие и назначение апплета. Примеры создания Java-апплетов.
Лабораторная работа № 4. (6 час. [23, 9,10, 20])
Тема 5 Классы файловых потоков. Обработка исключений
Лекция 12, 13 (4 час.; [5-8, 15-17]).
Классификация исключительных ситуаций. Объявление исключительных
ситуаций, возбуждаемых методом. Создание классов исключительных ситуаций.
Перехват исключительных ситуаций (блок try-catch). Как использовать
исключительные ситуации.
Чтение и запись байтов. Полное семейство потоков. Фильтры потоков. Потоки
данных. Потоки файлов прямого доступа. Текстовые потоки. Работа с файловой
системой.
Лабораторная работа № 5. (6 час. [23, 5-8, 15-17, 20])
Тема 6 Коллекции
9
СТО АлтГТУ 13.62.1.0667-2011
Лекция 14, 15, 16, 17 (8 час.; [5-8, 15-17]).
Понятие коллекции. Классы-коллекции. Интерфейсы-коллекции. Иерархия
классов-коллекций. Ассоциативные массивы. Классы-оболочки. Работа с датой и
временем. Генерация случайных чисел.
Лабораторная работа № 6. (6 час. [23, 5-8, 15-17, 20])
Самостоятельная работа студентов (76 час.)
Самостоятельная работа студентов включает подготовку к защите
лабораторных работ (22 час.), а также выполнение и защиту курсовой работы (54
час.).
Подготовка к защите лабораторных работ состоит из следующих частей:
1.
2.
3.
4.
5.
6.
Подготовка к защите лабораторной работы № 1 (4 час. [5-8, 15-17])
Подготовка к защите лабораторной работы № 2 (3 час. [5-8, 15-17])
Подготовка к защите лабораторной работы № 3 (3 час. [5-8, 15-17])
Подготовка к защите лабораторной работы № 4 (4 час. [9,10])
Подготовка к защите лабораторной работы № 5 (4 час. [5-8, 15-17])
Подготовка к защите лабораторной работы № 6 (4 час. [5-8, 15-17])
Цель курсовой работы: расширить объем знаний студентов в области
программирования и создать реальную основу использования своих знаний для
решения на компьютере задач по другим дисциплинам и в своей дальнейшей
практической деятельности . (54 час. [25, 1-20])
Тематика курсовой работы: программирование простых логических игр или
разработка программы для автоматизации необходимых функций изучаемой
предметной области.
Тема назначается руководителем курсовой работы и утверждается на
заседании учебно-методической комиссии кафедры.
Выполнение курсовой работы состоит из трех этапов:
1. Постановка задачи ( 10 час. [ 25,1-20 ]);
2. Разработка алгоритма решения задачи ( 10 час. [25, 1-20]);
3. Создание и тестирование программы ( 17 час. [25, 1-20 ]);
4. Оформление и защита курсовой работы ( 17 час. [25, 1-20]).
При написании пояснительной записки необходимо придерживаться
требований СТО 12400-2009 - КУРСОВОЙ ПРОЕКТ (КУРСОВАЯ РАБОТА) и СТП
12570-2006. Общие требования к текстовым, графическим и программным
документам. Объем пояснительной записки 30 – 40 листов.
Основная часть пояснительной записки должна состоять из следующих
разделов:
1. Постановка задачи
2. Алгоритм решения задачи
3. Описание программы
4. Тестирование программы
Методические рекомендации по выполнению курсовой работы приводятся в
приложении Г.
10
СТО АлтГТУ 13.62.1.0667-2011
4.1.2
Учебно-методическое
дисциплины
и
информационное
обеспечение
Основная литература
1. Павловская Т.А. С/C++. Программирование на языке высокого уровня.
Учебник для вузов. – Изд-во ПИТЕР, 2010. – 464 с. 25
2. Егорова Е.В. Программирование на языке высокого уровня. Учебное
пособие. [Электронный ресурс] Барнаул, АлтГТУ, 2009. – 207 с. Режим
доступа http://elib.altstu.ru/elib/eum/pm/Ci-egorova.pdf 40
3. Либерти Д., Хорват Д. Освой самостоятельно С++ за 24 часа, 4-е
издание.: Пер. с англ.-М. Издательский дом “Вильямс”, 2006.- 448 с. 15
4. Макс Шлее - Qt4.5. Профессиональное программирование на C++. –
Изд-во БХВ-Петербург, 2009. – 896 с.
5. Программирование на языке Java [Электронный ресурс]: [самоучитель
TeachPro]. - Мультимед. изд. - Электрон. дан. - М. : Равновесие, 2006. - 1
эл. опт. диск (CD-ROM)
6. Дейтел, Харви М. Как программировать на Java / Х. М. Дейтел, П. Д.
Дейтел ; пер. с англ. под ред. А. В. Козлова. - 2-е изд. - М. : Бином, 2003
- . Кн. 1 : Основы программирования. - 2003. - 847 с. 1
7. Хорстманн К. С, Корнелл Г. Библиотека профессионала. Java 2. Том 1.
Основы: Вильямс, 2007. - 896с
8. Эккель Б. Философия Java. Библиотека программиста. 4-е изд. СПб.:
БХВ-Петербург, 2009. 640c
9. В.В.Монахов Язык программирования Java и среда NetBeans. СПб. БХВПетербург, 2008. 627 с.
10. Шилдт Г. Swing. Руководство для начинающих. — М.: Вильямс, 2007. —
704 с.
Дополнительная литература
11. Павловская Т.А., Щупак Ю. А. С/C++. Структурное программирование:
Практикум.-СПб.: Питер, 2005.-239 с.
12. Культин Н. Б. С/C++ в задачах и примерах.- СПб.: БХВ-Петербург, 2006.288 с.
13. Шилдт Г. С. С++: руководство для начинающих, 2-е издание Пер. с англ.М. Издательский дом “Вильямс”, 2005.- 672 с.
14. Бланшет Жасмин, Саммерфилд Марк Qt 4: Программирование GUI на
С++.2-е, дополненное издание. Пер. с англ.-КУДИЦ-ПРЕСС, 2008. – 738 с.
15. Флэнаган Д. Java в примерах. Справочник. - СПб. - 2003, 664с
Программное обеспечение и интернет-ресурсы
16. Интернет университет информационных технологий:
http://www.intuit.ru/department/pl/cpl/
http://www.intuit.ru/department/pl/javapl/
http://www.intuit.ru/department/pl/javanetbeans/
17. CITForum: http://citforum.ru/programming/
http://citforum.ru/programming/java.shtml
18. Geany: http://www.geany.org/Download/Releases
Qt Creator IDE, QT libraries http://qt.nokia.com/downloads/
19. Qt документация: http://doc.crossplatform.ru/qt/
20. Java SDK: http://www.oracle.com/technetwork/java/index.html
NetBeans IDE: http://netbeans.org/downloads/
11
СТО АлтГТУ 13.62.1.0667-2011
Методические указания студентам
21. Качесова Л. Ю. Методические указания по выполнению лабораторных
работ по дисциплине «Программирование».Часть 1. [Электронный ресурс]
Барнаул, Кафедра САПР, 2011. - 60 с. Режим доступа http://aomai.ru/ 40
22. Качесова Л. Ю. Методические указания по выполнению лабораторных
работ по дисциплине «Программирование».Часть 2. [Электронный ресурс]
Барнаул, Кафедра САПР, 2011. - 60 с. Режим доступа http://aomai.ru/ 40
23. Качесова Л. Ю. Методические указания по выполнению лабораторных
работ по дисциплине «Программирование».Часть 3. [Электронный ресурс]
Барнаул, Кафедра САПР, 2011. - 60 с. Режим доступа http://aomai.ru/ 40
24. Качесова Л. Ю. Методические указания по выполнению индивидуального
задания по дисциплине «Программирование». [Электронный ресурс]
Барнаул, Кафедра САПР, 2011. - 10 с. Режим доступа http://aomai.ru/ 40
25. Качесова Л. Ю. Методические указания по выполнению курсовой работы
по дисциплине «Программирование». [Электронный ресурс] Барнаул,
Кафедра САПР, 2011. - 10 с. Режим доступа http://aomai.ru/ 40
4.1.3 Формы и содержание текущей и промежуточной аттестации по
дисциплине
Текущая аттестация студентов осуществляется по итогам:
- выполнения и защиты лабораторных работ (1, 2, 3 семестры):
- выполнения и защиты индивидуального задания (2-й семестр).
Вес каждой лабораторной работы – 0,1 (1 семестр) и 0,05 (2, 3 семестры)
Вес индивидуального задания – 0,2 (2 семестр).
Подведение итогов текущей успеваемости производится на седьмой и
последней неделях семестра.
Промежуточная аттестация – экзамен (1, 2, 3 семестры) и защита курсовой
работы (3 семестр). Вес экзамена – 0,4 (1 семестр) и 0,5 (2, 3 семестры). Вес
курсовой работы – 0,2.
Оценочные средства по программированию приведены в приложении
(Приложение Д).
12
СТО АлтГТУ 13.62.1.0667-2011
4.1.4 Учебно-методическая карта дисциплины
Учебно-методическая карта дисциплины Программирование
для направления _230100 «Информатика и вычислительная техника»
на _1_ семестр
График аудиторных занятий, СРС, текущих и промежуточной
аттестаций
Наименование вида
работ
Лекции
Лабораторные
работы
Практические
(семинарские)
занятия
1
2
1
1
1
Номер недели
3
4 5
6
7
8
9 10 11
1 Аудиторные занятия 68 час.
2
3
4
5
5
1
2
2
2
3
3
4
4
4
12 13
14
6
5
5
5
15 16
17
6
6
6
6
6
2 Самостоятельная работа студентов 22 час.
Курсовой проект (КП)
Курсовая работа (КР)
Расчетное
задание (РЗ)
Реферат
Подготовка к защите
лабораторных работ
1
2
3
4
5
6
зр/
0,1
зр/
0,1
зр/
0,1
3 Формы текущей аттестации
Коллоквиум (КЛ)
Контрольная работа
(К)
Контрольный
опрос(КО)
Защита
лабораторной работы
(ЗР)
Другие виды
аттестации
Экзамен
Зачет
зp/
0,1
зр/
0,1
зр/
0,1
4 Формы промежуточной аттестации
Во время сессии; вес 0,4
«не предусмотрен»
Примечания
1 В п.1 и п.2 (а также другие виды СРС: подготовка к лекциям, выполнение домашнего
задания и др.) в каждой неделе указаны номера (темы) лекций, лабораторных работ,
практических или семинарских занятий в соответствии с содержанием дисциплины
разработчика (п.п.6.1.1);
2 В п.2 (курсовой проект, курсовая работа, расчетное задание и др.виды СРС) на
соответствующей неделе проставлен номер части курсового проекта (работы),
расчетного задания, др.видов СРС, которую студент обязан выполнить к данному
моменту времени; в неделю защиты – указано условное обозначение ЗЗ (защита
задания);
3 В п.3 на соответствующей неделе проставлено условное обозначение различных форм
текущей аттестации (КЛ,К, КО и т.д.) и через дробь - удельный вес каждого из видов
контроля в общей оценке по дисциплине, которая принимается за единицу.
13
СТО АлтГТУ 13.62.1.0667-2011
Учебно-методическая карта дисциплины Программирование
для направления _230100 «Информатика и вычислительная техника»
на _2_ семестр
График аудиторных занятий, СРС, текущих и промежуточной
аттестаций
Наименование вида
работ
Лекции
Лабораторные
работы
Практические
(семинарские)
занятия
1
2
1
1
1
Номер недели
3
4
5
6 7
8
9 10 11
1 Аудиторные занятия 68 час.
2
3
4
5
5
1,2
2
2
3
3
3
4
4
4
12 13
14
6
5
5
5
15 16
17
6
6
6
6
6
2
зз/
0,2
2 Самостоятельная работа студентов 22 час.
Курсовой проект (КП)
Курсовая работа (КР)
Расчетное
задание (РЗ)
Реферат
Подготовка к защите
лабораторных работ
1
1
2
3
4
5
6
зр/
0,05
зр/
0,05
зр/
0,05
3 Формы текущей аттестации
Коллоквиум (КЛ)
Контрольная работа
(К)
Контрольный
опрос(КО)
Защита
лабораторной работы
(ЗР)
Другие виды
аттестации
Экзамен
Зачет
зp/
0,05
зр/
0,05
зр/
0,05
4 Формы промежуточной аттестации
Во время сессии; вес 0,5
«не предусмотрен»
Примечания
1 В п.1 и п.2 (а также другие виды СРС: подготовка к лекциям, выполнение домашнего
задания и др.) в каждой неделе указаны номера (темы) лекций, лабораторных работ,
практических или семинарских занятий в соответствии с содержанием дисциплины
разработчика (п.п.6.1.1);
2 В п.2 (курсовой проект, курсовая работа, расчетное задание и др.виды СРС) на
соответствующей неделе проставлен номер части курсового проекта (работы),
расчетного задания, др.видов СРС, которую студент обязан выполнить к данному
моменту времени; в неделю защиты – указано условное обозначение ЗЗ (защита
задания);
3 В п.3 на соответствующей неделе проставлено условное обозначение различных форм
текущей аттестации (КЛ,К, КО и т.д.) и через дробь - удельный вес каждого из видов
контроля в общей оценке по дисциплине, которая принимается за единицу.
14
СТО АлтГТУ 13.62.1.0667-2011
Учебно-методическая карта дисциплины Программирование
для направления _230100 «Информатика и вычислительная техника»
на _3_ семестр
График аудиторных занятий, СРС, текущих и промежуточной
аттестаций
Наименование вида
работ
Лекции
Лабораторные
работы
Практические
(семинарские)
занятия
1
2
1
1
1
Номер недели
3
4 5
6
7
8
9 10 11
1 Аудиторные занятия 68 час.
2
3
4
5
5
1
2
2
2
3
3
4
4
4
12 13
14
6
5
5
5
15 16
17
6
6
6
6
6
3
4
зз/
0,2
2 Самостоятельная работа студентов 22 час.
Курсовой проект (КП)
1
Курсовая работа (КР)
Расчетное
задание (РЗ)
Реферат
Подготовка к защите
лабораторных работ
1
2
2
3
4
5
6
зр/
0,05
зр/
0,05
зр/
0,05
3 Формы текущей аттестации
Коллоквиум (КЛ)
Контрольная работа
(К)
Контрольный
опрос(КО)
Защита
лабораторной работы
(ЗР)
Другие виды
аттестации
Экзамен
Зачет
зp/
0,05
зр/
0,05
зр/
0,05
4 Формы промежуточной аттестации
Во время сессии; вес 0,5
«не предусмотрен»
Примечания
1 В п.1 и п.2 (а также другие виды СРС: подготовка к лекциям, выполнение домашнего
задания и др.) в каждой неделе указаны номера (темы) лекций, лабораторных работ,
практических или семинарских занятий в соответствии с содержанием дисциплины
разработчика (п.п.6.1.1);
2 В п.2 (курсовой проект, курсовая работа, расчетное задание и др.виды СРС) на
соответствующей неделе проставлен номер части курсового проекта (работы),
расчетного задания, др.видов СРС, которую студент обязан выполнить к данному
моменту времени; в неделю защиты – указано условное обозначение ЗЗ (защита
задания);
3 В п.3 на соответствующей неделе проставлено условное обозначение различных форм
текущей аттестации (КЛ,К, КО и т.д.) и через дробь - удельный вес каждого из видов
контроля в общей оценке по дисциплине, которая принимается за единицу.
15
СТО АлтГТУ 13.62.1.0667-2011
4.2 Условия освоения и реализации дисциплины
4.2.1 Методические рекомендации студентам по изучению дисциплины
Для оптимальной организации процесса изучения данной дисциплины
необходимо:
– перед каждым лекционным занятием повторять пройденный материал;
– перед каждой лабораторной работой знакомиться с темой, целью и
заданием, изучать примеры программ;
– выполнять, сдавать и защищать лабораторные работы, индивидуальное
задание, курсовую работу согласно графика контроля;
График контроля
1 семестр
Вид занятия
Лабораторная работа 1
Лабораторная работа 2
Лабораторная работа 3
Лабораторная работа 4
Лабораторная работа 5
Лабораторная работа 6
Вид контрольного
испытания
Время
проведения
защита
3 неделя
6 неделя
8 неделя
Вес в итоговом
рейтинге
0,1
0,1
0,1
защита
11 неделя
14 неделя
17 неделя
0,1
0,1
0,1
экзамен
сессия
0,4
Примечание:
1. Выполненная лабораторная работа
2.
3.
4.
5.
6.
7.
8.
- 30 баллов. Лабораторная работа считается
выполненной, если студентом создана и показана преподавателю правильно работающая
программа, соответствующая индивидуальному варианту задания.
Выполненные лабораторные работы защищаются в соответствии с графиком контроля.
Без отчетов защита лабораторных работ не принимается.
Защита лабораторной работы в семестре после срока, указанного в графике контроля
оценивается на 20 % ниже.
Защита лабораторных работ после окончания семестра не принимается.
Студент допускается к экзамену, если семестровый рейтинг больше или равен 25 баллов.
Если студент не допущен или не явился на экзамен, то его итоговая оценка равна нулю.
Если студент допущен до экзамена и оценка за экзамен меньше 25, то итоговый рейтинг
равен экзаменационному.
Экзамен – «автомат» выставляется в том случае, если семестровый рейтинг студента
больше или равен 75 баллам.
График контроля
2 семестр
Вид занятия
Лабораторная работа 1
Лабораторная работа 2
Лабораторная работа 3
Лабораторная работа 4
Лабораторная работа 5
Лабораторная работа 6
СРС. Индивидуальное
задание
Вид
контрольного
испытания
защита
защита
защита
экзамен
16
Время
проведения
Вес в итоговом
рейтинге
3 неделя
5 неделя
8 неделя
11 неделя
14 неделя
17 неделя
0,05
0,05
0,05
0,05
0,05
0,05
17 неделя
0,2
сессия
0,5
СТО АлтГТУ 13.62.1.0667-2011
Примечание:
1. Выполненная лабораторная работа - 30 баллов.
2. Выполненное индивидуальное задание – 30 баллов.
3. Лабораторная работа (индивидуальное задание) считается выполненной(ным), если
студентом создана и показана преподавателю
правильно работающая программа,
соответствующая его индивидуальному варианту задания, а так же оформлен отчет.
4. Выполненные лабораторные работы и индивидуальное задание защищаются
в
соответствии с графиком контроля.
5. Защита лабораторной работы в семестре после срока, указанного в графике контроля
оценивается на 20 % ниже.
6. Защита лабораторных работ и индивидуального задания после окончания семестра не
принимается.
7. Студент допускается к экзамену, если семестровый рейтинг больше или равен 25 баллов.
8. Если студент не допущен или не явился на экзамен, то его итоговая оценка равна нулю.
9. Если студент допущен до экзамена и оценка за экзамен меньше 25, то итоговый рейтинг
равен экзаменационному.
10. Экзамен – «автомат» выставляется в том случае, если семестровый рейтинг студента
больше или равен 75 баллам.
График контроля
3 семестр
Вид занятия
Лабораторная работа 1
Лабораторная работа 2
Лабораторная работа 3
Лабораторная работа 4
Лабораторная работа 5
Лабораторная работа 6
СРС. Курсовая работа
Вид
контрольного
испытания
защита
защита
защита
экзамен
Время
проведения
3 неделя
6 неделя
8 неделя
11 неделя
14 неделя
17 неделя
17 неделя
сессия
Вес в итоговом
рейтинге
0,05
0,05
0,05
0,05
0,05
0,05
0,2
0,5
Примечание:
1. Выполненная лабораторная работа - 30 баллов.
2. Выполненная курсовая работа – 30 баллов.
3. Лабораторная (курсовая) работа считается выполненной, если студентом создана и
показана преподавателю
правильно работающая программа, соответствующая его
индивидуальному варианту задания, а так же оформлен отчет.
4. Выполненные лабораторные работы и курсовая работа защищаются в соответствии с
графиком контроля.
5. Защита лабораторной работы в семестре после срока, указанного в графике контроля
оценивается на 20 % ниже.
6. Защита лабораторных работ после окончания семестра не принимается.
7. Студент допускается к экзамену, если семестровый рейтинг больше или равен 25 баллов.
8. Если студент не допущен или не явился на экзамен, то его итоговая оценка равна нулю.
9. Если студент допущен до экзамена и оценка за экзамен меньше 25, то итоговый рейтинг
равен экзаменационному.
10. Экзамен – «автомат» выставляется в том случае, если семестровый рейтинг студента
больше или равен 75 баллам.
В АлтГТУ принята 100-бальная шкала оценок. Именно эти оценки
учитываются при подсчете рейтингов, назначении стипендии и в других
случаях. Традиционная шкала будет использоваться только в зачетных
книжках. Соотношение оценок устанавливается следующим образом: 75 баллов
и выше -"отлично", 50-74 балла - "хорошо", 25 - 49 баллов "удовлетворительно", менее 25 баллов - "неудовлетворительно".
Успеваемость студента оценивается с помощью текущего рейтинга и
вычисляется по формуле:
17
СТО АлтГТУ 13.62.1.0667-2011
RT 
R p
p
i
i
i
где Ri - оценка за i-ю контрольную точку, pi - вес этой контрольной точки.
Суммирование проводится по всем контрольным точкам с начала семестра до
момента вычисления рейтинга.
Семестровый рейтинг вычисляется по формуле:
R сем  R Т
Где RT – текущий рейтинг на конец семестра,
Итоговый рейтинг, учитывающий экзамен:
R итог  R сем  0,5  R экз  0,5
4.2.2 Организация самостоятельной работы студента по дисциплине
Организация
самостоятельной
работы
студента
по
дисциплине
«Программирование» осуществляется в рамках автоматизированной системы
преподавания с использованием компьютеров кафедры, домашних компьютеров,
глобальной, городской сети. Все учебно-методические материалы могут быть
скопированы студентами с сайта http://aomai.ru. Взаимодействие
с
преподавателем в течении семестра также может осуществляться с
использованием ресурсов http://aomai.ru.
4.2.3 Методические рекомендации преподавателю дисциплины
Лекции по курсу «Программирование» читаются преподавателем в
мультимедийной аудитории. Для чтения лекций используется комплект
презентационных материалов. Презентационный материал представляет собой
файлы, являющийся элементом электронной базы материалов кафедры
«Системы автоматизированного проектирования».
Лабораторные работы проводятся в компьютерном классе кафедры
«Системы автоматизированного проектирования». Они выполняются и
защищаются в соответствии с методическими указаниями [21-23].
Защита лабораторных работ проводятся на лабораторных занятиях по
графику контроля (см. п. 4.1.4).
Индивидуальное расчетное задание и курсовая работа выполняются и
защищаются в соответствии с методическими указаниями [24, 25].
Защита индивидуального расчетного задания и курсовой работы проводится
по графику контроля (см. п. 4.1.4).
Экзамен проводится в письменной форме во время сессии. Вопросы к
экзамену выдаются студентам на второй неделе семестра. (см. Приложение Д).
Для успешного освоения дисциплины каждому студенту в начале семестра
предоставляется памятка по дисциплине (в электронном виде, приложение Е).
4.2.4 Образовательные технологии
Образовательные технологии, используемые при изучении дисциплины
«Программирование», предусматривают применение инновационных методов
обучения. Это модульно-рейтинговая система квалиметрии учебной деятельности
студентов.
Лекция-дискуссия.
Лекция-визуализация.
Использование
мультимедийного и компьютерного оборудования при чтении лекций, контроле
СРС, выполнении лабораторных работ.
18
СТО АлтГТУ 13.62.1.0667-2011
4.2.5 Особенности преподавания дисциплины
Преподавание дисциплины осуществляется в рамках автоматизированной
системы преподавания с использованием компьютеров кафедры, домашних
компьютеров, глобальной, городской сети. Все учебно-методические материалы
могут быть скопированы студентами с сайта http://aomai.ru. Взаимодействие с
преподавателем в течении семестра также может осуществляться с
использованием ресурсов http://aomai.ru.
4.2.6 Материально-техническое обеспечение дисциплины
Лекции по курсу «Программирование» проводятся в мультимедийных
аудиториях вуза. Для чтения лекций используется комплект презентационных
материалов. Презентационный материал представляет собой файлы,
являющийся элементом электронной базы материалов кафедры «Системы
автоматизированного проектирования».
Лабораторные работы, курсовая работа и индивидуальное расчетное задание
выполняются в компьютерном классе кафедры «Системы автоматизированного
проектирования».
19
СТО АлтГТУ 13.62.1.0667-2011
5 Лист согласования рабочей программы дисциплины
Лист согласования рабочей программы дисциплины
Наименование
дисциплин, изучение
которых опирается
на данную
дисциплину
1
Базы данных
Современные
технологии
программирования
ЭВМ и ПУ
Основы WEBтехнологий
Основы научных
исследований
Теория формальных
языков и
компиляторов
Автоматизация
конструкторскотехнологического
проектирования
Автоматизированное
проектирование РЭА
Геометрическое
моделирование
Основы системного
программирования
Микропроцессорные
системы
Спецкурс
Введение в
искусственный
интеллект
Теория автоматов
20
Кафедраразработчик
дисциплины
2
САПР
САПР
ВСИБ, САПР
ВСИБ
ВСИБ, САПР
ВСИБ
САПР
САПР
САПР
ВСИБ
ВСИБ
ВСИБ
САПР
ВСИБ
Предложения по
корректировке
рабочей программы,
вносимые согласующей
кафедрой
Подпись
заведующего
согласующей
кафедры
3
4
СТО АлтГТУ 13.62.1.0667-2011
Приложение А
(рекомендуемое)
Карта компетенций дисциплины __Программирование__
1 Наименование компетенций дисциплины
Код
компетенции
Формулировка компетенции (или ее части)
ОК–1
Владеет культурой мышления, способен к обобщению, анализу,
восприятию информации, постановке цели и выбору путей её
достижения.
Стремится к саморазвитию, повышению своей квалификации и
мастерства.
Осваивать методики использования программных средств для
решения практических задач;
Разрабатывать интерфейсы «человек-ЭВМ»
Использовать современные инструментальные средства и
технологии программирования
Готовить
презентации,
научно-технические
отчеты
по
результатам выполненной работы, оформлять результаты
исследований в виде статей и докладов на научно-технических
конференциях
ОК–6
ПК-2
ПК-3
ПК-5
ПК-7
2 Компонентный состав дисциплины
1-й семестр
Модуль
дисциплины
(раздел, тема)
Модуль 1
( Тема 1,
Тема 2,
Тема 3 )
Результаты освоения
дисциплины
Знает: синтаксис и семантику
конструкций языка С++ для
программирования линейных,
ветвящихся,
циклических
алгоритмов,
создания
и
использования функций
Умеет: программировать
линейные,
ветвящиеся
и
циклические алгоритмы на
С++, а также создавать и
использовать функции.
Владеет: навыками работы в
системе
программирования
для языка С++, навыками
построения
блок-схем
алгоритмов и оформления
отчетов по лабораторным
работам
Технологии
формирования
компетенций
Средства
технологии
оценки
и
Объем
в ЗЕТ
Лекции
Лабораторные
работы
Защита отчетов
по
лабораторным
работам
Экзамен
1,1
Самостоятельная
работа
21
СТО АлтГТУ 13.62.1.0667-2011
Модуль 2
( Тема 4,
Тема 5,
Тема 6 )
Знает: синтаксис и семантику
конструкций языка С++ для
программирования
с
использованием
файлов,
массивов, строк и структур.
Умеет: программировать на
С++
с
использованием
файлов, массивов, строк и
структур.
Владеет: навыками работы в
системе
программирования
для языка С++, навыками
построения
блок-схем
алгоритмов и оформления
отчетов по лабораторным
работам
Лекции
Лабораторные
работы
Защита отчетов
по
лабораторным
работам
1,4
Экзамен
Самостоятельная
работа
2-й семестр
Модуль
дисциплины
(раздел, тема)
Модуль 1
( Тема 1,
Тема 2,
Тема 3 )
Результаты освоения
дисциплины
Знает: основные конструкции
языка С++ для создания
объектно-ориентированных
программ и основы Qt для
программирования GUI
Умеет: создавать консольные
программы
в
С++
с
использованием классов и
объектов,
а
также
программировать GUI
с использованием Qt
Владеет: навыками работы в
системе
программирования
для языка С++, навыками
оформления
отчетов
по
лабораторным работам
Модуль 2
( Тема 4,
Тема 5,
Тема 6 )
Знает: назначение, правила
создания и использования
основных
динамических
структур данных, основы STL.
Умеет: работать с файловыми
потоками
в
С++,
обрабатывать
исключения,
создавать и использовать
основные
динамические
структуры данных
Владеет: навыками работы в
системе
программирования
для языка С++, навыками
оформления
отчетов
по
лабораторным работам и
индивидуальному заданию.
22
Технологии
формирования
компетенций
Средства
технологии
оценки
и
Объем
в ЗЕТ
Лекции
Лабораторные
работы
Защита отчетов
по
лабораторным
работам
Экзамен
1,6
Самостоятельная
работа
Выполнение
индивидуального
задания
Лекции
Защита отчетов
по
лабораторным
работам
Лабораторные
работы
Самостоятельная
работа
Выполнение
индивидуального
задания.
Защита
индивидуального
задания
Экзамен
1,9
СТО АлтГТУ 13.62.1.0667-2011
3-й семестр
Модуль
дисциплины
(раздел, тема)
Модуль 1
( Тема 1,
Тема 2,
Тема 3 )
Результаты освоения
дисциплины
Технологии
формирования
компетенций
Знает: основные конструкции
языка Java для создания
объектно-ориентированных
программ
Умеет: программировать
использованием классов
объектов в Java
с
и
Владеет: навыками работы в
системе
программирования
для языка Java, навыками
оформления
отчетов
по
лабораторным работам
Модуль 2
( Тема 4,
Тема 5,
Тема 6 )
Знает: основы Swing для
программирования
GUI,
правила
обработки
исключений, назначение и
правила
использования
основных коллекций.
Умеет: программировать GUI
с
использованием
Swing,
обрабатывать
исключения
создавать и использовать
основные коллекции
Владеет: навыками работы в
системе
программирования
для языка Java, навыками
построения диаграмм классов
UML, навыками оформления
отчетов по лабораторным
работам и курсовой работе.
Средства
технологии
оценки
и
Объем
в ЗЕТ
Лекции
Защита отчетов
по
лабораторным
работам
Лабораторные
работы
Экзамен
1,6
Самостоятельная
работа
Выполнение
курсовой работы.
Лекции
Лабораторные
работы
Самостоятельная
работа
Защита отчетов
по
лабораторным
работам
Защита курсовой
работы
2,4
Экзамен
Выполнение
курсовой работы.
23
СТО АлтГТУ 13.62.1.0667-2011
Приложение Б
(обязательное)
Методические указания к лабораторным работам
1-й семестр
Порядок выполнения лабораторных работ
1. Познакомиться с темой и целью лабораторной работы.
2. Изучить необходимые к выполнению лабораторной работы теоретические сведения
и примеры программ.
3. Познакомиться с общим заданием к лабораторной работе и индивидуальным
вариантом задания.
4. Разработать алгоритм решения задачи индивидуального варианта задания (в виде
блок – схемы).
5. Написать и отладить программу решения задачи индивидуального варианта.
6. Протестировать работу программы на различных наборах исходных данных.
7. Продемонстрировать преподавателю работу программы.
8. Оформить отчет.
9. Защитить лабораторную работу.
Оборудование, технические средства, инструмент
Лабораторные работы выполняются в компьютерном классе, оснащенном
персональными компьютерами. На компьютерах должна быть установлена система
программирования, поддерживающая создание консольных программ на С++, например,
Geany, Visual C++ или другие.
Требования к оформлению отчета
Отчет по лабораторной работе оформляется в виде принтерных распечаток на
сброшюрованных листах формата А4. Он должен содержать:
 титульный лист;
 задание к лабораторной работе (общее задание и индивидуальный вариант
задания);
 постановка задачи;
 алгоритм решения задачи в виде блок-схемы;
 листинг программы;
 тестовые примеры, иллюстрирующие все варианты работы программы.
Требования к защите лабораторных работ
После оформления отчета, лабораторную работу защищают, т. е. поясняют алгоритм
работы программы и отвечают на контрольные вопросы.
24
СТО АлтГТУ 13.62.1.0667-2011
1 Лабораторная работа №1. Основы С++
Цель работы: изучить основы языка С++ на примере программирования линейных
алгоритмов.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
а – треугольник; б – ромб; в – трапеция
Рисунок 1.8 – Обозначения элементов геометрических фигур
Написать программу, которая для фигуры, указанной в индивидуальном задании:
вводит с клавиатуры значения всех исходных данных, перечисленных в индивидуальном
задании (значения углов задаются в градусах); вычисляет все параметры заданной
фигуры, которые перечислены на рис. 1.8 и не входят в число исходных данных;
1.
В треугольнике (см. рис. 1.8, а) заданы три стороны a и b и c. Вычислить и вывести на
экран остальные элементы треугольника.
2.
В треугольнике (см. рис. 1.8, а) заданы сторона а и прилегающие к ней углы В и С.
Вычислить и вывести на экран остальные элементы треугольника.
3.
В треугольнике (см. рис. 1.8, а) заданы две стороны a и b и угол между ними С.
Вычислить и вывести на экран остальные элементы треугольника.
4.
В треугольнике (см. рис. 1.8, а) заданы две стороны a, b и площадь S. Вычислить и
вывести на экран остальные элементы треугольника.
5.
В треугольнике (см. рис. 1.8, а) заданы сторона а, угол С и площадь S. Вычислить и
вывести на экран остальные элементы треугольника.
6.
В треугольнике (см. рис. 1.8, а) заданы сторона b, угол А и радиус описанной
окружности R. Вычислить и вывести на экран остальные элементы треугольника.
25
СТО АлтГТУ 13.62.1.0667-2011
7.
В треугольнике (см. рис. 1,8, а) заданы углы А, В и радиус описанной окружности R.
Вычислить и вывести на экран остальные элементы треугольника.
8.
В треугольнике (см. рис. 1.8, а) заданы стороны а, b и радиус описанной окружности
R. Вычислить и вывести на экран остальные элементы треугольника.
9.
В треугольнике (см. рис. 1.8, я) заданы стороны а, b и половина периметра р.
Вычислить и вывести на экран остальные элементы треугольника.
10. В треугольнике (см. рис. 1.8, а) заданы углы А, С и высота hb. Вычислить и вывести
на экран остальные элементы.
11. В треугольнике (см. рис. 1.8, a) заданы стороны а, с и высота hb. Вычислить и
вывести на экран остальные элементы треугольника.
12. В треугольнике (см. рис. 1.8, а) заданы угол А, сторона с и высота hb. Вычислить и
вывести на экран остальные элементы треугольника.
13. В ромбе (см. рис. 1.8, б) заданы диагонали d1 и d2. Вычислить и вывести на экран
остальные элементы ромба.
14. В трапеции (см. рис. 1.8, в) заданы стороны а, b, с, d. Вычислить и вывести на экран и
в остальные элементы трапеции.
15. В трапеции (см. рис. 1.8, в) заданы стороны a, b, d и угол А. Вычислить и вывести на
экран остальные элементы трапеции.
Задание 2
Переписать программу индивидуального варианта задания 1, заменив ввод – вывод
данных в стиле языка С++ на вывод данных в стиле языка С.
Задание 3
Написать программу, реализующую линейный алгоритм задачи индивидуального
варианта.
1. Клоун предложил каждому из публики задумать число. Потом он сказал: «Прибавьте к
задуманному числу 5. Теперь из результата вычтите 2. А теперь к результату
прибавьте 7». Потом клоун спросил у желающих, какое число у каждого из них
получилось. Услышав ответ, он немедленно объявлял каждому, какое число тот
задумывал. Составьте программу, которая повторяла бы фокус клоуна.
2. Пусть даны четыре целых числа (hour, min, sec, time). Первые три из них (hour, min,
sec) – это время запуска ракеты в часах, минутах и секундах, четвертое (time)
определяет время полета в секундах. Найдите и напечатайте время возвращения
ракеты на землю.
3. Подсчитайте, сколько очков набрала команда «Динамо» в первом круге чемпионата
России по хоккею, если известно, что m встреч она выиграла, n встреч проиграла, k
встреч закончились ничьими, полагая, что за выигрыш команда получает 2 очка, за
ничью – 1 очко, за проигрыш – 0 очков.
4. Вы положили деньги в сбербанк на срочный депозит на квартал из расчета 24%
годовых. Составьте программу, которая вычислит причитающуюся вам сумму через 4
месяца.
5. Розничная цена мужского костюма составляет R рублей. Торговое наложение
магазина составляет T % от оптовой цены. Составьте программу определения
оптовой цены костюма.
6. Зарплата сотрудника частной фирмы составляет r рублей в месяц. Сколько денег он
получит за полгода после вычета налогов в размере t % ежемесячно и s % за
полгода.
26
СТО АлтГТУ 13.62.1.0667-2011
7. Определите стоимость набора конфет в упаковке, в который входят следующие
конфеты: Ласточка - 200 г. (1 кг этих конфет стоит L рублей), Чародейка – 250 г. (1 кг
этих конфет стоит R рублей), Факел – 150 г. (1 кг этих конфет стоит B рублей),
упаковка стоит U рублей.
8. Для того, чтобы печенье было рассыпчатым, в него кладут пекарский порошок. В его
состав входят пищевая сода – 25%, лимонная кислота – 15% и мука – 60%. Сколько
соды, лимонной кислоты и муки надо взять, чтобы приготовить А г пекарского
порошка?
9. Чтобы связать один шарф, требуется 200 г пряжи. Пряжа состоит на 40% из мохера и
на 60% из полиакрила. Сколько мохера и полиакрила потребуется, чтобы изготовить В
шарфов?
10. Чтобы заварить 1,5 л чая, нужно 30 г сухого чая. Чайник вмещает В л. Сколько нужно
сухого чая для заварки?
11. Целой переменной присвойте значение суммы цифр заданного трехзначного числа.
12. Пусть идет k-я секунда суток. Определите, сколько целых часов h и целых минут m
прошло к этому моменту.
13. Определите число, полученное выписыванием в обратном порядке цифр заданного
целого трехзначного числа x. Присвойте это число переменной m.
14. Пусть дано натуральное число n, состоящее из шести цифр. Определите число сотен
и тысяч в нем.
15. Сколько времени в минутах затратит школьник на дорогу от школы до стадиона, если
это расстояние составляет S км, а средняя скорость движения школьника – V км/ч.
Лабораторная работа №2. Ветвления и циклы
Цель работы: научиться программировать разветвленные и циклические алгоритмы
на языке С++.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать
программу,
реализующую
разветвляющийся
индивидуального варианта с использованием оператора if.
алгоритм
задачи
1.
Дано натуральное четырехзначное число n. Верно ли, что все четыре цифры
числа различны, как, например, различны все 4 цифры следующих чисел: 0123, 9760,
5432.
2.
Дано натуральное четырехзначное число n. Верно ли, что это число содержит ровно
три одинаковых цифры, как, например, числа 6676, 4544, 0006?
3.
Дано натуральное число n (n < 100). Определить первую и последнюю цифру числа n.
4.
Дано натуральное число n (n < 100). Определить: сколько цифр в числе и чему равна
сумма его цифр.
5.
Дано натуральное число 10 < n < 1000.
найти предпоследнюю цифру числа n.
6.
Дано натуральное число n (n < 99). Выяснить, верно ли, что n2 равно кубу суммы
цифр числа n.
Определить, сколько цифр в числе, и
27
СТО АлтГТУ 13.62.1.0667-2011
7.
Дано натуральное число n (n <=100), определяющее возраст человека в годах. Дать
для этого числа наименование" год", "года" или "лет", например: 1 год, 23 года, 45
лет.
8.
Даны вещественные числа а и R, представляющие собой длину стороны квадрата и
радиус круга на плоскости: Написать программу, выводящую в зависимости от
величин а и R одно из следующих сообщений: "круг помещается в квадрат"; "квадрат
помещается в круг"; "крут и квадрат не помещаются друг в друга".
9.
Даны положительные a, b, c, x. Выяснить, пройдет ли кирпич с ребрами а, b, c в
квадратное отверстие со стороной х. Просовывать кирпич в отверстие разрешается
только так, чтобы каждое из его ребер было параллельно или перпендикулярно
каждой из сторон отверстия. Ответ получить в текстовой форме; "можно" или
"нельзя".
10. Даны вещественные положительные числа a, b, c, d. Выяснить, можно ли
прямоугольник со сторонами а, b уместить внутри прямоугольника со сторонами c, d
так, чтобы каждая из сторон одного прямоугольника была параллельна или
перпендикулярна каждой стороне второго прямоугольника.
11. По данным вещественным числам А и В написать программу
решения линейного
уравнения А*х = В. Программа должна выводить одно из сообщений: "Уравнение
не имеет решений", "Уравнение имеет бесконечное множество решений" или
"Уравнение имеет единственное решение: х = <значение>".
12. Написать программу, которая по заданному значению А определяет количество
корней уравнения х2 = A + 1 и выводит значения корней вместе с необходимыми
сообщениями.
13. Даны положительные x, y, z. Выяснить, существует ли треугольник с длинами сторон
х, у, z. Ответ получить в текстовой форме: "существует" или "не существует".
14. Доказать, что любую целочисленную денежную сумму, большую 7 рублей,
можно выплатить без сдачи трешками и пятерками, то есть для данного целого n > 7
найти такие целые неотрицательные а и b что 3а +5b = n.
15. Дано натуральное четырехзначное число n (n < 9999). Является ли это
полиндромом (перевертышем), как, например, числа 2222, 6116, 0440?
число
Задание 2
Написать
программу,
реализующую
разветвляющийся
индивидуального варианта с использованием оператора switch.
алгоритм
задачи
1.
Составить программу, которая по введенному значению времени года должна
перечислить все месяцы этого сезона.
2.
Составить программу, которая по названию месяца выдавала бы количество дней в
месяце.
3.
Дан список дисциплин, изучаемых в АлтГТУ, и отчетность по ним. Составить
программу, которая по названию дисциплины выдавала бы отчетность по нему.
История (зачет, экзамен)
Культурология (зачет)
Иностранный язык (зачет, экзамен)
Программирование (экзамен)
Информатика (экзамен)
28
СТО АлтГТУ 13.62.1.0667-2011
4.
Дан список дисциплин, изучаемых в АлтГТУ, и номер семестра, когда они изучаются.
Составить программу, которая по номеру семестра выдавала бы список изучаемых
дисциплин.
История - 1
Культурология - 2
Иностранный язык – 1, 2, 3, 4
Программирование – 1, 2, 3
Информатика (экзамен)- 1
5.
Составить программу, которая по названию страны выдавала бы название ее
столицы (использовать не менее 6, 7 названий)
6.
Составить программу, которая реализовывала бы следующие действия:
введенному числу k (до 10) выдавала бы соответствующую римскую цифру.
7.
Составить программу, которая бы по значению переменной х, означающему
некоторую длину в следующих единицах измерения: дециметр, километр, метр,
миллиметр, сантиметр: выдавала бы эту длину в метрах.
8.
Для целого числа k от 1 до 9 напечатать фразу «мне k лет», учитывая при этом, что
при некоторых k слова «лет» надо заменить на слово «год» или «года».
9.
Составить программу, которая бы реализовала следующий алгоритм: переменной t
присвоить значение true, если, сочетание день, месяц образует правильную дату, и
значение false – иначе (учитывая количество дней в месяце и название месяца).
по
10. Для натурального числа k напечатать фразу «мы нашли k грибов в лесу», согласовав
окончание слова «гриб» с числом k.
11. Составить программу, которая бы по русскому названию языка программирования
выводила английское название этого языка.
12. Составить программу, которая бы реализовала следующий алгоритм: по порядковому
номеру дня года определить дату, т. е. число и месяц.
13. Составить программу, которая бы по введенному числу (до 10) выдавала бы
название этой цифры.
14. Составить программу, которая бы по введенному названию страны выдавала
название ее континента.
15. Составить программу, которая по названию месяца выдавала бы время года, к
которому он принадлежит.
Задание 3
Написать программу, реализующую циклический алгоритм задачи индивидуального
варианта.
1.
Вывести на экран таблицу стоимости, например, яблок в диапазоне от N г до M кг с
шагом 100 г.
2.
Вкладчик внес в сберкассу X рублей. Написать программу, вычисляющую, сколько
денег у вкладчика буден через N лет. Количество денег каждый год увеличивается на
Z% по отношению к предыдущему году.
3.
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка
работала m часов, а каждая следующая на 10 минут больше, чем предыдущая.
Сколько часов проработала вся бригада?
4.
Бизнесмен взял ссуду m тысяч рублей в банке под 20% годовых. Через сколько лет
его долг превысит s тысяч рублей, если за это время он не будет отдавать долг?
29
СТО АлтГТУ 13.62.1.0667-2011
5.
Билет называют «счастливым», если в его номере сумма первых трех цифр равна
сумме последних трех цифр. Подсчитайте число тех «счастливых» билетов, у
которых сумма первых трех цифр равна 13.
6.
Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день
он увеличивал пробег на 10 % от пробега предыдущего дня. Определить пробег
лыжника за второй, третий, … , N –й день тренировок и какой суммарный путь он
пробежал за N дней тренировок.
7.
Предприниматель, начав дело, взял кредит размером k рублей под p процентов
годовых и вложил его в свое дело. По прогнозам, оно должно давать прибыль r
рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и
если да, то через сколько лет?
8.
Для каждого посетителя парикмахерской (с одним мастером) известны t - момент его
прихода и to – продолжительность его обслуживания. Сколько клиентов обслужит
мастер за смену продолжительностью T?
9.
Гражданин 1 марта открыл счет в банке, вложив R руб. Через каждый месяц размер
вклада увеличивается на 2% от имеющейся суммы. Определить: а) прирост суммы
вклада за первый, второй, ….., двенадцатый месяц; б) сумму вклада через один, два,
…., двенадцать месяцев.
10. В некотором году (назовем его условно первым) на участке K гектар средняя
урожайность ячменя составила 20 центнеров с гектара. После этого каждый год
площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить:
а) урожайность за первый, второй, ….. , шестой год; б) площадь участка в первый,
второй, ….. , шестой год; в) какой урожай будет собран за шесть лет.
11. Начав тренировки, спортсмен в первый день пробежал 5 км. Каждый день он
увеличивал дневную норму на 10% нормы предыдущего дня. В какой день впервые
спортсмен пробежит более 20 км? В какой день впервые суммарный путь превысит
60 км?
12. На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить
программу для вывода на экран лучшего результата после каждого выступления
фигуристов.
13. Имеется кусок ткани длиной М метров. От него последовательно отрезаются куски
разной длины. Все данные по использованию ткани заносятся в компьютер.
Компьютер должен выдать сообщение о том, что материала не хватает, если будет
затребован кусок ткани, большей длины, чем имеется.
14. Известно время начала (например, 6:00) и окончания (24:00) работы некоторого
пригородного автобусного маршрута с одним автобусом на линии, а также
протяженность маршрута в минутах (в один конец) и время отдыха на конечных
остановках. Составить суточное расписание этого маршрута (моменты отправления с
конечных пунктов) без учета обеда и пересмен.
15. Найти число помощников деда из известной сказки про репку, если: - для
вытягивания репки надо развить усилие в N кг; - дед тянет с усилием D кг; - каждый
очередной i – й помощник тянет с усилием S / i / (i+1), где S – общее усилие всех
предыдущих участников вытягивания репки.
Лабораторная работа №3. Функции
Цель работы: научиться оформлять отдельные фрагменты программ в виде
функций.
30
СТО АлтГТУ 13.62.1.0667-2011
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
1. Написать программу, выводящую сумму и разность двух введенных чисел. Основная
программа запрашивает два числа и передает их в функцию. Функция реализует
вычисления и вывод на экран.
2. Написать программу, выводящую на экран длину гипотенузы прямоугольного
треугольника по двум катетам. Основная программа запрашивает длины катетов и
передает их в функцию. Функция реализует вычисления и вывод на экран.
3. Написать программу, выводящую на экран таблицу квадратов целых чисел,
расположенных между двумя числами. Основная программа запрашивает границы
диапазона чисел и передает их в функцию. Функция реализует вычисления и вывод на
экран.
4. Написать программу, выводящую на экран N символов. Основная программа
запрашивает символ, количество повторений этого символа и передает их в функцию.
Функция реализует вывод на экран.
5. Написать программу, вычисляющую X в степени Y. Основная программа запрашивает
основание и показатель степени и передает их в функцию. Функция реализует
вычисления и вывод на экран.
6. Написать программу, выводящую на экран результат сравнения двух чисел в виде:
A=10 B=5: A>B. Основная программа запрашивает два числа и передает их в
функцию. Функция реализует вывод на экран результат сравнения.
7. Написать программу, выводящую на экран сообщение является ли введенный с
клавиатуры символ десятичной цифрой, буквой или другим символом. Основная
программа запрашивает символ и передает его в функцию. Функция реализует
вычисление и вывод на экран.
8. Написать программу, выводящую на экран путь, пройденный пешеходом, если
известны скорость пешехода и время движения. Основная программа запрашивает
скорость и время и передает их в функцию. Функция реализует вычисление и вывод
на экран.
9. Написать программу, выводящую на экран площадь прямоугольника, если известны
длины его сторон. Основная программа запрашивает длины сторон и передает их в
функцию. Функция реализует вычисление и вывод на экран.
10. Написать программу, выводящую на экран сопротивление участка электрической
цепи, состоящей из двух сопротивлений. Основная программа запрашивает значения
сопротивлений, тип соединения (1-последовательное, 2-параллельное) и передает их
в функцию. Функция реализует вычисление и вывод на экран.
11. Написать программу, выводящую на экран сумму и среднее арифметическое N
случайных чисел, заданных в диапазоне от А до В. Основная программа запрашивает
значения N, А, В и передает их в функцию. Функция генерирует необходимое
количество случайных чисел из заданного диапазона, выводит их на экран,
производит вычисления и вывод результата на экран.
12. Написать программу, вычисляющую скидку на покупку и сумму покупки со скидкой.
Основная программа запрашивает сумму покупки и процент скидки и передает их в
функцию. Функция вычисляет сумму скидки и сумму покупки со скидкой и выводит
результат на экран.
13. Написать программу, вычисляющую X в степени Y и Y в степени X. Основная
программа запрашивает X и Y и передает их в функцию. Функция производит
вычисления и выводит результат на экран.
14. Написать программу, вычисляющую площадь круга и длину окружности по ее радиусу.
Основная программа запрашивает радиус и передает его в функцию. Функция
31
СТО АлтГТУ 13.62.1.0667-2011
производит вычисления и выводит результат.
15. Написать программу, вычисляющую периметр прямоугольника по длинам его сторон.
Основная программа запрашивает длины сторон и передает их в функцию. Функция
производит вычисления и выводит результат на экран.
Задание 2
1. Написать программу, выводящую на экран результат сравнения двух чисел в виде:
A=10 B=5: A>B. Основная программа запрашивает два числа, передает их в функцию
и в зависимости от возвращенного значения выводит сообщение. Функция
возвращает 1 если A больше B, 0 если A равно B, -1 если A меньше B.
2. Написать программу, выводящую на экран сообщение является ли введенный с
клавиатуры символ десятичной цифрой, буквой или другим символом. Основная
программа запрашивает символ, передает его в функцию и в зависимости от
возвращенного значения выводит сообщение. Функция возвращает 1 если символ
числовой, 0 если буквенный и -1 для остальных символов.
3. Написать программу, выводящую сумму или разность двух введенных чисел.
Основная программа запрашивает два числа и действие, передает их в функцию и
выводит результат. Функция возвращает результат требуемого действия.
4. Написать программу, выводящую на экран длину гипотенузы прямоугольного
треугольника по двум катетам. Основная программа запрашивает длины катетов,
передает их в функцию и выводит результат вычислений или сообщение об ошибке в
зависимости от возвращенного функцией значения. Функция проверяет корректность
переданных ей данных, производит вычисление и возвращает либо результат либо -1
если введены некорректные данные.
5. Написать программу, выводящую на экран корень квадратный введенного числа, до
тех пор, пока не будет введено число, корень квадратный которого равен самому
числу. Основная программа запрашивает число, передает его в функцию, в
зависимости от возвращенного значения выводит результат или сообщение об
ошибке. Функция проверяет корректность введенных данных и возвращает либо
вычисленное значение, либо -1 в случае ошибки.
6. Написать программу, выводящую на экран N символов. Основная программа
запрашивает символ и количество повторений этого символа, передает их в функцию,
по возвращенному результату выводит или не выводит сообщение об ошибке.
Функция проверяет корректность введенных данных и возвращает -1 если данные
введены не корректно или выводит символы и возвращает 0.
7. Написать программу, вычисляющую разрядность введенного целого числа. Основная
программа запрашивает число, передает его в функцию и выводит результат или
сообщение об ошибке. Функция определяет и возвращает разрядность числа. Если
введены неверные значения функция возвращает -1.
8. Написать программу, выводящую на экран площадь прямоугольника, если известны
длины его сторон. Основная программа запрашивает длины сторон, передает их в
функцию и выводит результат или сообщение об ошибке. Функция определяет и
возвращает площадь или -1, если введены неверные данные.
9. Написать программу, выводящую на экран сопротивление участка электрической
цепи, состоящей из двух сопротивлений. Основная программа запрашивает значения
сопротивлений и тип соединения (1-последовательное, 2-параллельное), передает их
в функцию и выводит на экран результат или сообщение об ошибке. Функция
определяет и возвращает значение сопротивления. Если введены неверные значения
функция возвращает -1.
10. Написать программу, выводящую на экран путь, пройденный пешеходом, если
известны скорость пешехода и время движения. Основная программа запрашивает
скорость и время, передает их в функцию и выводит результат или сообщение об
ошибке. Функция определяет и возвращает в основную программу пройденный путь.
Если введены неверные значения функция возвращает -1.
32
СТО АлтГТУ 13.62.1.0667-2011
11. Написать программу, вычисляющую скидку на покупку и сумму покупки со скидкой.
Основная программа запрашивает сумму покупки и процент скидки, передает их в
функцию и выводит полученный результат. Функция вычисляет сумму скидки и сумму
покупки со скидкой и возвращает их в основную программу.
12. Написать программу, выводящую на экран сумму и среднее арифметическое N
случайных чисел, заданных в диапазоне от А до В. Основная программа запрашивает
значения N, А, В, передает их в функцию, выводит полученный результат. Функция
генерирует необходимое количество случайных чисел из заданного диапазона,
выводит их на экран, производит вычисления и результат возвращает в основную
программу.
13. Написать программу, вычисляющую площадь круга и длину окружности по ее радиусу.
Основная программа запрашивает радиус и передает его в функцию, выводит
полученный результат. Функция производит вычисления и возвращает значения в
основную программу.
14. Написать программу, вычисляющую X в степени Y и Y в степени X. Основная
программа запрашивает X и Y, передает их в функцию, выводит полученный
результат. Функция производит вычисления и возвращает результат в основную
программу.
15. Написать программу, выводящую на экран потребляемую мощность и сопротивление
участка электрической цепи, если известны ток и падение напряжения на данном
участке. Основная программа запрашивает величину тока и падения напряжения,
передает их в функцию и выводит полученный результат. Функция вычисляет
потребляемую мощность и сопротивление на участке цепи и возвращает полученные
значения в основную программу.
Задание 3
1. Вводится последовательность целых чисел, 0 – конец последовательности. Для
каждого числа последовательности найти количество его делителей (функцией
оформить определение количества делителей числа).
2. Вводится последовательность из N целых чисел. Найти наименьшую по значению
цифру в каждом числе (функцией оформить определение наименьшей цифры числа).
3. Вводится последовательность из N целых чисел. Найти наибольшую по значению
четную цифру в каждом числе (функцией оформить определение наибольшей четной
цифры числа).
4. Вводится последовательность из N целых чисел. Найти в каждом числе количество
четных и нечетных цифр (функциями оформить определение количества четных и
нечетных цифр числа).
5. Вводится последовательность из N целых чисел. Найти среднее арифметическое его
цифр (функцией оформить определение среднего арифметического цифр числа).
6. Вводится последовательность целых чисел, 0 – конец последовательности. Функция
для каждого числа последовательности проверяет, представляют ли его цифры
строго возрастающую последовательность, например, 6543 (результатом функции
будет 1 – Да, 0 - НЕТ).
7. Вводится последовательность целых чисел, 0 - конец последовательности.
Определить, содержит ли последовательность хотя бы одно совершенное число. Для
определения совершенного числа создать функцию. Число называется совершенным,
если сумма всех делителей, меньших его самого, равна этому числу.
8. Вводится последовательность целых чисел, 0 – конец последовательности. Функция
для каждого числа последовательности проверяет, представляют ли его цифры
строго убывающую последовательность, например, 1234 (результатом функции будет
1 – Да, 0 - НЕТ).
9. Вводится последовательность из N целых чисел. Найти количество двух- и количество
трехразрядных чисел в последовательности (функцией оформить определение
количества разрядов числа).
33
СТО АлтГТУ 13.62.1.0667-2011
10. Вводится последовательность из N целых чисел. Для каждого числа
последовательности вывести новое число, которое получится после записи цифр
числа в обратном порядке (функцией оформить определение нового числа для
заданного).
11. Вводится последовательность из N целых чисел. Найти в каждом числе сумму четных
цифр (функцией оформить определение суммы четных цифр числа).
12. Вводится последовательность из N целых элементов. Для всех положительных
элементов последовательности вычислить n-ю степень (n-целое) и вывести ее на
печать. Вычисление степени оформить в виде функции.
13. Вводится последовательность из N целых чисел. Сформировать последовательность,
каждый элемент которой равен сумме цифр исходной последовательности. Найти
сумму цифр в сформированной последовательности (функцией оформить
определение суммы цифр числа).
14. Вводится последовательность из N целых положительных элементов. Подсчитать
количество совершенных чисел в последовательности. Для определения
совершенного числа создать функцию. Число называется совершенным, если сумма
всех делителей, меньших его самого, равна этому числу.
15. Вводится последовательность из N целых чисел. Каждое простое число
последовательности увеличить в два раза, посчитать количество простых чисел в
исходной последовательности (результатом функции будет 1 – число простое, 0 нет).
Лабораторная работа №4. Файлы
Цель работы: получить практический опыт написания программ с использованием
файлов.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать программу, реализующую алгоритм задачи индивидуального варианта. В
программе должна быть организована работа с бинарным файлом.
1. Создать бинарный файл f и записать в него целые числа. Организовать просмотр
бинарного файла и его обработку: Найти все четные числа и их количество.
2. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных после
первого нулевого элемента.
3. Создать бинарный файл f и записать в него целые числа. Организовать просмотр
бинарного файла и его обработку: найти сумму чисел, предшествующих первому
отрицательному числу в файле.
4. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти произведение чисел из файла,
меньших заданного числа b.
5. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти произведение чисел из файла,
расположенных между первым и последним нулевыми элементами.
6. Создать бинарный файл f и записать в него целые числа. Организовать просмотр
бинарного файла и его обработку: найти произведение чисел, предшествующих
первому положительному числу в файле.
34
СТО АлтГТУ 13.62.1.0667-2011
7. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных после
первого минимального.
8. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных
перед первым минимальным.
9. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных после
первого максимального.
10. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, больших заданного
числа a.
11. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных
перед первым максимальным.
12. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти количество чисел, расположенных
между первым минимальным и последним максимальным элементами.
13. Создать бинарный файл f и записать в него целые числа. Организовать просмотр
бинарного файла и его обработку: Найти все не четные числа и их сумму.
14. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти сумму чисел, расположенных
между первым минимальным и последним максимальным элементами.
15. Создать бинарный файл f и записать в него действительные числа. Организовать
просмотр бинарного файла и его обработку: найти количество положительных и
сумму отрицательных чисел.
Задание 2
Написать программу, реализующую алгоритм задачи индивидуального варианта. В
программе должна быть организована работа с текстовыми файлами.
1. В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в
текстовый файл h из текстового файла t только латинские буквы.
2. В текстовом файле t записаны целые числа.
отрицательные числа и их сумму.
Занести в текстовый файл h
3. В текстовом файле t записаны буквы латинского алфавита. Занести в текстовый файл
h из текстового файла t только строчные латинские буквы.
4. В текстовом файле t записаны целые числа.
положительные числа и их произведение.
Занести в текстовый файл h
5. В текстовом файле t записаны буквы латинского алфавита. Занести в текстовый
файл h из текстового файла t латинские буквы, заменить буквы 'р' на 'w'.
6. В текстовом файле t записаны целые числа, упорядоченные по убыванию. Занести в
текстовый файл h из текстового файла t целые числа, упорядоченные по
возрастанию.
7. Дан текстовый файл f. Подсчитать число вхождений в файл каждой из букв a, b, c, d, e,
f. Результат вывести в файл g в виде таблицы с комментариями.
8. В текстовом файле t записаны целые числа, упорядоченные по возрастанию.
Занести в текстовый файл h из текстового файла t целые числа, упорядоченные по
убыванию.
35
СТО АлтГТУ 13.62.1.0667-2011
9. Дан текстовый файл, содержащий программу на языке С. Проверить эту программу на
соответствие числа открывающих и закрывающих фигурных скобок.
10. Зашифровать текстовый файл, находящийся на диске А, прибавляя букву А к
нечетным символам текста, вычитая 1 из четных. Дешифровать его и просмотреть
результат шифровки и дешифровки в редакторе текста Блокнот.
11. Дан текстовый файл f, компоненты которого являются целыми числами. Записать в
текстовый файл g все четные числа исходного файла, в текстовый файл h – все
нечетные. Порядок следования чисел сохраняется. Записать в файл g и h
комментарии.
12. Зашифровать текстовый файл, прибавляя цифры 1,2,3 к символам текста
последовательно. Дешифровать его и просмотреть результат шифровки и
дешифровки в редакторе текста Блокнот.
13. Дан текстовый файл f, содержащий буквы и целые числа. Выбрать все числа, которые
делятся нацело на 2 и 4, но не делятся на 6. Записать эти числа в текстовый файл g, а
все остальные числа – в текстовый файл h.
14. Зашифровать текстовый файл, находящийся на диске А, прибавляя 1 к символам
текста кратным 10, букву О к остальным. Дешифровать его и просмотреть результат
шифровки и дешифровки в редакторе текста Блокнот.
15. Дан текстовый файл f. Создать новый файл g и переписать в него исходный файл в
обратном порядке, разделив пробелами.
Лабораторная работа №5. Массивы
Цель работы: освоить работу с массивами в С++ и научиться передавать массивы
в качестве параметров в функцию.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать программу, реализующую алгоритм решения задачи индивидуального
варианта. В программе должна быть организована работа с одномерным массивам.
1. Занести из файла в массив сведения о количестве осадков, выпавших за каждый из
12 месяцев одного года. Определить общее количество осадков за этот год,
среднемесячное количество осадков, количество засушливых месяцев (когда
количество осадков было меньше 30 мм), самый засушливый месяц года. Нахождение
самого засушливого месяца оформить в виде функции, в которую необходимо
передать в качестве параметра массив со сведениями о количестве осадков,
выпавших за каждый из 12 месяцев одного года.
2. Занести из файла в массив результаты измерений температуры воздуха, которые
проводились ежедневно в течении января месяца. Определить: а) среднемесячную
температуру января; b) сколько раз температура была выше 0 0 С; c) первую из
минимальных температур и вытеснить ее на последнее место, сдвинув все остальные
к началу массива. Программную реализацию пункта с) оформить в виде функции, в
которую необходимо передать в качестве параметра массив результатов ежедневных
измерений температуры воздуха за январь месяц.
3. В некоторых видах спортивных состязаний выступление каждого спортсмена
независимо оценивается несколькими судьями, затем из всей совокупности оценок
удаляются; наиболее высокая и наиболее низкая, а для оставшихся оценок
вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если
наиболее высокую оценку выставило несколько судей, то из совокупности оценок
36
СТО АлтГТУ 13.62.1.0667-2011
удаляется только одна такая оценка; аналогично поступают с наиболее низкими
оценками. В файле записаны натуральное число n и действительные положительные
числа а1, …, аn (n>З) - оценки, выставленные судьями одному из участников
соревнований. Занести из файла в массив оценки, выставленные судьями одному из
участников соревнований и определить оценку, которая пойдет в зачет этому
спортсмену. Программную реализацию алгоритма определения зачетной оценки
спортсмена оформить в виде отдельной функции, в которую передать в качестве
параметра массив оценок выставленных спортсмену судьями.
4. Занести из файла в массив результаты измерений температуры воздуха, которые
проводились ежедневно в течении декабря месяца. Определить: а) день, когда
температура была наибольшей; b) любой из самых холодных дней декабря; c)
среднюю температуру тех дней, которые предшествуют первому из самых холодных
дней в декабре. Программную реализацию пункта с) оформить в виде функции, в
которую необходимо передать в качестве параметра массив результатов ежедневных
измерений температуры воздуха за декабрь месяц.
5. Занести из файла в массив информацию о стоимости L – видов товара. Определить,
сколько видов товара имеют стоимость, меньшую, чем средняя стоимость всех видов
товара. С 1 января очередного года фирма прекращает продавать товар, стоимость
которого записана в n-м элементе массива. Получить массив со стоимостью всех
оставшихся видов товара. Фрагмент программы, определяющий сколько видов товара
имеют стоимость, меньшую, чем средняя стоимость всех видов товара, оформить в
виде функции, в которую необходимо передать в качестве параметра массив,
содержащий информацию о стоимости L – видов товара.
6. Занести из файла в массив результаты измерений температуры воздуха, которые
проводились ежедневно в течении февраля месяца. Определить: а) сколько дней в
феврале температура была выше средней; b) минимальную температуру второй
декады февраля; с) температуры любого из самых холодных и самых теплых дней
и поменяйте их местами. Программную реализацию пункта с) оформить в виде
функции, в которую необходимо передать в качестве параметра массив результатов
ежедневных измерений температуры воздуха за февраль месяц.
7. Занести из файла в массив информацию о количестве жителей в каждом из L городов.
После заполнения массива выяснилось, что значение последнего элемента не
соответствует требования упорядоченности (в порядке возрастания численности).
Изменить массив так, чтобы данные были упорядочены. Сортировку массива
оформить в виде отдельной функции, в которую необходимо передать массив в
качестве параметра.
8. Занести из файла в массив результаты измерений температуры воздуха, которые
проводились ежедневно в течении ноября месяца. Определить: а) день, когда первый
раз температура поднялась выше нуля; b) минимальную температуру тех дней
ноября, которые следуют после последнего из самых теплых дней в этом месяце; с)
сколько раз в ноябре температура меняла знак. Программную реализацию пункта b)
оформить в виде функции, в которую необходимо передать в качестве параметра
массив результатов ежедневных измерений температуры воздуха за ноябрь месяц.
9. Занести из файла в массив информацию о стоимости каждой из R книг. Определить
стоимость самых дорогих и самых дешевых книг. Вывести информацию о стоимости
каждой из R книг в порядке возрастания стоимости. Определение стоимости самых
дорогих и самых дешевых книг оформить в виде отдельной функции, в которую
необходимо передать в качестве параметра массив, содержащий информацию о
стоимости каждой из R книг.
10. Занести из файла в массив данные о температуре воды на Черноморском побережье
за сентябрь. Определить: а) сколько за это время было дней, пригодных для купания;
б) в какой из декад сентября было больше дней пригодных для купания?
37
СТО АлтГТУ 13.62.1.0667-2011
Программную реализацию пункта б) оформить в виде функции, в которую необходимо
передать в качестве параметра массив, содержащий данные о температуре воды на
Черноморском побережье за сентябрь.
11. Занести из файла в массив данные о количестве проживающих в каждой квартире
дома, состоящего из 30 квартир. а) Переселить жильцов так, чтобы жильцы первой
квартиры переехали в тридцатую, из тридцатой - в первую, из второй - в 29 и
т.д.. б) Найти количество квартир, в которых проживает более 5 человек.
Программную реализацию пункта а) оформить в виде функции, в которую необходимо
передать в качестве параметра массив, содержащий данные о количестве
проживающих в каждой квартире дома, состоящего из 30 квартир.
12. Занести из файла в массив информацию о росте каждого из К учеников класса (в
порядке убывания роста). В начале учебного года в класс поступили два новых
ученика. Получить аналогичный массив, учитывающий рост новых учеников и
перезаписать исходный файл. Сортировку массива оформить в виде отдельной
функции, в которую необходимо передать массив в качестве параметра.
13. Колокол. Считать массив А(n) из файла. В массиве наименьший элемент поместить
на первое место, наименьший из оставшихся – на последнее место, следующий по
величине – на второе место, следующий – на предпоследнее и так далее – до
середины массива. Реализацию выше описанных действий по изменению массива
оформить в виде отдельной функции, в которую передать массив в качестве
параметра.
14. Записать из файла в массив информацию о максимальной скорости каждой из N
моделей легковых автомобилей (в порядке возрастания). После заполнения массива
выяснилось, что значение k-го элемента не соответствует требованию
упорядоченности. Изменить массив так, чтобы данные были упорядочены. Сортировку
массива оформить в виде отдельной функции, в которую необходимо передать
массив в качестве параметра.
15. У прилавка в магазине выстроилась очередь из n покупателей. Время обслуживания
продавцом i-го покупателя равно ti (i=l, ... , n). Пусть даны натуральное n и
действительные ti , …., tn. Получить С1, … , Сn , где Ci - время пребывания i-го
покупателя в очереди (i= 1, … , n). Указать номер покупателя, для обслуживания
которого продавцу потребовалось самое малое время.
Задание 2
Написать программу, реализующую алгоритм задачи индивидуального варианта. В
программе необходимо организовать работу с двумерным массивом.
1. Оценки студентов. Записать из файла в двумерный массив информацию об оценках
каждого из N студентов группы по тому или иному предмету (в первой строке –
информация об оценках первого студента, во второй – второго и т. д.). Общее число
предметов равно K. Сформировать список оценок студентов, которые по всем K
предметам учатся на 4 и 5. Упорядочить этот список по убыванию среднего балла.
2. Результаты автогонщиков. Записать из файла в двумерный массив результаты
(время в минутах), показанные каждым из M автогонщиков на каждом из 10-ти этапов
соревнований “Формула-1” (в первой строке – результаты первого гонщика, во второй
– второго и т. д.). После десятого этапа гонщик с порядковым номером 4 выбыл из
соревнований. Удалить из массива результаты выбывшего гонщика. Среди
оставшихся автогонщиков определить номер автогонщика, имеющего наилучшее
среднее время после 10-ти этапов соревнований “Формула-1”.
3. Пруд с водой. Предположим, что целая матрица - это пруд с водой. В любое место
пруда бросают камешек. Место попадания обозначим цифрой 0. От камушка по воде
расходятся круги в виде цифр 1, 2, 3, ….. Написать программу для формирования
38
СТО АлтГТУ 13.62.1.0667-2011
поверхности пруда после попадания камушка в любую точку пруда, т.е. матрицу А(m,
n) заполнить следующим образом: для заданных k и r элементу Аkr присвоить
значение 0; элементам, окаймляющим его (соседним с ним) – значение 1; элементам
следующего окаймления – значение 2 и так далее до заполнения всей матрицы.
Записать полученную матрицу в файл.
4. Фирма имеет N магазинов. Информацию о доходе каждого магазина, за каждый месяц
года записать из файла в двумерный массив. Получить список доходов за каждый
месяц года для тех магазинов, чей доход за год превысил некоторое заданное число.
Упорядочить этот список по возрастанию годового дохода.
5. Результаты велогонщиков. В двумерный массив из файла записать результаты
(время в минутах), показанные каждым из K велогонщиков на каждом из 12-ти этапов
соревнований (в первом столбце – результаты первого этапа, во втором – второго и т.
д.).
Судейской
коллегией
результаты
пятого
этапа
были
признаны
недействительными. Удалить из массива результаты пятого этапа. Определить номер
велогонщика, имеющего наихудшее среднее время по итогам оставшихся этапов.
6. Работа комбайнера. Матрицу К(m, n) заполнить следующим образом. Элементам,
находящимся на периферии (по периметру матрицы), присвоить значение 1;
периметру оставшейся подматрицы – значение 2 и так далее до заполнения всей
матрицы. Записать полученную матрицу в файл.
7. В зрительном зале R рядов, в каждом из которых M мест (кресел). Информация о
проданных билетах записать из файла в двумерный массив, номера строк которого
соответствуют номерам рядов, а номера столбцов – номерам мест. Если билет на то
или иное место продан, то соответствующий элемент массива имеет значение 1, в
противном случае – 0. Определить: 1) в каком ряду максимальное количество
свободных мест? 2) на сколько рядов билеты полностью проданы?
8. Улитка. Матрицу М(k, k) заполнить натуральными числами от k до k2 по спирали,
начинающейся с левого верхнего угла и закрученной по часовой стрелке. Записать
полученную матрицу в файл.
9. Зарплата сотрудников. Записать из файла в двумерный массив информацию о
зарплате N сотрудников фирмы за каждый месяц года (в первом столбце – за январь,
во втором – за февраль и т. п.). Определить: 1) среднюю зарплату за каждый месяц;
2) номера сотрудников, имеющих максимальную среднегодовую зарплату.
10. Магическим квадратом порядка n называется квадратная таблица размером n x n,
состоящая из чисел 1, 2, ….., n2, так, что суммы по каждому столбцу, каждой строке и
каждой из двух диагоналей равны между собой. В файле хранится целочисленная
квадратная матрица. Записать целочисленную квадратную матрицу в двумерный
массив. Проверить, является ли заданная целочисленная квадратная матрица
магическим квадратом.
11. В поезде K вагонов, в каждом по M мест. Информацию о проданных на поезд билетах
записать из файла в двумерный массив, номера строк которого соответствуют
номерам вагонов, а номера столбцов – номерам мест. Если билет на то или иное
место продан, то соответствующий элемент массива имеет значение 1, в противном
случае – 0. Определить: 1) имеются ли свободные места в том или ином вагоне
поезда; 2) В какой вагон продано больше всего билетов?
12. В файле хранится Таблица футбольного чемпионата, заданная квадратной матрицей
порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю,
а каждый элемент, не принадлежащий главной диагонали, равен 2,1 или 0 (числу
очков, набранных в игре: 2—выигрыш, 1—ничья, 0—проигрыш). Записать таблицу
футбольного чемпионата в двумерный массив.
а) Найти число команд, имеющих больше побед, чем поражений.
39
СТО АлтГТУ 13.62.1.0667-2011
б) Определить номера команд, прошедших чемпионат без поражений.
в) Выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр.
13. Оценки учеников 1. Занести из файла в массив A фамилии учеников 11 класса, в
матрицу С – их оценки по 10 предметам за первое полугодие, в массив B – названия
этих предметов. Составить список неуспевающих учеников. Удалить из матрицы C все
оценки ученика, имеющего больше трех двоек, а из массива A – его фамилию.
14. Оценки учеников 2. Занести из файла в массив A фамилии учеников 11 класса, в
матрицу С – их оценки по 10 предметам за первое полугодие, в массив B – названия
этих предметов. Определить, по какому предмету самый высокий средний балл.
Составить список учеников в порядке убывания их среднего балла.
15. Замочная скважина. Даны мозаичные изображения замочной скважины и ключа.
Пройдет ли ключ в скважину? То есть даны матрицы К( m1,n1) и L(m2,n2), m1 > m2, n1
> n2, состоящие из нулей и единиц. Проверить, можно ли наложить матрицу L на
матрицу K (без поворота, разрешается только сдвиг) так, чтобы каждой единице
матрицы L соответствовал нуль в матрице К.
Лабораторная работа №6. Строки и структуры
Цель работы: получить практический опыт написания программ по обработке
информации с использованием строк и структур.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать программу, которая считывает текст из файла и обрабатывает его.
Обработку текстовой информации нужно организовать с использованием С – строк, т. е.
массивов символов, завершающихся символом с кодом ‘\0’.
1. Cчитать из текстового файла три предложения и вывести их в обратном порядке.
2. Считать текст из файла и вывести на экран только предложения, содержащие
введенное с клавиатуры слово.
3. Считать текст из файла и вывести на экран только строки, содержащие двузначные
числа.
4. Считать английский текст из файла и вывести на экран слова, начинающиеся с
гласных букв.
5. Считать текст из файла и вывести его на экран, меняя местами каждые два соседних
слова.
6. Считать текст из файла и вывести на экран только предложения, не содержащие
запятых.
7. Считать текст из файла и определить, сколько в нем слов, состоящих из не более чем
четырех букв.
8. Считать текст из файла и вывести на экран цитаты, то есть предложения,
заключенные в кавычки.
9. Считать текст из файла и вывести на экран только предложения, состоящие из
заданного количества слов.
10. Считать английский текст из файла и вывести на экран слова текста, начинающиеся и
оканчивающиеся на гласные буквы.
11. Считать английский текст из файла и вывести его на экран, заменив каждую первую
букву слов, начинающихся с гласной буквы, на прописную.
12. Считать текст из файла и вывести его на экран, заменив цифры от 0 до 9 на слова
«ноль», «один», …, «девять», начиная каждое предложение с новой строки.
13. Считать текст из файла, найти самое длинное слово и определяет, сколько раз оно
40
СТО АлтГТУ 13.62.1.0667-2011
встретилось в тексте.
14. Считать текст из файла и вывести его на экран, после каждого предложения
добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.
15. Считать текст из файла и вывести на экран сначала вопросительные, а затем
восклицательные предложения.
Задание 2
Разработать алгоритм и написать программу решения задачи индивидуального
варианта.
1. Список товаров, имеющихся на складе, включает: наименование товара, количество
единиц товара, цену единицы товара, дату поступления товара на склад. Для
описания списка товаров в программе необходимо использовать тип данных
структура. Для хранения списка товаров создать бинарный файл, ориентированный
на тип данных структура. Предусмотреть в программе просмотр бинарного файла и
выполнить его обработку: вывести в порядке возрастания стоимости список товаров,
хранящихся более одного месяца и стоимость которых превышает 1000 рублей.
2. Для получения места в общежитии формируется список студентов, который включает:
Ф. И. О. студента, номер группы (буква и четыре цифры), средний балл, доход на
одного члена семьи. Общежитие в первую очередь предоставляется тем студентам, у
которых доход на члена семьи меньше двух минимальных зарплат, затем остальным
в порядке уменьшения среднего балла. Для описания списка студентов в программе
необходимо использовать тип данных структура. Для хранения списка студентов
создать бинарный файл, ориентированный на тип данных структура. Предусмотреть в
программе просмотр бинарного файла и выполнить его обработку: вывести список
очередности предоставления мест в общежитии.
3. В справочной автовокзала хранится расписание рейсов автобусов. Для каждого рейса
указаны: номер рейса, тип автобуса, пункт назначения, время отправления, время
прибытия в конечный пункт. Для описания рейса в программе необходимо
использовать тип данных структура. Для хранения расписания рейсов автобусов
создать бинарный файл, ориентированный на тип данных структура. Предусмотреть в
программе просмотр бинарного файла
и выполнить его обработку: вывести
отсортированную информацию о рейсах, которыми можно воспользоваться для
прибытия в пункт назначения ранее заданного времени.
4. На междугородней АТС информация о разговорах содержит: дату разговора, код и
название города, время разговора, тариф, номер телефона в этом городе, номер
телефона абонента. Для описания информации о разговорах в программе
необходимо использовать тип данных структура. Для хранения информации о
разговорах создать бинарный файл, ориентированный на тип данных структура.
Предусмотреть в программе просмотр бинарного файла и выполнить его обработку:
вывести по каждому городу общее время разговоров и общую сумму. Вывод
осуществите в порядке возрастания суммы.
5. Информация о сотрудниках фирмы содержит: Ф. И. О. сотрудника, табельный номер,
количество отработанных часов за месяц, почасовой тариф. Рабочее время свыше
144 часов считается сверхурочным и оплачивается в двойном размере. Для описания
информации о сотрудниках фирмы в программе необходимо использовать тип данных
структура. Для хранения информации о сотрудниках фирмы создать бинарный файл,
ориентированный на тип данных структура. Предусмотреть в программе просмотр
бинарного файла и выполнить его обработку: вывести размер заработной платы
каждого сотрудника фирмы за вычетом подоходного налога, который составляет 13%
от суммы заработка. Информацию отсортируйте.
6. Информация об участниках спортивных соревнований содержит: Ф. И. О. игрока,
игровой номер, возраст, рост, вес. Для описания информации об участниках
спортивных соревнований в программе необходимо использовать тип данных
структура. Для хранения информации об участниках спортивных соревнований
создать бинарный файл, ориентированный на тип данных структура. Предусмотреть в
программе просмотр бинарного файла
и выполнить его обработку: вывести
41
СТО АлтГТУ 13.62.1.0667-2011
информацию о самых молодых, самых рослых и самых легких участниках
соревнований.
7. Для книг хранящихся в библиотеке задаются: регистрационный номер, Ф. И. О.
автора, название, год издания, издательство, количество страниц. Для описания книг
в программе необходимо использовать тип данных структура. Для хранения
информации о книгах создать бинарный файл, ориентированный на тип данных
структура. Предусмотреть в программе просмотр бинарного файла и выполнить его
обработку: вывести отсортированный список книг, изданных после заданного года
8. Различные цеха завода выпускают продукцию нескольких наименований. Сведения о
выпущенной продукции включают: наименование, количество, номер цеха. Для
описания сведений о выпущенной продукции в программе необходимо использовать
тип данных структура. Для хранения сведений о выпущенной продукции создать
бинарный файл, ориентированный на тип данных структура. Предусмотреть в
программе просмотр бинарного файла и выполнить его обработку: для заданного
цеха вывести информацию о выпущенной продукции в порядке убывания количества.
9. Информация о сотрудниках предприятия содержит: Ф. И. О. сотрудника, номер
отдела, должность, дату начала работы. Для описания информации о сотрудниках
предприятия в программе необходимо использовать тип данных структура. Для
хранения информации о сотрудниках создать бинарный файл, ориентированный на
тип данных структура. Предусмотреть в программе просмотр бинарного файла и
выполнить его обработку: вывести список сотрудников по указанному отделу в
порядке убывания стажа работы.
10. Ведомость абитуриентов, сдавших вступительные экзамены, содержит: Ф. И. О.
абитуриента, адрес, оценки по трем предметам. Для описания строки ведомости в
программе необходимо использовать тип данных структура. Для хранения ведомости
абитуриентов создать бинарный файл, ориентированный на тип данных структура.
Предусмотреть в программе просмотр бинарного файла и выполнить его обработку:
определить количество абитуриентов, проживающих в г. Барнаул и сдавших экзамены
со средним баллом не ниже 50. Вывести их фамилии в порядке возрастания среднего
балла.
11. Справочная служба содержит информацию о кинофильмах: название кинотеатра,
стоимость билета, время сеанса, адрес. Для описания информации о кинофильмах в
программе необходимо использовать тип данных структура. Для хранения
информации о кинофильмах создать бинарный файл, ориентированный на тип
данных структура. Предусмотреть в программе просмотр бинарного файла
и
выполнить его обработку: вывести адреса всех кинотеатров в порядке возрастания
стоимости билетов с указанным временем сеанса.
12. Информация о городах России содержит: название города, количество жителей,
количество школ, количество высших учебных заведений. Для описания информации
о городах России в программе необходимо использовать тип данных структура. Для
хранения информации о городах России создать бинарный файл, ориентированный
на тип данных структура. Предусмотреть в программе просмотр бинарного файла и
выполнить его обработку: вывести названия городов и количество жителей, где не
менее двух высших учебных заведений и количество школ не меньше заданного
числа.
13. Имеется информация о телевизорах на складе: наименование, фирма изготовитель,
стоимость, размер экрана, количество на складе. Для описания информации о
телевизорах на складе в программе необходимо использовать тип данных структура.
Для хранения информации о телевизорах на складе создать бинарный файл,
ориентированный на тип данных структура. Предусмотреть в программе просмотр
бинарного файла и выполнить его обработку: вывести в порядке возрастания
стоимости названия телевизоров и их количество на складе.
42
СТО АлтГТУ 13.62.1.0667-2011
Методические указания к лабораторным работам
2-й семестр
Порядок выполнения лабораторных работ
1. Познакомиться с темой и целью лабораторной работы.
2. Изучить необходимые к выполнению лабораторной работы теоретические сведения
и примеры программ.
3. Познакомиться с общим заданием к лабораторной работе и индивидуальным
вариантом задания.
4. Написать и отладить программу решения задачи индивидуального варианта.
5. Протестировать работу программы на различных наборах исходных данных.
6. Продемонстрировать преподавателю работу программы.
7. Оформить отчет.
8. Защитить лабораторную работу.
Оборудование, технические средства, инструмент
Лабораторные работы выполняются в компьютерном классе, оснащенном
персональными компьютерами. На компьютерах должна быть установлена система
программирования Qt Creator, поддерживающая создание
программ на С++ c
использованием библиотеки Qt.
Требования к оформлению отчета
Отчет по лабораторной работе оформляется в виде принтерных распечаток на
сброшюрованных листах формата А4. Он должен содержать:
 титульный лист;
 задание к лабораторной работе (общее задание и индивидуальный вариант
задания);
 постановка задачи;
 листинг программы;
 тестовые примеры, иллюстрирующие все варианты работы программы.
Требования к защите лабораторных работ
После оформления отчета, лабораторную работу защищают, т. е. поясняют алгоритм
работы программы и отвечают на контрольные вопросы.
43
СТО АлтГТУ 13.62.1.0667-2011
Лабораторная работа №1. Классы и объекты в С++
Цель работы: получить практические навыки создания простых классов на языке
С++ и изучить правила перегрузки операций для объектов простых классов.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Разработать консольную программу на языке С++, в которой описывается и
используется простой класс для объектов индивидуального варианта. Поля данных
класса должны быть закрытыми, а доступ к ним должен осуществляться с помощью
открытых методов. Кроме полей с данными в классе должны быть конструкторы,
деструктор и другие методы класса в соответствии с заданием. Создать массив объектов.
1. Student: Фамилия, Имя, Отчество, Дата рождения, Адрес, Телефон, Факультет, Курс.
Вывести:
а) список студентов заданного факультета;
б) списки студентов для каждого факультета и курса;
в) список студентов, родившихся после заданного года.
2. Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки. Вывести:
а) список абитуриентов, имеющих неудовлетворительные оценки;
б) список абитуриентов, сумма баллов у которых не меньше заданной;
в) выбрать N абитуриентов, имеющих самую высокую сумму баллов, и список
абитуриентов, имеющих полупроходной балл.
3. Aeroflot: Пункт назначения, Номер рейса, Тип самолета, Время вылета, Дни недели.
Вывести:
а) список рейсов для заданного пункта назначения;
б) список рейсов для заданного дня недели;
в) список рейсов для заданного дня недели, время вылета для которых больше
заданного.
4. Book: Автор, Название, Издательство, Год, Количество страниц. Вывести:
а) список книг заданного автора;
б) список книг, выпущенных заданным издательством;
в) список книг, выпущенных после заданного года.
5. Worker: Фамилия и инициалы, Должность, Год поступления на работу, Зарплата.
Вывести:
а) список работников, стаж работы которых на данном предприятии превышает
заданное число лет;
б) список работников, зарплата которых больше заданной;
в) список работников, занимающих заданную должность.
6. Train: Пункт назначения, Номер поезда, Время отправления,
Число общих мест, Купейных, Плацкартных. Вывести:
а) список поездов, следующих до заданного пункта назначения;
б) список поездов, следующих до заданного пункта назначения и отправляющихся
после заданного часа;
в) список поездов, отправляющихся до заданного пункта назначения и имеющих
общие места.
7. Product: Наименование, Производитель, Цена, Срок хранения,
Количество. Создать массив объектов. Вывести:
а) список товаров для заданного наименования;
б) список товаров для заданного наименования, цена которых не превышает
указанной;
в) список товаров, срок хранения которых больше заданного.
8. Patient: Фамилия, Имя, Отчество, Адрес, Номер медицинской карты, Диагноз. Вывести:
а) список пациентов, имеющих данный диагноз;
44
СТО АлтГТУ 13.62.1.0667-2011
б) список пациентов, номер медицинской карты которых находится в заданном
интервале.
9. Bus: Фамилия и инициалы водителя, Номер автобуса, Номер маршрута, Марка, Год
начала эксплуатации, Пробег. Вывести:
а) список автобусов для заданного номера маршрута;
б) список автобусов, которые эксплуатируются больше 10 лет;
в) список автобусов, пробег у которых больше 10 000 км.
10. Customer: Фамилия, Имя, Отчество, Адрес, Телефон, Номер кредитной карточки,
Номер банковского счета. Вывести:
а) список покупателей в алфавитном порядке;
б) список покупателей, номер кредитной карточки которых находится в заданном
интервале.
11. File: Имя файла, Размер, Дата создания, Количество обращений. Вывести:
а) список файлов, упорядоченный в алфавитном порядке;
б) список файлов, размер которых превышает заданный;
в) список файлов, число обращений к которым превышает заданное.
12. Word: Слово, Номера страниц, на которых слово встречается (от 1 до 10), Число
страниц. Вывести:
а) слова, которые встречаются более чем на N страницах;
б) слова в алфавитном порядке;
в) для заданного слова номера страниц, на которых оно встречается.
13. House: Адрес, Этаж, Количество комнат, Площадь. Вывести:
а) список квартир, имеющих заданное число комнат;
б) список квартир, имеющих заданное число комнат и расположенных на этаже,
который находится в определенном промежутке;
в) список квартир, имеющих площадь, превосходящую заданную.
14. Phone: Фамилия, Имя, Отчество, Адрес, Номер, Время внутригородских разговоров,
Время междугородних разговоров. Вывести:
а) сведения об абонентах, время внутригородских разговоров которых превышает
заданное;
б) сведения об абонентах, воспользовавшихся междугородней связью;
в) сведения об абонентах, выведенные в алфавитном порядке.
15. Person: Фамилия, Имя, Отчество, Адрес, Пол, Образование, Год рождения. Вывести:
а) список граждан, возраст которых превышает заданный;
б) список граждан с высшим образованием;
в) список граждан мужского пола.
Задание 2
Разработать консольную программу на языке С++, в которой описывается и
используется класс. Требования к оформлению класса те же, что и для первого задания.
Для объектов класса выполнить перегрузку операций, указанных в задании.
1. Класс «Время» должен включать поля данных: часы, минуты, секунды; методы: вывод
времени и часть суток (до 6:00 – ночь, до 12:00 – утро, до 18:00 – день, до 23:59:59 –
вечер) и перегруженные операции: сложение (+), вычитание (-), сравнение (< , >)
времени.
2. Класс «Матрица» должен включать поля данных: количество строк, количество
столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли
матрица диагональной, нулевой и перегруженные операции: сложение, вычитание,
деление, умножение матриц, умножение матрицы на число.
3. Класс «Комплексное число в алгебраической форме z=x+y*i» должен включать поля
данных: действительная (x) и мнимая (y) часть числа; методы: вычисление модуля
комплексного числа, возведение комплексного числа в степень, вывод комплексного
числа и перегруженные операции: сложение, вычитание, деление, умножение
комплексных чисел.
45
СТО АлтГТУ 13.62.1.0667-2011
4. Класс «Дата» должен включать поля данных: день, месяц, год; методы: вывод даты и
времени года и перегруженные операции: вычитание двух дат (-), сравнение двух дат
(< , >).
5. Класс «Прямая» должен включать поля данных: коэффициенты прямой y = ax +b;
методы: вывод уравнения прямой на экран, определение точек пересечения с осями и
перегруженные операции: проверка перпендикулярности прямых (!=), определение
угла между двумя прямыми (%).
6. Класс «Вектор» должен включать поля данных: координаты вектора; методы: вывод
вектора и перегруженные операции: сложение (+), скалярное (%) и векторное (*)
произведение векторов, вычисление угла между векторами.
7. Класс «Дата» должен включать поля данных: день, месяц, год; методы: вывод даты и
времени года и перегруженные операции: добавление (+) к дате целого числа
(количества дней), сравнение двух дат (< , >).
8. Класс «Матрица» должен включать поля данных: количество строк, количество
столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли
матрица симметричной (АТ = А) и перегруженные операции: сложение, вычитание,
деление, умножение матриц, умножение матрицы на число.
9. Класс «Комплексное число в алгебраической форме z=x+y*i» должен включать поля
данных: действительная (x) и мнимая (y) часть числа; методы: вычисление корня
комплексного числа, вывод комплексного числа и перегруженные операции: сложение,
вычитание, деление, умножение комплексных чисел.
10. Класс «Прямая» должен включать поля данных: координаты двух точек (x1, y1) и (x2,
y2); методы: вывод уравнения прямой вида y = ax + b и перегруженные операции:
проверка параллельности прямых (||), определение угла между двумя прямыми (%).
11. Класс «Вектор» должен включать поля данных: координаты вектора; методы: вывод
вектора, вычисление длины вектора и перегруженные операции: сложение (+),
скалярное (%) и векторное (*) произведение векторов.
12. Класс «Матрица» должен включать поля данных: количество строк, количество
столбцов, элементы матрицы; методы: вывод матрицы и проверка: является ли
матрица верхнее треугольной, нижнее треугольной и перегруженные операции:
сложение, вычитание, деление, умножение матриц, умножение матрицы на число.
Лабораторная работа №2. Отношения между классами и объектами
Цель работы: получить практические навыки организации и использования
отношений между классами и объектами в С++.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1: Разработать консольную программу на языке С++, в которой необходимо
определить базовый класс и на его основе производные классы. Кроме закрытых полей с
данными в классах должны быть методы доступа, конструкторы с параметрами,
деструктор, также методы и функции-друзья в соответствии с индивидуальным
вариантом задачи. С использование массива указателей на базовый класс создать
массив объектов производных классов и организовать работу с ним. В программе
необходимо продемонстрировать механизм динамического полиморфизма.
1. Базовый класс «СТУДЕНТ» описывает следующие данные о студентах университета:
ФИО, год поступления, курс, номер группы, размер стипендии, оценки по n предметам.
В состав класса входят следующие функции: виртуальный метод просмотра
информации о студенте, функция-друг, которая вычисляет средний балл и выводит
ФИО студента, у которого он максимальный. Производный класс
«СТУДЕНТОБЩЕСТВЕННИК» содержит следующие элементы: общественная работа, процент
46
СТО АлтГТУ 13.62.1.0667-2011
2.
3.
4.
5.
6.
надбавки к стипендии, переопределенный метод просмотра информации о студентахобщественниках. Производный класс
«СТУДЕНТ-СПОРТСМЕН» содержит
следующие элементы: вид спорта, переопределенный метод просмотра информации
о студентах-спортсменах.
Базовый класс «СОТРУДНИК» описывает следующие данные о сотрудниках фирмы:
ФИО сотрудника; табельный номер; количество отработанных часов за месяц;
почасовой тариф. В состав класса входят следующие функции: виртуальная функция
просмотра данных о сотрудниках; функция-друг, которая позволяет вывести размер
заработанной платы каждого сотрудника фирмы за вычетом подоходного налога,
который составляет 13 % от суммы заработка. Производный класс «СОТРУДНИККОМАНДИРОВКИ» содержит следующие элементы: количество командировочных
дней в течение месяца; процент надбавки к зарплате за каждый день командировки;
переопределенную функцию просмотра информации о сотрудниках, которые в текущем месяце побывали в командировке. Производный класс «СОТРУДНИКОБЩЕСТВЕННИК»
содержит следующие элементы: общественная работа;
переопределенную функцию просмотра информации о сотрудниках-общественниках.
Базовый класс «АБИТУРИЕНТ» описывает следующие данные об абитуриентах,
сдавших вступительные экзамены в университет: ФИО; адрес; оценки по предметам.
В состав класса входят следующие функции: виртуальная функция просмотра данных
о абитуриентах; функция-друг, позволяющая определить количество абитуриентов,
проживающих в заданном городе. Производный класс «АБИТУРИЕНТ-ЛЬГОТНИК»
содержит следующие данные: описание льготы и переопределенную функцию
просмотра информации об абитуриентах, имеющих льготы при поступлении.
Производный класс «АБИТУРИЕНТ-СПОРТСМЕН» содержит следующие данные: вид
спорта, соревнования, награды и переопределенный метод вывода данных об
абитуриентах- спортсменах.
Базовый класс «АВТОБУСНЫЙ РЕЙС» описывает следующие данные-элементы:
номер рейса, пункт назначения, цена билета, дата и время отправления, дата и время
прибытия на конечный пункт и следующие методы: виртуальную функцию просмотра
информации об автобусных рейсах, функцию-друга, которая должна вывести
информацию о рейсах, позволяющих добраться до указанного пункта. Производный
класс «РЕЙС-ЭКСПРЕСС» содержит следующие данные: процентная надбавка на
цену билета и переопределенную функцию просмотра данных о рейсах экспресс.
Производный класс «МЕЖДУНАРОДНЫЙ РЕЙС» содержит следующие данные:
страна и переопределенную функцию просмотра данных о международных
автобусных рейсах.
Базовый класс «ТЕЛЕФОН» описывает данные о разговорах на междугородней АТС:
дату разговора, код и название города, продолжительность разговора, тариф, номер
телефона в этом городе, номер телефона абонента. В класс входят следующие
функции: виртуальная функция просмотра данных о разговорах на междугородней
АТС, функция-друг, которая подсчитает суммарное время разговора с указанным
городом. Производный класс «ТЕЛЕФОН-ЛЬГОТЫ» содержит следующие данные о
льготных тарифах: вид льгот, процент для льготного тарифа, переопределенную
функцию просмотра данных о льготных разговорах на междугородней АТС.
Производный класс «СРОЧНЫЕ ВЫЗОВЫ» содержит следующие данные: надбавка к
тарифу за срочность вызова, переопределенную функцию просмотра данных о
срочных разговорах на междугородней АТС.
Базовый класс «ТОВАР» описывает данные о товарах, имеющихся на складе:
наименование товара, фирма-изготовитель. В класс входят следующие функции:
виртуальная функция просмотра данных о товарах, имеющихся на складе; функциядруг, которая позволяет вывести товары и их данные для указанной фирмыизготовителя. Производный класс «ИМПОРТИРУЕМЫЙ ТОВАР» содержит следующие
данные:
страна-поставщик;
дата
поставки;
количество
единиц
товара;
переопределенную функцию просмотра информации об импортируемых товарах.
Производный класс «ЭКСПОРТИРУЕМЫЙ ТОВАР» содержит следующие данные:
страна-заказчик; количество единиц товара, переопределенную функцию просмотра
информации об экспортируемых товарах.
47
СТО АлтГТУ 13.62.1.0667-2011
7. Базовый класс «ДЕТАЛЬ» описывает данные о партиях деталей, выпускаемых
различными цехами завода: наименование детали; количество деталей; номер цеха,
где они были изготовлены. В класс входят следующие функции: виртуальная функция
просмотра данных о партиях деталей, выпускаемых различными цехами завода;
функция-друг, позволяющая вычислить общее количество изделий указанного
наименования. Производный класс «ДЕТАЛЬ_1» имеет следующие элементы:
наличие дополнительного антикоррозийного покрытия; переопределенная функция
просмотра данных о партиях деталей. Производный класс «ДЕТАЛЬ_2» имеет
следующие элементы: коэффициент надежности в процентах для разных типов
деталей; переопределенная функция просмотра данных о партиях деталей.
8. Базовый класс «ТОВАР» описывает данные о товарах, имеющихся в компьютерном
магазине: шифр товара, дата поступления товара; фирма-поставщик, фирмаизготовитель, количество единиц товара. В класс входят следующие функции:
виртуальная функция просмотра данных о товарах, имеющихся в магазине; функциядруг, которая выводит информацию о фирмах-поставщиках, которые поставили
больше всего товаров. Производный класс «ТОВАР-КОМПЬЮТЕР»
содержит
следующие данные: тип компьютера (портативный, настольный); производитель; тип
процессора;
частота
процессора;
емкость
ОЗУ;
емкость
винчестера,
переопределенную функцию просмотра информации о товарах - компьютерах.
Производный класс «ТОВАР-МОНИТОР» содержит следующие данные: размер
монитора, тип монитора, переопределенную функцию просмотра информации о
товарах - мониторах.
9. Базовый класс «УЧАСТНИК СОРЕВНОВАНИЙ» описывает данные об участниках
спортивных соревнований: название соревнования, ФИО спортсмена, возраст, рост,
вес. В класс входят следующие элементы-функции: виртуальная функция просмотра
информации об участниках спортивных соревнований; функция-друг, которая выведет
информацию о самом легком спортсмене. Производный класс «УЧАСТНИК
СОРЕВНОВАНИЙ ПО ПЛАВАНИЮ» содержит элементы-данные: результирующее
время и переопределенную функцию просмотра данных об участниках соревнований
по плаванию. Производный класс «УЧАСТНИК СОРЕВНОВАНИЙ ПО СТРЕЛЬБЕ»
содержит
элементы-данные: набранные балы и переопределенную функцию
просмотра данных об участниках соревнований по стрельбе.
10. Базовый класс «АВИА-РЕЙСЫ» описывает следующие данные-элементы: номер
рейса; пункт назначения; цена билета; время отправления; время прибытия на
конечный пункт. В класс входят следующие функции: виртуальная функция просмотра
информации об авua - рейсах; функция-друг для вывода информации о рейсах,
отправляющихся в указанный пункт назначения по указанной цене билета.
Производный класс «АВИА-РЕЙСЫ ПО СТРАНЕ» содержит следующие данные: дни
вылета; переопределенную функцию просмотра данных о внутренних авua-рейсах.
Производный класс «МЕЖДУНАРОДНЫЕ АВИА-РЕЙСЫ» содержит: страна, дата
отправления и дата прибытия, переопределенную функцию просмотра данных о
международных авua-рейсах.
11. Базовый класс «БИБЛИОГРАФ» описывает следующие данные: ФИО сотрудника
библиотеки, год рождения, год поступления на работу, категория (библиограф,
старший библиограф, главный библиограф, заведующий отделом), название отдела.
В класс входят следующие функции: виртуальная функция вывода всех данных о
сотруднике библиотеки; функция-друг, которая позволяет вывести ФИО старших
библиографов отдела, название которого вводится с клавиатуры. Производный класс
«БИБЛИОГРАФ_1» имеет следующие элементы: количество выполняемых справокзаказов в день и переопределенную функцию вывода всех данных о сотруднике
библиотеки. Производный класс «БИБЛИОГРАФ_2» имеет следующие элементы:
количество выполняемых тематических справок в месяц и переопределенную
функцию вывода всех данных о сотруднике библиотеки.
12. Базовый класс «ПРЕПОДАВАТЕЛЬ»
описывает данные: ФИО преподавателя,
должность, кафедра. В класс входят следующие функции: виртуальная функция
просмотра данных о преподавателе; функция-друг, которая позволяет вывести список
преподавателей для указанной кафедры. Производный класс «КУРАТОР» содержит
48
СТО АлтГТУ 13.62.1.0667-2011
следующие данные: название курируемой группы, номер курса; переопределенную
функцию просмотра информации о преподавателях-кураторах. Производный класс
«НАУЧНЫЙ РУКОВОДИТЕЛЬ» содержит следующие данные: тема, ФИО студента,
переопределенную функцию просмотра информации о преподавателях - научных
руководителях.
Задание 2 Для каждого индивидуального варианта необходимо создать консольную
программу на С++, реализующую отношение ассоциации (агрегации или композиции)
между классами и объектами.
1. Класс «КОМНАТА», содержит закрытые поля: сведения о метраже, высоте потолков и
количестве окон и метод подсчета площади комнаты. Класс «КВАРТИРА», содержит
закрытые поля: номер этажа, массив объектов класса «КОМНАТА», метод подсчета
площади квартиры и метод вывода информации о комнатах квартиры.
2. Класс «СТУДЕНТ» содержит закрытые поля: номер студенческого билета, Фамилия,
Имя, Отчество, дата рождения, массив из пяти оценок и метод подсчета среднего
балла. Класс «СТУДЕНЧЕСКАЯ ГРУППА» содержит закрытые поля: название группы,
курс, массив объектов класса «СТУДЕНТ», метод подсчета среднего балла для группы
и метод вывода списка студентов, отсортированный по фамилиям в алфавитном
порядке.
3. Класс «АВТОМОБИЛЬ» содержит закрытые поля: гос. номер, цвет, фамилия
владельца и признак присутствия на стоянке и метод вывода сведений об автомобиле.
Класс «АВТОСТОЯНКА», содержит закрытые поля: название автостоянки, массив
объектов класса «АВТОМОБИЛЬ», методы поиска автомобиля по разным критериям и
методы вывода списка присутствующих и отсутствующих на стоянке автомобилей.
4. Класс «ЗАПИСЬ» содержит закрытые поля: фамилия, имя, номер телефона, дата
рождения. Класс «ЗАПИСНАЯ КНИЖКА», содержащий закрытые поля: фамилия и
инициалы владельца, массив объектов класса «ЗАПИСЬ», метод поиска номера
телефона и даты рождения по фамилии и имени, а также метод получения списка
людей, номер телефона которых начинается на три заданные цифры.
5. Класс «САМОЛЕТ» содержит закрытые поля: шестизначный номер рейса, название
пункта назначения, время отправления и метод вывода сведений о самолете. Класс
«АЭРОПОРТ» содержит закрытые поля: название аэропорта, массив объектов класса
«САМОЛЕТ», метод поиска информации о самолетах, отправляющихся в течении часа
после введенного с клавиатуры времени и метод вывода информации о самолетах,
отправляющихся в заданный пункт назначения. Информация должна быть
отсортирована по времени отправления.
6. Класс «КОМПЛЕКТУЮЩЕЕ» содержит закрытые поля: название, цена, гарантийный
срок и метод вывода сведений о комплектующем. Класс «КОМПЬЮТЕР» содержит
закрытые
поля:
серийный
номер,
марка,
массив
объектов
класса
«КОМПЛЕКТУЮЩЕЕ», метод замены комплектующих компьютера и метод вывода
списка комплектующих компьютера.
7. Класс «ПЕСНЯ» содержит закрытые поля: номер песни, название песни, композитор,
поэт, исполнитель и метод вывода сведений о песне. Класс «ДИСКИ» содержит
закрытые поля: название диска, цена, массив объектов класса «ПЕСНЯ», метод поиска
песни по названию, метод поиска песни по исполнителю и метод вывода списка песен
диска, упорядоченный по названию песни.
8. Класс «ПОЕЗД» содержит закрытые поля: номер поезда, название пункта назначения,
время отправления и метод вывода сведений о поезде. Класс «ВОКЗАЛ» содержит
закрытые поля: название вокзала, массив объектов класса «ВОКЗАЛ», метод поиска
49
СТО АлтГТУ 13.62.1.0667-2011
информации о поездах, отправляющихся после введенного с клавиатуры времени и
метод вывода информации о поездах, отправляющихся в заданный пункт назначения.
Информация должна быть отсортирована по времени отправления.
9. Класс «ТОВАР» содержит закрытые поля: название товара, стоимость единицы товара
в рублях, количество единиц товара и метод подсчета стоимости товара. Класс
«СКЛАД» содержит закрытые поля: название склада и массив объектов класса
«ТОВАР», метод подсчета стоимости всего товара и метод вывода списка товаров,
отсортированный по названию товара.
10. Класс «ЛЕКАРСТВО» содержит закрытые поля: название лекарства, цена, показания к
применению, противопоказания и метод вывода сведений о лекарстве. Класс
«АПТЕКА» содержит закрытые поля: название аптеки, номер аптеки, массив объектов
класса «ЛЕКАРСТВО», метод поступления новых лекарств в аптеку, метод поиска
лекарства по названию и метод вывода списка лекарств аптеки.
11. Класс «АВТОБУС» содержит закрытые поля: номер автобуса название пункта
назначения, время отправления и метод вывода сведений об автобусе. Класс
«АВТОВОКЗАЛ» содержит закрытые поля: название автовокзала, массив объектов
класса «АВТОБУС», метод поиска информации об автобусах, отправляющихся после
введенного с клавиатуры времени в заданный пункт назначения. Информация должна
быть отсортирована по времени отправления.
12. Класс «ЖИВОТНОЕ» содержит закрытые поля: кличка животного, название вида,
возраст, вес и метод вывода сведений о животном. Класс «ЗООПАРК» содержит
закрытые поля: название зоопарка, массив объектов класса «ЖИВОТНОЕ», метод
поступления новых животных в зоопарк, метод убытия животных из зоопарка и метод
вывода списка животных зоопарка.
Основы программирования GUI с
использованием Qt
Лабораторная работа №3.
Цель работы: получить практические навыки записи объектов в файл и чтения
объектов из файла, а также научиться создавать и использовать классы исключений.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание: Создать для программ
(задание 1) GUI с использованием Qt
индивидуальных вариантов лаб. работ. № 1, 2
Лабораторная работа №4. Классы файловых потоков. Обработка
исключительных ситуаций
Цель работы: получить практические навыки записи объектов в файл и чтения
объектов из файла, а также научиться обрабатывать исключительные ситуации.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1: Изменить программу, составленную на основе индивидуального варианта
задания 1 лабораторной работы №1. В программе реализовать возможность записи
объектов в файл и чтения объектов из файла. Осуществлять контроль состояния потоков.
В случае возникновения ошибок потоков генерировать и обрабатывать исключительные
50
СТО АлтГТУ 13.62.1.0667-2011
ситуации. Для соответствующих классов перегрузить операции вставки в поток и
извлечения из потока. При динамическом выделении памяти предусмотреть обработку
исключения, возникающего при нехватке памяти.
Задание 2: Изменить программу, составленную на основе индивидуального варианта
задания 1 лабораторной работы №2. В программе реализовать возможность записи
объектов в файл и чтения объектов из файла. Осуществлять контроль состояния потоков.
В случае возникновения ошибок потоков генерировать и обрабатывать исключительные
ситуации.
Лабораторная работа №5. Динамические структуры данных
Цель работы: получить практические навыки создания и использования основных
динамических структур данных.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1: При решении задачи индивидуального варианта необходимо описать
класс, который используется для представления элементов динамической структуры
данных и класс для работы с используемой динамической структурой данных, которая
при тестировании класса может быть построена путем ввода данных с клавиатуры или из
файла (в программе предусмотреть обе возможности).
1. Создать класс для работы со стеком. Элемент стека – действительное число.
Применить класс для вывода возрастающих серий последовательности
действительных чисел: a) в обратном порядке; б) в том же порядке (серия –
упорядоченная последовательность максимальной длины).
2. Построить класс для работы со стеком. Элемент стека – целое число. Ввести две
неубывающие последовательности чисел в два стека. Использовать третий стек
для слияния двух последовательностей в одну неубывающую.
3. Создать класс для работы со стеком. Элемент стека – символ. Сформировать два
стека, содержащие последовательности символов. Подсчитать общее число
элементов в стеках, предусмотреть восстановление их исходного расположения.
4. Создать класс для работы со стеком. Элемент стека – символ. Использовать стек
для проверки правильности расстановки скобок трех типов (круглых, квадратных и
фигурных) в выражении.
5. Построить класс для работы с односвязным списком. Элемент списка –
действительное число. Сформировать список, содержащий неубывающую
последовательность чисел, и преобразовать его так, чтобы последовательность
была невозрастающей. Для этого необходимо совершить переворот списка, т. е.
такую переустановку указателей в списке, при которой элементы его следуют друг
за другом в обратном порядке.
6. Построить класс для работы с односвязным списком. Элементы списка – целые
числа. Сформировать список, упорядочить элементы списка по возрастанию,
используя сортировку: a) методом выбора; б) методом пузырька; в) методом
вставки.
7. Построить класс для работы с односвязным списком. Элементы списка –
действительные числа. Создать два упорядоченных по не возрастанию списка,
слить их в один (также упорядоченный по не возрастанию), построив новый
список.
8. Построить класс для работы с односвязным списком. Элементы списка – слова.
Создать список, содержащий некоторую последовательность слов. Заменить в
списке каждое вхождение заданного слова другим (также заданным).
51
СТО АлтГТУ 13.62.1.0667-2011
9. Построить класс для работы с односвязным списком. Создать два списка: List1 и
List2. Проверить, содержатся ли элементы списка List1 в списке List2 в указанном
списком List1 порядке.
10. Построить класс для работы с односвязным списком. Элементы списка – целые
числа. Создать список List1. Построить список List2, содержащий порядковые
номера максимальных элементов списка List1.
11. Построить класс для работы с двусвязным списком. Элементы списка –
действительные числа. Создать список List1, содержащий последовательность X1,
X2, ….. , Xn. Построить список List2, содержащий последовательность X1, Xn, X2,
Xn-1, ……,, Xn, X1.
12. Создать класс для работы с бинарным деревом, узлы которого содержат целые
числа. Построить дерево, затем копию дерева. Подсчитать число листьев в нем
(листьями называются узлы, не содержащие поддеревьев).
13. Построить класс для работы с бинарным деревом, узлы которого содержат
действительные числа. Создать дерево. Определить высоту дерева
(максимальное число узлов, принадлежащих пути от корня дерева до любого из
его листьев). Подсчитать число элементов, равных максимальному.
14. Построить класс для работы с бинарным деревом, узлы которого содержат
действительные числа. Создать дерево для заданной последовательности чисел.
Используя его, упорядочить последовательность по возрастанию, убыванию.
Задание 2: Изменить программу, составленную на основе индивидуального варианта
задания 1 лабораторной работы №1. Для хранения объектов создать динамическую
структуру данных связный список. Организовать работу со связным списком объектов.
Задание 3: Изменить программу, составленную на основе индивидуального варианта
задания 1 лабораторной работы №1. Для хранения объектов создать динамическую
структуру данных бинарное дерево. Организовать работу с бинарным деревом объектов.
Лабораторная работа №6. Шаблоны. Стандартная библиотека шаблонов
Цель работы: получить практические навыки по использованию шаблонов классов.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание: Создать шаблоны классов в соответствии с индивидуальным вариантом
задания. При тестировании созданных шаблонов классов необходимо создавать объекты
с различными допустимыми значениями параметров шаблона (например, компоненты
вектора могут быть целыми, действительными или комплексными числами).
1. Создать шаблон класса для работы со стеком. Применить его для решения задач
№ 1 – 4 (лаб. работа № 5, задание 1).
2. Создать шаблон класса для работы с одномерным массивом. Выполнить
тестирование путем создания и обработки массивов, содержащих элементы
различных типов (например, сортировка элементов массивов различными
методами).
3. Создать шаблон класса Vector размерности n. Определить несколько
конструкторов, в том числе конструктор копирования. Реализовать методы для
вычисления модуля вектора, скалярного произведения, сложения, вычитания,
умножения на константу.
4. Создать шаблон класса “Квадратная матрица” – Matrix размерности n x n. Класс
должен содержать несколько конструкторов, в том числе конструктор
копирования. Реализовать методы для сложения, вычитания, умножения матриц.
52
СТО АлтГТУ 13.62.1.0667-2011
5. Создать шаблон класса «Многочлен» - Polynom степени n. Написать несколько
конструкторов, в том числе конструктор копирования. Реализовать методы для
вычисления значения полинома; сложения, вычитания и умножения полиномов.
6. Создать шаблон класса для работы с односвязным списком. Сформировать
список, содержащий неубывающую последовательность чисел, и преобразовать
его так, чтобы последовательность была невозрастающей. Для этого необходимо
совершить переворот списка, т. е. такую переустановку указателей в списке, при
которой элементы его следуют друг за другом в обратном порядке.
7. Создать шаблон класса для работы с односвязным списком. Создать два
упорядоченных по не возрастанию списка, слить их в один (также упорядоченный
по не возрастанию), построив новый список.
8. Создать шаблон класса для работы с бинарным деревом. Применить его для
сортировки действительных чисел и строк, вводимых с клавиатуры или из файла
9. Создать шаблон класса для работы с односвязным списком. Создать два списка:
List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в
указанном списком List1 порядке.
10. Создать шаблон класса для работы с односвязным списком. Создать список List1.
Построить список List2, содержащий порядковые номера максимальных
элементов списка List1.
11. Создать шаблон класса для работы с бинарным деревом. Построить дерево,
затем копию дерева. Подсчитать число листьев в нем (листьями называются
узлы, не содержащие поддеревьев).
12. Создать шаблон класса для работы с бинарным деревом. Создать дерево.
Определить высоту дерева (максимальное число узлов, принадлежащих пути от
корня дерева до любого из его листьев). Подсчитать число элементов, равных
максимальному.
13. Создать шаблон класса для работы с бинарным деревом. Создать дерево для
заданной
последовательности
чисел.
Используя
его,
упорядочить
последовательность по возрастанию, убыванию.
14. Создать шаблон класса Set (множество целых чисел, символов, строк) мощности
n. Написать несколько конструкторов, в том числе конструктор копирования.
Реализовать методы для определения принадлежности заданного элемента
множеству, пересечения, объединения, разности двух множеств.
53
СТО АлтГТУ 13.62.1.0667-2011
Методические указания к лабораторным работам
3-й семестр
Порядок выполнения лабораторных работ
1. Познакомиться с темой и целью лабораторной работы.
2. Изучить необходимые к выполнению лабораторной работы теоретические сведения и
примеры программ.
3. Познакомиться с общим заданием к лабораторной работе и индивидуальным
вариантом задания.
4. Написать и отладить программу решения задачи индивидуального варианта.
5. Протестировать работу программы на различных наборах исходных данных.
6. Продемонстрировать преподавателю работу программы.
7. Оформить отчет.
8. Защитить лабораторную работу.
Оборудование, технические средства, инструмент
Лабораторные работы выполняются в компьютерном классе, оснащенном
персональными компьютерами. На компьютерах должны быть установлены: JDK, Geany,
система программирования Netbeans, Eclipse или другие системы программирования на
Java, поддерживающие Swing.
Требования к оформлению отчета
Отчет по лабораторной работе оформляется в виде принтерных распечаток на
сброшюрованных листах формата А4. Он должен содержать:
 титульный лист;
 задание к лабораторной работе (общее задание и индивидуальный вариант
задания);
 постановка задачи;
 листинг программы;
 тестовые примеры, иллюстрирующие все варианты работы программы.
Требования к защите лабораторных работ
После оформления отчета, лабораторную работу защищают, т. е. поясняют алгоритм
работы программы и отвечают на контрольные вопросы.
54
СТО АлтГТУ 13.62.1.0667-2011
Лабораторная работа №1. Введение в Java
Цель работы: научиться создавать простые программы на Java с использованием
циклов и массивов, а также уметь работать с командной строкой, компилировать и
выполнять программы в консоли.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать программу, реализующую циклический алгоритм задачи индивидуального
варианта.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Вкладчик внес в сберкассу X рублей. Написать программу, вычисляющую, сколько
денег у вкладчика буден через N лет. Количество денег каждый год увеличивается на
Z% по отношению к предыдущему году.
Вывести на экран таблицу стоимости, например, яблок в диапазоне от N г до M кг с
шагом 100 г.
Бизнесмен взял ссуду m тысяч рублей в банке под 20% годовых. Через сколько лет
его долг превысит s тысяч рублей, если за это время он не будет отдавать долг?
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка
работала m часов, а каждая следующая на 10 минут больше, чем предыдущая.
Сколько часов проработала вся бригада?
Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день
он увеличивал пробег на 10 % от пробега предыдущего дня. Определить пробег
лыжника за второй, третий, … , N –й день тренировок и какой суммарный путь он
пробежал за N дней тренировок.
Билет называют «счастливым», если в его номере сумма первых трех цифр равна
сумме последних трех цифр. Подсчитайте число тех «счастливых» билетов, у
которых сумма первых трех цифр равна 13.
Для каждого посетителя парикмахерской (с одним мастером) известны t - момент его
прихода и to – продолжительность его обслуживания. Сколько клиентов обслужит
мастер за смену продолжительностью T?
Предприниматель, начав дело, взял кредит размером k рублей под p процентов
годовых и вложил его в свое дело. По прогнозам, оно должно давать прибыль r
рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и
если да, то через сколько лет?
В некотором году (назовем его условно первым) на участке K гектар средняя
урожайность ячменя составила 20 центнеров с гектара. После этого каждый год
площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить:
а) урожайность за первый, второй, ….. , шестой год; б) площадь участка в первый,
второй, ….. , шестой год; в) какой урожай будет собран за шесть лет.
Гражданин 1 марта открыл счет в банке, вложив R руб. Через каждый месяц размер
вклада увеличивается на 2% от имеющейся суммы. Определить: а) прирост суммы
вклада за первый, второй, ….., двенадцатый месяц; б) сумму вклада через один, два,
…., двенадцать месяцев.
На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить
программу для вывода на экран лучшего результата после каждого выступления
фигуристов.
Начав тренировки, спортсмен в первый день пробежал 5 км. Каждый день он
увеличивал дневную норму на 10% нормы предыдущего дня. В какой день впервые
спортсмен пробежит более 20 км? В какой день впервые суммарный путь превысит
60 км?
Известно время начала (например, 6:00) и окончания (24:00) работы некоторого
пригородного автобусного маршрута с одним автобусом на линии, а также
протяженность маршрута в минутах (в один конец) и время отдыха на конечных
55
СТО АлтГТУ 13.62.1.0667-2011
остановках. Составить суточное расписание этого маршрута (моменты отправления с
конечных пунктов) без учета обеда и пересмен.
14. Имеется кусок ткани длиной М метров. От него последовательно отрезаются куски
разной длины. Все данные по использованию ткани заносятся в компьютер.
Компьютер должен выдать сообщение о том, что материала не хватает, если будет
затребован кусок ткани, большей длины, чем имеется.
15. Найти число помощников деда из известной сказки про репку, если: - для
вытягивания репки надо развить усилие в N кг; - дед тянет с усилием D кг; - каждый
очередной i – й помощник тянет с усилием S / i / (i+1), где S – общее усилие всех
предыдущих участников вытягивания репки.
Задание 2
Написать программу, реализующую алгоритм решения задачи индивидуального
варианта. В программе должна быть организована работа с одномерным массивам.
1. В некоторых видах спортивных состязаний выступление каждого спортсмена
независимо оценивается несколькими судьями, затем из всей совокупности оценок
удаляются; наиболее высокая и наиболее низкая, а для оставшихся оценок
вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если
наиболее высокую оценку выставило несколько судей, то из совокупности оценок
удаляется только одна такая оценка; аналогично поступают с наиболее низкими
оценками. Записать в массив действительные положительные числа а1, …, аn (n>З) оценки, выставленные судьями одному из участников соревнований. Определить
оценку, которая пойдет в зачет этому спортсмену.
2. Занести в массив результаты измерений температуры воздуха, которые проводились
ежедневно в течении декабря месяца. Определить: а) день, когда температура была
наибольшей; b) любой из самых холодных дней декабря; c) среднюю температуру тех
дней, которые предшествуют первому из самых холодных дней в декабре.
3. Занести в массив сведения о количестве осадков, выпавших за каждый из 12 месяцев
одного года. Определить общее количество осадков за этот год, среднемесячное
количество осадков, количество засушливых месяцев (когда количество осадков было
меньше 30 мм), самый засушливый месяц года.
4. Занести в массив результаты измерений температуры воздуха, которые проводились
ежедневно в течении января месяца. Определить: а) среднемесячную температуру
января; b) сколько раз температура была выше 0 0 С; c) первую из минимальных
температур и вытеснить ее на последнее место, сдвинув все остальные к началу
массива.
5. Занести в массив информацию о количестве жителей в каждом из L городов. После
заполнения массива выяснилось, что значение последнего элемента не соответствует
требования упорядоченности (в порядке возрастания численности). Изменить массив
так, чтобы данные были упорядочены.
6. Занести в массив результаты измерений температуры воздуха, которые проводились
ежедневно в течении ноября месяца. Определить: а) день, когда первый раз
температура поднялась выше нуля; b) минимальную температуру тех дней ноября,
которые следуют после последнего из самых теплых дней в этом месяце; с) сколько
раз в ноябре температура меняла знак.
7. Занести в массив информацию о стоимости L – видов товара. Определить, сколько
видов товара имеют стоимость, меньшую, чем средняя стоимость всех видов товара.
С 1 января очередного года фирма прекращает продавать товар, стоимость которого
записана в n-м элементе массива. Получить массив со стоимостью всех оставшихся
видов товара.
8. Занести в массив результаты измерений температуры воздуха, которые проводились
ежедневно в течении февраля месяца. Определить: а) сколько дней в феврале
температура была выше средней; b) минимальную температуру второй декады
февраля; с) температуры любого из самых холодных и самых теплых
дней и
поменяйте их местами.
56
СТО АлтГТУ 13.62.1.0667-2011
9. Занести в массив данные о количестве проживающих в каждой квартире дома,
состоящего из 30 квартир. а) Переселить жильцов так, чтобы жильцы первой
квартиры переехали в тридцатую, из тридцатой - в первую, из второй - в 29 и
т.д.. б) Найти количество квартир, в которых проживает более 5 человек.
10. Занести в массив информацию о росте каждого из К учеников класса (в порядке
убывания роста). В начале учебного года в класс поступили два новых ученика.
Получить аналогичный массив, учитывающий рост новых учеников.
11. Занести в массив информацию о стоимости каждой из R книг. Определить стоимость
самых дорогих и самых дешевых книг. Вывести информацию о стоимости каждой из R
книг в порядке возрастания стоимости.
12. Занести в массив данные о температуре воды на Черноморском побережье за
сентябрь. Определить: а) сколько за это время было дней, пригодных для купания; б)
в какой из декад сентября было больше дней пригодных для купания?
13. Записать в массив информацию о максимальной скорости каждой из N моделей
легковых автомобилей (в порядке возрастания). После заполнения массива
выяснилось, что значение k-го элемента не соответствует требованию
упорядоченности. Изменить массив так, чтобы данные были упорядочены.
14. Колокол. В массиве А(n) наименьший элемент поместить на первое место,
наименьший из оставшихся – на последнее место, следующий по величине – на
второе место, следующий – на предпоследнее и так далее – до середины массива.
15. У прилавка в магазине выстроилась очередь из n покупателей. Время обслуживания
продавцом i-го покупателя равно ti (i=l, ... , n). Пусть даны натуральное n и
действительные ti , …., tn. Получить С1, … , Сn , где Ci - время пребывания i-го
покупателя в очереди (i= 1, … , n). Указать номер покупателя, для обслуживания
которого продавцу потребовалось самое малое время.
Задание 3
Написать программу, реализующую алгоритм задачи индивидуального варианта. В
программе необходимо организовать работу с двумерным массивом.
1. Результаты автогонщиков. Записать в двумерный массив результаты (время в
минутах), показанные каждым из M автогонщиков на каждом из 10-ти этапов
соревнований “Формула-1” (в первой строке – результаты первого гонщика, во второй
– второго и т. д.). После десятого этапа гонщик с порядковым номером 4 выбыл из
соревнований. Удалить из массива результаты выбывшего гонщика. Среди
оставшихся автогонщиков определить номер автогонщика, имеющего наилучшее
среднее время после 10-ти этапов соревнований “Формула-1”.
2. Оценки студентов. Записать в двумерный массив информацию об оценках каждого из
N студентов группы по тому или иному предмету (в первой строке – информация об
оценках первого студента, во второй – второго и т. д.). Общее число предметов равно
K. Сформировать список оценок студентов, которые по всем K предметам учатся на 4
и 5. Упорядочить этот список по убыванию среднего балла.
3. Фирма имеет N магазинов. Информацию о доходе каждого магазина, за каждый месяц
года записать в двумерный массив. Получить список доходов за каждый месяц года
для тех магазинов, чей доход за год превысил некоторое заданное число.
Упорядочить этот список по возрастанию годового дохода.
4. Пруд с водой. Предположим, что целая матрица - это пруд с водой. В любое место
пруда бросают камешек. Место попадания обозначим цифрой 0. От камушка по воде
расходятся круги в виде цифр 1, 2, 3, ….. Написать программу для формирования
поверхности пруда после попадания камушка в любую точку пруда, т.е. матрицу А(m,
n) заполнить следующим образом: для заданных k и r элементу Аkr присвоить
значение 0; элементам, окаймляющим его (соседним с ним) – значение 1; элементам
следующего окаймления – значение 2 и так далее до заполнения всей матрицы.
5. Работа комбайнера. Матрицу К(m, n) заполнить следующим образом. Элементам,
находящимся на периферии (по периметру матрицы), присвоить значение 1;
периметру оставшейся подматрицы – значение 2 и так далее до заполнения всей
матрицы.
57
СТО АлтГТУ 13.62.1.0667-2011
6. Результаты велогонщиков. В двумерный массив записать результаты (время в
минутах), показанные каждым из K велогонщиков на каждом из 12-ти этапов
соревнований (в первом столбце – результаты первого этапа, во втором – второго и т.
д.).
Судейской
коллегией
результаты
пятого
этапа
были
признаны
недействительными. Удалить из массива результаты пятого этапа. Определить номер
велогонщика, имеющего наихудшее среднее время по итогам оставшихся этапов.
7. Улитка. Матрицу М(k, k) заполнить натуральными числами от k до k 2 по спирали,
начинающейся с левого верхнего угла и закрученной по часовой стрелке.
8. В зрительном зале R рядов, в каждом из которых M мест (кресел). Информация о
проданных билетах записать в двумерный массив, номера строк которого
соответствуют номерам рядов, а номера столбцов – номерам мест. Если билет на то
или иное место продан, то соответствующий элемент массива имеет значение 1, в
противном случае – 0. Определить: 1) в каком ряду максимальное количество
свободных мест? 2) на сколько рядов билеты полностью проданы?
9. Магическим квадратом порядка n называется квадратная таблица размером n x n,
состоящая из чисел 1, 2, ….., n2, так, что суммы по каждому столбцу, каждой строке и
каждой из двух диагоналей равны между собой. Записать целочисленную квадратную
матрицу в двумерный массив. Проверить, является ли заданная целочисленная
квадратная матрица магическим квадратом.
10. Зарплата сотрудников. Записать в двумерный массив информацию о зарплате N
сотрудников фирмы за каждый месяц года (в первом столбце – за январь, во втором –
за февраль и т. п.). Определить: 1) среднюю зарплату за каждый месяц; 2) номера
сотрудников, имеющих максимальную среднегодовую зарплату.
11. Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой
все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не
принадлежащий главной диагонали, равен 2,1 или 0 (числу очков, набранных в игре:
2—выигрыш, 1—ничья, 0—проигрыш).
а) Найти число команд, имеющих больше побед, чем поражений.
б) Определить номера команд, прошедших чемпионат без поражений.
в) Выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр.
12. В поезде K вагонов, в каждом по M мест. Информацию о проданных на поезд билетах
записать в двумерный массив, номера строк которого соответствуют номерам
вагонов, а номера столбцов – номерам мест. Если билет на то или иное место продан,
то соответствующий элемент массива имеет значение 1, в противном случае – 0.
Определить: 1) имеются ли свободные места в том или ином вагоне поезда;
2) В какой вагон продано больше всего билетов?
13. Оценки учеников 1. Занести в массив A фамилии учеников 11 класса, в матрицу С –
их оценки по 10 предметам за первое полугодие, в массив B – названия этих
предметов. Составить список неуспевающих учеников. Удалить из матрицы C все
оценки ученика, имеющего больше трех двоек, а из массива A – его фамилию.
14. Замочная скважина. Даны мозаичные изображения замочной скважины и ключа.
Пройдет ли ключ в скважину? То есть даны матрицы К( m1,n1) и L(m2,n2), m1 > m2, n1
> n2, состоящие из нулей и единиц. Проверить, можно ли наложить матрицу L на
матрицу K (без поворота, разрешается только сдвиг) так, чтобы каждой единице
матрицы L соответствовал нуль в матрице К.
15. Оценки учеников 2. Занести в массив A фамилии учеников 11 класса, в матрицу С –
их оценки по 10 предметам за первое полугодие, в массив B – названия этих
предметов. Определить, по какому предмету самый высокий средний балл. Составить
список учеников в порядке убывания их среднего балла.
Лабораторная работа №2. Классы и объекты
Цель работы: научиться создавать простые классы и объекты, а также уметь
работать со строками в Java.
58
СТО АлтГТУ 13.62.1.0667-2011
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Написать программу, создающую класс в соответствии с индивидуальным вариантом.
В программе создать одиночные объекты и массив объектов класса индивидуального
варианта и вызвать методы.
1. Класс CCrosslines описывает две прямые на плоскости:
Свойства класса:
 координаты точки пересечения x, y;
 коэффициент для первой и второй прямой a1 и a2;
 смещение b1 и b2 (в соответствии с уравнением прямой: y = ax + b);
 флаг, который определяет наличие или отсутствие точки пересечения прямых.
Методы класса:
 конструктор: присвоение нулевых значений a, b и флагу;
 ввод пользователем параметров прямых a1, a2, b1, b2;
 определение координаты точки пересечения прямых, присвоение значения 0
или 1 флагу;
 вывод параметров прямых a1, a2, b1, b2;
 вывод координат точки пересечения или сообщения, что прямые не
пересекаются.
2. Класс CCircle описывает круг.
Свойства класса:
 координаты точки центра круга x, y;
 радиус R;
 площадь S;
 периметр P.
Методы класса:
 конструктор: присвоение нулевых значений свойствам класса;
 ввод пользователем значений координат точки центра круга и радиуса;
 вычисление и вывод на экран значения площади круга;
 вычисление и вывод на экран значения периметра круга;
 определение, лежит ли внутри круга точка, координаты которой вводит
пользователь.
3. Класс CPtoD для перевода полярных координат в декартовы.
Свойства класса:
 угол в радианах rad;
 радиус R;
 координата х;
 координата у.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 задание пользователем величины угла в градусах и радиуса;
 перевод величины угла в градусах в радианы;
 вычисление координат х и у по значению угла в радианах и радиусу;
 вывод на экран координат х и у.
4. Класс CSquareUr для решения квадратного уравнения.
Свойства класса:
 коэффициенты а, b, с квадратного уравнения
 корни х1 и х2;
 флаг, показывающий количество корней (0, 1 или 2).
59
СТО АлтГТУ 13.62.1.0667-2011
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем значений а, b и с;
 вывод на экран значений а, b, с;
 вычисление корней, присвоение определенного значения флагу;
 вывод на экран корней или сообщения, что их нет (с проверкой флага).
5. Класс CRomb описывет ромб.
Свойства класса:
 диагонали ромба d1 и d2;
 площадь S;
 периметр P.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем значений свойств класса;
 вычисление и вывод на экран значения площади ромба;
 вычисление и вывод на экран значения периметра ромба;
 вычисление длины стороны ромба и вывод ее значения на экран.
6. Класс для описания прямоугольного треугольника CPrTreug.
Свойства класса:
 катеты прямоугольного треугольника k1 и k2;
 гипотенуза g;
 площадь S;
 периметр P.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем с клавиатуры значений свойств класса;
 расчет величины гипотенузы и вывод ее значения на экран;
 расчет площади треугольника и вывод ее значения на экран;
 расчет периметра треугольника и вывод его значения на экран.
7. Класс для описания параллелепипеда CParal.
Свойства класса:
 ширина, длина и высота параллелепипеда w, l и h;
 площадь поверхности S;
 объем V;
 диагональ параллелепипеда d.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем с клавиатуры значений свойств класса;
 расчет величины диагонали параллелепипеда и вывод ее значения на экран;
 расчет и вывод на экран площади поверхности параллелепипеда;
 расчет объема параллелепипеда и вывод его значения на экран.
8. Класс CRing, описывающий кольцо.
Свойства класса:
 координаты точки центра кольца x, y;
 внешний и внутренний радиусы кольца R и r;
 площадь S.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем значений координат точки центра круга и радиусов;
 проверка правильности исходных данных (R>r, r>0);
 вычисление и вывод на экран значения площади кольца;
60
СТО АлтГТУ 13.62.1.0667-2011
 определение, лежит ли внутри кольца точка, координаты которой вводит
пользователь.
9. Класс для описания результатов сессии CExamine.
Свойства класса:
 количество студентов в группе;
 общее количество оценок «отлично» за сданные экзамены;
 общее количество оценок «хорошо» за сданные экзамены;
 общее количество оценок «удовлетворительно» за сданные экзамены;
 общее количество неудовлетворительных оценок и неявок на экзамены;
 средний балл студентов в группе.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем количества оценок «отлично»;
 ввод пользователем количества оценок «хорошо»;
 ввод пользователем количества оценок «удовлетворительно»;
 ввод пользователем количества оценок «неудовлетворительно» и неявок;
 определение и вывод на экран значения среднего балла.
10. Класс для расчета заработной платы отдела CWage.
Свойства класса:
 величина зарплаты z1;
 величина зарплаты z2;
 величина зарплаты z3;
 количество k1 работников с зарплатой z1;
 количество k2 работников с зарплатой z2;
 количество k3 работников с зарплатой z3;
 общая зарплата отдела z.
Методы класса:
 конструктор: присвоение нулевых значений переменным;
 ввод пользователем значений z1, z2, z3;
 ввод пользователем количества работников с разными зарплатами;
 вывод пользователем значений z1, z2, z3;
 определение и вывод на экран общей зарплаты отдела.
Задание 2
Написать программу, реализующую алгоритм решения задачи индивидуального
варианта. В программе должна быть организована обработка строк.
1. Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в
строке все буквы В.
2. Строка содержит английский текст. Подсчитать количество слов, начинающихся на
заданную букву.
3. Дана символьная строка, заканчивается точкой. Найти длину самого длинного и
самого короткого слова.
4. Имеется строка символов, содержащая буквы латинского алфавита и цифры.
Найти длину наибольшей последовательности цифр, идущих подряд.
5. Найти слова, начинающиеся и заканчивающиеся на одну и ту же букву.
6. Программа считывает символы и затем запрашивает строку на ввод. Проверяет
можно ли из введенных символов составить данную строку.
7. Ввести две строки, изъять из первой строки все слова, которые встречаются во
второй.
8. Составить программу разделения текста на подтексты. В качестве разделителя
текста принимается знак "." (точка).
9. Дана символьная строка, заканчивающаяся точкой. Вывести на экран слова,
начинающиеся с гласных букв.
61
СТО АлтГТУ 13.62.1.0667-2011
10. Имеется строка символов, содержащая буквы латинского алфавита. Определить,
сколько в ней слов, состоящих из не более чем четырех букв.
11. Считать текст из файла и вывести на экран только предложения, состоящие из
заданного количества слов.
12. Имеется строка символов, содержащая буквы латинского алфавита. Вывести на
экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
13. Имеется строка символов, содержащая буквы латинского алфавита. Заменить
каждую первую букву слов, начинающихся с гласной буквы, на прописную.
14. Дана символьная строка, заканчивающаяся точкой. Заменить цифры от 0 до 9 на
слова «ноль», «один», …, «девять».
15. Дана символьная строка, заканчивающаяся точкой. Найти самое длинное слово и
определяет, сколько раз оно встретилось в тексте.
Лабораторная работа №3. Отношения между классами и объектами
Цель работы: получить практические навыки реализации отношений между
классами и объектами на UML и Java. Научиться создавать пакеты и работать с
пакетами в Java.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание 1
Для задачи индивидуального варианта необходимо построить диаграмму классов
UML и создать программу,
реализующую основные фундаментальные свойства
объектно-ориентированного программирования: инкапсуляцию, отношение наследования
между классами и объектами, а также полиморфизм. В базовом и производном классах
определить конструкторы с параметрами для инициализации объектов. Для хранения
классов создать пакет.
1. Создать класс «Отрезок», содержащий информацию о конечных точках. На его основе
создать класс «вектор». Написать методы, определяющий, являются ли отрезки
параллельными, а векторы – сонаправленными.
2. Создать класс «Многочлен первой степени». На его основе создать класс «Многочлен
степени n» от одной переменной. Написать метод, вычисляющий значение
многочлена для заданного аргумента.
3. Создать класс «Издание», хранящий информацию об издательстве(наименование,
адрес). На его основе создать класс «Журнал»(номер, название, список статей –
массив). Написать метод, возвращающий список авторов статей, В алфавитном
порядке.
4. Создать абстрактный класс «Здание» (год постройки, тип: панельное, кирпичное,
деревянное). На его основе создать класс «дом» (занимаемая площадь земли,
количество квартир). Написать метод, вычисляющий максимальное количество домов,
которое можно построить на площади заданного размера с заданным расстоянием
между соседними домами.
5. Создать абстрактный класс «Товар» (наименование, цена, дата выпуска). На его
основе создать класс «Компьютер» (тип процессора, объём HDD, Наличие
встроенного аудио). Написать методы: установка ПО заданного размера в мегабайтах,
удаление ПО (при этом занятая память должна «освобождаться»)., вывод списка
установленного ПО.
6. Создать абстрактный класс «Товар» (наименование, цена, дата выпуска). На его
основе создать класс «Автомобиль» (объём двигателя, расход бензина на 100 км, тип
КПП, наличие сигнализации, госномер). Написать метод, определяющий минимальное
62
СТО АлтГТУ 13.62.1.0667-2011
количество дозаправок, необходимое чтобы проехать заданное расстояние.
Количество бензина в начале пути задаёт пользователь в долях от объёма двигателя.
7. Создать абстрактный класс «Товар» (наименование, цена, дата выпуска). На его
основе создать класс «Мобильный телефон» (наличие Bluetooth, IR; поддержка mp3,
наличие фото/видеокамеры, тип батареи, что закачено). Тип батареи – структура: тип,
время подзарядки, время разрядки. Написать методы: закачка информации через
Bluetooth/IR, если имеется (выбор Bluetooth/IR осуществляет пользователь); вывод
информации о том, что закачено; медод, определяющий сколько раз в неделю надо
подзаряжать телефон.
8. Создать класс «Издание», хранящий информацию об издательстве(наименование,
адрес). На его основе создать класс «Книга» (название, автор, список рассказов:
массив, количество рассказов). Рассказ – структура: название, количество страниц.
Написать метод для вывода содержания в алфавитном порядке с указанием номеров
страниц; вывод содержания в порядке возрастания количества страниц в рассказе.
9. Создать абстрактный класс «периферийное устройство» (наименование, тип
интерфейса). На его основе создать класс «принтер» (тип, количество цветов,
разрешение, количество чернил). Написать методы для «отправки на печать»
документа, просмотра названия документа, отправленного на печать, вывода
состояния принтера (занят/свободен). Написать метод, определяющий количество
документов в очереди на печать. Документ – структура: название, количество чернил,
необходимое для его печати.
10. Создать абстрактный класс «периферийное устройство» (наименование, тип
интерфейса). На его основе создать класс «dial-up модем» (тип, тип интерфейса,
поддерживаемый протокол). Написать методы: дозвон до провайдера по заданному
телефону; проверка состояния(соединение установлено/нет), сброс соединения,
установка режима работы (передача/принятие файла) при установленном
соединении.
11. Создать класс «человек» (имя, возраст). На его основе создать класс «Ученик» (номер
школы, оценки). Оценки задавать в виде перечисления: отличник/хорошист/балбес.
Написать методы: перевод в другую школу, повышение IQ, получение поощрений,
получение замечания. Написать метод, понижающий или повышающий IQ ученика на
1 уровень в зависимости от количества замечаний и поощрений.
12. Создать класс «человек» (имя, возраст). На его основе создать класс «Абитуриент»
(специальность, баллы по ЕГЭ). Написать метод, сравнивающий балл ЕГЭ с
проходным на специальность. Определить, на какие специальности (наименование,
проходной балл), он может поступить. Список специальностей хранить в массиве.
13. Создать класс «человек» (имя, возраст). На его основе создать класс «Студент»
(специальность, количество долгов, зачётная книжка: массив структур (предмет,
оценка) ). Написать метод, добавляющий запись в зачётную книжку и, в зависимости
от оценки, уменьшающий или увеличивающий количество долгов. Написать метод,
печатающий текущее содержимое зачётной книжки.
14. Создать класс «плавсредство» (тип, грузоподъемность). На его основе создать класс
«парусный катамаран» (площадь парусности, длина, ширина, максимальная скорость
ветра). Написать методы: уменьшение/увеличение площади парусности в
зависимости от введённой скорости ветра. Вывод текущей площади парусности,
постановка на якорь (при этом парусность становится равной 0).
Задание 2 Для каждого индивидуального варианта необходимо построить диаграмму
классов UML и создать программу, реализующую отношение ассоциации (агрегации или
композиции) между классами и объектами. Для хранения классов создать пакет.
13.
Класс «КОМНАТА», содержит закрытые поля: сведения о метраже, высоте
потолков и количестве окон и метод подсчета площади комнаты. Класс «КВАРТИРА»,
содержит закрытые поля: номер этажа, массив объектов класса «КОМНАТА», метод
подсчета площади квартиры и метод вывода информации о комнатах квартиры.
14.
Класс «СТУДЕНТ» содержит закрытые поля: номер студенческого билета,
63
СТО АлтГТУ 13.62.1.0667-2011
Фамилия, Имя, Отчество, дата рождения, массив из пяти оценок и метод подсчета
среднего балла. Класс «СТУДЕНЧЕСКАЯ ГРУППА» содержит закрытые поля: название
группы, курс, массив объектов класса «СТУДЕНТ», метод подсчета среднего балла
для группы и метод вывода списка студентов, отсортированный по фамилиям в
алфавитном порядке.
15. Класс «АВТОМОБИЛЬ» содержит закрытые поля: гос. номер, цвет, фамилия
владельца и признак присутствия на стоянке и метод вывода сведений об автомобиле.
Класс «АВТОСТОЯНКА», содержит закрытые поля: название автостоянки, массив
объектов класса «АВТОМОБИЛЬ», методы поиска автомобиля по разным критериям и
методы вывода списка присутствующих и отсутствующих на стоянке автомобилей.
16. Класс «ЗАПИСЬ» содержит закрытые поля: фамилия, имя, номер телефона, дата
рождения. Класс «ЗАПИСНАЯ КНИЖКА», содержащий закрытые поля: фамилия и
инициалы владельца, массив объектов класса «ЗАПИСЬ», метод поиска номера
телефона и даты рождения по фамилии и имени, а также метод получения списка
людей, номер телефона которых начинается на три заданные цифры.
17.
Класс «САМОЛЕТ» содержит закрытые поля: шестизначный номер рейса, название
пункта назначения, время отправления и метод вывода сведений о самолете. Класс
«АЭРОПОРТ» содержит закрытые поля: название аэропорта, массив объектов класса
«САМОЛЕТ», метод поиска информации о самолетах, отправляющихся в течении часа
после введенного с клавиатуры времени и метод вывода информации о самолетах,
отправляющихся в заданный пункт назначения. Информация должна быть
отсортирована по времени отправления.
18. Класс «КОМПЛЕКТУЮЩЕЕ» содержит закрытые поля: название, цена, гарантийный
срок и метод вывода сведений о комплектующем. Класс «КОМПЬЮТЕР» содержит
закрытые
поля:
серийный
номер,
марка,
массив
объектов
класса
«КОМПЛЕКТУЮЩЕЕ», метод замены комплектующих компьютера и метод вывода
списка комплектующих компьютера.
19.
Класс «ПЕСНЯ» содержит закрытые поля: номер песни, название песни,
композитор, поэт, исполнитель и метод вывода сведений о песне. Класс «ДИСКИ»
содержит закрытые поля: название диска, цена, массив объектов класса «ПЕСНЯ»,
метод поиска песни по названию, метод поиска песни по исполнителю и метод вывода
списка песен диска, упорядоченный по названию песни.
20. Класс «ПОЕЗД» содержит закрытые поля: номер поезда, название пункта назначения,
время отправления и метод вывода сведений о поезде. Класс «ВОКЗАЛ» содержит
закрытые поля: название вокзала, массив объектов класса «ВОКЗАЛ», метод поиска
информации о поездах, отправляющихся после введенного с клавиатуры времени и
метод вывода информации о поездах, отправляющихся в заданный пункт назначения.
Информация должна быть отсортирована по времени отправления.
21. Класс «ТОВАР» содержит закрытые поля: название товара, стоимость единицы товара
в рублях, количество единиц товара и метод подсчета стоимости товара. Класс
«СКЛАД» содержит закрытые поля: название склада и массив объектов класса
«ТОВАР», метод подсчета стоимости всего товара и метод вывода списка товаров,
отсортированный по названию товара.
22. Класс «ЛЕКАРСТВО» содержит закрытые поля: название лекарства, цена, показания к
применению, противопоказания и метод вывода сведений о лекарстве. Класс
«АПТЕКА» содержит закрытые поля: название аптеки, номер аптеки, массив объектов
класса «ЛЕКАРСТВО», метод поступления новых лекарств в аптеку, метод поиска
лекарства по названию и метод вывода списка лекарств аптеки.
64
СТО АлтГТУ 13.62.1.0667-2011
23. Класс «АВТОБУС» содержит закрытые поля: номер автобуса название пункта
назначения, время отправления и метод вывода сведений об автобусе. Класс
«АВТОВОКЗАЛ» содержит закрытые поля: название автовокзала, массив объектов
класса «АВТОБУС», метод поиска информации об автобусах, отправляющихся после
введенного с клавиатуры времени в заданный пункт назначения. Информация должна
быть отсортирована по времени отправления.
24. Класс «ЖИВОТНОЕ» содержит закрытые поля: кличка животного, название вида,
возраст, вес и метод вывода сведений о животном. Класс «ЗООПАРК» содержит
закрытые поля: название зоопарка, массив объектов класса «ЖИВОТНОЕ», метод
поступления новых животных в зоопарк, метод убытия животных из зоопарка и метод
вывода списка животных зоопарка.
Лабораторная работа №4. Основы программирования GUI
с использованием Swing.
Цель работы: получить практические навыки использования основных классов
библиотеки Swing для организации GUI.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание: Создать для программы индивидуального варианта лаб. работы. № 3
(задание 1) GUI с использованием Swing.
Лабораторная работа №5. Классы файловых потоков.
Обработка исключений
Цель работы: получить практические навыки записи объектов в файл и чтения
объектов из файла, а также научиться создавать и использовать классы исключений.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание: Изменить программу индивидуального варианта лаб. работы. №3 (задание
1): создать класс исключений, сгенерировать и обработать исключение этого класса в
процессе выполнения программы. Обработчик исключения должен предлагать исправить
возникшую ошибку. В программе реализовать возможность записи объектов в файл и
чтения объектов из файла.
1. Класс, генерирующий и обрабатывающий исключения при попытке создать отрезок
нулевой длины.
2. Класс, генерирующий и обрабатывающий исключения при попытке создать многочлен
нулевой степени.
3. Класс, генерирующий и обрабатывающий исключения при попытке создать журнал с
пустым наименованием или адресом.
4. Класс, генерирующий и обрабатывающий исключения при попытке создать дом с
неверным годом постройки
5. Класс, генерирующий и обрабатывающий исключения при попытке задать
отрицательный объём HDD
6. Класс, генерирующий и обрабатывающий исключения при попытке задать объём
двигателя меньше 1 литра.
7. Класс, генерирующий и обрабатывающий исключения при попытке выполнить
«закачку» информации, если «отсутствует Bluetooth/IR».
8. Класс, генерирующий и обрабатывающий исключения при попытке создать книгу с
незаданным автором
65
СТО АлтГТУ 13.62.1.0667-2011
9. Класс, генерирующий и обрабатывающий исключения при постановке в очередь на
печать более 10 документов
10. Класс, генерирующий и обрабатывающий исключения при попытке установить режим
работы во время отсутствия подключения
11. Класс, генерирующий и обрабатывающий исключения в ситуации когда замечаний в 2
раза больше чем поощрений.
12. Класс, генерирующий и обрабатывающий исключения в ситуации когда абитуриент не
сможет поступить ни на одну из специальностей.
13. Класс, генерирующий и обрабатывающий исключения в ситуации когда в зачётке
одни двойки.
14. Класс, генерирующий и обрабатывающий исключения при попытке убрать паруса,
если они уже убраны.
Лабораторная работа №6. Коллекции
Цель работы: получить практические навыки использования основных коллекций
Java.
Теоретические сведения о работе и пример программы приведены в раздаточном
материале
Задание: Изменить программу
индивидуального варианта лаб. работы. №3:
выполнить запись объектов в две различные коллекции. Организовать работу с
коллекциями объектов.
66
СТО АлтГТУ 13.62.1.0667-2011
Приложение В
(обязательное)
Варианты индивидуальных расчетных заданий и методические указания
по их выполнению
Цель индивидуального задания: углубленное изучение темы 3 «Основы
программирования GUI с использованием Qt». (36 час. [24, 4, 14,19])
Выполняя индивидуальное задание студенты должны самостоятельно
изучить возможности библиотеки Qt по созданию статических и динамических
графических изображений и выполнить два индивидуальных варианта заданий:
3. Создание статических графических изображений (18 час.)
4. Создание динамических графических изображений; (18 час.)
Варианты индивидуальных заданий:
Вариант 1
1. Почтовый индекс. Заданное щестиразрядное десятичное целое число
изобразить цифрами по 9-сегментному шаблону, используемому при почтовой
индексации.
2. Круги на воде. Экран изображает бассейн с водой, в который бросили камень
(в заданных координатах). От камня пошли круги, которые, дойдя до стенок
бассейна, отражаются от них. Реализовать эту динамическую картину.
Вариант 2
1. Изобразить произвольный домик (деревянный или кирпичный), отобразив
материал стен (бревна, кирпичи) и крыши (шифер, черепица и так далее).
2. Открытка. Разработать и реализовать на экране поздравительную открытку к
празднику (Новый год, Рождество и так далее) с динамическими элементами
(мигающая гирлянда, салют, горящие свечи, мигающие надписи и так далее).
Вариант 3
1. Изобразить на экране шахматную доску (вместе с буквенно-цифровым
обозначением горизонталей и вертикалей).
2. Плакат. Разработать и реализовать на экране политический или экологический
плакат на любую тему с динамическими (движущимися или мигающими)
эффектами.
Вариант 4
1. Разработать и получить на экране рисунок обложки любого учебника вместе с
названием, авторами и так далее.
2. Ветряная мельница. Изобразить на экране работающую ветряную мельницу.
Плоскость вращения крыльев не обязательно параллельна плоскости экрана.
Вариант 5
1. Паркет. Заполнить экран рисунком паркета "елочка" из прямоугольных
дощечек заданного размера.
2. Электронные часы. Изобразить на экране работающие электронные часы с
цифровым индикатором (каждая цифра изображается на 7-сегментном
67
СТО АлтГТУ 13.62.1.0667-2011
шаблоне).
Вариант 6
1. По правилам черчения изобразить проекцию какого-либо тела и проставить
размеры.
2. Флаг. Изобразить на экране развевающийся на ветру флаг (например,
российский трехцветный).
Вариант 7
1. Перспектива. Изобразить уходящую вдаль улицу, состоящую из двух рядов
однотипных домов. Учесть невидимые части зданий.
2. Песочные часы. Изобразить на экране действующие песочные часы. Установка
времени производится при запуске программы.
Вариант 8
1. Паутина. Получить на экране рисунок паутины с центром в произвольной
точке. Паутина образована лучами и многоугольниками, а не окружностями.
2. Бильярд. На экране — изображение бильярдного стола с одним шаром.
Задается направление и начальная скорость шара после удара кием.
Реализовать движение шара после удара до попадания его в лузу или до
прерывания с клавиатуры.
Вариант 9
1. Построить мозаику из шестиугольников заданного размера, закрасив их
разными цветами или применив разные типы штриховок (полутона).
2. Футбольный мяч. Изобразить движение футбольного мяча после удара
(задается начальное положение мяча и вектор скорости). В процессе полета
мяч ударяется о пол, потолок и стены, теряя при каждом ударе часть энергии.
Вариант 10
1. Счеты. Заданное число (не обязательно целое) отложить на бухгалтерских
счетах, изображенных на экране.
2. Затмение луны. Изобразить на экране звездное небо, полную луну и медленно
надвигающуюся на нее тень Земли; затем — медленное открытие диска Луны.
Вариант 11
1. Изобразить на экране достаточно сложный цветок (георгин, ромашка со
случайным числом лепестков, калина, василек и так далее).
2. Атом. Изобразить действующую модель атома произвольного химического
элемента: ядро и электроны, вращающиеся по своим орбитам. Распределение
электронов по орбитам задается.
Вариант 12
1. Чешуя. Заполнить экран рисунком рыбной чешуи с заданным размером
элементарных чешуек.
2. Маятник. Получить изображение движущегося математического маятника.
Длина маятника и начальное положение задаются.
68
СТО АлтГТУ 13.62.1.0667-2011
Приложение Г
(обязательное)
Методические рекомендации по выполнению курсовой работы
1. Общие положения
Курсовая работа предусмотрена стандартом дисциплины «Программирование».
Курсовая работа является самостоятельной работой студента, позволяет оценить
качество знаний и отражает приобретенные студентом практические навыки.
Цель курсовой работы: расширить объем знаний студентов в области
программирования и создать реальную основу использования своих знаний для решения
на компьютере задач по другим дисциплинам и в своей дальнейшей практической
деятельности.
Тематика курсовой работы: программирование простых логических игр или
разработка программы для автоматизации необходимых функций изучаемой предметной
области.
Тема назначается руководителем курсовой работы и утверждается на заседании
учебно-методической комиссии кафедры. Задание на курсовую работу содержит
сведения согласно приложению А и оформляется на бланке формата А4. Задание на
курсовую работу должно быть размещено в приложении к пояснительной записке.
2 Выполнение курсовой работы
Выполнение курсовой работы состоит из трех этапов:
5. Постановка задачи;
6. Разработка алгоритма решения задачи;
7. Создание и тестирование программы;
8. Оформление и защита курсовой работы.
Выполнение
этапов курсовой работы должно соответствовать срокам,
установленным в задании.
Все этапы разработки программы отражаются в пояснительной записке. При
написании пояснительной записки необходимо придерживаться требований СТО 124002009 - КУРСОВОЙ ПРОЕКТ (КУРСОВАЯ РАБОТА) и СТП 12570-2006. ОБЩИЕ
ТРЕБОВАНИЯ К ТЕКСТОВЫМ, ГРАФИЧЕСКИМ И ПРОГРАММНЫМ ДОКУМЕНТАМ.
Основная часть пояснительной записки должна состоять из следующих разделов:
5. Постановка задачи
6. Алгоритм решения задачи
7. Описание программы
8. Тестирование программы
В разделе «Постановка задачи» подробно описывается задача индивидуального
варианта задания. В текстах задач индивидуальных вариантов опущены некоторые
детали и необходимые требования. После ознакомления с литературой необходимо
оценить возможности языка программирования и вычислительной техники, на которой
предлагается реализовать решение. Результатом этой работы должна быть точная
формулировка задачи со всеми ограничениями и требованиями.
В разделе «Алгоритм решения задачи» дается обобщенное словесное описание
алгоритма решения описанной задачи, излагаются основные требования к алгоритму и
пути их реализации. Приводится схема обобщенного алгоритма. Обобщенный алгоритм
обычно использует обозначения и термины исходной задачи.
При написании программы не следует забывать о хорошем стиле программирования,
о таких понятиях, как читабельность, эффективность, надежность.
Раздел “Описание программы” должен содержать следующие подразделы:
 общие сведения;
69
СТО АлтГТУ 13.62.1.0667-2011
 функциональное назначение;
 описание структуры и интерфейса программы;
 используемые технические средства;
 вызов и загрузка;
 входные данные и выходные данные.
В подразделе “Общие сведения” должны быть указаны: обозначение и наименование
программы; программное обеспечение, необходимое для функционирования программы;
языки программирования, на которых написана программа.
В подразделе “Функциональное назначение” должны быть указаны классы решаемых
задач и (или) назначение программы и сведения о функциональных ограничениях на
применение.
В подразделе “Описание структуры и интерфейса программы” должна быть
представлена структура программы, т. е. необходимо описать модули (классы), из
которых состоит программа и на схеме показать, как они связаны (диаграмма классов
UML) . При описании модуля (класса) указывается его наименование и назначение,
описываются его данные и функции (методы).
Полный текст программы должен быть размещен в приложении пояснительной
записки и на него нужно ссылаться при описании.
В подразделе “Используемые технические средства” должны быть указаны типы
компьютера и устройств, которые используются при работе программы.
В подразделе “Вызов и загрузка” должны быть указаны способ вызова программы с
соответствующего носителя данных, входные точки в программу.
В подразделе “Входные и выходные данные” должны быть указаны: характер,
организация и предварительная подготовка входных данных, формат, описание и способ
кодировки входных данных, а также характер, организация и предварительная подготовка
выходных данных, формат, описание и способ кодировки выходных данных.
В разделе «Тестирование программы» перечисляются требования, подлежащие
проверке при испытании программы, а также порядок и методика их контроля.
Приводятся исходные данные для решения контрольного примера и ожидаемые
результаты. Прилагается распечатка решения контрольного примера.
3. Защита курсовой работы
Курсовая работа представляют на проверку руководителю поэтапно или полностью
выполненная. При обнаружении принципиальных ошибок, незаконченном или небрежно
оформленной работе она возвращается на доработку в назначенные сроки.
Возвраты на доработку или увеличение периода разработки без уважительных
причин снижают оценку при защите курсовой работы.
Для защиты предъявляется пояснительная записка, выполненная в соответствии с
требованиями и отлаженная программа.
Защищая курсовую работу студент коротко докладывает руководителю о
проделанной работе и ее результатах, демонстрирует работу приложения на компьютере
и отвечает на вопросы.
70
СТО АлтГТУ 13.62.1.0667-2011
ПРИЛОЖЕНИЕ A
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
По дисциплине
Программирование__________________________
студенту группы __________________________________________
_________________________________________________________
фамилия, имя, отчество
Тема:________________________________________________________
____________________________________________________________________________
______________________________________________
___________________________________________________________
Индивидуальный вариант задания:______________________________
____________________________________________________________________________
______________________________________________
___________________________________________________________
Этап разработки
1. Постановка задачи
2. Разработка алгоритма решения
задачи
3. Создание и тестирование
программы
4. Оформление и защита курсовой
работы.
Срок
выполнения
1 — 4 недели семестра
4 — 8 недели семестра
9 — 12 недели семестра
13 — 17 недели семестра
Руководитель работы __________________________________________
фамилия, имя, отчество
Подпись руководителя
___________________
Дата выдачи задания «
Подпись студента
_________________
»
20
г.
71
СТО АлтГТУ 13.62.1.0667-2011
Разработчик:____доцент______
________
___Л. Ю. Качесова_____
подпись
инициалы и фамилия
Заведующий кафедрой __систем автоматизированного проектирования__
_________________________
________
подпись
___И. В. Левкин_______
инициалы и фамилия
Заведующий кафедрой __вычислительных систем и информационной
безопасности__
________
подпись
___А. Г. Якунин_______
инициалы и фамилия
Декан факультета ___информационных технологий___________________
_________________________
Начальник ОМКО АлтГТУ
_________
___Г. Н. Кобелев____
подпись
инициалы и фамилия
__________
подпись
72
__С. А. Федоровых
инициалы и фамилия
Download