АИС для учета работы гаражного кооператива

Описание предметной области, техническое задание на разработку программного продукта. Проектирование структуры базы данных: ER-диаграмм, диаграммы функциональных зависимостей, набор основных таблиц и описание полей. Разработка руководства пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.11.2013
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Пояснительная записка

к курсовой работе

АИС для учета работы гаражного кооператива

Введение

Целью курсовой работы является приобретение практических навыков проектирования и разработки приложений баз данных, программирования на Delphi; закрепление знаний, полученных в ходе изучения дисциплины «Организация баз данных и знаний».

В данной работе рассмотрено создание АИС для учета работы гаражного кооператива. АИС позволяет хранить и анализировать данные с возможностью их получения пользователем в любой момент времени и, благодаря обработке этих данных, принять необходимое решение.

Разработанный программный продукт дает пользователю возможность очень быстро изменить или получить необходимую ему информацию. Таким образом, растет скорость принятия решений и возрастает эффективность работы в заданной предметной области. Также есть возможность получения результатов выполнения более сложных запросов, благодаря которым пользователь имеет возможность принимать административные решения на предприятии.

Для выполнения курсовой работы выбран язык Delphi, так как он обеспечивает поддержку различных SQL-серверов и выполнение различных SQL-запросов на локальном компьютере. Delphi объединяет в себе удобство визуальных методов разработки, производительность оптимизирующего компилятора и мощность, заложенную в архитектуре клиент / сервер. Delphi позволяет многократно использовать однажды созданный код, уменьшая время, затраченное на разработку. Это мощный язык программирования, включающий обработку ошибочных ситуаций, позволяющих повысить надежность программ. Delphi содержит Borland Data Base Engine - система, поддерживающая различные форматы файлов данных и диалекты языка SQL большинства производителей с помощью обычных драйверов и ODBC драйверов. Новые и улучшенные способы доступа к данным, увеличение вероятности повторного использования кода, благодаря наследованию визуальных форм и другие возможности этого инструмента, среди которых особенно выделяются кэширование обновлений, фильтры, фоновое выполнение запросов и компоненты построения отчётов. Таблицы базы данных были выполнены в Paradox 7.0.

1. Анализ предметной области

1.1 Описание предметной области

программный база данный пользователь

Предметная область (ПО) курсовой работы - учет работы гаражного кооператива.

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

- хранение информации обо всех гаражах;

- регистрация членов кооператива;

- учет членских взносов;

- создание отчета о собственниках гаражей;

- создание отчета о гаражах кооператива.

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

Глоссарий предметной области:

Гаражный кооператив - это разновидность потребительского кооператива, созданный с целью объединения граждан для вложения в строительство гаражного общества паевых взносов.

Гараж - это здание, предназначенное для хранения, паркования, технического обслуживания автотранспортных средств.

Член кооператива - человек, который сделал вступительный взнос в размерах, определенных уставом кооператива, придерживается устава и пользуется правом голоса в кооперативе.

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

Членский взнос - денежный взнос, ежегодно уплачиваемый членом кооператива для обеспечения текущей деятельности кооперативного объединения.

1.2 Техническое задание на разработку программного продукта

Введение

Программный продукт (ПП) представляет собой реализацию АИС для учета работы гаражного кооператива.

Основание для разработки

Разработка выполняется на основании индивидуального задания на курсовой проект по дисциплине «Организация баз данных и знаний», выданного руководителем курсового проекта Сагайда П.И., преподавателем кафедры компьютерных информационных технологий Донбасской государственной машиностроительной академии 30.12.2012.

Условное обозначение разработки - Жужик.

Назначение разработки

Разрабатываемая система предназначена для автоматизации труда председателя гаражного кооператива: автоматизация составления отчетов; добавление и редактирование данных; поиск и анализ информации.

Требования к программному продукту

Требования к функциональным характеристикам

ПП должен выполнять следующие функции:

