Рефераты. Автоматизированная система бронирования авиабилетов

После входа в систему пользователь оказывается на странице поиска полетов. Эта страница имеет разный вид в зависимости от роли пользователя. Если это администратор, то он увидит страницу, показанную на рисунке 4, иначе загрузится страница, приведенная на рисунке 5.

Рисунок 4 - Страница Flights интерфейса администратора

Рисунок 5 - Страница Flights пользовательского интерфейса

Обе страницы предоставляют возможность искать рейсы по таким критериям, как город отправления и прибытия, дата и время вылета и прибытия. Не обязательно указывать все параметры. Можно их не указывать вовсе. В этом случае будут отобраны все рейсы. Однако выбор критериев позволяет уточнить результаты запроса. Благодаря тому, что пользователь не вводит значения сам, а выбирает их из загружаемых списков, сведена к минимуму вероятность ввода некорректных значений.

На параметры поиска налагается одно ограничение: время вылета или прибытия не может быть указано без соответствующей даты. При нарушении этого условия появляется сообщение об ошибке (Рисунок 6).

Рисунок 6 - Сообщение об ошибке

Выбрав рейс, пользователь может сделать заказ на некоторое количество билетов первого и/или второго класса. Для этого ему необходимо на странице Orders указать нужное количество билетов и номер кредитной карты. Информацию о заявке невозможно будет сохранить, пока он не укажет количество билетов, не превышающее число свободных мест заданного класса и корректный номер кредитной карты (16 цифр). В случае неправильного заполнения полей система выводит соответствующие сообщения. (Рисунок 7) Эти надписи остаются видимыми до тех пор, пока ошибка не будет исправлена.

Рисунок 7 - Страница Orders

Если введенная информация корректна, то в таблицу Orders добавляется новая запись, ассоциированная с текущим пользователем системы и выбранным рейсом.

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

Рисунок 8 - Удаление пользователя посредством интерфейса страницы Users

Кроме этого администратор может добавлять рейсы - на странице AddingFlight (Рисунок 9) и редактировать информацию по выбранному рейсу на странице EditFlight (Рисунок 10). На этих обязательно заполнение всех полей. Также проверяется, чтобы: не совпадали указанные город вылета и прибытии; значения, введенные в поля цены за билеты были положительными числами; дата прибытии была бы больше даты вылета. Если хотя бы одно из этих условий нарушается, выводится сообщение об ошибке. В случае корректного ввода информация сохраняется в базе данных и система сообщает пользователю об успешно выполненной операции.

Рисунок 9 - Страница добавления рейса

Рисунок 10 - Страница редактирования рейса

Заключение

В рамках данной курсовой работы была разработана система бронирования авиабилетов: спроектирована база данных для MS SQL Server 2005, а так же реализованы слой доступа к данным и WEB-интерфейс. При проектировании базы данных акцент делался на серверную часть. На стороне сервера были применены индексы, хранимые процедуры, функции, триггеры, представления. Клиентская часть была реализована посредством языка С# на платформе.NET. В частности: доступ к данным был обеспечен провайдером ADO.NET, а WEB-интерфейс построен с помощью ASP.NET. Дополнительно при реализации WEB-представления были использованы HTML, CSS, JavaScript, AJAX.

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

Список использованных источников

1. Жилинский А.А. Самоучитель Microsoft SQL Server 2005 - СПб.: БХВ-Петербург, 2007. - 224 с.

2. Рихтер ДЖ. CLR via C#. Программирование на платформе.NET Framework 2.0 на языке С#. Мастер-класс./ Пер. с англ. - М.: Издательство «Русская редакция»; СПб.; Питер, 2007. - 656 с.

3. Экспозито Д. Microsoft ASP.NET 2.0. Базовый курс. Мастер-класс/ Пер. с англ. - М. Издательство «Русская редакция»; СПб.; Питер, 2007. - 688 с.

4. Экспозито Д. Microsoft ASP.NET 2.0. Углубленное изучение/ Пер. с англ. - М. Издательство «Русская редакция»; СПб.; Питер, 2007. - 592 с.

5. Microsoft Corporation. Проектирование и реализация баз данных Microsoft SQL Server 2000. Учебный курс MCAD/MSCE, MCDMA/ Пер. с англ. - 2-е изд., испр. - М.: Издательско-торговый дом «Русская редакция», 2003. - 512с.

Приложение А

Скрипт для создания базы данных

CREATE DATABASE [Group0703b]

GO

USE [Group0703b]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Companies]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Companies](

[CompanyID] [int] IDENTITY(1,1) NOT NULL,

[CompanyName] [nvarchar](40) NULL,

CONSTRAINT [PK_Companies] PRIMARY KEY CLUSTERED

(

[CompanyID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Users](

[UserID] [int] IDENTITY(1,1) NOT NULL,

[UserLogin] [nvarchar](20) NOT NULL,

[Password] [nvarchar](20) NOT NULL,

[Email] [nvarchar](50) NULL,

CONSTRAINT [PK_Users_1] PRIMARY KEY CLUSTERED

(

[UserID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Cities]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Cities](

[CityID] [int] IDENTITY(1,1) NOT NULL,

[CityName] [nvarchar](40) NULL,

CONSTRAINT [PK_Cities] PRIMARY KEY CLUSTERED

(

[CityID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Aircrafts]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Aircrafts](

[AircraftID] [int] IDENTITY(1,1) NOT NULL,

[AircraftModel] [nvarchar](40) NULL,

[Count1] [int] NULL,

[Count2] [int] NULL,

CONSTRAINT [PK_Aicrafts] PRIMARY KEY CLUSTERED

(

[AircraftID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[timeFlight]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))

BEGIN

execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[timeFlight]

(

@dateArrival datetime,

@dateDeparture datetime

)

RETURNS char(5)

BEGIN

RETURN

convert(char(2),datediff(hh,@dateDeparture,@dateArrival))+'':''+

convert(char(2),datediff(mi,@dateDeparture,@dateArrival)-datediff(hh,@dateDeparture,@dateArrival)*60)

END'

END

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Flights]') AND type in (N'U'))

BEGIN

CREATE TABLE [dbo].[Flights](

[FlightID] [int] IDENTITY(1,1) NOT NULL,

[DateDeparture] [datetime] NULL,

[DateArrival] [datetime] NULL,

[Price1] [decimal](18, 0) NULL,

[Price2] [decimal](18, 0) NULL,

[CompanyID] [int] NULL,

[AircraftID] [int] NULL,

[CityDepartureID] [int] NULL,

[CityArrivalID] [int] NULL,

CONSTRAINT [PK_Flights] PRIMARY KEY CLUSTERED

(

[FlightID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

END

GO

IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Flights]') AND name = N'IX_Fligts_AircraftID')

CREATE NONCLUSTERED INDEX [IX_Fligts_AircraftID] ON [dbo].[Flights]

(

[AircraftID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.