Работа с Microsoft Access, спецификация в Delphi 7

 

Задание на курсовую работу


Спроектировать базу данных для гостиницы

База данных содержит информацию о клиентах: Фамилия, Имя, Отчество, адрес, пол, документ, предъявленный при въезде в гостиницу, дату въезда, срок проживания, фамилию служащего гостиницы, оформившего конкретного клиента, номер (двухместный, одноместный, люкс), оплачено ли проживание в гостинице. Стоимость проживания в сутки зависит от типа номера. Кроме того, в базе данных содержится информация о сотрудниках гостиницы: фамилия, имя, отчество, должность, график работы (четные, нечетные дни). Один сотрудник может обслуживать несколько клиентов.

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



Введение


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

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

Постепенно с развитием программного обеспечения ЭВМ появились идеи создания управляющих систем, которые позволяли бы накапливать, хранить и обновлять взаимосвязанные данные по целому комплексу решаемых задач. Эти идеи нашли свое воплощение в системах управления базами данных (СУБД).

Используемая нами программа «Microsoft ACCESS» - это функционально полная реляционная СУБД. Система управления базами данных Microsoft ACCESS является одним из самых популярных приложений в семействе настольных СУБД. Все версии ACCESS имеют в своем арсенале средства, значительно упрощающие ввод и обработку данных, поиск данных и предоставление информации в виде таблиц, графиков и отчетов. Встроенная функция SQL позволяет легко и быстро создавать запросы. Именно благодаря этим преимуществам наш выбор остановился на данной базе данных.

Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). В принципе, сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный «ODBC socket», который позволяет встраивать их в BDE.

Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, «наследуются» BDE, и поэтому этими же особенностями обладает и Delphi.


1. Программная спецификация в Microsoft Access


.1 Создание таблиц


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

Для отображения полной информации по состоянию гостиницы, созданы следующие таблицы:

1.«Гости»

Таблица имеет следующие поля:

_гостя (ключевое поле) - тип данных: счётчик


Фамилия - тип данных: текстовый


Имя - тип данных: текстовый


Отчество - тип данных: текстовый


Документ - тип данных: текстовый


Таблица в режиме конструктора имеет вид:



В заполненном виде таблица имеет вид:



2.«Номера»

Таблица имеет следующие поля:


Номер (ключевое поле) - тип данных: числовой


Тип - тип данных: текстовый


Стоимость - тип данных: числовой


Таблица в режиме конструктора имеет вид:



В заполненном виде таблица имеет вид:



3.«Сотрудники»

_сотрудника (ключевое поле) - тип данных: счётчик

Фамилия - тип данных: текстовый


Имя - тип данных: текстовый


Отчество - тип данных: текстовый


Должность - тип данных: текстовый


График - тип данных: текстовый


Таблица в режиме конструктора имеет вид:



В заполненном виде таблица имеет вид:



4.«Регистр»

_заказа (ключевое поле) - тип данных: счётчик

_гостя - тип данных: числовой


Id_сотрудника - тип данных: числовой


Номер - тип данных: числовой


Дата_заселения - тип данных: дата / время


Дата_выезда - тип данных: дата / время


Стоимость - тип данных: числовой


Отметка_оплаты - тип данных: текстовый


Таблица в режиме конструктора имеет вид:



В заполненном виде таблица имеет вид:



Типы используемых полей и их описание

1. Текстовый - текст или комбинация текста и чисел, например, адреса, а также числа, не требующие вычислений, например, номера телефонов, инвентарные номера или почтовые индексы. Сохраняет до 255 знаков.

. Числовой - данные, используемые для математических вычислений, за исключением финансовых расчетов (для них следует использовать тип «Денежный»). Сохраняет 1, 2, 4 или 8 байтов.

. Дата / Время - используется для хранения дат и времени полей, в которых данные представлены в специальном формате. Данные этого типа занимают 8 байт.


1.2 Описание связей между таблицами


Связь между таблицами устанавливает отношение между совпадающими значениями в ключевых полях. Различаются связи нескольких типов, для которых введены следующие обозначения:

)«один к одному» (1: 1);

)«один ко многим» (1: ?);

)«многие ко многим» (?: ?).

В данной курсовой работе использовалась связь «один ко многим» - это наиболее подходящий вид связи, для этой базы данных. При такой связи каждой строке таблицы «А» может соответствовать множество строк таблицы «Б», однако каждой строке таблицы «Б» может соответствовать только одна строка таблицы «А».

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


