Министерство образования Республики Беларусь Учреждение образования
БелорусскиЙ государственный университет
информатики и радиоэлектроники
Факультет компьютерных систем и сетей Кафедра программного обеспечения информационных технологий
-
оТЧЕТ по лабораторной работе на тему:
ФАйлы. списки
Выполнил
Студент гр. 051001
|
|
А.Г. Сидорович
|
Проверил
|
|
Асс. Е.Е. Фадеева
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Минск, 2021
Задание на лабораторную работу
Разработать программу («электронную сваху») для службы знакомств. Имеется 2 списка: список женихов и список невест. В каждом списке кандидат (жених или невеста) характеризуются записью, содержащей следующие поля: порядковый номер кандидата, данные о кандидате (имя, возраст, рост, вес), требования к партнеру (в виде диапазона Min-Max). Требуется:
• Выявить все возможные пары с учетом требований кандидатов;
• При согласии сторон пара считается сформированной и кандидаты из списка удаляются автоматически;
• Предусмотреть возможность добавлять, удалять и корректировать записи из списков, а так же просматривать каждый список целиком.
Выполнение
2.1 Разработка алгоритма
Таблица 2.1(а) Используемые идентификаторы
Имя идентификатора
| назначение
| Тип идентификатора
| Начальное значение
| Закон изменения
| MaleListHead
| Указатель на первый элемент списка, содержащего анкеты мужчин
| TSP
| NIL
| -
| FemaleListHead
| Указатель на первый элемент списка, содержащего анкеты женщин
| TSP
| NIL
| -
| MaleFile
| Файл, содержащий анкеты мужчин
| TPartnersFile
| -
| -
| FemaleFile
| Файл, содержащий анкеты женщин
| TPartnersFile
| -
| -
| CouplesFile
| Файл, содержащий сформированные пары
| TextFile
| -
| -
| InpNum
| Номер выбранного пункта меню
| Integer
| Ввод с клавиатуры
| -
| UserAnswer
| Строка, содержащая ответ пользователя в формате да/нет
| String
| Ввод с клавиатуры
| -
| CurrP
| Указатель на текущий элемент списка
| TSP
| -
| -
| PrevP
| Указатель на предыдущий элемент списка
| TSP
| -
| -
| Couples
| Массив сформированных пар
| TCouples
| -
| -
| Husband
| Запись, содержащая в себе указатели на анкету мужа из сформированной пары и на предыдущую в списки анкету
| TResPointers
| -
| -
| Wife
| Запись, содержащая в себе указатели на анкету жены из сформированной пары и на предыдущую в списки анкету
| TResPointers
| -
| -
| ExitMenu
| Флаг, определяющий, следует ли выйти из текущего меню
| boolean
| false
| -
| Filter
| Запись, задающая фильтр для поиска записей, соответствующих данному фильтру
| TFilter
| -
| -
|
Таблица 2.2(б) Используемые подпрограммы
Имя подпрограммы
| Назначение
| Передаваемые параметры и их тип
| Возвращаемый тип(если функции)
| getMaxId
| Возвращает максимальное значение ID в списке, указатель на первый элемент которого передаётся в функцию
| HeadP: TSP
| integer
| disposeList
| Освобождает память, выделенную под список, на первый элемент которого указывает передаваемый указатель, а сам указатель устанавливает в значение NIL
| HeadP: TSp
| -
| addPartners
| Добавляет анкету в конец списка, на первый элемент которого указывает передаваемый указатель
| HeadP: TSp
|
| saveToFile
| Сохраняет список, указатель на первый элемент которого передаётся в процедуру, в файл
| HeadP: TSP; PartnersFile: TPartnersFile
| -
| readFromFile
| Читает список, указатель на первый элемент которого передаётся в процедуру, из файла
| HeadP: TSP; PartnersFile: TPartnersFile
| -
| printPartnersList
| Выводит в консоль список, указатель на первый элемент которого передаётся в процедуру
| CurrP: TSp; PartnerPrinting: TPartnerPrinting
| -
| extendLists
| Позволяет добавить анкету в конец списка мужских либо женских анкет
| MaleListHead, FemaleListHead: TSP
| -
| BubbleSort
| Сортирует (по возрастанию) список по выбранному полю
| HeadP: TSP; FirstIsBigger: TFieldsCompare
| -
| setFilterStartSettings
| Устанавливает начальные значения фильтра
| Filter: TFilter
| -
| useFilter
| Применяет фильтр к выбранному списку, в результате чего формируется массив указателей на подходящие элементы
| HeadP: TSp; Filter: TFilter
| TResultArr
| deleteRecord
| Удаляет из списка выбранную запись
| HeadP, CurrP, PrevP: TSP
| -
| modifyRecord
| Изменяет выбранную запись
| CurrP: TSp
| -
| findInOneList
| Производит поиск анкет в выбранном списке по заданному фильтру
| HeadP: TSP; PartnersFile: TPartnersFile
| -
| findCouples
| Производит поиск подходящих для формирования пары анкет
| MaleListHead, FemaleListHead: TSP
| TCouples
|
2.2 Тестирование и отладка программы
Таблица 2.2 Прохождение тестов программы
Специфика тестирования
| Номер теста
| Вводимые данные
| Ожидаемый результат
| Полученный результат
| Загрузка из пустого файла
| 1
| -
| Сообщение о том, что файл пуст, и предложение заполнить список вручную
| Тест пройден
| Вывод пустого списка
| 2
| -
| Список пуст
| Тест пройден
| Сортировка пустого списка, удаление/редактирование элементов в пустом списке, поиск в пустом списке по фильтрам
| 3
| -
| Сообщение о том, что список пуст, и предложение заполнить список вручную либо загрузить его из файла
| Тест пройден
|
|