Автоматизированная информационная система Малое авторемонтное предприятие

АННОТАЦИЯ



Темой курсовой работы является автоматизированная информационная система «Малое авторемонтное предприятие».

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

Объектом исследования является процесс автоматизирования работы продавца с покупателем.

Документация проекта состоит из 9 разделов, включающих две блок-схемы и один рисунок. Количество страниц – 34.

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

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

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

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

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

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

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



ВВЕДЕНИЕ



Основной целью курсового проекта является создание программного продукта (ПП) АИС «Малое авторемонтное предприятие».  

Объектом исследования является процесс автоматизирования работы продавца с покупателем. 

Создание таких ПП как АИС «Малое авторемонтное предприятие» является актуальным решением некоторых проблем, возникающих на предприятиях в наше время.  

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

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

 



	
          1 Общие сведения о программном средстве

Основное функциональное назначение программного средства



Темой курсовой работы является АИС «Малое авторемонтное предприятие». Основное назначение этого проекта  заключается в автоматизации работы продавца с покупателем, основные функции: учет и поиск  товаров в базе данных, продажа, вывод чека на печать.

1.2 Полное наименование программного средствa



Программный продукт АИС «Малое авторемонтное предприятие».

Условное обозначение программного средства



ПП АИС «Малое авторемонтное предприятие».



Разработчики программного средства



Разработчиком данного программного средства является Валуйская Ольга Александровна, учащаяся группы 51-о учреждения образования «Витебский государственный технологический колледж».


2 Техническое задание

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

2.1.1 Формулировка задания



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

Цели, достигаемые разработкой

 

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

Категории пользователей



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

Наименование организации заказчика



Заказчиком на разработку данного ПП является Витебский государственный технологический колледж(ВитГТК) (2010 г. Витебск ул.Гагарина, 41).

Основание для проведения работ



Основанием для разработки данного ПП является договор между Заказчиком (ВитГТК) и Разработчиком (ООО «Планета идей») от 10.09.2010.

Описание предметной области

2.2.1 Описание (схемы) бизнес процессов



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

Состав данных и алгоритмы обработки информации



Разрабатываемый ПП должен создавать и модифицировать базу данных, состоящую из одной таблицы:

- запчасти. Со структурой: авто, марка, запчасть, стоимость, описание, изображение.

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

- ведение базы данных по видам запчастей; 

- ведение базы данных по автомобилям;

- ведение базы данных по маркам автомобиля;

2.2.3  Недостатки существующих проектных решений



На данный момент существует несколько аналогов, таких как: Image v1.2, Base Editor v1.3. Однако все эти ПП не обеспечивают полноценного учета всей деятельности Заказчика, а лишь автоматизируют учет отдельных ее частей. Image v1.2 может вести базу данных только по продажам, Base Editor v1.3 не учитывает операции по оказанию услуг по безналичному расчету. Не один из приведенных выше аналогов не обеспечивает доступ к данным по локальной сети и не осуществляет фильтрацию данных по всем необходимым заказчику критериям.

Текущий уровень автоматизации



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

Заказчик располагает: 

- 6 компьютеров Pentium Dual Core (1024 DDR2), Windows Seven, Microsoft Office 2010;

- 2 компьютера  AMD PHENOM  (2048 DDR3), Windows Vista, Microsoft Office 2010.

2.3Требования к разработке

2.3.1.Информационная модель 



Редактирование данных

Основная            форма

Система помощи пользователю

Внесение изменений

Список запчастей



Рисунок 1. Информационная модель



2.3.2 Структура меню



Запчасти в продаже:

- вывести список;

- изменить запись.

Внесение изменений:

- добавить запись;

- удалить запись.



Функциональные требования



Ведение базы данных по запчастям:

Данная функция должна осуществлять два вида учета:

а) ведение учета и поиска  товаров в базе данных;

б) добавление и изменение изделий;

 в) удаление изделий;

 г) продажа запчастей.

Требования к информационному обеспечению.



Разрабатываемый ПП должен:

- сохранять данные, вводимые пользователем;