- хранение информации о членах кооператива, гаражах кооператива, и сумме ежегодных членских взносов;

- внесение в базу данных новой информации и редактирование существующей;

- создание отчетов о гаражах кооператива, а также о собственниках гаражей;

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

Требования к надежности

- ПП должен устойчиво функционировать и не приводить к сбоям операционной системы;

- ПП должен обеспечивать обработку ошибочных действий пользователя с выдачей соответствующих сообщений.

Условия эксплуатации

Условия эксплуатации ПП определяются СанПиН 2.2.2 545-96 «Гигиенические требования к видеодисплейным терминалам, персональным вычислительным машинам и организации работы».

Требования к составу и параметрам технических средств

Требования к параметрам технических средств, необходимых для эксплуатации ПП, определяются только требованиями к функционированию информационной платформы Delphi.

Требования к информационной и программной совместимости

ПП выполняется под Windows. Разработан в среде Delphi 7.

Требования к программной документации

Программная документация должна включать:

записка к курсовой работе;

исходные коды ПП с комментариями;

руководство пользователя.

Таблица 1.1 - Стадии и этапы разработки

Этап

Содержание этапа

1

Техническое задание

Анализ и формализация требования к ПП,
планирование работ.

2

Диаграммы

Анализ ПО, реализация диаграмм прецедентов и классов.

3

Технический проект

Разработка первоначальной версии ПП с основной функциональностью.

4

Рабочий проект

Корректировка и доработка программного обеспечения; разработка документации.

5

Защита курсовой работы

Защита проекта «АИС для учета работы гаражного кооператива»

2. Проектирование структуры базы данных

2.1 Построение ERиаграмм

В ходе анализа предметной области были выделены основные сущности: «Член кооператива», «Гараж», «Членский взнос», «Ежегодный взнос» а также связи: «Принадлежит», «Оплата». Всего 4 сущности и 2 двухсторонние связи. Сущность «Ежегодный взнос» является справочной и в связях не учавствует. Полученная ER-диаграмма представлена на рисунке 2.1, а диаграмма ER-экземпляров, представлена на рисунке 2.2:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 2.1 - ER-диаграмма

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 2.2 - Диаграмма ER - экземпляров

Получим предварительный набор отношений из ER-диаграммы. Они нужны для создания структуры таблиц БД, а также определение количества таблиц, которые нужно хранить в базе данных.

1) Член кооператива - Гараж

R1 (A, B, C, D);

R2 (I, J, K);

R3 (A, I, F, G, H);

2) Гараж - Членский взнос

R4 (I, J, K);

R5 (L, M, N, O, I);

3) Гараж - Ежегодный взнос

R6 (I, J, K);

R7 (P).

Так как R2, R4 и R6 - одна и та же сущность, получим следующий набор отношений: R=(R1, R2, R3, R5, R7).

2.2 Построение диаграммы функциональных зависимостей

На рисунке 2.3 изображена диаграмма функциональных зависимостей (ФЗ), которая обеспечивает нахождение таблиц в НФБК.

Если сущности имеют связь, появляющуюся динамично, то на диаграмме ФЗ такие сущности имеют общую область. Если между элементами ФЗ имеется функциональная зависимость, они соединяются стрелкой.

По правилам вывода определим, что в нашей ФЗ не существует избыточных зависимостей, т.е. мы имеем минимальное покрытие для диаграммы ФЗ.

Полученная ФЗ обеспечивает нахождение таблиц в НФБК: значения всех атрибутов - атомарны; каждый непервичный атрибут функционально полно и нетранзистивно зависит от первичного ключа; каждый детерминант является возможным ключом. Следовательно, универсальное отношение находится в НФБК и в декомпозиции не нуждается.

2.3 Окончательный набор таблиц и описание полей

В результате процесса проектирования с помощью ER-диаграмм и концепции ФЗ были получены отношения, которые соответствуют набору из пяти таблиц. Окончательный набор таблиц и описание полей представлены в таблицах 2.1-2.5. «*» - отмечены ключи.

