Бесценные методические указания
Стр 1 из 19Следующая ⇒ Программирование односвязного списка Если в программе предусмотрен контроль всех исходных данных, то преподаватель обязательно найдет способ, чтобы ошибочные данные прошли через этот контроль и завалили вашу программу Закон Мерфи-ОВН
Цель работы – освоить разработку консольных приложений Windows, использующих односвязные списки для обработки данных (4 час.). Задание По работе [4] изучите подраздел 13.4 «Реализация связного списка как класса», в котором изложен сценарий создания односвязного списка и приведены листинги программы. Создайте консольное приложение, добавьте в него класс узел связного списка и класс список на основе данных листингов. Разместите эти классы в разных файлах. Выполните отладку приложения, тестируйте его и добейтесь корректной работы. Убедитесь, что по завершению работы вашей программы утечек памяти нет. Смотрите пример проекта LinkV2.exe. Разработайте собственный класс узел (элемент списка) в соответствии с вашим вариантом задания, приведенным ниже в табл. 9.1. Далее необходимо разработать класс список, который будет оперировать объектами-узлами: добавлять, удалять и т.д. Один из вариантов реализации класса список имеется в работе [4]. При выполнении любого варианта задания предусмотреть такую реализацию программы, использующей разработанные вами классы, которая бы позволила убедиться в корректности реализации методов класса. В частности, во всех вариантах список должен быть реализован метод вывода на монитор значений всех член-данных объектов. Ваше приложение должно быть русифицировано, а еще лучше – украинизировано. Варианты заданий приведены в табл. 9.1. Разрешается выбрать свой вариант задания, но перед выполнением согласовать его с преподавателем.
Предусмотрите в программе два варианта ввода данных, которые должны сохраняться в узлах списка: § ввод данных с клавиатуры; § чтение данных из текстового файла.
Эти варианты ввода должны выбираться с помощью меню.
1.2. Описание вариантов заданий В каждом варианте задания оговаривается содержимое класса узла, т.е. те данные, которые должны там сохраняться, и их типы (если не указан – то int). Кроме того, оговаривается член-функция класса списка, которая должна быть реализована в дополнение к тем, текст которых приведен в приведенном выше источнике. Таблица 9.1. Варианты заданий
Перегрузка векторных и матричных операций По мере увеличения размера программы средняя наработка на отказ постоянно уменьшается Закон Мерфи Цель работы – практически освоить программирование перегрузки операций на примере выполнения математических операций над векторами и матрицами (4 час.). Задание Разработайте консольное приложение, а если хотите – приложение с графическим интерфейсом пользователяJ, в котором реализуются операции над векторами и матрицами, оформленные как перегруженные «классовые» операции в соответствии с вашим индивидуальным заданием. Само собой разумеется, что вы должны разработать классы матриц и векторов и в них реализовать перегруженные операции. Для хранения значений элементов матриц и векторов необходимо использовать указатели. Любое приложение должно предоставлять очеееень привередливому пользователю, например, тому же добрейшему преподуL, следующие бесплатные, т.е. даровые, услуги:
Ø возможность многократно вводить исходные данные и получать результат без выхода из приложения, т.е. без его перезапуска на выполнение; Ø возможность ввода размеров векторов, матриц и других параметров; Ø реализовать перегруженную операцию [] доступа к элементам векторов и матриц; Ø в каждом варианте задания необходимо реализовать перегруженные операции как компонентные функции, дружественные и глобальные; Ø наглядный вывод, чтобы было понятно даже самому тупому юзеру, исходных данных и результатов выполнения операций в соответствии с доставшимся вам самым легким вариантом задания. Операции вывода значений векторов и матриц на монитор реализовать как перегруженные.
Вывод программы должен быть максимально наглядным. Например, если в программе реализуется операция умножения двух матриц, то лучше всего вывод программы организовать в следующем виде: Обратите внимание, что здесь проиллюстрирована операция умножения матриц и результирующая матрица «настоящая». Бесценные методические указания Для того чтобы в описании и реализации своих классов можно было использовать, например, стандартный ввод и вывод с помощью потоков cin и cout, начните файл с таких объявлений: // Файл Matrix.h #pragma once #include "stdafx.h" // Добавить
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|