Проектирование отеля в делфи

Автор работы: Пользователь скрыл имя, 12 Декабря 2013 в 13:41, курсовая работа

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

Целью выполнения курсовой работы является:
Создание базы данных «Гостиница», в которой будет храниться и обрабатываться информация о клиентах гостиницы, сотрудниках и номерах.
Приобретение практических навыков проектирования баз данных и разработки программного обеспечения по управлению базами данных с использованием СУБД с помощью Microsoft Access. На примере создаваемой базы данных необходимо научиться создавать таблицы, связывать их, писать запросы средствами СУБД, научиться разрабатывать формы с помощью Delphi 7.

Содержание

Введение……………………………………………………………….……….5
Программная спецификация в Microsoft Access …….....………………....7
Создание таблиц … ………………………………………….………….7
Описание связей между таблицами ……………………………………19
Создание запросов………………………..................................................20
Программная спецификация в Delphi 7 …………………………….......23
Теоритическая часть ……………………..……………………………..23
Листинги …………………………………………….…………………...26
Процедуры тестирования и сопровождения………………………………..34
Заключение…………………………………………………………………...39
Список используемой литературы…………………………………..………40

Прикрепленные файлы: 1 файл

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

— 2.19 Мб (Скачать документ)

 

 

 

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

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

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

 

 

 

 

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


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

 

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

 


 

 

Name – имя формы (предназначено   для управления формой и доступа  к ее компонентам)

Caption – текст заголовка

Width – ширина формы

Height – высота формы

 


 

BorderStyle – вид границы.  Граница может быть обычной  (bsSizeable), тонкой (bsSingle), или отсутствовать  (bsNone).

BorderIcons – кнопки управления окном  (свернуть, развернуть).

Icons – значок  в заголовке  диалогового окна, обозначающий  кнопку вывода системного меню.

Color – цвет  фона.

Font – шрифт. 

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

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

Standart:

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


 

 

 

Additional:

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

TBevel - элемент для рельефного  оформления интерфейса.

 

 

 

 

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

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

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

      Как  руководство к использованию,  я просматривал обучающее видео  http://www.youtube.com/watch?v=65oZIbb7lcM.

      В результате была создана следующая форма:

 

 

      


      1.      Листинги.

Листинг №1.

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

 

type

  TForm1 = class(TForm)

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    ADOConnection1: TADOConnection;

    ADOQuery1: TADOQuery;

    Button1: TButton;

    Edit1: TEdit;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Label1: TLabel;

    Button7: TButton;

    Label2: TLabel;

    Edit2: TEdit;

    Button8: TButton;

    Label3: TLabel;

    Edit3: TEdit;

    Label4: TLabel;

    Edit4: TEdit;

    Button9: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }


  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT Гости.Фамилия, Гости.Имя, Гости.Отчество, Регистр.Номер, Регистр.Дата_заселения, Регистр.Дата_выезда '

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

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT * FROM Гости';

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT * FROM Сотрудники';

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT * FROM Номера';

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button5Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT * FROM Регистр';

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button6Click(Sender: TObject);

begin


  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT Регистр.Id_заказа, Гости.Фамилия, Гости.Имя, Регистр.Номер, Сотрудники.Фамилия, Регистр.Дата_заселения, Регистр.Дата_выезда, Регистр.Стоимость, Регистр.Отметка_оплаты '

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

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button7Click(Sender: TObject);

begin

ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT Номера.Номер, Номера.Тип, Номера.Стоимость '

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

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

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button8Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT Гости.Фамилия, Гости.Имя, Гости.Отчество, Регистр.Номер '

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

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

  ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button9Click(Sender: TObject);

begin

  ADOQuery1.Active:=False;

  ADOQuery1.SQL.Text:='SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.Должность, Регистр.Номер, Гости.Фамилия, Регистр.Дата_заселения, Регистр.Дата_выезда '

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

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

  ADOQuery1.Active:=True;

end;

 

end.

 

 

 

 

 


Листинг №2.

 