Таблица 2.1 - Описание таблицы Garages

Поле

Тип

Назначение

Garage_number *

Short

Номер гаража

Garage_type

Alpha(10)

Тип гаража

Garage_space

Short

Площадь гаража

Таблица 2.2 - Описание таблицы Members

Поле

Тип

Назначение

Id_number *

Alpha(10)

Ид. номер

Name

Alpha(40)

Ф.И.О.

Passport_number

Alpha(8)

Номер паспорта

Phone_number

Alpha(13)

Телефонный номер

Таблица 2.3 - Описание таблицы Membership

Поле

Тип

Назначение

Contract_number *

Alpha(5)

Номер контракта

Garage_number

Short

Номер гаража

Id_number

Alpha(10)

Ид. номер

Own_begin

Date

Начало владения

Own_end

Date

Конец владениия

Таблица 2.4 - Описание таблицы Membership_fee

Поле

Тип

Назначение

Pay_number *

Autoinkrement

Номер квитанции

Garage_number

Short

Номер гаража

Date

Date

Дата оплаты

Year

Alpha(4)

Год взноса

Payment

Number

Сумма

Таблица 2.5 - Описание таблицы Annual_fee

Поле

Тип

Назначение

Garage_type

Alpha(10)

Тип гаража

Sum_in_year

Number

Сумма в год

3. Разработка и реализация АИС

3.1 Построение диаграммы прецедентов использования и диаграммы классов

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

Таблица 3.1 - Цели и задачи автоматизации ПО

Наименование цели

Перечень задач для достижения цели

1. Хранение данных о гаражах, членах кооператива, о том кому принадлежат гаражи и о членских взносах.

2. Создание отчетов о работе гаражного кооператива.

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

- просмотр данных;

- модификация данных.

- создание отчета о гаражах кооператива;

- создание отчета о членах кооператива.

- выполнение запросов для выбранного гаража.

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 3.1 - Диаграмма прецедентов использования

Основной сценарий использования «Модификация информации».

Краткое описание.

Этот вариант использования позволяет студенту председателю кооператива модифицировать данные в таблицах базы данных. Председатель кооператива может удалить, добавить либо же изменить данные в таблицах. Система каталога курсов предоставляет список всех курсов, предлагаемых в текущем семестре.

Основное действующее лицо этого варианта использования - председатель кооператива.

Поток событий.

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

Основной поток.

Добавить запись:

- Председатель кооператива заполняет необходимые поля под надписью «Изменить (добавить) запись». Некоторые поля заполняются вручную, некоторые выбираются из выпадающего списка. Председатель кооператива нажимает кнопку «Добавить запись».

- Система проверяет, заполнены ли все необходимые поля, и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система добавляет запись в таблицу базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение о добавлении записи.

Альтернативные потоки.

1) Изменить запись:

- Председатель кооператива заполняет необходимые поля под надписью «Изменить (добавить) запись». Некоторые поля заполняются вручную, некоторые выбираются из выпадающего списка. Председатель кооператива нажимает кнопку «Изменить запись».

- Система проверяет, заполнены ли все необходимые поля, существует ли изменяемая запись и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система изменяет запись в таблице базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение об изменении записи.

2) Удалить запись:

- Председатель кооператива заполняет поле под надписью «Удалить запись». Председатель кооператива нажимает кнопку «Удалить запись».

- Система проверяет, заполнено ли необходимое поле, существует ли удаляемая запись и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система удаляет запись в таблице базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение об удалении записи.

3) Выполнить сортировку данных в таблице:

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

Диаграмма классов ПО.

Создадим классы-сущности Garage (Гараж), Member (Член кооператива) и Membership_Fee (Членский взнос), Annual_Fee (Ежегодный взнос).

Добавим отношения между классами:

