Создание информационно-аналитической системы управления базой данных магазина автозапчастей

Автор работы: Пользователь скрыл имя, 06 Мая 2013 в 19:56, курсовая работа

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

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

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

Задание на курсовую работу. 3
Краткое описание предметной области. 4
1. Проектирование данных. 5
1.1 Характеристика входной и выходной информации. 5
1.2 Создание псевдонима для работы с базой данных. 7
1.3 Создание и разработка структуры таблиц базы данных. 7
1.4 Организация доступа к таблицам базы данных 9
2. Проектирование алгоритмов обработки информации. 10
2.1 Добавление записей 11
2.2 Изменение записей 13
2.3 Удаление записей. 14
2.4 Сортировка данных. 15
2.5 Поиск данных. 16
2.6 Диаграмма 19
2.7 Создание ведомостей или отчётов 19
3. Проектирование интерфейса. 20
3.1 Заставка программы. 20
3.2 Главная форма для работы с данными. 22
3.3 Информационное окно “Справка” и “Автор”. 23
3.4 Мини браузер. 23
3.5 Меню игр 24
3.6 Выход. 25
Список использованных источников 26

Файлы: 1 файл

Курсовая по ВМИП..docx

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

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РФ

ГОСУДАРСТВЕНННОЕ  ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО  ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

КАМСКАЯ ГОСУДАРСТВЕННАЯ  ИНЖЕНЕРНО-

ЭКОНОМИЧЕСКАЯ АКАДЕМИЯ

Кафедра  ММИТЭ

 

 

 

 

 

 

 

 

КУРСОВАЯ  РАБОТА

 

По  дисциплине «Высокоуровневые методы информатики  и программирования»

 

На  тему «создание информационно-аналитической  системы управления базой данных магазина автозапчастей»

 

 

 

 

 

Выполнил: студент гр.хххх

ххх.

№ зачетной книжки:ххх

Проверил:

ххх

 

 

Набережные  Челны

2011 год

 

ОГЛАВЛЕНИЕ.

 

ОГЛАВЛЕНИЕ. 2

Задание на курсовую работу. 3

Краткое описание предметной области. 4

1. Проектирование данных. 5

1.1 Характеристика входной и выходной информации. 5

1.2 Создание псевдонима для работы с базой данных. 7

1.3 Создание и разработка структуры таблиц базы данных. 7

1.4 Организация доступа к таблицам базы данных 9

2. Проектирование алгоритмов обработки информации. 10

2.1 Добавление записей 11

2.2 Изменение записей 13

2.3 Удаление записей. 14

2.4 Сортировка данных. 15

2.5 Поиск данных. 16

2.6 Диаграмма 19

2.7 Создание ведомостей или отчётов 19

3. Проектирование интерфейса. 20

3.1 Заставка программы. 20

3.2 Главная форма для работы с данными. 22

3.3 Информационное окно “Справка” и  “Автор”. 23

3.4 Мини браузер. 23

3.5 Меню игр 24

3.6 Выход. 25

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

 

 

 

Задание на курсовую работу.

 

Составить информационно - аналитическую  систему управления базой данных магазина автозапчастей. Исходная информация содержится в трех таблицах: Клиенты (код клиента, имя клиента, фамилия клиента, телефон, дополнительный телефон). Заказы клиентов (номер клиента, артикул детали, описание запчасти, количество, цена за единицу, дата заказа). Машины (номер клиента, марка и модель авто, Vin код, код ДВС, вид КПП). Текущий заказ(номер клиента, артикул детали, описание запчасти, количество, цена за единицу, дата заказа).

 

 

Краткое описание предметной области.

 

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

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

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

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

 

 

  1. Проектирование данных.

1.1 Характеристика входной и выходной информации.

 

Входной информацией являются 4 таблицы.

Одна, из которых представляют собой файл базы данных Paradox:

    • Данные на машины

Две, из которых представляет собой файл базы данных SQL:

    • “Клиенты”
    • “Заказы”
    • “Текущий заказ”

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

 

 

1.2 Создание псевдонима для работы с базой данных.

Псевдоним базы данных был создан (зарегистрирован) при помощи утилиты BDE Administrator. В качестве псевдонима был выбран “intercar”.

    1. Создание и разработка структуры таблиц базы данных.

 

Таблицы в формате Paradox создаются с помощью Database Desktop.С помощью этой программы создал таблицу “IntercarParadox” содержащую данные на автомобили заказчиков:

 

 

 

 

 

 

 