- формировать отчетные документы;

- содержать необходимые классификаторы, и таблицы.

Осуществлять фильтрацию данных по следующим критериям:

- по авто, марке, стоимости;

Обеспечивать оперативный поиск записи по запросу пользователя.

Требования к пользовательскому интерфейсу.



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

- глубина вложенности окон должна быть не более трёх;

- содержать краткие описания элементов меню;

- должен быть понятным и простым в использовании.

Требования к алгоритмам

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

Порядок контроля и обеспечения качества

2.4.1 Экспертиза



Не требуется разработка макета на стадии «Технический проект». Требуется проведение экспертизы при участии представителя Заказчика.

2.4.2 Тестирование



Тестирование программного продукта должно проводиться в соответствии с установленными правилами ГОСТ 89765в-99. Тестирование системы производиться Разработчиком. Присутствие представителя Заказчика необязательно.

2.4.3 Опытная эксплуатация



Опытная эксплуатация проводится Заказчиком при контроле Разработчика в соответствии с договором.

2.5 Требования к документированию

2.5.1 Требования к справочной системе

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

2.5.2 Требования к документации пользователя



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

- лицензионное право использования разработанного программного продукта;

- документация по эксплуатации;

- талон на последующее обслуживание программного продукта;




3 Пояснительная записка

3.1 Декомпозиция поставленной задачи



Для решения общей целевой задачи, ПС разбивается на ряд следующих подзадач:

- сохранять данные, вводимые пользователем;

- формировать отчетные документы;

- содержать необходимую информацию и таблицы.

Осуществлять фильтрацию данных по следующим критериям:

- по авто, марке, стоимости;

Обеспечивать оперативный поиск записи по запросу пользователя.

Общая архитектура ПС



АИС «Малое авторемонтное предприятие» состоит из 5 форм, базы данных, состоящей из 1 таблицы.

Реализация функционального назначения ПС



Ведение базы данных по запчастям:

Данная функция должна осуществлять два вида учета:

а) ведение учета и поиска  товаров в базе данных;

б) добавление и изменение изделий;

 в) удаление изделий;

 г) продажа запчастей.

Разработка алгоритма решения задачи

Разрабатываемый ПП должен создавать и модифицировать базу данных, состоящую из одной таблицы:

- запчасти. Со структурой: авто, марка, запчасть, стоимость, описание, картинка.

Детальная разработка алгоритмов отдельных подзадач



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

- ведение базы данных по видам запчастей; 

- ведение базы данных по автомобилям;

- ведение базы данных по маркам автомобиля;

Структурная организация данных



Запчасти в продаже:

- вывести список;

- изменить запись.

Внесение изменений:

- добавить запись;

- удалить запись.

Разработка интерфейса ПС



Интерфейс данного ПП  понятен, обеспечен упрощенной формой интерфейса:

 глубина вложенности окон не более трёх;

 содержит краткие описания элементов меню;

 понятен и прост в использовании.

Описание структуры выходной информации



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


4 Руководство системного программиста

4.1 Общие сведения о программном средстве



Темой курсовой работы является АИС «Малое авторемонтное предприятие». Основное назначение этого проекта  заключается в автоматизации работы продавца с покупателем, основные функции: учет и поиск  товаров в базе данных, продажа запчастей.

4.2 Структура программного средства



АИС «Малое авторемонтное предприятие» состоит из 5 форм, базы данных, состоящей из 1 таблицы.

4.3 Установка программного средства



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

Для успешной установки свободное место на жестком диске должно быть не менее 10 Мб.   

4.4 Проверка программного средства



Для проверки данного ПС необходимо запустить файл с расширением .exe.


5 Руководство программиста

5.1 Назначение и условия применения программного средства



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

5.2 Характеристика программного средства



Данное программное средство выполняет следующие функции:

- ведение базы данных по видам запчастей; 

- ведение базы данных по автомобилям;

- ведение базы данных по маркам автомобиля;

Для успешной работы ПС свободное место на жестком диске должно быть не менее 10 Мб. Оперативной памяти – не менее 128 Мб.  