1.3 Создание запросов


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

Запрос №1. Выезжают на дату.

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

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

Запрос №3. Проживают сегодня.

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

Запрос №4. Свободные номера на дату.

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

Запрос №5. Сотрудник обслуживает.

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


2. Программная спецификация в Delphi 7


.1 Теоретическая часть


Чтобы начать разработку нового приложения в Delphi7 надо в меню File выбрать команду New | Application. Работа над новым проектом начинается с создания стартовой формы - главного окна программы. Стартовая форма создается путем изменения значений свойств формы Form1 (настройки формы) и добавление к форме необходимых компонентов (полей ввода Edit, полей вывода текстовой информации Label, командных кнопок Button).

В основные свойства формы, которые определяют ее вид, и поведение во время работы программы входят:- имя формы (предназначено для управления формой и доступа к ее компонентам)- текст заголовка- ширина формы- высота формы- вид границы. Граница может быть обычной (bsSizeable), тонкой (bsSingle), или отсутствовать (bsNone).- кнопки управления окном (свернуть, развернуть).- значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню.- цвет фона.- шрифт.

Все эти свойства программист может менять по своему усмотрению и вкусу.

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

Standart:

MainMenu, PopupMenu, Label, Edit, GroupBox, Panel, CheckBox, ComboBox использовались для создания меню, просмотра информации, добавлениятекстовых меток, создания гибкого интерфейса.:

BitBtn и SpeedButton используются для организации кнопок навигации, Image для вставки изображений.- элемент для рельефного оформления интерфейса.

В своей работе я пользовался т Технологией ADO.

ADO - это технология стандартного обращения к реляционным структурам данных от Microsoft. Она аналогична BDE по назначению и сродни ему по возможностям.

В Палитре компонентов Delphi есть страница ADO, содержащая набор компонентов, позволяющих создавать полноценные приложения БД, обращающиеся к данным через ADO.

Как руководство к использованию, я просматривал обучающее видео #"justify">.


2.2 Листинги


Листинг №1.Unit1;


, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

= class(TForm): TDataSource;: TDBGrid;: TDBNavigator;: TADOConnection;: TADOQuery;: TButton;: TEdit;: TButton;: TButton;: TButton;: TButton;: TButton;: TLabel;: TButton;: TLabel;: TEdit;: TButton;: TLabel;: TEdit;: TLabel;: TEdit;: TButton;Button1Click (Sender: TObject);Button2Click (Sender: TObject);Button3Click (Sender: TObject);Button4Click (Sender: TObject);Button5Click (Sender: TObject);Button6Click (Sender: TObject);Button7Click (Sender: TObject);Button8Click (Sender: TObject);Button9Click (Sender: TObject);

{Private declarations}

{Public declarations};

: TForm1;



{$R *.dfm}

TForm1. Button1Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT Гости. Фамилия, Гости. Имя, Гости. Отчество, Регистр. Номер, Регистр. Дата_заселения, Регистр. Дата_выезда '

+'FROM Гости INNER JOIN Регистр ON Гости. Id_гостя = Регистр. Id_гостя WHERE (Регистр. Дата_заселения<=#'+Edit1. Text+'#) AND (Регистр. Дата_выезда>=#'+Edit1. Text+'#)';. Active:=True;;

TForm1. Button2Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT * FROM Гости';. Active:=True;;

TForm1. Button3Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT * FROM Сотрудники';. Active:=True;;

TForm1. Button4Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT * FROM Номера';. Active:=True;;

TForm1. Button5Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT * FROM Регистр';. Active:=True;;

TForm1. Button6Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT Регистр. Id_заказа, Гости. Фамилия, Гости. Имя, Регистр. Номер, Сотрудники. Фамилия, Регистр. Дата_заселения, Регистр. Дата_выезда, Регистр. Стоимость, Регистр. Отметка_оплаты '

+'FROM Сотрудники INNER JOIN (Номера INNER JOIN (Гости INNER JOIN Регистр ON Гости. Id_гостя = Регистр. Id_гостя) ON Номера. Номер = Регистр. Номер) ON Сотрудники. Id_сотрудника = Регистр. Id_сотрудника';. Active:=True;;

TForm1. Button7Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT Номера. Номер, Номера. Тип, Номера. Стоимость '

+'FROM Номера LEFT JOIN Регистр ON Номера. Номер = Регистр. Номер '