object Form1: TForm1

  Left = 189

  Top = 178

  BorderStyle = bsToolWindow

  Caption = #1054#1090#1077#1083#1100

  ClientHeight = 497

  ClientWidth = 1011

  Color = clBtnFace

  Font.Charset = DEFAULT_CHARSET

  Font.Color = clWindowText

  Font.Height = -11

  Font.Name = 'MS Sans Serif'

  Font.Style = []

  OldCreateOrder = False

  PixelsPerInch = 96

  TextHeight = 13

  object Label1: TLabel

    Left = 152

    Top = 232

    Width = 134

    Height = 16

    Caption = #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -13

    Font.Name = 'MS Sans Serif'

    Font.Style = [fsBold]

    ParentFont = False

  end

  object Label2: TLabel

    Left = 152

    Top = 272

    Width = 134

    Height = 16

    Caption = #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -13

    Font.Name = 'MS Sans Serif'

    Font.Style = [fsBold]

    ParentFont = False

  end

  object Label3: TLabel

    Left = 152

    Top = 312

    Width = 134

    Height = 16

    Caption = #1085#1072' '#1076#1072#1090#1091' ('#1084#1084'/'#1076#1076'/'#1075#1075')'

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -13

    Font.Name = 'MS Sans Serif'

    Font.Style = [fsBold]


    ParentFont = False

  end

  object Label4: TLabel

    Left = 152

    Top = 352

    Width = 158

    Height = 16

    Caption = #1092#1072#1084#1080#1083#1080#1103' '#1089#1086#1090#1088#1091#1076#1085#1080#1082#1072

    Font.Charset = DEFAULT_CHARSET

    Font.Color = clWindowText

    Font.Height = -13

    Font.Name = 'MS Sans Serif'

    Font.Style = [fsBold]

    ParentFont = False

  end

  object DBGrid1: TDBGrid

    Left = 8

    Top = 16

    Width = 929

    Height = 97

    DataSource = DataSource1

    TabOrder = 0

    TitleFont.Charset = DEFAULT_CHARSET

    TitleFont.Color = clWindowText

    TitleFont.Height = -11

    TitleFont.Name = 'MS Sans Serif'

    TitleFont.Style = []

  end

  object DBNavigator1: TDBNavigator

    Left = 16

    Top = 128

    Width = 920

    Height = 25

    DataSource = DataSource1

    TabOrder = 1

  end

  object Button1: TButton

    Left = 16

    Top = 224

   Width = 129

    Height = 25

    Caption = #1055#1088#1086#1078#1080#1074#1072#1102#1097#1080#1077

    TabOrder = 2

    OnClick = Button1Click

  end

  object Edit1: TEdit

    Left = 296

    Top = 224

    Width = 81

    Height = 25

    TabOrder = 3

    Text = '8/08/2013'

  end

  object Button2: TButton

    Left = 16


    Top = 176

    Width = 129

    Height = 25

    Caption = #1043#1086#1089#1090#1080

    TabOrder = 4

    OnClick = Button2Click

  end

  object Button3: TButton

    Left = 160

    Top = 176

   Width = 129

    Height = 25

    Caption = #1057#1086#1090#1088#1091#1076#1085#1080#1082#1080

    TabOrder = 5

    OnClick = Button3Click

  end

  object Button4: TButton

    Left = 304

    Top = 176

    Width = 129

    Height = 25

    Caption = #1053#1086#1084#1077#1088#1072

    TabOrder = 6

    OnClick = Button4Click

  end

  object Button5: TButton

    Left = 448

    Top = 176

    Width = 129

    Height = 25

    Caption = #1056#1077#1075#1080#1089#1090#1088

    TabOrder = 7

    OnClick = Button5Click

  end

  object Button6: TButton

    Left = 592

    Top = 176

    Width = 129

    Height = 25

    Caption = #1046#1091#1088#1085#1072#1083

    TabOrder = 8

    OnClick = Button6Click

  end

  object Button7: TButton

    Left = 16

    Top = 264

    Width = 129

   Height = 25

    Caption = #1057#1074#1086#1073#1086#1076#1085#1099#1077' '#1084#1077#1089#1090#1072

    TabOrder = 9

    OnClick = Button7Click

  end

  object Edit2: TEdit

    Left = 296

    Top = 264

    Width = 81


    Height = 25

    TabOrder = 10

    Text = '8/08/2013'

  end

  object Button8: TButton

    Left = 16

    Top = 304

    Width = 129

    Height = 25

    Caption = #1042#1099#1077#1079#1078#1072#1102#1090

    TabOrder = 11

    OnClick = Button8Click

  end

  object Edit3: TEdit

    Left = 296

    Top = 304

    Width = 81

    Height = 25

    TabOrder = 12

    Text = '8/08/2013'

  end

  object Edit4: TEdit

    Left = 320

    Top = 344

    Width = 161

    Height = 25

    TabOrder = 13

    Text = #1041#1077#1089#1087#1072#1083#1086#1074#1072

  end

  object Button9: TButton

    Left = 16

    Top = 344

    Width = 129

    Height = 25

    Caption = #1054#1073#1089#1083#1091#1078#1080#1074#1072#1077#1090

    TabOrder = 14

    OnClick = Button9Click

  end

  object DataSource1: TDataSource

    DataSet = ADOQuery1

    Left = 960

    Top = 88

  end

  object ADOConnection1: TADOConnection

    Connected = True

    ConnectionString =

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

      'ecurity Info=False'

    LoginPrompt = False

    Mode = cmShareDenyNone

    Provider = 'Microsoft.Jet.OLEDB.4.0'

    Left = 960

    Top = 48

  end

  object ADOQuery1: TADOQuery

    Active = True


    Connection = ADOConnection1

    CursorType = ctStatic

    Parameters = <>

    SQL.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. При нажатии кнопки Гости - выводится список всех клиентов. Просмотреть полный список можно  либо с помощью линии прокрутки с права списка, либо с помощью кнопок влево\вправо на форме.

 

 

 

 

 

 


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

 

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

 

 

 

 

 

 

 


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

Информация о работе Проектирование отеля в делфи