Работа с программным средством



Для начала работы с ПС необходимо запустить файл с расширением .exe.

Входные и выходные средства



Входными данными являются вся информация вводимая пользователем.

Выходными данными – данные, которые получаются после обработки программой входных данных (чек).


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

6.1 Назначение программного средства



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

6.2 Условия выполнения программного средства



Данное ПС реализует все встроенные функции при условии использования его по назначению и  корректном вводе.

6.3 Эксплуатация программного средства



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



6.4 Сообщения пользователю



ПС обладает системными сообщениями, которые препятствуют вводу некорректных данных, а также все критические операции требуют подтверждения. 











7 ЗАКЛЮЧЕНИЕ



Программный продукт АИС «Малое авторемонтное предприятие» помогает автоматизировать работу продавца с покупателем, основные функции: учет и поиск  товаров в базе данных, продажа запчастей. 

ПС обладает системными сообщениями, которые препятствуют вводу некорректных данных.

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





































8 СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ



1. Архангельский, А. Я. Язык C++ в C++Builder : справочное и методическое пособие / А. Я. Архангельский .-- М. : Бином, 2008 .-- 942 с.

2.   Боб Сворт, Джэйми Оллсоп C++Builder . Руководство разработчика.

3.  Джарод Холингвэрт, Дэн Баттерфилд, Боб Сворт, Джэйми Оллсоп C++Builder 5. Руководство разработчика.

4.    Елманова Н.З.,      Кошель     С.П. Введение в Borland C++ Builder-М.:Диалог–МИФИ, 1997. 272 с.

5.   Керниган Б, Ритчи Д. Язык программирования Си / Пер. с англ. Изд. 3-е испр. СПб.: Невский Диалект, 2001. 352 с.: ил.

6.    Крячков А.В., Сухинина И.В., Томшин В.К. Программирование на С и С++. Практикум: Учеб. пособие для вузов/ Под ред. В.К.Томшина. Изд. 2-е испр. М.: Горячая линия – Телеком, 2000. 344с.:ил.

7. Методические указания по выполнению курсовой работы по дисциплине «Конструирование программ и языки программирования»./М.В Курешова – Витебск: УО «Витебский государственный технологический колледж», 2009. – с.50

8.   Подбельский В.В., Фомин С.С. Программирование на языке Си: Учеб. пособие. Изд. 2-е доп. М.: Финансы и статистика, 2000. 600с.: ил.

9.   Романов, В.Ю. Программирование на языке C++: Практ. подход .-- М. : Компьютер, 1993 .-- 157с.

10. Скляров В.А. Программирование на языках Си и Си++: Учеб. пособие. М.: Высш. школа, 1999. 288с.

11.  Теллес, М. BORLAND C++ BUILDER: библиотека программиста . СПб : Питер, 1998 .-- 512с. 

12. Технологии разработки программного обеспечения: Учебник/ С. Орлов. – СПб.: Питер, 2002. – 464 с.: ил.

13.  Томшин В.К. Программирование на С и С++. Практикум: Учеб. пособие для вузов/ Под ред. В.К.Томшина. Изд. 2-е испр. М.: Горячая линия – Телеком, 2000. 344с.:ил.

14.  C++ Builder 6. Справочное пособие. Книга 2. Классы и компоненты. – М.: Бином-Пресс, 2002г. – 528 с.: ил.

