Разработать информационную систему по продаже автомобилей в автосалоне

Автор работы: Пользователь скрыл имя, 20 Февраля 2013 в 10:54, курсовая работа

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

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

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

Введение 4
1 Описание предметной области системы управления продажами в автосалоне и определение требований к системе 5
1.1 Описание предметной области 5
1.2 Определение требований к системе 6
2 Постановка задачи и обзор методов ее решения 7
2.1 Постановка задачи 7
2.2 Обзор методов решения задачи 7
3 Модели представления системы управления продажами в автосалоне и их описание 8
4 Информационная модель системы управления продажами в автосалоне и её описание 10
4.1 Информационная модель 10
4.2 Нормализация 12
5 Обоснование оригинальных решений по использованию технических и программных средств, не включенных в требования 14
6 Описание алгоритмов реализующих бизнес-логику серверной части системы управления продажами в автосалоне 16
7 Руководство пользователя по работе с системой управления продажами в автосалоне и результаты тестирования 18
8 Оценка выполнения задач 33
Заключение 34
Список использованных источников 35

Файлы: 1 файл

Записка ООП.docx

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

Будет открыт диалог добавления сведений об автомобиле:

 

 

Рисунок 7.10 – Диалог работы со сведениями об автомобиле

 

 

Добавим новый автомобиль для выбранного производителя:

 

 

Рисунок 7.11 – Диалог добавления автомобиля

 

На рисунке 7.12 показан результат выполнения операции добавления автомобиля:

 

 

Рисунок 7.12 – Обновленный список автомобилей

 

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

 

Будет открыт диалог оформления продажи:

 

 

Рисунок 7.13 – Диалог оформления продажи

 

На данном диалоге можно вести поиск  клиента по подстроке его фамилии  и сортировку клиентов в списке по их полному имени. Для оформления продажи выбранного ранее автомобиля определенному клиенту надо выбрать  клиента в списке, ввести дату продажи  при помощи выпадающих списков, ввести сведения о продаже в поле «Вид продажи» и нажать кнопку «Продать автомобиль».

 

Продадим  автомобиль выбранному клиенту:

 

 

Рисунок 7.14 – Диалог оформления продажи с заполненной информацией

 

 

 

На рисунке 7.15 показан результат выполнения операции оформления продажи:

 

 

Рисунок 7.15 – Диалоговое окно клиента со строкой с информацией о продаже

 

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

 

 

 

 

 

 

 

 

Удалим  выбранного производителя:

 

 

Рисунок 7.16 – В списке производителей выбран элемент для удаления

 

Выбранный производитель был успешно удален.

 

 

Рисунок 7.17 – Обновленный список производителей

Выберем автомобиль из списка и удалим продажу:

 

 

Рисунок 7.18 – Информация о выбранном автомобиле

 

 

Рисунок 7.19 – Обновленная информация об автомобиле

Теперь  удалим клиента из списка:

 

 

Рисунок 7.20 – Выберем одного из клиентов

 

 

Рисунок 7.21 – Клиент был успешно удален

Существует  возможность просмотра и редактирования фотографии автомобиля. Для этого  необходимо выделить требуемый автомобиль в списке автомобилей и нажать кнопку «Фото…». Будет открыт диалог работы с фотографией автомобиля:

 

 

Рисунок 7.22 – Диалог работы с фотографией автомобиля

 

Для добавления или замены фотографии необходимо:

  1. Нажать кнопку «Файл…» и выбрать файл с изображением автомобиля
  2. После загрузки изображения с диска оно будет показано на диалоге. Допустимы изображения GIF, BMP, JPG/JPEG размером не более 50 Килобайт.
  3. Для сохранения изображении на сервере в базе данных необходимо нажать кнопку «Заменить» (если фото данного автомобиля уже есть в базе) или «Добавить».

Для изменения  настроек соединения с сервером используется диалог настроек (рисунок 7.23). Для вступления изменений в силу требуется перезапуск приложения.

 

Рисунок 7.23 – Диалог настроек

 

Для завершения работы приложения клиента предназначен пункт меню «Выход».

 

 

