Автоматизация обработки информации по работе туристической фирмы

Автор работы: Пользователь скрыл имя, 06 Мая 2012 в 20:59, курсовая работа

Описание работы

Автоматизация туристического агентства — это понятие, которого не существует и не может существовать в принципе. Хотя бы потому, что 90% успеха сделки между агентством и туристом состоит в личном контакте. Туристу важно знать своего менеджера, задать ему самые простые вопросы и просто убедиться, что его отдых был отдан в надежные руки.

Содержание работы

Глава 1. Техническое задание

1.1 Описание и анализ задачи

1.1.1 ОПИСАНИЕ ЗАДАЧИ И СОСТАВЛЕНИЕ ГЛОССАРИЯ ПРОЕКТА

1.1.2 СОЗДАНИЕ МОДЕЛИ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ (use case diagram)

1.1.3 ОПИСАНИЕ ПОТОКОВ СОБЫТИЙ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ

1.2 Постановка задачи

1.2.1 ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ

1.2.2 НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ

1.2.3 ВЫХОДНЫЕ СООБЩЕНИЯ

1.2.4 ВХОДНЫЕ СООБЩЕНИЯ

1.3 Тестирование системы

1.3.1 МЕТОДЫ ТЕСТИРОВАНИЯ

1.3.2 ТЕСТОВЫЕ СЛУЧАИ

Глава 2. Проектирование программного обеспечения

2.1 Описание подхода к проектированию

2.1.1 Объектно-ориентированное проектирование

2.1.2 Описание языка моделирования UML

2.1.3 Соглашения по моделированию

2.2 Аналитическая модель программного обеспечения

2.2.1 Диаграмма вариантов использования (use case diagram)

2.2.2 Диаграммы кооперации (collaboration diagram)

2.2.3 Диаграммы последовательности вариантов использования (sequence diagram)

2.2.3 Диаграммы классов уровня концепции (class diagram)

2.3 Логическая модель программного обеспечения

2.3.1 Диаграммы классов (class diagram)

2.3.2 Диаграммы состояний классов (statechart diagram)

2.3.1 Диаграмма деятельности (activity diagram)

2.4 Физическая модель программного обеспечения (реализация системы)

2.4.1 Диаграмма компонентов (component diagram)

2.4.2 Диаграмма развертывания (deployment diagram)

2.4.3 Генерация кода

Глава 3. Разработка программного обеспечения

3.1 Общие сведения

3.1.1 Язык программирования и среда программирование

3.1.2 Соглашение по кодированию программы

3.2 Спецификации программы

3.2.1 Модульный и файловый состав

3.2.2 Описание классов

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

3.3.1 Установка программы

3.3.2 Пользовательский интерфейс программы

Приложение А Полный текст соглашения по кодированию

Приложение В Текст программы

Приложение С Результаты тестирования программы

Файлы: 1 файл

Курсовая работа по ТРПО.docx

— 3.12 Мб (Скачать файл)

ПРИЛОЖЕНИЕ А

Рисунок 1. Рецепт

Рисунок 2. Потребление

 

Рисунок 3. Список заказов

Рисунок 4.Заказ

Рисунок 5. Логическая модель

Рисунок 6. Физическая модель

 

ПРИЛОЖЕНИЕ Б

CREATE TABLE Consumption (

       N_Consumption        INTEGER NOT NULL,

       Date_of_order        TIMESTAMP,

       N_Portion            INTEGER,

       N_Dish               INTEGER NOT NULL,

       Tabel                INTEGER,

       Adress               VARCHAR(20),

       FIO                  VARCHAR(20),

       Telefon              INTEGER

);

CREATE UNIQUE INDEX XPKConsumption ON Consumption

(

       N_Consumption

);

 

ALTER TABLE Consumption

       ADD PRIMARY KEY (N_Consumption);

 

CREATE TABLE Dish (

       N_Dish               INTEGER NOT NULL,

       Dish_Name            VARCHAR(20),

       Price                     INTEGER ,

       caloric_content      INTEGER ,

       N_Type               INTEGER NOT NULL,

       Picture              BLOB

);

 

