Односвязные списки в языке СС. лаб 2 сем 2 односвяз Изотов 5307. Односвязные списки в языке С
Скачать 436.79 Kb.
|
МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра вычислительной техники отчет по лабораторной работе № 2 по дисциплине «Программирование. Дополнительные главы» Тема: Односвязные списки в языке С/C++
Санкт-Петербург 2016 Оглавление Цель работы……………………………………………………………………………………..…3 Задание………………………………………………………………………………….....3 Уточнение задания……………………………………………………………………..…3 Контрольные примеры…………………………………………………………………...3 Словесное описание алгоритма…….…………………………………………………....5 Иерархическая структура программы………………………………………………..…6 Описание переменных функции main…………………………………………………..7 Схема алгоритма……………………………………………………………………….....8 Описание функций………………………………………………………………………13 Функция inputinfo………….………………………………………………………..13 Функция search……..………………………………………………………………..14 Функция searchint……………………………………………………………….......17 Функция sort………………………………………………………………………...18 Функция inputslovo…………………………………………………………………19 Функция exchange..…………………………………………………………………21 Функция clearhead..…………………………………………………………………21 Функция rewrite…..……………………………………………………………...…22 Функция clearchar…………………………………………………………………..22 Функция inputpre..……………………………………………………………….....23 Функция number……………………………………………………………………23 Функция inputflex………………………………………………………………….24 Функция inputlenght………………………………………………………………..24 Функция inputback…………………………………………………………………25 Функция inputn……………………………………………………………………..27 Функция clearone…………………………………………………………………..28 Функция changen……………………………………………………………….….29 Функция priority…..……………………………………………………………….30 Функция output…………………………………………………………………….33 Функция mainmenu……………………………………………………………..…33 Функция menupoisk……………………………………………………………….33 Функция menucreate……………………………………………………………….33 Функция menusort….……………………………………………………………...34 Функция spravka…………………………………………………………………..34 Исходный текст программы…………………………………………………………...34 Результат выполнения программы…………………………………………………....53 Выводы…………………………………………………………………………………………..53 Цель работы Получить практические навыки работы с односвязными списками в языке «С/C++». 1.Задание Разработать алгоритм и написать программу на языке «C/С++», выполняющую формирование списка, ввод информации, редактирование списка и информации, контрольный вывод, поиск по запросам, сортировку и вывод результатов. 2.Уточнение задания Область работы: Сноуборды Программа предлагает пользователю ввести информацию о сноубордах по 6 пунктам: бренд, модель, назначение, тип прогиба, жесткость и длина. Ввод данных проходит по некоторым правилам и продолжается пока это нужно пользователю. Во время поиска программа предлагает выбрать критерий для поиска и ввести запрос (ключевое слово или число). В результате обработки формируется новый список из элементов исходного списка, которые удовлетворяют заданным критериям. Во время сортировки пользователь задает тип сортировки и критерии, по которым она будет происходить. Пользователь может выбрать несколько критериев одновременно, чтобы выполнить сортировку по приоритету. Редактирование списка включает в себя добавление новых элементов в конец, начало и на n-ое место в списке, удаление информации о n-ом элементе и изменение информации n-ого элемента списка; 3.Контрольные примеры Контрольные примеры представлены в таблицах 1,2. Таблица 1. Контрольные примеры 1.
Таблица 2. Контрольные примеры 2.
4.Словесное описание алгоритма Шаг 1. Вывод меню программы на экран с помощью функции mainmenu. Шаг 2. Ввод пользователем пункта меню “x”. Если 1 – переход к шагу 3, если 2 – переход к шагу 6, если 3 – переход к шагу – 7, если 4 – переход к шагу 9, если 5 – переход к шагу 10, если 0 – переход к шагу 11, если (x<0) или (x>5) – вывод сообщения об ошибке и переход к шагу 11. Шаг 3. С помощью функции inputback на экран выводятся сообщения с просьбой ввести информацию о сноуборде. Шаг 4. Ввод информации пользователем с помощью функции inputback. Шаг 5. Вывод сообщения с предложением продолжить ввод. Если пользователь вводит 1 –возврат к шагу 3, иначе переход к шагу 16. Шаг 6. Если (flag1=1) с помощью функции output на экран выводится информация о всех сноубордах, иначе вывод сообщения об ошибке. Переход к шагу 16. Шаг 7. Если (flag1=1) с помощью функции menucreate на экран выводится меню редактирования списка. Шаг 8. Ввод пользователем пункта меню “choice2”. Если 1 – с помощью функции inputback выполняется добавление новых элементов в конец списка, если 2 – с помощью функции inputpre выполняется добавление в начало списка, если 3 – с помощью функции inputn добавление на n-ое место, если 4 – с помощью функции clearone выполняется удаление n-ого элемента списка, если 5 - с помощью функции changen выполняется изменение информации о n-ом элементе, иначе вывод сообщения о ошибке. Переход к шагу 16. Шаг 9. Если (flag1=1) с помощью функции clearhead выполняется удаление списка, иначе вывод сообщения о ошибке. Переход к шагу 16. Шаг 10. Если (flag1=1) вывод меню обработки с помощью функции menupoisk. Шаг 11. Ввод пользователем пункта меню “choice2”. Если 1 – выполняется поиск (обработка) по бренду, 2 - по модели, 3 – по назначению, 4 - по типу прогиба (1-4 с помощью функции search), 5 – по жесткости, 6 – по длине (5,6 с помощью функции searchint). Если (choice2 <1) или (choice2> 6) – вывод сообщения об ошибке. Переход к шагу 16. Шаг 12. Если (flag3=1) с помощью функции output на экран выводится информация о сноубордах, найденных в результате поиска, иначе вывод сообщения об ошибке. Переход к шагу 16. Шаг 13. Если (flag=1) с помощью функции menusort на экран выводится меню сортировки. Шаг 14. Ввод пользователем пункта меню “choice2”. Если 1 – выполняется сортировка элементов списка по возрастанию, если 2 – сортировка по убыванию (1,2 – с помощью функции sort), иначе вывод сообщения о ошибке. Переход к шагу 16. Шаг 15. Вывод cправки с помощью функции spravka. Шаг 16. Если (x=0) – переход к шагу 17, иначе переход к шагу 1. Шаг 17. Конец алгоритма. 5.Иерархическая структура программы inputflex Иерархическая структура программы представлена на рисунке 1. clearchar clearone clearhead Inputlenght inputinfo mainmenu menuinput inputback inputpre main menupoisk inputn spravka menusort inputslovo menucreate search number changen output rewrite sort searchint priority exchange Рис.1 Иерархическая структура программы. 6.Описание переменных функции main Описание переменных представлено в таблице 3. Таблица 3. Описание переменных главной функции main
|