Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KURSACh.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
754.69 Кб
Скачать

1Постановка задачи

Пассажир имеет следующие сведения о работе аэропорта:

  1. Пункт прибытия;

  2. Номер рейса;

  3. Время отправления/прибытия в пункт назначения;

  4. Список пассажиров на каждый рейс.

Мультисписковая структура содержит следующую информацию:

  1. Рейс: номер рейса, пункт назначения;

  2. Дата: дата вылета, дата прибытия;

  3. Пассажир: ф.И.О., номер паспорта.

Разработать мультисписковую структуру для которой:

    1. Организовать ввод, поиск, замену и удаление сведений о рейсах, датах и пассажирах;

    2. Организовать сохранение/восстановление списка в бинарный файл.

    3. Организовать упаковку/извлечение списка в архив.

Мультисписковую структуру реализовать в динамической памяти.

Интерфейс основан на оконно-графическом режиме и представляет удобные средства по занесению, поиску и корректировке сведений о подразделах аэропорта любого уровня иерархии. Обязательными компонентами интерфейса являются:

Управляющие компоненты: MenuBar, Menu, PushButton, CheckBox, ToolBar, ContextMenu, LineEdit, DateTimeEdit.

Интерфейсные компоненты: TreeWidget, TableWidget.

Среда реализации Qt Creator 2.3.1. я сохранения данныховую структуру в файлеренос содержимого мультисписка в файле в динамическую память и обратно.

2Анализ решаемой задачи

Основной задачей является построение мультисписковой структуры данных в динамической памяти для данного иерархического списка, а также организация работы с созданным списком (добавление, удаление, замена, поиск, сохранение, восстановление, упаковка и извлечение). Для решения этой задачи нужно выбрать соответствующую структуру организации данных в каждом файле, а также взаимосвязать данные между собой и с интерфейсом программы.

Данная задача подразумевает создание программы, основной задачей которой будет хранение данных об аэропорте, а также работа с этими данными. Значит, программа не рассчитана на хранение в ней данных о нескольких аэропортов одновременно, а соответственно на сетевое использование она так же не рассчитана.

Задача должна содержать такие основные подзадачи:

  1. Создание упорядоченного по определенному критерию (номеру рейса, дате вылета, фамилии пассажира) списка и поддержание этой упорядоченности при добавлении в список любого нового элемента;

  2. Удаление из списка элемента;

  3. Замена элементов списка и перемещение их на новое место в соответствии с порядком нового элемента в данном списке;

  4. Поиск заданного элемента списка;

  5. Сохранение данных в двоичный файл.

  6. Упаковка файла в RAR архив и его извлечение.

Так как мультисписковая структура находится в динамической памяти, то при аварийном завершении работы компьютера она будет утеряна (при работе в файле данные будут сохранены). Плюсом есть скорость работы с мультисписком (в файле скорость работы с данными намного ниже чем в динамической памяти).

Одним из условий реализации данного проекта есть использование указателей на функции. Это значительно уменьшает объем кода и работы, т.к. , например, функцию поиска методом половинного деления можно сделать одну для всех уровней мультисписка.

3Исследование существующих методов организации структур данных

Опыт последних десятилетий бурного развития и использования компьютерной техники показывает, что одно из основных требований, которым должен отвечать компьютер, является его способность хранить, обеспечивать быстрый доступ и обработку больших объемов данных, что связано с использованием компьютера для моделирования и решения задач в различных предметных (проблемных) областях человеческой деятельности. Мой опыт показывает что компьютер не имеющий данных свойств скорей всего лежит в музее из-за своей старизны или находится в одной общей биомассе Земли.

Выбор способов представления данных является достаточно сложной и не всегда однозначной задачей. Увеличение объема данных или расширение круга решаемых задач в рамках одной и той же предметной области могут по-новому поставить и задачи представления данных. Иными словами, невозможно принимать решение о том как представлять данные, не зная какие алгоритмы будут применяться к этим данным, и наоборот, выбор применяемых алгоритмов очень часто зависит от строения данных, к которым они применяются.

При изучении структур данных уделяется центральное внимание созданию и изучению различных видов списковых структур. Потому что использование списковых структур является, фактически, господствующей концепцией создания современного программного обеспечения, особенно таких его компонент как операционные системы, средства поддержки современных языков программирования, графики, систем управления базами данных и знаний, систем автоматизации проектирования и т. п.

Существует несколько способов реализации списка, каждый из которых имеет свои преимущества и недостатки (с узловым представлением, массивами указателей на элементы списка). В данном курсом проекте реализуются мультисписковая структура на базе динамических массивов нетипизированых указателей.

На сегодняшний день используются более сложные структуры данных, такие как стеки, очереди, различные виды деревьев. Эти структуры более гибкие, позволяют ускорить работу с данными, их обработку, но они сложны в реализации.

В прошлом семестре мы реализовывали список на базе линейных списков. Их единственным плюсом по сравнению с мультисписком на базе массивов указателей есть то, что он расходует меньше места, так как нет необходимости хранить сам массив указателей. Насчет недостатков, то их много: во-первых, это медленнейшая скорость работы, так как в линейных списках, что бы добраться до какого-то элемента необходимо пройти весь список (последовательный доступ), а с массивом указателей просто пройти путь по уровням (прямой доступ).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]