15. Borland C++ Builder 5. Энциклопедия программиста. Калверт Ч., Рейсдорф К., "ДиаСофт" - 2001, 944 стр.































	ПРИЛОЖЕНИЕ А – листинг программы

	Unit1

	#include <vcl.h>

	#pragma hdrstop

	#include "Unit1.h"

	#include "Unit2.h"

	//---------------------------------------------------------------------------

	#pragma package(smart_init)

	#pragma resource "*.dfm"

	TForm1 *Form1;

	//---------------------------------------------------------------------------

	__fastcall TForm1::TForm1(TComponent* Owner)

	        : TForm(Owner)

	{

	}

	//---------------------------------------------------------------------------

	

	void __fastcall TForm1::N1Click(TObject *Sender)

	{

	Form2->Show();

	Form1->Hide();

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm1::N4Click(TObject *Sender)

	{

	Form1->Close();

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm1::Timer1Timer(TObject *Sender)

	{

	Label1->Caption=DateToStr(Date()) + "   " +TimeToStr(Time());        

	}

	//---------------------------------------------------------------------------

	Unit2

	#include <vcl.h>

	#pragma hdrstop

	#include "Unit2.h"

	# include "Unit1.h"

	# include "Unit3.h"

	# include "Unit4.h"

	//---------------------------------------------------------------------------

	#pragma package(smart_init)

	#pragma resource "*.dfm"

	TForm2 *Form2;

	int summa,x;

	BOOLEAN bol;

	String a,b,f,f1,i;

	//---------------------------------------------------------------------------

	__fastcall TForm2::TForm2(TComponent* Owner)

	        : TForm(Owner)

	{

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::BitBtn1Click(TObject *Sender)

	{

	Form2->Hide();

	Form1->Show();

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button1Click(TObject *Sender)

	{

	ADOTable1->Append();

	DBGrid1->SetFocus();

	Form3->Show();

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::N1Click(TObject *Sender)

	{

	Form1->Show();

	Form2->Hide();

	}

	//---------------------------------------------------------------------------

	

	void __fastcall TForm2::N4Click(TObject *Sender)

	{

	Form2->Close();

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button2Click(TObject *Sender)

	{

	if(ADOTable1->IsEmpty()==true)

	ShowMessage("Ошибка");

	else {

	ADOTable1->Delete();

	ShowMessage("Данные удалены");

	} }

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button3Click(TObject *Sender)

	{

	if(ADOTable1->IsEmpty()==true)

	 ShowMessage("ia?aai ?aaaeoe?iaaou");

	 else{Form4->ShowModal();}

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button4Click(TObject *Sender)

	{

	if (bol==false) {

	Memo1->Lines->Add("-----------------------------------------------------------------------------------------");

	Memo1->Lines->Add("Авто: "+ADOTable1->Fields->Fields[1]->AsString);

	Memo1->Lines->Add("Марка: "+ADOTable1->Fields->Fields[2]->AsString);

	Memo1->Lines->Add("Запчасти: "+ADOTable1->Fields->Fields[3]->AsString);

	Memo1->Lines->Add("Количество: "+Edit1->Text);

	Memo1->Lines->Add("Стоимось: "+ADOTable1->Fields->Fields[4]->AsString);

	//Memo1->Lines->Add("Общая цена "+IntToStr(StrToInt(Edit1->Text)*StrToInt(ADOTable1->Fields->Fields[4]));

	//summa=summa+StrToInt(Edit2->Text)*ADOTable1->Fields->Fields[4]->AsInteger;

	//Edit1->Text=1;

	//Label4->Caption="Итого за покупку: "+ FloatToStr(summa)+ " рублей" ;

	}

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button5Click(TObject *Sender)

	{

	ADOTable1->Last();

	x=ADOTable1->Fields->Fields[0]->AsInteger;

	do {

	ADOTable1->Delete();

	ADOTable1->Next();       }

	while (ADOTable1->Eof!=true);

	ADOTable1->Insert();

	x++;

	ADOTable1->Fields->Fields[0]->AsInteger=x;

	ADOTable1->Post();

	ADOTable1->Last();

	if (StrToInt(Edit2->Text)>=summa) {

	if (summa!=0) {

	if (bol==false) {

	bol=true;

	Memo1->Lines->Add("-----------------------------------------------------------------------------------------");

	Memo1->Lines->Add("Итого: "+FloatToStr(summa)+ " рублей");

	if (Edit2->Text!="") {

	Memo1->Lines->Add("Внесена оплата: "+Edit2->Text);

	Memo1->Lines->Add("Сдача: "+FloatToStr(StrToInt(Edit2->Text)-summa));

	}

	Memo1->Lines->Add("Кассир:"+i);

	Memo1->Lines->Add("Чек №"+ADOTable1->Fields->Fields[0]->AsString+"  "+Date());

	Memo1->Lines->Add("---------------------------Спасибо за покупку!!!-------------------------");

	}

	if (Edit2->Text!=""){

	ShowMessage("Итого: "+FloatToStr(summa)+ " рублей"+

	" Внесена оплата: "+Edit2->Text+" Сдача: "+FloatToStr(StrToInt(Edit2->Text)-summa));

	} else ShowMessage("Итого: "+FloatToStr(summa)+ " рублей");

	} else ShowMessage("Нет покупок!!!"); }

	else ShowMessage("Недостаточно денег на покупку"); }

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button6Click(TObject *Sender)

	{

	summa=0;

	Memo1->Clear();

	Memo1->Lines->Add("      -----------Авторемонт--------------");

	Memo1->Lines->Add("---------------Чек покупателю------------");

	bol=false;

	Edit2->Text="0";

	Label4->Caption=" ";

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::N5Click(TObject *Sender)

	{

	ADOTable1->IndexFieldNames="Авто";

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::N7Click(TObject *Sender)

	{

	ADOTable1->IndexFieldNames="Стоимось";

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::N6Click(TObject *Sender)

	{

	ADOTable1->IndexFieldNames="Марка";        

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm2::Button7Click(TObject *Sender)

	{

	String zapros, c1,c2,a,m;

	zapros="";

	zapros="SELECT * FROM Avtoremont.Zapchasti WHERE ";

	c1=Edit5->Text; c2=Edit7->Text;

	zapros=zapros+"Стоимось >="+c1;

	zapros=zapros+"and "+ "Стоимось <= "+c2;

	if (Edit4->Text!="")

	{a=Edit4->Text;

	zapros=zapros+" and "+ " Авто like "+"'"+a+"'";}

	if (Edit6->Text!="")

	{m=Edit6->Text;

	zapros=zapros+" and "+ " Марка like "+"'"+m+"'";}

	zapros=zapros+";";

	ADOQuery1->Close();

	ADOQuery1->SQL->Clear();

	ADOQuery1->SQL->Add(zapros);

	ADOQuery1->ExecSQL();

	ADOQuery1->Active=true;

	if (ADOQuery1->RecordCount==0)

	{ ShowMessage("Ничего не найдено!");

	DataSource1->DataSet=ADOTable1; }

	else DataSource1->DataSet=ADOQuery1;

	}

	//---------------------------------------------------------------------------

	

	

	Unit3

	

	#include <vcl.h>

	#pragma hdrstop

	#include "Unit3.h"

	#include "Unit2.h"

	# include "Unit2.h"

	//---------------------------------------------------------------------------

	#pragma package(smart_init)

	#pragma resource "*.dfm"

	TForm3 *Form3;

	//---------------------------------------------------------------------------

	__fastcall TForm3::TForm3(TComponent* Owner)

	        : TForm(Owner)

	{

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm3::Button1Click(TObject *Sender)

	{

	Form3->Close();

	}

	//---------------------------------------------------------------------------

	Unit4

	

	#include <vcl.h>

	#pragma hdrstop

	#include "Unit4.h"

	#include "Unit2.h"

	# include "Unit2.h"

	//---------------------------------------------------------------------------

	#pragma package(smart_init)

	#pragma resource "*.dfm"

	TForm4 *Form4;

	//---------------------------------------------------------------------------

	__fastcall TForm4::TForm4(TComponent* Owner)

	        : TForm(Owner)

	{

	}

	//---------------------------------------------------------------------------

	void __fastcall TForm4::Button1Click(TObject *Sender)

	{

	if(Form2->ADOTable1->Modified==true)

	  Form2->ADOTable1->Post();

	  Form2->Show();

	 Form4->Close();        

	}

	//---------------------------------------------------------------------------

	

	

	

	

	

	



Приложение Б - диаграмма вариантов использования























По цене

По авто

По марке

Сортировка

Изменить

Удалить

Добавить

Просмотр записей БД





6