- класс Garage и Member - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один гараж в разное время может принадлежать одному или нескольким членам кооператива, члену кооператива может принадлежать один или несколько гаражей, поэтому кратность связи со стороны классов Гараж и Член кооператива - 1..*;

- класс Garage и Membership_Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один гараж может оплачиваться несколькими взносами или не оплачиваться вообще, каждый членский взнос поступает только от одного гаража, поэтому кратность связи со стороны класса Garage - 1, со стороны Membership_Fee - 0..*;

- класс Garage и Annual_Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Каждому гаражу назначен только один ежегодный взнос, один ежегодный взнос назначен нескольким гаражам, поэтому кратность связи со стороны класса Garage - *, со стороны Annual _Fee - 1.

Структура классов изображена на рисунке 3.2.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 3.2 - Диаграмма классов

3.2 Создание таблиц с помощью СУБД

Для создания таблиц была использована программа DatabaseDesktop.

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

3.3 Описание реализации основных функций приложения БД

Структурные и функциональные особенности приложения

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 3.3 - Связи модулей приложения

Работа приложения ведётся в соответствии со стрелками на рисунке, начиная с главной формы.

Unit1 - содержит функционал для работы с таблицами (сортировку по необходимым полям, добавление, редактирование, удаление записей).

Unit2-5 - содержит функционал для работы с таблицами.

Unit6 - содержит функционал для выполнения запросов к базе данных (долг по гаражу, информация о собственнике гаража, оплаты гаража за весь период, информация о гараже) и вывода результата запроса.

Unit7 - содержит функционал для предоставления отчетов (информация о гаражах, о собственниках гаражей).

Unit8-9 - содержит отчеты (информация о гаражах, о собственниках гаражей).

Unit10 - содержит функционал восстановления данных, выбранных из списка по дате создания. Резервное копирование выполняется из главного меню программы.

Unit11 - содержит информацию о программе.

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

Таблица 3.2 - Используемые компоненты

ТТаble

Для связи с физической таблицей данных

TDBGrid

Для визуализации данных в таблице

TDataSource

Для связи видимых и невидимых компонентов БД

Листинг основных функций программы приведен в приложении А.

Сортировка, фильтрация, и поиск записей

Сортировка записей производится путем подключения различных индексов, созданных при создании таблиц в DatabaseDesktop.

Пример сортировки в таблице «Члены кооператива» представлен ниже:

Рисунок 3.4 - Сортировка данных в таблице «Члены кооператива»

procedure TForm3. RadioButton1Click (Sender: TObject);

begin

Table1. IndexFieldNames:='Id_number';

end;

procedure TForm3. RadioButton2Click (Sender: TObject);

begin

Table1. IndexFieldNames:='Name';

end;

procedure TForm3. RadioButton3Click (Sender: TObject);

begin

Table1. IndexFieldNames:='Passport_number';

end;

Фильтрация в таблице «Членские взносы» может производиться по двум критериям - номеру гаража и учетному году. В других таблицах фильтрация производится аналогично.

Пример фильтрации в таблице «Членские взносы» представлен ниже:

Рисунок 3.5 - Фильтрация данных в таблице «Членские взносы»

procedure TForm5. Button2Click (Sender: TObject);

var filtr, add: string;

begin

Table1. Filtered:=False;

filtr:='';

if Length (Edit5. Text) > 0 then

filtr:= 'Garage_number ='+ Edit5. Text;

if length (Edit6. Text) > 0 then

begin

if Length(filtr) > 0 then add:= ' and ' else add:='';

filtr:=filtr + add + 'Payment_year ='+ Edit6. Text;

end;

if length(filtr) > 0 then

begin

Table1. Filter:= filtr;

Table1.filtered:=True;

end

else MessageDlg ('Все поля пусты!', mtInformation, [mbOk], 0);

end;

В каждой таблице реализован поиск записей при помощи функции Locate и возврат значений из найденной записи при помощи функции Lookup.