CREATE UNIQUE INDEX XPKDish ON Dish

(

       N_Dish

);

 

ALTER TABLE Dish

       ADD PRIMARY KEY (N_Dish);

 

 

CREATE TABLE Product (

N_Product            INTEGER NOT NULL,

       Product_Name         VARCHAR(20),

       quantity             INTEGER

);

 

CREATE UNIQUE INDEX XPKProduct ON Product

(

       N_Product

);

 

 

ALTER TABLE Product

       ADD PRIMARY KEY (N_Product);

 

 

CREATE TABLE Product_Dish (

       N_Product            INTEGER NOT NULL,

       N_Dish               INTEGER NOT NULL,

       Weight               INTEGER

);

 

CREATE UNIQUE INDEX XPKProduct_Dish ON Product_Dish

(

       N_Product,

       N_Dish

);

 

 

ALTER TABLE Product_Dish

       ADD PRIMARY KEY (N_Product, N_Dish);

 

 

CREATE TABLE Recipe (

       N_Recipe             INTEGER NOT NULL,

       Cooking_method       VARCHAR(500),

       N_Dish               INTEGER NOT NULL

);

 

CREATE UNIQUE INDEX XPKRecipe ON Recipe

(

       N_Recipe

);

 

 

ALTER TABLE Recipe

       ADD PRIMARY KEY (N_Recipe);

 

CREATE TABLE Tip (

       N_Type               INTEGER NOT NULL,

       Type_Name            VARCHAR(20)

);

 

CREATE UNIQUE INDEX XPKTip ON Tip

(

       N_Type

);

 

ALTER TABLE Tip

       ADD PRIMARY KEY (N_Type);

 

ALTER TABLE Consumption

       ADD FOREIGN KEY (N_Dish)

                             REFERENCES Dish;

 

ALTER TABLE Dish

       ADD FOREIGN KEY (N_Type)

                             REFERENCES Tip;

 

ALTER TABLE Product_Dish

       ADD FOREIGN KEY (N_Dish)

                             REFERENCES Dish;

 

ALTER TABLE Product_Dish

       ADD FOREIGN KEY (N_Product)

                             REFERENCES Product;

 

ALTER TABLE Recipe

       ADD FOREIGN KEY (N_Dish)

                             REFERENCES Dish;

 

 

 

CREATE EXCEPTION ERWIN_PARENT_INSERT_RESTRICT 'Cannot INSERT Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT 'Cannot UPDATE Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_PARENT_DELETE_RESTRICT 'Cannot DELETE Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_CHILD_INSERT_RESTRICT 'Cannot INSERT Child table because Parent table does not exist.';

CREATE EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT 'Cannot UPDATE Child table because Parent table does not exist.';

CREATE EXCEPTION ERWIN_CHILD_DELETE_RESTRICT 'Cannot DELETE Child table because Parent table does not exist.';

CREATE EXCEPTION ERWIN_PARENT_INSERT_NOACTION 'Cannot INSERT Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_PARENT_UPDATE_NOACTION 'Cannot UPDATE Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_PARENT_DELETE_NOACTION 'Cannot DELETE Parent table because Child table exists.';

CREATE EXCEPTION ERWIN_CHILD_INSERT_NOACTION 'Cannot INSERT Child table because Parent table does not exist.';

CREATE EXCEPTION ERWIN_CHILD_UPDATE_NOACTION 'Cannot UPDATE Child table because Parent table does not exist.';

CREATE EXCEPTION ERWIN_CHILD_DELETE_NOACTION 'Cannot DELETE Child table because Parent table does not exist.';

 

set term !! ;