Структура таблицы:

 

   

 

И таблицы, созданные с помощью SQL:

 

 

 

 

 

 

 

 

 

 

1.4 Организация  доступа к таблицам базы данных.

 

Доступ к таблицам осуществляется с помощью  компонентов Table, ADO Connection, ADO Table.

Для таблицы сделанной в Database Desktop создал Table1 и задаются следующие свойства в окне  инспектора объектов:

В свойстве  DatabaseName таблиц  выбирается созданный ранее псевдоним intercar, а в свойстве  TableName выбирается соответствующие имя таблицы: intercarParadox. На следующем этапе создается элемент Data Source2. В свойстве Data Set, элемента, выбираем Table1. Для отображения данных в форме используются элементы DBGrid3(в свойстве Data Source выбираем DataSource2).

Для таблиц созданных в SQL server вначале создается ADO Connection1, в его свойстве Connection string записывается путь к базе данных. Далее для каждой таблицы создается ADO Table1, ADO Table2 и т.д.

На следующем этапе создаются  несколько элементов Data Source соответственно количеству соединений с BDGRid

Все объекты Table, ADO Table, ADO Connection и Data Source я разместил на Datamodule, что позволило не закидывать основную форму этими не визуальными объектами которые сильно мешали бы при дальнейшим изменением интерфейса программы.

 

 

2. Проектирование  алгоритмов обработки информации.

Изменение данных возможно лишь после ввода пароля. Для этого на форме имеется поле ввода пароля:

В кнопке помещен следующий код:

procedure TForm2.BitBtn7Click(Sender: TObject);

begin

if labelededit10.Text='379' then

begin

groupbox4.Visible:=true;

bitbtn8.Visible:=true;

bitbtn9.Visible:=true;

bitbtn11.Visible:=true;

labelededit10.Visible:=false;

bitbtn7.Visible:=false;

end   else

showmessage('Не правильный пароль! Повторите попытку!') ;

end;

После введения правильного пароля отображаются следующие элементы:

 

 

 

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

В случае ошибки ввода пароля пользователь увидит следующее сообщение: ' Не правильный пароль! Повторите попытку!

В поле ввода  пароля все символы отображаются в виде цифры 5

2.1 Добавление  записей

Добавление нового клиента

При нажатии  на кнопку добавит клиента открывается следующая форма:

 

Код кнопки:

begin

  if labelededit2.Text='' then

showmessage('Введите фамилию!');

if labelededit3.Text='' then

showmessage('Введите Номер телефона!');

if  (labelededit2.Text<>'') and (labelededit3.Text<>'') then

begin

datamodule3.adoquery3.sql[1]:='VALUES ('''+labelededit1.text+''','+''''+labelededit2.text+''','+''''+labelededit3.text+''','+''''+labelededit4.text+''')' ;

datamodule3.adoquery3.execsql;

datamodule3.ADOQuery1.Close;

datamodule3.ADOQuery1.Open;

 

if MessageDlg('Клиент успешно добавлен! Желаете добавить данные автомобиля?',mtConfirmation, [mbYes,mbNo],0)= mrYes  then

begin

groupbox2.Visible:=false;

groupbox1.Visible:=true;

showMessage('Не забывайте указывать клиента!') ;

end else

form4.Close;

labelededit1.Text:='' ;

labelededit2.Text:='';

labelededit3.Text:='' ;

labelededit4.Text:='' ;

end; 

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

 

begin

if labelededit5.Text='' then

showmessage('Марку и модель авто!');

if labelededit6.Text='' then

showmessage('Введите VIN автомобиля!');

if  (labelededit5.Text<>'') and (labelededit6.Text<>'') then

begin

datamodule3.query1.sql[1]:='VALUES ('+''''+labelededit5.text+''','+''''+labelededit6.text+''','+''''+labelededit7.text+''','+''''+labelededit8.text+''','''+dbtext1.Caption+''')' ;

datamodule3.query1.execsql;

 

groupbox2.Visible:=true;

groupbox1.Visible:=false;

labelededit5.Text:=''  ;

labelededit6.Text:=''  ;

labelededit7.Text:=''  ;

labelededit8.Text:=''  ;

form4.Close;

end;

 end;

Оба добавления происходят на одной  форме путем скрытия и открытия Gruopbox. После каждого добавления поля ввода очищаются.

 

