Требования к выполнению лабораторных работ по программированию
Практикум включает в себя цикл из шести лабораторных работ, который завершается выполнением курсовой работы.
В рамках выполнения лабораторных работ студенты должны применить знания по следующим темам:
1. Абстрактный тип данных; список как абстрактный типа данных; реализация абстрактного списка с использованием динамических массивов и связных списков.
2. Поиск; сортировка, применение поиска и сортировок в процессе разработки программ; реализация алгоритмов поиска и сортировки.
3. Основы языка С++; указатели и ссылки; динамические массивы; реализация связного списка; обработка исключений.
4. Основы объектно-ориентированного программирования в С++: инкапсуляция, наследование, полиморфизм.
5. Основы объектно-ориентированного проектирования; объектная модель; паттерны объектно-ориентированного проектирования (на примере паттернов «одиночка» и «стратегия»).
6. Технология программирования; этапы жизненного цикла программного обеспечения.
7. Технология программирования; модульный подход к разработке программ; разделение кода реализации интерфейса взаимодействия с пользователем и кода реализации логики предметной области.
В результате выполнения лабораторных работ студенты должны получить следующие навыки:
1. Разработать математическую модель задачи на основе ее текстового описания (выявление критериев контроля и анализа с помощью математических понятий - формул).
2. Разработать объектно-информационную модель задачи на основе ее текстового описания (выявление объектов, их свойств и поведения)
3. Реализовать шаблонный класс связного списка средствами языка программирования С++.
4. Реализовать объектно-информационную модель объектно-ориентированными средствами языка программирования C++.
5. Реализовать алгоритмы сортировки и поиска на списке объектов в соответствии с выявленными критериями анализа.
Лабораторные работы объединены общим замыслом и направлены на поэтапное решение единой типовой задачи.
В разделе «Варианты заданий к лабораторным работам» представлен полный текст вариантов типовых задач. В основе каждого варианта лежит однотипная объектно-информационная модель с определенным количеством классов, типовым распределением ролей и отношений между ними, а также типовыми ограничениями на реализацию данных отношений.
Содержание типовой задачи предполагает разработку программного продукта, автоматизирующего этапы цикла управления некоторого процесса: планирования, учета, контроля и анализа.
Решение задач учета предполагает регистрацию объектов предметной области и отношений между ними. В тексте задания сущности предметной области, относительно которых ведется учет, выделены подчеркиванием.
Решение задач контроля предполагает проверку согласованности вводимых данных в соответствии с типовыми ограничениями на реализацию отношений объектно-информационной модели. В тексте задания правила согласованности, исполнение которых необходимо контролировать в программе, выделены курсивом.
Решение задач анализа предполагает формирование упорядоченного списка объектов, отвечающих заданным критериям. В начале списка должны быть представлены «наилучшие» с точки зрения соответствия заданному критерию объекты, в конце – «наихудшие». Объекты, не отвечающие заданному критерию, не должны быть в нем представлены. Предполагается, что сформированный список должен предъявляться ответственному лицу как основа для принятия управленческих решений. При этом данные решения в первую очередь должны приниматься относительно «наилучших» объектов, находящихся в начале аналитического списка.
Для формирования аналитического списка применяются алгоритмы поиска и сортировка. Описание критериев поиска и сортировки в тексте задания также выделяются курсивом.
Раздел «Рекомендации к выполнению лабораторных работ» содержит текст рекомендаций к выполнению каждой лабораторной работы, ориентированный на содержание нулевого (примерного) варианта задачи, а также фрагменты кода его реализации.
Каждая лабораторная работа нацелена на решение определенных вопросов, представленных полным текстом задачи, и предполагает применение на практике определенных разделов теоретических знаний. Выполнение заданий каждой последующей лабораторной работы базируется на результатах выполнения заданий предыдущих лабораторных работ, в которые вносятся требуемые изменения: модифицируются детали реализации, расширяется структура, добавляется новая функциональность.
Результатом выполнения полного цикла лабораторных работ является программа, реализующая в полном объеме заявленную в тексте задачи функциональность и отвечающая всем предъявленным требованиям.
При подготовке к лабораторной работе необходимо изучить соответствующий теоретический материал. Затем следует ознакомиться с требованиями к содержанию лабораторной работы, а также с рекомендациями к ее выполнению на типовом примере. В результате необходимо предъявить к защите персональный вариант задачи, выполненный по аналогии с типовым примером.
Отклонения реализации от приведенного примера допустимы, однако при этом они должны быть теоретически обоснованы.
Требования к средствам разработки
Лабораторные работы выполняются на языке С++ в среде Microsoft VisualStudio.NET (неуправляемый С++) в формате консольного приложения.