Содержание
1 Заявки на авиабилеты.. 2
Постановка задачи. 2
Реализация. 2
2. Лабиринт. 3
Постановка задачи. 3
Реализация. 3
3 Работа с каталогами и файлами. 4
Постановка задачи. 4
Реализация. 4
Список литературы.. 5
1 Заявки на авиабилеты
Постановка задачи
Составить программу с текущей информацией о заявках на авиабилеты.
В заявке хранится:
- пункт назначения;
- номер рейса и дата вылета;
- фамилия пассажира.
Функции:
- хранение в виде дерева;
- добаваление и удаление заявок;
- вывод и удаление заявок по заданному номеру рейса и дате вылета;
- вывод всех заявок.
Реализация
Заявки хранятся в файле в специальном формате. Для этого в программе предусмотрены кнопки загрузки и сохранения заявок.
В программе заявки хранятся в виде дерева, организованного с помощью специальных структур и векторов из этих структур.
На одно направление может быть много рейсов. Номер рейса и дата рейса хранятся в одной строке. На каждом рейсе может быть много пассажиров. И того имеем трехуровневое дерево.
Вывод состояния текущих заявок осуществляется в текстовое поле.
Программа позволяет добавлять и удалять заявки. При этом сначала проверяется – есть ли уже такое направление, есть ли уже такой рейс – тогда добавляется только фамилия. При удалении последнего пассажира с рейса - рейс удаляется. При удалении последнего рейса на пункт направления – он также удаляется. Программа в соответствии с заданием позволяет по номеру и дате рейса вывести и удалить заявки заданного рейса.
2. Лабиринт
Постановка задачи
Создать программу, отыскивающую проход по лабиринту. Лабиринт задан в виде матрицы.
Реализация
Лабиринт загружается из файла и выводится на экран как компонент StringGrid со специальными обозначениями. Начальная и конечная точка также задаются в файле.
Для поиска пути использован волновой алгоритм.
Идея этого метода весьма проста: в стороны от исходной точки распростроняется волна.
Начальное значение волны - ноль.
То есть ближайшие точки, в которые можно пойти, например, верх, низ, левая и правая, и которые еще не затронуты волной, получают значение волны+некоторый модификатор проходимости этой точки. Чем он больше - тем медленнее преодоление данного участка. Значение волны увеличивается на 1. Обрабатываем аналогично клетки, отходя от тех, на которой значение волны - 2. При этом на клетках с худшей проходимостью волна задержится.
И так дальше все обрабатывается, пока не достигнута конечная точка маршрута. Сам путь в получившемся массиве значений волны вычисляется по наименьшим клеткам.
Найденный путь демонстрируется на матрице координат.
3 Работа с каталогами и файлами
Постановка задачи
Создать программу, позволяющую оперировать структурой каталогов и файлами в них.
Требования:
- возможность удаления файлов
- возможность просмотра файлов
- возможность задания условий по файлам
- возможность просмотра файлов
Реализация
Программа позволяет перемещаться по каталогам. Структура каталогов представлена в виде дерева. При выделении каталога выводится список файлов. Список файлов может быть отфильтрован соглано введенной маске.
При выделении файла появляется возможность просмотреть его содержимое в текстовом поле.
Просматриваемый файл можно удалить, при обновлении списка файлов он исчезнет из списка.
Внимание! Программа работает с реально существующими файлами.
Список литературы
1. Архангельский А.Я. Программирование в С++. Builder 4 (второе издание). Бином 2000.
2. Бьярн Страуструп. Язык программирования С++ (третье издание). Бином 1999 .
3. Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (второе издание). Бином 1998.
4. AlgoList.ru – портал алгоритмов.
5. Справочная система С++Builder.