Автор работы: Пользователь скрыл имя, 11 Декабря 2013 в 19:55, курсовая работа
Мета – спроектувати базу даних, в якій буде зберігатися інформація про номери та послуги, які надаються готелем; про клієнтів, які проживають у готелі; дані про бронювання кімнат; організувати додавання та редагування даних про клієнтів, кімнати, сервіс, проживання, бронювання. Інформація накопичується постійно з кожним днем і може змінюватися.
Ведення довідника проживання. При поселені дані вносяться більш детально, тобто це особисті дані про клієнта що поселяється, кількість осіб, тип кімнати, та інші деталі. Інформація зберігається в базі даних до тих пір коли необхідно буде видалити цю інформацію, що зможе зробити лише обізнаний адміністратор баз даних.
Розділ 1. Постановка задачі обліку готелю ……………..………………3
Опис предметної області………………………………………….3
Специфікація вимог до системи обліку готелю…………………4
Вступ ………………………………………………………………4
Загальний опис ….………………………………………………...4
Характеристики системи ……………………….………………...6
Вимоги зовнішніх інтерфейсів ……………..……...…………….8
Нефункціональні вимоги до проекту ……………………...…….8
Вибір засобів розроблення системи ………………………..…….9
Розділ 2. Проектування бази даних…………….…………………..…....12
2.1. Концептуальне моделювання предметної області ………...……..12
2.2. Логічне проектування бази даних ………………………………....19
Розділ 3. Реалізація програми роботи з базою даних…………...……...20
3.1. Реалізація доступу до даних ………………………………………..21
3.2 Реалізація функціональних характеристик системи ……..………..22
3.3 Опис роботи програми ……………………………………….…..….32
Висновки……………………………………………………………………...39
Додаток А. Скрипт створення бази даних ……………..………………..41
}
var roomID = from r in hotel.Room
select r.ID_room;
foreach (var r in roomID)
{
comboBox2.Items.Add(r);
}
}
}
3.3. Опис роботи програми
Програма
представляє собою головне
При запуску програми користувач потрапляє на головне вікно з різними групами кнопок для роботи із системою.
Нижче наведено знімок головного вікна.
Рис.12 Головне вікно програми
Розглянемо перехід до вікна Огляд : Кімнати.
Рис.13 вікно «Кімнати»
При переході на це вікно перед користувачем постає інформація про кімнати. Також присутня кнопка для переходу на форму для редагування інформації про кімнати, та вікно переходу на головну форму і закриття даної форми.
Переходимо на вікно «Редагувати».
Рис.14 вікно «Редагувати»
У цьому вікні можна змінити інформацію про кімнату і занести її у базу. Для цього треба заповнити всі поля і натиснути Готово. При успішному внесенні даних відбудеться перехід на форму Кімнати де ми маємо змогу перевірити внесену інформацію.
Рис.15. вікно «Кімнати» після редагування
Розглянемо перехід до вікна Огляд : Сервіс.
Рис.16 вікно «Сервіс»
При переході на це вікно перед користувачем постає список послуг, які надаються готелем. Також присутні кнопки для переходу на головну форму і закриття даної форми.
Розглянемо перехід до вікна Огляд : Клієнти.
Рис.18 вікно «Клієнти»
При переході на це вікно перед користувачем постає список клієнтів. Звідси можна перейти на вікно додавання клієнта, головне вікно системи та можливість виходу з даного вікна.
Переходимо на вікно «Додати».
Рис.19 вікно «Додати»
У цьому вікні можна додати клієнта у базу. Для цього треба заповнити всі поля і натиснути Додати. При успішному внесенні даних відбудеться перехід на форму Клієнти де ми маємо змогу перевірити внесену інформацію.
Рис.20 вікно «Клієнти» після додавання нового клієнта
Розглянемо перехід до вікна Огляд : Проживання.
Рис.21 вікно «Проживання»
При переході на це вікно перед користувачем постає інформація про проживання. Звідси можна перейти на вікно редагування інформації про проживання, головне вікно системи та можливість виходу з даного вікна. Також є можливість видилити запис із таблиці проживання у зв’язку з виселенням.
Переходимо на вікно «Редагувати».
Рис.22 вікно «Редагувати»
У цьому вікні можна редагування інформацію про проживання і занести дані у базу. Для цього треба заповнити всі поля і натиснути Редагувати. При успішному внесенні даних відбудеться перехід на форму Проживання де ми маємо змогу перевірити внесену інформацію.
Рис.23 вікно «Проживання» після редагування
Розглянемо перехід до вікна Огляд : Бронювання.
Рис.24 вікно «Бронювання»
При переході на це вікно перед користувачем постає інформація про бронювання. Звідси можна перейти на вікно додати бронювання, поселити, головне вікно системи та можливість виходу з даного вікна. Можна також відмінити бронювання.
Переходимо на вікно «Додати».
Рис.25 вікно «Додати»
У цьому вікні можна додати бронювання і занести дані у базу. Для цього треба заповнити всі поля і натиснути Забронювати. При успішному внесенні даних відбудеться перехід на форму Бронювання де ми маємо змогу перевірити внесену інформацію.
Рис.26 вікно «Бронювання» після редагування
Рис.27 вікно «Бронювання» до і після відміни
Рис.28 вікно «Бронювання» поселення
Розглянемо перехід до вікна Огляд : Надані послуги
Рис.29 вікно «Надані послуги»
Заповнюємо дані для додавання послуги.
Рис.30 «Додати»
При успішному внесенні даних відбудеться перехід на форму Надані послуги де ми маємо змогу перевірити внесену інформацію.
Рис.31 вікно «Надані послуги» після додавання
Форми Додати клієнта, бронювання, проживання, послугу, Редагувати кімнати, послуги, проживання використовуються у формах Огляду і вже продемонстровані.
ВИСНОВКИ
Даний проект є результатом вивчення, практикування та освоєння досить великого обсягу матеріалу з області проектування баз даних, реалізації додатків для роботи з базами даних, технологій з’єднання та опрацювання запитів до БД. В процесі були використані такі технології як ADO.NET Entity Framework та інтерфейс для з’єднання з БД - ODBC.
Вважаю що в процесі виконання проекту я оволоділа практичними навиками роботи з базами даних, навиками створення додатків для доступу до даних у БД.
Розроблена програмна система та база даних відповідають усім вимогам, що описані в специфікації до програмного продукту та готові до використання.
Додаток А. Скрипт створення БД.
CREATE TABLE Client
(
ID_client integer NOT NULL ,
NameSurname varchar(50) NULL ,
Birthday varchar(10) NULL ,
Gender varchar(1) NULL CHECK(Gender IN ('m', 'f', 'ч', 'ж')),
Phone_client varchar(20) NULL
)
go
ALTER TABLE Client
ADD CONSTRAINT XPKClient PRIMARY KEY CLUSTERED (ID_client ASC)
go
CREATE TABLE Reservation
(
ID_reservation integer NOT NULL ,
From_the_date datetime NULL ,
ID_room integer NOT NULL UNIQUE,
ID_client integer NOT NULL
)
go
ALTER TABLE Reservation
ADD CONSTRAINT XPKReservation PRIMARY KEY CLUSTERED (ID_reservation ASC)
go
CREATE TABLE Residence
(
ID_residence integer NOT NULL ,
From_the_date_residence datetime NULL ,
To_date datetime NULL ,
Number_of_persons integer NULL DEFAULT 1,
Number_of_children integer NULL DEFAULT 0,
ID_client integer NOT NULL ,
ID_room integer NOT NULL ,
All_Cost float NULL
)
go
ALTER TABLE Residence
ADD CONSTRAINT XPKResidence PRIMARY KEY CLUSTERED (ID_residence ASC)
go
CREATE TABLE Room
(
ID_room integer NOT NULL ,
Number_room integer NULL,
Type_room varchar(20) NULL ,
Note varchar(200) NULL ,
Phone varchar(10) NULL DEFAULT '111-11-11',
Price_room float NULL DEFAULT 100.0,
State_room varchar(20) NULL DEFAULT 'вільна' CHECK( State_room in ('вільна', 'зайнята', 'зарезервована'))
)
go
ALTER TABLE Room
ADD CONSTRAINT XPKRoom PRIMARY KEY CLUSTERED (ID_room ASC)
go
CREATE TABLE Service
(
ID_service integer NOT NULL ,
Name_service varchar(20) NULL ,
Note varchar(200) NULL ,
Price float NULL DEFAULT 100.0
)
go
ALTER TABLE Service
ADD CONSTRAINT XPKService PRIMARY KEY CLUSTERED (ID_service ASC)
go
CREATE TABLE Service_rendered
(
ID_service_rendered integer NOT NULL ,
ID_service integer NOT NULL ,
ID_client integer NOT NULL ,
Cost float NULL DEFAULT 100.0,
Service_State
varchar(20) NULL DEFAULT 'виконано' CHECK (Service_State
in ('виконано','очікує','
)
go
ALTER TABLE Service_rendered
ADD CONSTRAINT XPKService_rendered PRIMARY KEY CLUSTERED (ID_service_rendered ASC)
go
ALTER TABLE Reservation
ADD CONSTRAINT R_25 FOREIGN KEY (ID_room) REFERENCES Room(ID_room)
go
ALTER TABLE Reservation
ADD CONSTRAINT R_26 FOREIGN KEY (ID_client) REFERENCES Client(ID_client)
go
ALTER TABLE Residence
ADD CONSTRAINT R_28 FOREIGN KEY (ID_client) REFERENCES Client(ID_client)
go
ALTER TABLE Residence
ADD CONSTRAINT R_29 FOREIGN KEY (ID_room) REFERENCES Room(ID_room)
go
ALTER TABLE Service_rendered
ADD CONSTRAINT R_22 FOREIGN KEY (ID_client) REFERENCES Client(ID_client)
go
ALTER TABLE Service_rendered
ADD CONSTRAINT R_23 FOREIGN KEY (ID_service) REFERENCES Service(ID_service)
go
create view FreeRoom
as
select * from Room
where State_room in ('вільна')
go
create view ReservRoom
as
select * from Room
where State_room in ('зарезервована')
go
create view LivedRoom
as
select * from Room
where State_room in ('зайнята')
go
create view PopularRoom
(ID, Type_room, Note, Phone, Price, Number_room, Popularity)
as
select Room.ID_room, Type_room,
Note, Phone, Price_room,
Number_room, COUNT(Residence.ID_room) from Room
join Residence
on Room.ID_room = Residence.ID_room
group by Room.ID_room, Type_room, Note, Phone, Price_room,
Number_room, Residence.ID_room
go
create view Living
as
select ID_reservation,
From_the_date,
NameSurname,
Room.Number_room
from Reservation join
Client
on Reservation.ID_client = Client.ID_Client
join Room
on Reservation.ID_room = Room.ID_room
create view NotAvailableRoom
as
select ID_residence
,All_Cost
,From_the_date_residence
,To_date
,ID_client
,Residence.ID_room
,Number_of_persons
,Number_of_children from Residence join Room
on Residence.ID_room = Room.ID_room