2.2 Изменение  записей

Изменение данных в таблицах «Клиенты» и «Машины».

После ввода пароля в соответствующее  поле, открывается следующий блок :

В нем отображаются данные выделенного  клиента в таблице клиентов с  помощью объектов   DBedit и DBtext. После введения изменений и нажатия кнопки ОК все таблицы данной вкладки обновляются.

 

 

 

 

2.3 Удаление  записей.

 

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

 

 

На формах пользователь выбирает сначала  клиента затем авто(в случае удаления только авто). При удаление клиента удаляются абсолютно все что с ним было связано за исключением сделанных им заказов в архиве.

 

 

 

 

 

 

2.4 Сортировка  данных.

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

Блок  сортировки :

procedure TForm2.RadioButton6Click(Sender: TObject);

begin

datamodule3.adoquery2.Close;

if CheckBox1.Checked then

datamodule3.adoquery2.sql[3]:='ORDER BY idCust DESC' else

datamodule3.adoquery2.sql[3]:= 'ORDER BY idCust ASC';

datamodule3.adoquery2.Open;

end;

 

procedure TForm2.RadioButton7Click(Sender: TObject);

begin

  datamodule3.adoquery2.Close;

if CheckBox1.Checked then

datamodule3.adoquery2.sql[3]:='ORDER BY firm DESC' else

datamodule3.adoquery2.sql[3]:= 'ORDER BY Firm ASC';

datamodule3.adoquery2.Open;

end;

 

procedure TForm2.RadioButton8Click(Sender: TObject);

begin

datamodule3.adoquery2.Close;

if CheckBox1.Checked then

datamodule3.adoquery2.sql[3]:='ORDER BY cena DESC' else

datamodule3.adoquery2.sql[3]:= 'ORDER BY cena ASC';

datamodule3.adoquery2.Open;

end;

 

procedure TForm2.RadioButton9Click(Sender: TObject);

begin

datamodule3.adoquery2.Close;

if CheckBox1.Checked then

datamodule3.adoquery2.sql[3]:='ORDER BY Date DESC' else

datamodule3.adoquery2.sql[3]:= 'ORDER BY Date ASC';

datamodule3.adoquery2.Open;

end;

2.5 Поиск данных.

Поиск реализован к двум таблицам: Клиенты и Заказы

Во втором случае поиск осуществляется путем  выделения диапазона дат с  использованием Datetimepicker.

Код для кнопки «Поиск»

datamodule3.adoquery2.close;

datamodule3.adoquery2.sql[2]:=' ';

datamodule3.adoquery2.open;

datamodule3.adoquery2.Close;

DataModule3.ADOquery2.Parameters.AddParameter.Name:='D1';

DataModule3.ADOquery2.Parameters.AddParameter.Name:='D2';

DataModule3.ADOquery2.Parameters.ParamByName('D1').Value:=datetostr(form2.datetimepicker1.date);

DataModule3.ADOquery2.Parameters.ParamByName('D2').Value:=datetostr(form2.datetimepicker2.date);

datamodule3.adoquery2.sql[2]:='where [Date] between :D1 and :D2';

datamodule3.adoquery2.open;

datamodule3.adoquery6.close;

datamodule3.adoquery6.sql[2]:=' ';

datamodule3.adoquery6.open;

datamodule3.adoquery6.close;

DataModule3.ADOquery6.Parameters.AddParameter.Name:='D1';

DataModule3.ADOquery6.Parameters.AddParameter.Name:='D2';

DataModule3.ADOquery6.Parameters.ParamByName('D1').Value:=datetostr(form2.datetimepicker1.date);

DataModule3.ADOquery6.Parameters.ParamByName('D2').Value:=datetostr(form2.datetimepicker2.date);

datamodule3.adoquery6.sql[2]:='where [Date] between :D1 and :D2';

datamodule3.adoquery6.open;

 

Код для кнопки «За весь период»

datamodule3.adoquery2.Close;

datamodule3.adoquery2.sql[2]:=' ';

datamodule3.adoquery2.Open;

datamodule3.adoquery6.Close;

datamodule3.adoquery6.sql[2]:=' ';

datamodule3.adoquery6.Open;

 

Поиск для таблицы клиентов

 

datamodule3.ADOQuery1.Close;

if form2.RadioButton1.checked then

Информация о работе Создание информационно-аналитической системы управления базой данных магазина автозапчастей