Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
peredelannaja_PZ.docx
Скачиваний:
2
Добавлен:
23.11.2018
Размер:
1.06 Mб
Скачать

Разработка состава и структуры исходных данных и результатов.

В качестве исходных данных в программе используются:

  1. Файл созданный ранее.

  2. Данные для дополнения списка (номер, название, страна производитель, цена, цвет).

  3. Ключи (номера) элементов которые нужно поменять местами.

  4. Номер элемента после которого нужно добавить элемент.

Результатом работы программы является список, представленный в виде таблицы.

Разработка алгоритма.

Алгоритм работы программы заключается в следующем:

  1. Вызывается два метода menu1() и menu2() класса MY_MENU которыми отрисовываются меню для упрощения работы с программой.

  2. Вызывается метод createList() который запрашивает имя файла из которого считывает данные и создаёт однонаправленный динамический список.

  3. С помощью меню выбирается нужное действие – в зависимости от нажатой клавиши вызывается метод(1:outputToFile(),2:addNodeAfterKey(),3:delLastNode(),4: interchange(), [Esc]:exit(),[Tab]:sHelp(),F1:printList()),если нажата другая клавиша выводится предупреждение.

Метод createList() вызывает метод addNode(char*n,char*cP,char*p,char*mC, int key) который

добавляет новый элемент в список. В качестве параметров принимает данные введенные из файла.

Метод outputToFile() выводит данные списка в файл, для этого используется цикл while() условием выхода из цикла является нахождение элемента с указателем значение которого равно NULL.

Метод addNodeAfterKey() добавляет новый элемент после элемента с заданным ключом. Вызывает метод rCount() который возвращает количество элементов. Для этого в цикле for() осуществляется поиск элемента с ключом и после него добавляется новый элемент. Для добавления метод запрашивает данные о новом элементе (название, страна производитель, цена, цвет). После добавления вызывается метод changeKey() который изменяет номера всех элементов.

Метод delLastNode() удаляет последний элемент в списке. Для этого вызывается метод count() который удаляет последний элемент и возвращает количество элементов в списке -1. Затем в цикле for() находится предпоследний элемент и в указатель записывается значение NULL. Если удаляется единственный элемент то выполнение программы прекращается.

Метод interchange() меняет местами два элемента с заданными номерами. Для этого метод interchange() вызывает четыре метода (oneNode(), twoNode(), pointToOneNode(), pointToTwoNode()) которые возвращаю адреса элементов необходимые для обмена.

oneNode() возвращает адрес первого из меняемых местами элемента.

twoNode() возвращает адрес второго из меняемых местами элемента.

pointToOneNode() возвращает адрес элемента находящегося перед первым из меняемых элементов.

pointToOneNode() возвращает адрес элемента находящегося перед вторым из меняемых элементов.

Функция exit() осуществляет выход из программы. Метод sHelp() выводит краткое описание функций которые можно выбрать. Метод printList() выводит на экран данные списка в виде таблицы. Для этого используется цикл while условием выхода из которого является нахождение элемента с указателем значение которого равно NULL.

Разработка программы.

В программе используются следующие стандартные процедуры, функции и операторы:

  1. Оператор new – выделяет место в динамической памяти.

  2. Оператор delete – освобождает место в динамической памяти.

  3. Оператор goto – осуществляет переход в точку программы.

  4. Функция getch() - обрабатывает нажатие клавиши.

  5. Функция exit() – производит выход из программы.

  6. Функция strcpy_s() – для записи строки в переменную.

  7. Метод getline() – считывает строку из файла и присваивает её переменной.

  8. Метод close() – закрывает файл.

В программе используются следующие стандартные заголовочные файлы:

  1. iostream.h – для выполнения операций ввода/вывода.

  2. stddef.h – для вывода сообщений на экран на кириллице.

  3. fstream.h – для работы с файлами.

  4. conio.h – для вызова функции getch().

  5. string.h – для работы со строками.

Программа состоит из пяти файлов (poin.cpp,LIST.cpp,LIST.h,MY_MENU.cpp,MY_MENU.h)

Заголовочные файлы LIST.h и MY_MENU.h подключаются к главному файлу poin.cpp в котором описана главная функция main().

Описание заголовочных файлов LIST.h и MY_MENU.h находится в файлах LIST.cpp и MY_MENU.cpp .

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