Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Искаков Данил Курсовая работа №1 Группа 417.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
456 Кб
Скачать
☆

1.3. Вывод по критериям.

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

Кликнув в “окошко” «Фамилия» можно осуществить поиск владельца собаки по его фамилии, даже набрав первую букву его фамилии поиск станет значительно проще, потому что программа выдаст фамилии начинающиеся именно с этой буквы. То же самое можно проделать c “окошками” «Кличка» собаки и «Порода» собаки. (Рис.1.11 «Вывод по критериям» и Рис.1.12 «Вывод по критериям»)

Рис.1.11 «Вывод по критериям»

Рис.1.12 «Вывод по критериям»

Глава 2. Руководство программисту.

2.1. Описание структуры данных.

Записи объединяют фиксированное число элементов данных. Используются поля, отдельные элементы записи, имеющие имена. Каждое имя поля должно быть уникально. Чтобы объединить данные разных типов, используется вариативная запись. Она имеет конечное число полей, однако предоставляет возможность по-разному использовать области памяти, занимаемые полями. Все варианты записи располагаются в одном месте памяти и позволяют обращаться к ним по различным именам. Каждый вариант обозначается минимум одной константой. Все константы должны быть порядковыми и совместимыми по типу с меткой поля. Для обращения к конкретному полю необходимо указывать имя записи и имя поля, разделенные точкой, т. е. имя поля является составным. С полем можно выполнять все операции, которые допускаются для отдельной переменной этого же типа.

Структура данных:

PKino = ^TKino;// описание типизированного указателя

elem = record // объявление переменной типа record

next, previous: ptr; // указатели на предыдущую и следующую записи

s_fio, s_age, s_address, s_doctor: string[50]; // объявление записей, не зависящие от вариативной записи

case ch: char of // вариантная часть

'y': (s_group, s_ill: string[30]; s_srok: TDate); // объявление записей, если есть инвалидность

'n': (s_comp: string[30]; s_reg, s_dog: TDate); // объявление записей, если нет инвалидности

var

Npos: integer; // определение типа указателя

NoteFl: file of elem; // определение типа файла

head, pcur, result, p: Ptr; // объявление указателей на начало файла, текущую запись, последнюю запись, запись

Form1: TForm1;

В программе используются связные списки — структура данных, состоящая из узлов, каждый из которых содержит как собственно данные, так и одну или две ссылки («связки») на следующий и/или предыдущий узел списка. В данной программе мы используем двунаправленный список, непременным условием которого является наличие взаимных ссылок двух соседних элементов друг на друга, поэтому в запись мы добавляем 2 дополнительных поля.

В таком списке каждый элемент (кроме первого и последнего) связан с предыдущим и следующим за ним элементами. Каждый элемент двунаправленного списка имеет два поля с указателями: одно поле содержит ссылку на следующий элемент, другое поле – ссылку на предыдущий элемент и третье поле – информационное. Наличие ссылок на следующее звено и на предыдущее позволяет двигаться по списку от каждого звена в любом направлении: от звена к концу списка или от звена к началу списка, поэтому такой список называют двунаправленным.