Пример поиска в таблице «Гаражи» представлен ниже:

Рисунок 3.6 - Поиск записи в таблице «Гаражи»

procedure TForm2. Button1Click (Sender: TObject);

var Res1, Res2: Variant;

begin

Table1. Locate ('Garage_number', Edit4. Text, [loCaseInsensitive, loPartialKey]);

if not Table1. Locate ('Garage_number', Edit4. Text, [loCaseInsensitive, loPartialKey])

then MessageDlg ('Запись не найдена!', mtInformation, [mbOk], 0) else

begin

Res1:=Table1. Lookup ('Garage_number', Edit4. Text, 'Garage_type');

Res2:=Table1. Lookup ('Garage_number', Edit4. Text, 'Garage_space');

MessageDlg ('тип гаража: '+String(Res1)+#13+'площадь гаража: '+String(Res2), mtInformation, [mbOk], 0);

end;

end;

Запросы к базе данных, реализованные в приложении

Запросы выполняются при помощи компонента TQuery. Результаты запроса выводятся в компоненте TDBGrid, посредством TDataSource.

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

1) Содержит информацию о долге заданного гаража.

SELECT Garage_number as Номер_гаража, ((2013-2009)*(SELECT a. Sum_in_year

FROM Annual_fee a, Garages b

WHERE a. Garage_type=b. Garage_type AND b. Garage_number=4) -

(SELECT sum(Payment)

FROM Membership_fee

WHERE Garage_number=4)) as Долг

FROM Garages

WHERE Garage_number=4

Результат запроса представлен на рисунке 3.7.

Рисунок 3.7 - Результат запроса №1

2) содержит информацию о собственнике заданного гаража.

SELECT a. Contract_date as Дата_контракта, b. Id_number as Ид_номер, b. Name as Ф.И.О., b. Passport_number as Номер_паспорта, b. Phone_number as Номер_телефона

FROM Membership a, Members b

WHERE a. Id_number=b. Id_number AND a. Garage_number=4

Результат запроса представлен на рисунке 3.8.

Рисунок 3.8 - Результат запроса №2

3) содержит информацию о членских взносах за заданный гараж за весь период существования гаражного кооператива;

SELECT Payment_date as Дата_оплаты, Payment_year as Год, Payment as Сумма

FROM Membership_fee

WHERE Garage_number=4

Результат запроса представлен на рисунке 3.9.

Рисунок 3.9 - Результат запроса №3

4) содержит информацию о заданном гараже, включая Ф.И.О. текущего собственника.

SELECT a. Garage_type as Тип_гаража, a. Garage_space as Площадь_гаража, c. Name as Собственник

FROM Garages a, Membership b, Members c

WHERE c. Id_number=b. Id_number AND a. Garage_number=b. Garage_number AND a. Garage_number=4

AND b. Contract_date=(SELECT MAX (Contract_date)

FROM Membership

WHERE Garage_number=a. Garage_number)

Отчеты о содержимом базы данных, реализованные в приложении

В программе реализованы отчёты по содержимому системы баз данных. Первый отчет содержит информацию о гаражах кооператива, а второй содержит информацию о текущих собственниках всех гаражей.

Рисунок 3.10 - Отчет о гаражах кооператива

Рисунок 3.11 - Отчёт о собственниках гаражей

Политика безопасности

В разработанном приложении существует возможность резервного сохранения данных (происходит создание директории с именем текущей даты и копирование туда БД), восстановления (восстановление данных из одной из папок, созданных при резервном сохранении).

Контроль ввода в необходимых полях при добавлении и редактировании записей в таблицы базы данных.

4. Руководство пользователя

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

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

При выборе запросов открывается окно «Запросы», в котором необходимо выбрать номер гаража и запрос и нажать кнопку выполнить. Результат запроса отобразится в текущем окне.

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

Внешний вид форм приведён в приложении Б.

Заключение