CREATE TRIGGER tI_Consumption FOR Consumption AFTER INSERT AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Dish

      where

        NEW.N_Dish = Dish.N_Dish into numrows;

    IF (

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Consumption FOR Consumption AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  select count(*)

    from Dish

    where

      NEW.N_Dish = Dish.N_Dish into numrows;

  IF (   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

END !!

 

set term !! ;

CREATE TRIGGER tD_Dish FOR Dish AFTER DELETE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Recipe

      where

        Recipe.N_Dish = OLD.N_Dish into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END

 

    select count(*)

      from Consumption

      where

        Consumption.N_Dish = OLD.N_Dish into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END

    select count(*)

      from Product_Dish

      where

        Product_Dish.N_Dish = OLD.N_Dish into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tI_Dish FOR Dish AFTER INSERT AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Tip

      where

        NEW.N_Type = Tip.N_Type into numrows;

    IF (     

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Dish FOR Dish AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  IF

    (OLD.N_Dish <> NEW.N_Dish) THEN

  BEGIN

    select count(*)

      from Recipe

      where

        Recipe.N_Dish = OLD.N_Dish into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END

  IF

    (OLD.N_Dish <> NEW.N_Dish) THEN

  BEGIN

    select count(*)

      from Consumption

      where

        Consumption.N_Dish = OLD.N_Dish into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END

  IF

    (OLD.N_Dish <> NEW.N_Dish) THEN

  BEGIN

    update Product_Dish

      set

        Product_Dish.N_Dish = NEW.N_Dish

      where

        Product_Dish.N_Dish = OLD.N_Dish;

  END

 

  select count(*)

    from Tip

    where

      NEW.N_Type = Tip.N_Type into numrows;

  IF (   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

END !!

 

set term !! ;

CREATE TRIGGER tD_Product FOR Product AFTER DELETE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Product_Dish

      where

        Product_Dish.N_Product = OLD.N_Product into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Product FOR Product AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  IF

    (OLD.N_Product <> NEW.N_Product) THEN

  BEGIN

    update Product_Dish

      set

        Product_Dish.N_Product = NEW.N_Product

      where

        Product_Dish.N_Product = OLD.N_Product;

  END

END !!

 

set term !! ;

CREATE TRIGGER tI_Product_Dish FOR Product_Dish AFTER INSERT AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Dish

      where

        NEW.N_Dish = Dish.N_Dish into numrows;

    IF (

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

    select count(*)

      from Product

      where

        NEW.N_Product = Product.N_Product into numrows;

    IF (    

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Product_Dish FOR Product_Dish AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  select count(*)

    from Dish

    where

      NEW.N_Dish = Dish.N_Dish into numrows;

  IF (   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

  select count(*)

    from Product

    where

      NEW.N_Product = Product.N_Product into numrows;

  IF (   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

END !!

 

set term !! ;

CREATE TRIGGER tI_Recipe FOR Recipe AFTER INSERT AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Dish

      where

        NEW.N_Dish = Dish.N_Dish into numrows;

    IF (

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Recipe FOR Recipe AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  select count(*)

    from Dish

    where

      NEW.N_Dish = Dish.N_Dish into numrows;

  IF (

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

END !!

 

set term !! ;

CREATE TRIGGER tD_Tip FOR Tip AFTER DELETE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

    select count(*)

      from Dish

      where

        Dish.N_Type = OLD.N_Type into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END

END !!

 

set term !! ;

CREATE TRIGGER tU_Tip FOR Tip AFTER UPDATE AS

DECLARE VARIABLE numrows INTEGER;

BEGIN

  IF

    (OLD.N_Type <> NEW.N_Type) THEN

  BEGIN

    select count(*)

      from Dish

      where

        Dish.N_Type = OLD.N_Type into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END

END !!

 

 

CREATE GENERATOR Product_ID;

set term !! ;

CREATE TRIGGER tI_Product_ID FOR Product Before INSERT  POSITION 0 AS

begin

New.N_Product=Gen_ID(Product_ID,1);

end!!

 

CREATE GENERATOR Dish_ID;

set term !! ;

CREATE TRIGGER tI_Dish_ID FOR Dish Before INSERT  POSITION 0 AS

begin

New.N_Dish=Gen_ID(Dish_ID,1);

end!!

 

CREATE GENERATOR Consumption_ID;

Информация о работе Автоматизация обработки информации по работе туристической фирмы