+'WHERE (((Регистр. Номер) Is Null)) OR (((Регистр. Дата_выезда)<=#'+Edit2. Text+'#))';. Active:=True;;

TForm1. Button8Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT Гости. Фамилия, Гости. Имя, Гости. Отчество, Регистр. Номер '

+'FROM Гости INNER JOIN Регистр ON Гости. Id_гостя = Регистр. Id_гостя '

+'WHERE (((Регистр. Дата_выезда)=#'+Edit3. Text+'#))';. Active:=True;;

TForm1. Button9Click (Sender: TObject);. Active:=False;.SQL. Text:='SELECT Сотрудники. Фамилия, Сотрудники. Имя, Сотрудники. Отчество, Сотрудники. Должность, Регистр. Номер, Гости. Фамилия, Регистр. Дата_заселения, Регистр. Дата_выезда '

+'FROM Гости INNER JOIN (Сотрудники INNER JOIN Регистр ON Сотрудники. Id_сотрудника = Регистр. Id_сотрудника) ON Гости. Id_гостя = Регистр. Id_гостя '

+'WHERE (((Сотрудники. Фамилия)= «'+Edit4. Text+'») AND ((Регистр. Дата_заселения)<=#'+Edit1. Text+'#) AND ((Регистр. Дата_выезда)>=#'+Edit1. Text+'#))';. Active:=True;;

.


Листинг №2.

Form1: TForm1= 189= 178= bsToolWindow= #1054#1090#1077#1083#1100= 497= 1011= clBtnFace. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -11. Name = 'MS Sans Serif'. Style = []= False= 96= 13Label1: TLabel= 152= 232= 134= 16= #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -13. Name = 'MS Sans Serif'. Style = [fsBold]= FalseLabel2: TLabel= 152= 272= 134= 16= #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -13. Name = 'MS Sans Serif'. Style = [fsBold]= FalseLabel3: TLabel= 152= 312= 134= 16= #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -13. Name = 'MS Sans Serif'. Style = [fsBold]= FalseLabel4: TLabel= 152= 352= 158= 16= #1092#1072#1084#1080#1083#1080#1103' '#1089#1086#1090#1088#1091#1076#1085#1080#1082#1072. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -13. Name = 'MS Sans Serif'. Style = [fsBold]= FalseDBGrid1: TDBGrid= 8= 16= 929= 97= DataSource1= 0. Charset = DEFAULT_CHARSET. Color = clWindowText. Height = -11. Name = 'MS Sans Serif'. Style = []DBNavigator1: TDBNavigator= 16= 128= 920= 25= DataSource1= 1Button1: TButton= 16= 224= 129= 25= #1055#1088#1086#1078#1080#1074#1072#1102#1097#1080#1077= 2= Button1ClickEdit1: TEdit= 296= 224= 81= 25= 3= '8/08/2013'Button2: TButton= 16= 176= 129= 25= #1043#1086#1089#1090#1080= 4= Button2ClickButton3: TButton= 160= 176= 129= 25= #1057#1086#1090#1088#1091#1076#1085#1080#1082#1080= 5= Button3ClickButton4: TButton= 304= 176= 129= 25= #1053#1086#1084#1077#1088#1072= 6= Button4ClickButton5: TButton= 448= 176= 129= 25= #1056#1077#1075#1080#1089#1090#1088= 7= Button5ClickButton6: TButton= 592= 176= 129= 25= #1046#1091#1088#1085#1072#1083= 8= Button6ClickButton7: TButton= 16= 264= 129= 25= #1057#1074#1086#1073#1086#1076#1085#1099#1077' '#1084#1077#1089#1090#1072= 9= Button7ClickEdit2: TEdit= 296= 264= 81= 25= 10= '8/08/2013'Button8: TButton= 16= 304= 129= 25= #1042#1099#1077#1079#1078#1072#1102#1090= 11= Button8ClickEdit3: TEdit= 296= 304= 81= 25= 12= '8/08/2013'Edit4: TEdit= 320= 344= 161= 25= 13= #1041#1077#1089#1087#1072#1083#1086#1074#1072Button9: TButton= 16= 344= 129= 25= #1054#1073#1089#1083#1091#1078#1080#1074#1072#1077#1090= 14= Button9ClickDataSource1: TDataSource= ADOQuery1= 960= 88ADOConnection1: TADOConnection= True=

'Provider=Microsoft. Jet.OLEDB.4.0; Data Source=Hotel.mdb; Persist S' +