Данный программный комплекс является реализацией курсовой работы по дисциплине «Организация баз данных и знаний» и предполагает разработку базы данных «Автоматизированная информационная система (АИС) учета работы гаражного кооператива». АИС позволяет вести автоматизированный учет всех гаражей и членов кооператива, а также вести учет оплаты членских взносов. Это позволяет существенно облегчить рутинную работу председателя кооператива, избежать возможности ошибок и повысить эффективность работы гаражного кооператива.

Список используемой литературы

1 Сагайда П.І. Розробка та організація баз даних у системах автоматизації проектування та управління: Навчальний посібник для студентів спеціальності 7.080402. - Краматорськ.: ДДМА, 2003. - 160 с.

2 Четвериков В.Н., Ревунков Г.И., Самохвалов Э.Н. Базы и банки данных: Учеб. для ВУЗов. - М.: Высш. шк., 1987. - 248 с.

3 Базы данных: Учебник для вузов / Под ред. А.Д. Хомоненко. - СПб.: Корона принт, 2000. - 416 с.

4 Хансен Г., Хансен Дж. Базы данных: разработка и управление. - М.: Бином, 1999. - 560 с.

5 Наумов А.Н. и др. Системы управления базами данных и знаний. - М.: Финансы и статистика, 1991. - 315 с.

6 Программирование в среде Delphi: Пер. с англ. / Джефф Дантеманн, Джим Мишел, Дон Тейлор.-К:НИПФ «ДиаСофтЛтд.», 1995.-608 с.

7 Фаронов В.В., Шумаков П.В. Delphi 5 Руководство разработчика БД - М.: Нолидж, 2000-640 с.

8 Бобровский С.И. Delphi 7 Учебный курс - СПб.: Питер, 2005 - 736 с.

9 В. Гофман, А. Хоменко Работа с базами данных в Delphi.-C-П.: «БХВ-Петербург», 2002.-621 с.

Приложение А

Функции приложения

1. Добавление записи в базу данных (на примере таблицы «Гаражи»).

procedure TForm2. ButtonAddClick (Sender: TObject);

begin

if ((Edit2. Text='') and (Edit3. Text='')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, [mbOk], 0) else

if Edit2. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0) else