8 ОЦЕНКА ВЫПОЛНЕНИЯ ЗАДАЧ

 

В данной программе предусмотрен понятный для  пользователя интерфейс. 

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

Одной из задач была разработка структурированной  базы данных. Эта задача в полном объеме решена. Изначально была разработана  модель базы данных, приведенная к  третьей нормальной форме. С помощью  sql-скрипта можно генерировать базу данных на любом компьютере, на котором установлен MySQL Server 5.1.

 

ЗАКЛЮЧЕНИЕ

 

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

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

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

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

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

[1] Хорстман, М. Java-2. Библиотека профессионала. Том 1 / Хорстман . – М.:Вильямс, 2003. – 850с.

[2]  Хорстман, М. Java-2. Библиотека профессионала. Том 2 / Хорстман . – М.:Вильямс, 2003. – 630с.

[3]  Дейтел, - М. Технологии программирования на Java 2.  Том 1-3 / Х.М.Дейтел, П.Дж.Дейтел. – М.: Бином, 2003 – 1560с.

[4]  Буч, - М.  UML Руководство пользователя / Г.Буч. – М.: Вильямс, 2005. – 260с.

[5]  Основы RMI  [Электронный ресурс]. – Электронные данные. –  Режим доступа: http://ru.sun.com/java/ .

[6]  Использование Java RMI  [Электронный ресурс]. – Электронные данные.  – Режим доступа: http://ru.sun.com/research/.

 

 

 

 

 

 

ПРИЛОЖЕНИЕ А

(обязательное)

Функциональная модель системы  управления продажами в автосалоне

 

 

Рисунок А1 – Контекстная диаграмма

 

 

Продолжение приложения А

 

 

Рисунок А2 – Диаграмма первого уровня декомпозиции

 

 

Рисунок А3 – Декомпозиция второго уровня четвертого функционального блока

ПРИЛОЖЕНИЕ Б

(обязательное)

Модели представления системы

 

 

Рисунок Б.1 – Диаграмма прецедентов

 

 

 

 

 

 

 

 

 

 

Продолжение приложения Б

 

 

Рисунок Б.2 – Диаграмма последовательностей

 

 

Рисунок Б.3 – Диаграмма состояний

Продолжение приложения Б

 

 

Рисунок Б.4.1 – Диаграмма классов сервера

 

 

Рисунок Б.4.2 – Диаграмма классов клиента  пакета additional

Продолжение приложения Б

 

 

Рисунок Б.4.3 – Диаграмма классов клиента

Продолжение приложения Б

 

 

Рисунок Б.4.4 – Диаграмма классов клиента пакета datadialogs

 

 

Рисунок Б.5 – Диаграмма компонентов

 

Продолжение приложения Б

 

 

Рисунок Б.6 – Диаграмма развертывания

 

 

 

 

 

 

ПРИЛОЖЕНИЕ В

(обязательное)

SQL-скрипт целевой базы данных

 

CREATE DATABASE Davidovich_D_A

    CHARACTER SET 'utf8'

    COLLATE 'utf8_unicode_ci';

 

 

Use Davidovich_D_A;

 

CREATE TABLE Car (

       car_id               INTEGER NOT NULL,

       producer_id      INTEGER NOT NULL,

       model               VARCHAR(20),

       year                  INTEGER,

       color                VARCHAR(32),

       price                 FLOAT,

       race                  INTEGER,

       photo                BLOB(50000)

);

 

CREATE UNIQUE INDEX XPKCar ON Car

(

       car_id ,

       producer_id

);

 

 

ALTER TABLE Car

       ADD PRIMARY KEY (car_id, producer_id);

 

 

CREATE TABLE Client (

       client_id            INTEGER NOT NULL,

       surname             VARCHAR(32),

       name                  VARCHAR(20),

       last_name          VARCHAR(20),

       passport             VARCHAR(20)

);

 

CREATE UNIQUE INDEX XPKClient ON Client

(

       client_id

);

 

 

ALTER TABLE Client

       ADD PRIMARY KEY (client_id);

 

 