'ecurity Info=False'= False= cmShareDenyNone= 'Microsoft. Jet.OLEDB.4.0'= 960= 48ADOQuery1: TADOQuery= True= ADOConnection1= ctStatic= <>. Strings = (


'SELECT '#1056#1077#1075#1080#1089#1090#1088'. Id_'#1079#1072#1082#1072#1079#1072', '#1043#1086#1089#1090#1080'.'#1060#1072#1084#1080#1083#1080#1103', '#1043#1086#1089#1090#1080'.'#1048#1084#1103', '#1056#1077#1075#1080#1089#1090#1088'.'#1053#1086#1084#1077 +

#1088', '#1057#1086#1090#1088#1091#1076#1085#1080#1082#1080'.'#1060#1072#1084#1080#1083#1080#1103', '#1056#1077#1075#1080#1089#1090#1088'.'#1044#1072#1090#1072'_'#1079#1072#1089#1077#1083#1077#1085#1080#1103', '#1056#1077#1075#1080#1089#1090#1088'.'#1044#1072#1090#1072'_'#1074#1099#1077#1079 +

#1076#1072', '#1056#1077#1075#1080#1089#1090#1088'.'#1057#1090#1086#1080#1084#1086#1089#1090#1100', '#1056#1077#1075#1080#1089#1090#1088'.'#1054#1090#1084#1077#1090#1082#1072'_'#1086#1087#1083#1072#1090#1099


'FROM '#1057#1086#1090#1088#1091#1076#1085#1080#1082#1080' INNER JOIN ('#1053#1086#1084#1077#1088#1072' INNER JOIN ('#1043#1086#1089#1090#1080' INNER JOIN ' +

#1056#1077#1075#1080#1089#1090#1088' ON '#1043#1086#1089#1090#1080'. Id_'#1075#1086#1089#1090#1103' = '#1056#1077#1075#1080#1089#1090#1088'. Id_'#1075#1086#1089#1090#1103') ON '#1053#1086#1084#1077#1088#1072'.'#1053#1086#1084#1077#1088' = ' +

#1056#1077#1075#1080#1089#1090#1088'.'#1053#1086#1084#1077#1088') ON '#1057#1086#1090#1088#1091#1076#1085#1080#1082#1080'. Id_'#1089#1086#1090#1088#1091#1076#1085#1080#1082#1072' = '#1056#1077#1075#1080#1089#1090#1088'. Id_'#1089#1086#1090#1088#1091#1076#1085#1080 +

#1082#1072';')

Left = 960

Top = 16

end

end.


3. Процедуры тестирования и сопровождения

таблица программный запрос листинг

«Кнопочная форма»

1.При нажатии кнопки Гости - выводится список всех клиентов. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

2.При нажатии кнопки Сотрудники - выводится полный список обслуживающих сотрудников.

3.При нажатии кнопки Номера - выводится полный список номеров гостинницы. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

4.При нажатии кнопки Журнал - выводится полный список регистрации гостинницы. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

5.При нажатии кнопки Проживающие - выводится список проживающих на текущую дату. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

6.При нажатии кнопки Свободные места - выводится список свободных номеров на текущую дату. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

7.При нажатии кнопки Выезжают - выводится список клиентов, выезжающих в текущую дату.

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

.При нажатии кнопки Обслуживает - выводится список клиентов, обслуживаемых сотрудником, чья фамилия введена в окне. Просмотреть полный список можно либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.


Заключение


В современном мире электронных технологий практически невозможно представить компанию (фирму или организацию), в которой не требуется обработка некоторого объёма информации. Информацию требуется, где-то хранить. Информация может динамически изменяться. Регулярно требуется выборка данных по определённым критериям из всего массива.

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

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


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


1.Фаронов В.В. «Delphi. Учебный курс» Москва: Нолидж, 2011.

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

.Миллер, Тодд, Пауэл, Дэвид «Использование Delphi 7. Специальное издание».: Пер. с англ. - К.: Диалектика, 2010.

.Тютачев Н., Свиридов Ю. «Delphi. Создание мультимедийных приложений. Учебный курс» СПб.: Питер, 2009.

5.Лекции по курсу «Базы данных» - Д.Н. Кузнецов, 2007.

.Карпов Б. «Microsoft Access Справочник» - СПб: Питер, 2001.


Задание на курсовую работу Спроектировать базу данных для гостиницы База данных содержит информацию о клиентах: Фамилия, Имя, Отчество, адрес, пол, до

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