Главная страница
Навигация по странице:

  • Цель работы Получить практические навыки работы с односвязными списками в языке «С/C++».1.Задание

  • Ввод данных Поиск по запросу Результат поиска

  • Ввод данных Сортировка Результат сортировки

  • 4.Словесное описание алгоритма

  • 5.Иерархическая структура программы

  • 6.Описание переменных функции main

  • Имя переменной Тип переменной Назначение переменной

  • Односвязные списки в языке СС. лаб 2 сем 2 односвяз Изотов 5307. Односвязные списки в языке С


    Скачать 436.79 Kb.
    НазваниеОдносвязные списки в языке С
    АнкорОдносвязные списки в языке СС
    Дата17.06.2022
    Размер436.79 Kb.
    Формат файлаdocx
    Имя файлалаб 2 сем 2 односвяз Изотов 5307.docx
    ТипОтчет
    #599891
    страница1 из 4
      1   2   3   4

    МИНОБРНАУКИ РОССИИ

    Санкт-Петербургский государственный

    электротехнический университет

    «ЛЭТИ» им. В.И. Ульянова (Ленина)

    Кафедра вычислительной техники


    отчет

    по лабораторной работе № 2

    по дисциплине «Программирование. Дополнительные главы»

    Тема: Односвязные списки в языке С/C++


    Студент гр. 5307




    Изотов А.В.

    Преподаватель




    Сискович Т.И.



    Санкт-Петербург

    2016

    Оглавление

    Цель работы……………………………………………………………………………………..…3

    1. Задание………………………………………………………………………………….....3

    2. Уточнение задания……………………………………………………………………..…3

    3. Контрольные примеры…………………………………………………………………...3

    4. Словесное описание алгоритма…….…………………………………………………....5

    5. Иерархическая структура программы………………………………………………..…6

    6. Описание переменных функции main…………………………………………………..7

    7. Схема алгоритма……………………………………………………………………….....8

    8. Описание функций………………………………………………………………………13

      1. Функция inputinfo………….………………………………………………………..13

      2. Функция search……..………………………………………………………………..14

      3. Функция searchint……………………………………………………………….......17

      4. Функция sort………………………………………………………………………...18

      5. Функция inputslovo…………………………………………………………………19

      6. Функция exchange..…………………………………………………………………21

      7. Функция clearhead..…………………………………………………………………21

      8. Функция rewrite…..……………………………………………………………...…22

      9. Функция clearchar…………………………………………………………………..22

      1. Функция inputpre..……………………………………………………………….....23

      2. Функция number……………………………………………………………………23

      3. Функция inputflex………………………………………………………………….24

      4. Функция inputlenght………………………………………………………………..24

      5. Функция inputback…………………………………………………………………25

      6. Функция inputn……………………………………………………………………..27

      7. Функция clearone…………………………………………………………………..28

      8. Функция changen……………………………………………………………….….29

      9. Функция priority…..……………………………………………………………….30

      10. Функция output…………………………………………………………………….33

      11. Функция mainmenu……………………………………………………………..…33

      12. Функция menupoisk……………………………………………………………….33

      13. Функция menucreate……………………………………………………………….33

      14. Функция menusort….……………………………………………………………...34

      15. Функция spravka…………………………………………………………………..34

    1. Исходный текст программы…………………………………………………………...34

    2. Результат выполнения программы…………………………………………………....53

    Выводы…………………………………………………………………………………………..53

    Цель работы

    Получить практические навыки работы с односвязными списками в языке «С/C++».

    1.Задание

    Разработать алгоритм и написать программу на языке «C/С++», выполняющую формирование списка, ввод информации, редактирование списка и информации, контрольный вывод, поиск по запросам, сортировку и вывод результатов.

    2.Уточнение задания

    Область работы: Сноуборды

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

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

    Во время сортировки пользователь задает тип сортировки и критерии, по которым она будет происходить. Пользователь может выбрать несколько критериев одновременно, чтобы выполнить сортировку по приоритету.

    Редактирование списка включает в себя добавление новых элементов в конец, начало и на n-ое место в списке, удаление информации о n-ом элементе и изменение информации n-ого элемента списка;

    3.Контрольные примеры

    Контрольные примеры представлены в таблицах 1,2.

    Таблица 1. Контрольные примеры 1.

    Ввод данных

    Поиск по запросу

    Результат поиска

    Сноуборд №1

    Бренд: capita

    Модель: stairmaster

    Назначение: freestyle

    Тип прогиба: flat

    Жесткость: 5

    Длина: 150
    Сноуборд №2

    Бренд: slash

    Модель: straight

    Назначение: freeride

    Тип прогиба: camber

    Жесткость: 7

    Длина: 157
    №3. Бренд: jones

    Модель: hovercraft

    Назначение: backcountry

    Тип прогиба: hybrid

    Жесткость: 7

    Длина: 160

    По модели: stairmaster

    Сноуборд №1


    По жесткости:7

    Сноуборд №2

    Сноуборд №3



    По бренду: apo

    Сноубордов по заданному критерию не нашлось.


    По длине: 450

    Недопустимое значение длины.

    Повторите ввод.

    Таблица 2. Контрольные примеры 2.

    Ввод данных

    Сортировка

    Результат сортировки

    Сноуборд №1

    Бренд: capita

    Модель: stairmaster

    Назначение: freestyle

    Тип прогиба: flat

    Жесткость: 5

    Длина: 150
    Сноуборд №2

    Бренд: slash

    Модель: straight

    Назначение: freeride

    Тип прогиба: camber

    Жесткость: 7

    Длина: 157
    №3. Бренд: jones

    Модель: hovercraft

    Назначение: backcountry

    Тип прогиба: hybrid

    Жесткость: 7

    Длина: 160

    По убыванию жесткости

    Сноуборд №2

    Сноуборд №3

    Сноуборд №1


    По убыванию жесткости и длины

    Сноуборд №3

    Сноуборд №2

    Сноуборд №1



    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

    Имя переменной

    Тип переменной

    Назначение переменной

    Head

    snow*

    Указатель на первый элемент исходного списка

    newhead

    snow*

    Указатель на первый элемент списка-результата поиска

    choice2

    short

    Организует работу меню

    Choice

    short

    Организует работу меню

    X

    short

    Организует работу меню

    flag1

    short

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


    flag3

    short

    flex

    int

    Значение жесткости используемое для поиска

    length

    int

    Значение длины используемое для поиска

      1   2   3   4


    написать администратору сайта