CREATE TABLE Sale (

       client_id            INTEGER NOT NULL,

       car_id                INTEGER NOT NULL,

       producer_id       INTEGER NOT NULL,

       sale_date           DATE,

       comments         VARCHAR(1024)

);

 

CREATE UNIQUE INDEX XPKSale ON Sale

(

       client_id,

       car_id ,

       producer_id

);

 

ALTER TABLE Sale

       ADD PRIMARY KEY (client_id, car_id, producer_id);

 

CREATE TABLE Producer (

       producer_id           INTEGER NOT NULL,

       name                     VARCHAR(64),

       description            VARCHAR(1025)

);

 

CREATE UNIQUE INDEX XPKProducer ON Producer

(

       producer_id

);

 

 

ALTER TABLE Producer

       ADD PRIMARY KEY (producer_id);

 

 

ALTER TABLE Car

       ADD FOREIGN KEY (producer_id)

                             REFERENCES Producer  (producer_id)

                             ON DELETE CASCADE

                             ON UPDATE CASCADE;

 

 

ALTER TABLE Sale

       ADD FOREIGN KEY (client_id)

                             REFERENCES Client  (client_id)

                             ON DELETE CASCADE

                             ON UPDATE CASCADE;

 

 

ALTER TABLE Sale

       ADD FOREIGN KEY (car_id, producer_id)

                             REFERENCES Car(car_id, producer_id)

                             ON DELETE CASCADE

                             ON UPDATE CASCADE;

 

ПРИЛОЖЕНИЕ Г

(обязательное)

Блок-схемы алгоритмов, реализующих бизнес-логику

 

 

 

Рисунок Г.1 – Блок-схема работы сервера

 

Продолжение приложения Г

 

 

 

Рисунок Г.2 – Блок-схема работы алгоритма управления продажами

 

ПРИЛОЖЕНИЕ Д

(обязательное)

Листинг основных функций  программы

 

Листинг кода, демонстрирующий создание стаба сервера, соединение с базой данных, ожидание клиентских подключений:

 

public class ServerDavidovichDA {

        public static int port = 8737;

 

        Connection con;

        Statement st;

 

    public ServerDavidovichDA(String[] args) {

        try {

          if(args.length<3)

          {

            System.out.println("Wrong command line arguments.");

            System.out.println("Usage: <server_file_name> <server_host> <server_port> <database_name> [user] [password] [port]");

            System.out.println("Default port is 5678.");

            System.out.println("Default user and password are 'root' and 'root'.");

            System.exit(1);

          }

 

      Class.forName("com.mysql.jdbc.Driver").newInstance();

                   

          System.out.println("Connection URL: "+"jdbc:mysql:"+args[0]+":"+args[1]+"/"+args[2]+" "+(args.length<4?"root":args[3])+" "+(args.length<5?"root":args[4]));

          Connection con = DriverManager.getConnection("jdbc:mysql://"+args[0]+":"+args[1]+"/"+args[2], (args.length<4?"root":args[3]), (args.length<5?"root":args[4]));

          st = con.createStatement();

          System.out.println("Succesfully connected to database.");

 

         

          if(args.length>=6)

            port=Integer.parseInt(args[5]);

        } catch (Exception ex) {

          ex.printStackTrace();

        }

}

public static void main(String[] args) {

  try {

    ServerDavidovichDA s=new ServerDavidovichDA(args);

    System.setSecurityManager(new RMISecurityManager());

    ServerImplementationDavidovichDA server = new ServerImplementationDavidovichDA(s,"ServerRemote",port);

  } catch (Exception e) {

    System.out.println("Exception: "+e);

    e.printStackTrace();

  }

  }

}

 

Листинг кода, демонстрирующий реализацию стаба сервера, отвечающую за обработку вызываемых клиентами методов:

 

public class ServerImplementationDavidovichDA extends UnicastRemoteObject implements ServerRemoteDavidovichDA {

  ServerDavidovichDA server;

  ResultSet rs=null;

  public ServerImplementationDavidovichDA(ServerDavidovichDA server, String name,int port) throws RemoteException {

Информация о работе Разработать информационную систему по продаже автомобилей в автосалоне