if Edit3. Text='' then MessageDlg ('Введите площадь гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit2. Text);

Query1. Open;

if Query1. RecordCount<>0 then MessageDlg ('Запись уже существует, введите корректный номер гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('INSERT INTO Garages');

Query1.SQL. Add ('VALUES('+Edit2. Text+', «'+ComboBox1. Text+''', '+Edit3. Text+')');

Query1. ExecSQL;

MessageDlg ('Запись добавлена!', mtInformation, [mbOk], 0);

Table1. Refresh;

end;

end;

end;

2. Редактирование записи в базе данных (на примере таблицы «Гаражи»).

procedure TForm2. ButtonChangeClick (Sender: TObject);

begin

if ((Edit2. Text='') and (Edit3. Text='')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, [mbOk], 0) else

if Edit2. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0) else

if Edit3. Text='' then MessageDlg ('Введите площадь гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit2. Text);

Query1. Open;

if Query1. RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('UPDATE Garages');

Query1.SQL. Add ('SET Garage_type='''+ComboBox1. Text+''', Garage_space='+Edit3. Text);

Query1.SQL. Add ('WHERE Garage_number='+Edit2. Text);

Query1. ExecSQL;

MessageDlg ('Запись изменена!', mtInformation, [mbOk], 0);

Table1. Refresh;

end;

end;

end;

3. Удаление записи из базы данных (на примере таблицы «Гаражи»).

procedure TForm2. ButtonDeleteClick (Sender: TObject);

begin

if Edit1. Text='' then MessageDlg ('Введите номер гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('SELECT * FROM Garages WHERE Garage_number='+Edit1. Text);

Query1. Open;

if Query1. RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, [mbOk], 0)

else

begin

Query1. Close;

Query1.SQL. Clear;

Query1.SQL. Add ('DELETE FROM Garages');

Query1.SQL. Add ('WHERE Garage_number='+Edit1. Text);

Query1. ExecSQL;

MessageDlg ('Запись удалена!', mtInformation, [mbOk], 0);

Table1. Refresh;

end;

end;

end;

4. Выполнение SQL-запросов, выбранных пользователем.

procedure TForm6. Button1Click (Sender: TObject);

begin

if ComboBox1. Text='' then MessageDlg ('Выберите номер гаража', mtInformation, [mbOk], 0) else

if RadioButton1. Checked then

begin

Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';

Query2. Close;

Query2.SQL. Clear;

Query2.SQL. Add ('SELECT ((2013-2009)*(SELECT a. Sum_in_year FROM Annual_fee a, Garages b WHERE a. Garage_type=b. Garage_type AND b. Garage_number='+ComboBox1. Text+') - (SELECT sum(Payment) FROM Membership_fee WHERE Garage_number='+ComboBox1. Text+')) as Долг');

Query2.SQL. Add ('FROM Garages');

Query2.SQL. Add ('WHERE Garage_number='+ComboBox1. Text);

Query2. ExecSQL;

Query2. Active:=True;

end

else

if RadioButton2. Checked then

begin

Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';

Query2. Close;

Query2.SQL. Clear;

Query2.SQL. Add ('SELECT a. Contract_date as Дата_контракта, b. Id_number as Ид_номер, b. Name as Ф.И.О., b. Passport_number as Номер_паспорта, b. Phone_number as Номер_телефона');

Query2.SQL. Add ('FROM Membership a, Members b');

Query2.SQL. Add ('WHERE a. Id_number=b. Id_number AND a. Garage_number='+ComboBox1. Text);

Query2. ExecSQL;

Query2. Active:=True;

end

else

if RadioButton3. Checked then

begin

Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';

Query2. Close;

Query2.SQL. Clear;

Query2.SQL. Add ('SELECT Payment_date as Дата_оплаты, Payment_year as Год, Payment as Сумма');

Query2.SQL. Add ('FROM Membership_fee');

Query2.SQL. Add ('WHERE Garage_number='+ComboBox1. Text);

Query2. ExecSQL;

Query2. Active:=True;

end

else

if RadioButton4. Checked then

begin

Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':';

Query2. Close;

Query2.SQL. Clear;

Query2.SQL. Add ('SELECT a. Garage_type as Тип_гаража, a. Garage_space as Площадь_гаража, c. Name as Собственник');

Query2.SQL. Add ('FROM Garages a, Membership b, Members c');

Query2.SQL. Add ('WHERE c. Id_number=b. Id_number AND a. Garage_number=b. Garage_number AND a. Garage_number='+ComboBox1. Text);

Query2.SQL. Add ('AND b. Contract_date=(SELECT MAX (Contract_date) FROM Membership WHERE Garage_number=a. Garage_number)');

Query2. ExecSQL;

Query2. Active:=True;

end;

end;

5. Создание резервной копии БД.

procedure TForm1.mniBackUpClick (Sender: TObject);

var SR:TSearchRec;

Res:integer;

begin

if not DirectoryExists ('c:\DB\Garage\')

then Exit;

Res:=FindFirst ('c:\DB\Garage\'+'*.*', faAnyFile, SR);

if Res<>0 then Exit else

if DirectoryExists ('c:\DB\Garage_backup\'+DateToStr(Date)+'\')

then begin

MessageDlg ('Резервное копирование возможно выполнить тоько 1 раз в сутки', mtInformation, [mbOk], 0);

Exit;

end

else ForceDirectories ('c:\DB\Garage_backup\'+DateToStr(Date)+'\');

repeat

if (SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then CopyFile (PAnsiChar('c:\DB\Garage\'+SR. Name), PAnsiChar ('c:\DB\Garage_backup\'+DateToStr(Date)+'\'+SR. Name), true);

until FindNext(SR)<>0;

MessageDlg ('Резервное копирование выполнено', mtInformation, [mbOk], 0)

end;

6. Восстановление БД.

procedure TForm10. ButtonRepairClick (Sender: TObject);

var SR:TSearchRec;

Res:integer;

begin

if ComboBox1. Text='' then MessageDlg ('Не выбрана дата создания резервной копии', mtInformation, [mbOk], 0) else

begin

Res:=FindFirst ('c:\DB\Garage\'+'*.*', faAnyFile, SR);

if Res<>0 then Exit else

repeat

if (SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then

DeleteFile (PAnsiChar('c:\DB\Garage\'+SR. Name));

until FindNext(SR)<>0;

Res:=FindFirst ('c:\DB\Garage_backup\'+ComboBox1. Text+'\'+'*.*', faAnyFile, SR);

if Res<>0 then Exit else

repeat

if (SR. Name<>'') and (SR. Name<>'.') and (SR. Name<>'..') then

CopyFile (PAnsiChar('c:\DB\Garage_backup\'+ComboBox1. Text+'\'+SR. Name), PAnsiChar ('c:\DB\Garage\'+SR. Name), true);

until FindNext(SR)<>0;

MessageDlg ('База данных восстановлена', mtInformation, [mbOk], 0)

end;

Приложение Б

Экранные формы приложения

Рисунок Б1 - Главная форма приложения

Рисунок Б2 - Форма редактирования таблицы

Рисунок Б3 - Форма запросов

Рисунок Б4 - Форма отчетов

Размещено на Allbest.ru


Подобные документы

  • Словесное описание предметной области. Построение схемы функциональных зависимостей. Реализация базы данных средствами утилиты Enterprise Manager в формате SQL Server Management Studio. Разработка алгоритмов работы программы и приложения пользователя.

    дипломная работа [1,8 M], добавлен 26.03.2015

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

    курсовая работа [866,3 K], добавлен 02.06.2015

  • Создание концептуальной (инфологической) модели системы, которая позволила описать сущности предметной области и отношения между ними. Диаграммы функциональных зависимостей атрибутов сущностей базы данных. Разработка программного обеспечения для ЭВМ.

    курсовая работа [877,8 K], добавлен 28.05.2012

  • Анализ предметной области. Обзор программ-аналогов. Рассмотрение средств решения поставленной задачи. Проектирование структуры программы и базовых алгоритмов. Изучение руководства программиста и пользователя. Проектирование структуры базы данных.

    курсовая работа [1,0 M], добавлен 14.11.2017

  • Анализ предметной области АИС "Подписка". Проектирование базы данных методом "Сущность-Связь" для разработанной функциональной модели. Описание таблиц базы данных. Выбор программного обеспечения, требования к нему. Краткое руководство пользователя.

    курсовая работа [719,6 K], добавлен 15.09.2012

  • Техническое задание на разработку программного продукта и требования к программе. Написание алгоритма работы и разработка интерфейса программы. Руководство системного программиста и оператора. Основные методы и принципы тестирования базы данных.

    дипломная работа [2,7 M], добавлен 27.01.2013

  • Проектирование информационной системы. Построение диаграммы потоков данных. Описание порядка построения DFD-диаграммы. Создание базы данных с помощью SQL сервера. Описание основных бизнес-правил и их физической реализации. Заполнение таблиц данными.

    курсовая работа [1,5 M], добавлен 13.12.2011

  • Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.

    курсовая работа [624,5 K], добавлен 30.05.2019

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

    дипломная работа [2,1 M], добавлен 11.07.2015

  • Анализ предметной области, ее формализации с помощью функциональных зависимостей. Этапы минимизации системы функциональных зависимостей и на основании полученной редуцированной системы проектирование модели базы данных. Создание и моделирование запросов.

    курсовая работа [1,7 M], добавлен 21.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.