Курсовая работа: Обработка динамических структур

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

Требуется сделать обработку картотеки библиотеки. Для этого следует:

а) Создать список (не менее 10 записей) со следующей структурой:

- фамилия и инициалы автора

- название книги

- год издания

- количество экземпляров данной книги в библиотеке

Использовать двусвязный список.

б) Реализовать следующие действия:

- Отсортировать список по фамилиям авторов книг методом простого обмена;

- Добавить в картотеку новую книгу, не нарушая алфавитный порядок;

- Удалить из картотеки книги заданного автора;

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

- По фамилии автора и названию книги возвратить книгу в библиотеку, отслеживая количество книг в обоих списках;

- Сохранить полученные списки в файл.

в) Действия со списком оформить в виде отдельных функций.


2. Методы решения задачи

2.1 Общая схема работы программы

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

При добавлении нового элемента будет осуществляться сортировка в обоих списках, следовательно, алфавитный порядок нарушен не будет.

Так как требуется провести ряд действий со списком, то рационально организовать текстовое меню (его вид приведен в таблице 1.1). Меню будет представлено вертикально расположенными строками, каждая строка – отдельный пункт меню. Выбор пункта меню будет осуществляться путём введения с клавиатуры его порядкового номера. Для считывания введенного символа требуется зарезервировать переменную n, хранящую код нажатой клавиши. Выбор любого пункта меню будет активировать соответствующую функцию.

В процессе создания списка будут заполняться информационные поля каждого элемента. Информационные поля будут включать данные об авторе книги, её названии, годе издания и количестве экземпляров в библиотеке. Более подробно создание списка описано в пункте 3.3.1.

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

Пример выполнения меню

Введите номер пункта для выполнения

1. Заполнить список

2. Загрузить списки из файлов

3. Отсортировать текущий список

4. Вывести текущий список

5. Вывести текущий список выданных на руки книг

6. Добавить новый элемент

7. Удалить из списка книги заданного автора

8. Выдать книгу на руки

9. Вернуть книгу в библиотеку

10. Сохранить списки в файл

11. Выход из программы

Ваш выбор:

2.2 Метод сортировки

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

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


К-во Просмотров: 476
Бесплатно скачать Курсовая работа: Обработка динамических структур