Файл: Курсовая база торговх точек города.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Программирование

Добавлен: 25.10.2018

Просмотров: 959

Скачиваний: 12

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Замечание. Никогда нельзя создавать объект класса TStrings, поскольку он абстрактный. В Delphi это означает, что некоторые из его методов объявляются, но не определяются. Вызов таких методов приводит к особой ситуации. В обязанности порожденных классов входит замещение этих методов реальными, которые превращают абстрактный класс в что-либо полезное.

Класс TStringList предназначен для хранения текстовых строк и связанных с ними объектов (любых потомков TObject), делая это простейшим способом - указатель на объект и соответствующая строка объединяются в запись, указатель на которую хранится в списке. В объекте этого класса можно хранить или только строки или строки и объекты, причем в последнем случае строки играют роль имен/идентификаторов объектов.

Общее количество пар в списке определяется свойством Count: integer.

К строкам и объектам можно получить доступ через векторные свойства: Strings[Index: integer]: string и Objects[Index: integer]: TObject.

При работе только со строками можно:

Добавлять, удалять, вставлять, перемещать и менять местами строки, используя методы Add, Append, Delete, Insert, Move и Exchange. Метод Clear очищает весь список. Для нахождения позиции строки в списке используется метод IndexOf.

Сразу несколько строк можно добавить в список методом AddStrings, а присвоить один строковый объект другому Assign.

Список можно сортировать методом Sort и определить его отсортированность через свойство Sorted. Используя свойство Duplicates можно установить допустимость в списке дублированных значений.

При работе только со строками и объектами можно добавить и вставить строку вместе с объектом методами AddObject и InsertObject. Позицию объекта в списке можно найти или по строке или собственно по объекту методом IndexOfObject. Методы Delete, Move, Clear и Exchange оперируют и со строкой и с объектом.

В этом классе можно хранить и пары вида "параметр=значение", которые используются, например, в файлах инициализации типа INI. Для работы с такими парами используется свойство Values[const Name: string]: string.

При обращении к нему для чтения ищется строка, содержащая параметр Name и символ "=". Если она найдены, то возвращается его значение, иначе пустая строка. При записи, если строка с параметром Name найдена, то ее значение заменяется новым значением, иначе строка добавляется. Если существующему параметру присваивается пустая строка, то он удаляется из набора строк. Позицию параметра в списке можно найти методом IndexOfName.

Строки в этот объект можно загружать из файла и сохранять в файле методами LoadFromFile и SaveToFile.

Кроме того, для работы с этим объектом предусмотрены два события OnChange и OnChanging, первое из которых вызывается перед внесением изменения в список, а второе после внесения изменения.

Для TStringList имеются методы Create и Free для его создания и уничтожения. Если в этом объекте хранятся другие объекты, то перед уничтожением TStringList уничтожать и их нужно в обязательном порядке.


Примечание. Какой класс использовать для реализации строковых свойств TStrings или TStringList при создании своих компонентов, поскольку последний обеспечивает хранилище строк? Выбор TStringList - это близорукое решение, поскольку для такого свойства вы можете присваивать другие свойства только типа TStringList, а штатные компоненты используют другие потомки TStrings типа TMemoStrings, TListBoxStrings и т.д.,

Лучший подход заключается в объявлении свойства как TStrings и тогда оно будет совместимо со всеми своими потомками, а при создании его использовать свойство полиморфности родительских объектов и создавать его приравнивая его к типу TStringList. Таким приемом, ваше свойство имеет интерфейс TStrings, а TStringList обеспечивает ему память. Именно так реализуются компоненты ListBox, ComboBox и другие. Например:

Type

TMyObject = Class(Tcomponent)

private

Attachments: TStrings;

. . .

public

constructor Create( AOwner: TComponent); override;

destructor Destroy; override;

published

property Attachments: TStrings

read Fattachments write SetAttachments;

. . .

end;

constructor TMyObject .Create( AOwner: TComponent);

begin

inherited Create(AOwner);

Fattachments := TStrinList.Create;

end;

destructor TMyObject .Destroy;

begin

Fattachments.Free;

inherited Destroy;

end;


ГЛАВА 2. РЕАЛИЗАЦИЯ


2.1 Формулировка задания



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

1. База состоит из нескольких связанных таблиц с использованием (по необходимости) связей «один к одному», «один ко многим», «много к одному», «много ко многим».

2. Для облегчения просмотра и поиска используется упорядоченность с помощью индексации.

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

4.Информация, поддающаяся стандартизации, хранится в отдельных таблицах-справочниках, также поддающихся корректировке (с соблюдением целостности).

5.Программа позволяет проводить поиск или выборку информации по произвольному запросу (фильтру). При неудачном задании условия запроса возможна его корректировка (с целью сужения или расширения зоны поиска).

Задание:

8.Справочник покупателя. База торговых точек города: название, адрес и телефоны, специализация, форма собственности, время работы. Выбор магазинов по произвольному шаблону.


2.2 Описание структуры используемых данных



База данных представлена тремя таблицами, которые приведены на рисунке ниже.

Назначение полей:

  1. ID_MAG, ID_SPEC, ID_SOBST – первичный ключ, целый тип.

  2. Name_Sobst, Name_Spec – названия, тектовый тип.

  3. Specializacia, Sobstven – внешние ключи для связи 1кМ.

  4. Остальные поля таблицы tblMagaz в соответствии с заданием.



























2.3 Блок-схема основного алгоритма

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


ГЛАВА 3. ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПРОГРАММЫ

Язык программирования C++ Builder 6.0, операционная система Windows 2000/XP. Драйвер СУБД MS Access не ниже XP. Компьютер с оперативной памятью не менее 512 МБ. Требуемое место на жестком диске не менее 2Мб.

3.1 Инструкция пользователя



Запуск программы:

Добавление магазина:



После добавления:

Удаление магазина:

После удаления:









Редактирование данных:

Поиск данных по шаблону:















Справочники – форма собственности:

Справочники – специализации:


Вывод



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

Для надёжного функционирования объекта необходимо поддерживать целостность и непротиворечивость его данных. Так же желательно изолировать объект от особенностей внутренней реализации его данных. Для внешнего пользователя должен быть доступен только пользовательский интерфейс. При таком подходе разработчик может модернизировать объект, изменять структуру и форму представления его данных. Чтобы выдержать принцип сокрытия данных в объекте выделяют процедуры и функции, обеспечивающие все необходимые операции с данными. Функции и процедуры такого типа называют методами.

Объектное и объектно-ориентированное программирование (ООП) возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).