Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.61 Mб
Скачать

7 Результаты

7.1 Вывод по реализации задачи

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

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

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

7.2 Перспективы развития проекта

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

8 Список используемой литературы

  1. Архангельский А.Я. «Программирование в Delphi 6» - М.: Издательство «БИНОМ», 2003.

  2. Бакнелл – «Фундаментальные алгоритмы» - СПб.: ООО «ДиаСофтЮП», 2003.

  3. Бузовский О.В. - Программирование. Язык Паскаль-концепции,стандарт,расширения - СПб.: БХВ – Петербург, 2006.

  4. Гофман В.Э., Хомоненко А.Д. «Работа с БД в Delphi» - СПб.: БХВ – Петербург, 2002.

  5. Дархвелидзе П.Г., Марков Е.П. «Программирование в Delphi 7» - СПб.: БХВ – Петербург, 2003

  6. Дарахвалидзе – «Delphi 2005 для Win32» - СПб.: БХВ – Петербург, 2005.

  7. Елманова, Трепалин, Тенцер – «Delphi и технология COM» - 2 изд, 2003.

  8. Зайцев О.В.,Владимиров А.М. - ГРАФИКА В ДЕЛЬФИ - СПб.: БХВ – Петербург, 2005.

  9. Кандзюба С.П. - Delphi6 Базы данных и приложения

  10. Корняков В. - Программирование документов и приложений MS Office в Delphi - СПб.: БХВ – Петербург, 2005.

  11. Краснов М. - DirectX Графика в проектах Delphi

  12. Михаил Фленов «Библия Delphi» - СПб.: БХВ – Петербург, 2004.

  13. Парижский С.М. «Delphi. Учимся на примерах» - К.: «МК-Пресс», 2005

  14. Пестреков В.М., Маслобоев А.Н. «Delphi в примерах» - СПб.: БХВ – Петербург, 2005.

  15. Ревич Ю. «Нестандартные приёмы программирования на Delphi» - СПб.: БХВ – Петербург, 2005.

  16. Род Стивене - Delphi Готовые алгоритмы - СПб.: БХВ – Петербург, 2004.

  17. Сорокин А.В. «Разработка БД» - СПб.: Питер, 2005.

  18. Фленов М. - Delphi 2005 Секреты программирования - СПб.: БХВ – Петербург, 2006.

  19. Фленов М. Е. «Программирование в Delphi глазами хакера» - СПб.: БХВ – Петербург, 2003.

  20. Шупрута В.В. - Delphi 2005 Учимся программировать - СПб.: БХВ – Петербург, 2005.

Приложение А

(справочная)

«Договор поставки»

Приложение Б

(справочная)

«Платежное поручение»

Приложение В

(справочная)

«Снятие кассы»

Приложение Г

(справочная)

«Диаграмма продаж автомобилей»

Приложение Д

(справочная)

«Объем продаж»

Приложение Е

(справочная)

«Оформление кредита»

Приложение Ж

( справочная)

«Гарантийный талон»

Приложение З

(справочная)

«Товарный чек»

Приложение И

(справочная)

«Прибыль автосалона»

Приложение К

(справочная)

«Листинг исходных кодов»

«Авторизация»

case ComboBox1.ItemIndex of

0: if Edit1.Text='1' then dlSekr.showModal else showmessage('неправильный ввод');

1: if Edit1.Text='2' then ParKlad.ShowModal else showmessage('неправильный ввод');

2: if Edit1.Text='3' then ParSotr.showModal else showmessage('неправильный ввод');

3: if Edit1.Text='4' then dlMened.showModal else showmessage('неправильный ввод');

4: if Edit1.Text='5' then

begin dlKlien.Position:=poDesigned;

dlKlien.showModal; end

else showmessage('неправильный ввод');

5: if Edit1.Text='6' then dlDirek.showModal else showmessage('неправильный ввод');

else showmessage('неправильный ввод');

end;

«Расчёт суммы поставки»

nakl.ADOTable1itogo.Value:=nakl.ADOTable1obsh_stoim_avt.Value+(nakl.ADOTable1obsh_stoim_avt.Value*nakl.ADOTable1proc_za_postavku.Value);

«Расчёт суммы автомобилей»

dlNakl.ADOTable1stoim_v_rub.Value:=dlNakl.ADOTable1stoim_avt.Value*dlNakl.ADOTable1tar.Value;

«Расчёт суммы продажи»

k:=0;

if (Prodazh.ADOTable1kod_karti.Value<>0) then

begin

k:=0.03;

if (Prodazh.ADOTable1SumKred.Value<>0) then

k:=Prodazh.ADOTable1SumKred.Value;

end;

Prodazh.ADOTable1sum_NDS.Value:=Prodazh.ADOTable1proc_NDS.Value*Prodazh.ADOTable1sum.Value;

Prodazh.ADOTable1summa_prodazh.Value:=(Prodazh.ADOTable1SObor.Value+Prodazh.ADOTable1sum.Value+Prodazh.ADOTable1summa_za_oforml.Value+Prodazh.ADOTable1summa_dostav.Value+Prodazh.ADOTable1sum_NDS.Value)-((Prodazh.ADOTable1SObor.Value+Prodazh.ADOTable1sum.Value+Prodazh.ADOTable1summa_za_oforml.Value+Prodazh.ADOTable1summa_dostav.Value+Prodazh.ADOTable1sum_NDS.Value)*k);

Prodazh.ADOTable1stoim_oplat.Value:=(Prodazh.ADOTable1SObor.Value+(Prodazh.ADOTable1sum.Value-Prodazh.ADOTable1SumVKred.Value)+Prodazh.ADOTable1summa_za_oforml.Value+Prodazh.ADOTable1summa_dostav.Value+Prodazh.ADOTable1sum_NDS.Value)-((Prodazh.ADOTable1SObor.Value+(Prodazh.ADOTable1sum.Value-Prodazh.ADOTable1SumVKred.Value)+Prodazh.ADOTable1summa_za_oforml.Value+Prodazh.ADOTable1summa_dostav.Value+Prodazh.ADOTable1sum_NDS.Value)*k);

Prodazh.ADOTable1sdacha.Value:=Prodazh.ADOTable1nalichn.Value-Prodazh.ADOTable1stoim_oplat.Value;

«Расчёт суммы выплаты по кредиту»

Present:= Now;

DecodeDate(ViplPoKred.ADOTable1data_oform.Value, Year, Month, Day);

DecodeDate(Present, Year1, Month1, Day1);

k2:=(Year1-(Year+(trunc((Month+ViplPoKred.ADOTable1kol_vipl.Value)/12))));

k3:=(Month1+(k2*12))-(((Month+1+ViplPoKred.ADOTable1kol_vipl.Value)-(trunc((Month+1+ViplPoKred.ADOTable1kol_vipl.Value)/12)*12)));

k4:=(Day1+(k3*30))-Day;

if (k4>0) then

ViplPoKred.ADOTable1obsh_summa.Value:=ViplPoKred.ADOTable1summa_oplati.Value+((ViplPoKred.ADOTable1summa_oplati.Value*ViplPoKred.ADOTable1Pen.Value*k4))

else

ViplPoKred.ADOTable1obsh_summa.Value:=ViplPoKred.ADOTable1summa_oplati.Value;

«Прорисовка демонстрационного зала»

var r,c,j,m,k,d1,d2,d3,d4,d5,i:integer;

b:string;

g:real;

begin

s1:=0;

k:=225;

d1:=15;

d2:=15;

d5:=250;

j:=0;

m:=2;

with Image1 do Canvas.FillRect(Rect(0,0,Width,Height));

with Image1.Canvas do // Снова рисуем пустой зал

begin

for r:=1 to d1 do

begin

c:=0;

for m:=1 to d2 do

begin

c:=c+2;

if r mod 2=0 then begin

RoundRect(25+15*c,10+15*r,38+15*c,23+15*r,8,8);

end

else begin

j:=j+1;

b:=IntToStr(j);

if j<=105 then

TextOut(25+15*c,10+15*r,b);

end;

end;

end;

end;

with Image1.Canvas do // Закрашиваем синим проданные места

begin

ADOTable1.First;

for i:=1 to ADOTable1.RecordCount do begin

r:=ADOTable1.FieldByName('mesto_v_manezhe').AsInteger;

if (r mod 15)<>0 then

m:=(((trunc(r/15))+1)*2)

else m:=((trunc(r/15))*2);

if m=4 then

r:=(r+1)-16

else

if m=6 then

r:=(r+1)-31

else

if m=8 then

r:=(r+1)-46

else

if m=10 then

r:=(r+1)-61

else

if m=12 then

r:=(r+1)-76

else

if m=14 then

r:=(r+1)-91;

if r<>0 then begin

r:=r+r;

Brush.Color:=clBlue;

RoundRect(25+15*r,10+15*m,38+15*r,23+15*m,8,8);

Brush.Color:=clWhite;

end;

{end;}

ADOTable1.Next;

end;

end;

ADOTable1.First;

Brush.Color:=clWhite;

«Оформление продажи»

dlProdaz.DateTimePicker2.DateTime:=now;

Prodazh.ADOTable1.Insert;

if (dlProdaz.DBCheckBox1.Checked=false) then begin

dlProdaz.DateTimePicker2.Visible:=false;

dlProdaz.Label5.Visible:=false;

dlProdaz.Label6.Visible:=false;

dlProdaz.Label7.Visible:=false;

dlProdaz.DBEdit4.Visible:=false;

dlProdaz.DBEdit5.Visible:=false;

end

else begin

dlProdaz.DateTimePicker2.Visible:=true;

dlProdaz.Label5.Visible:=true;

dlProdaz.Label6.Visible:=true;

dlProdaz.Label7.Visible:=true;

dlProdaz.DBEdit4.Visible:=true;

dlProdaz.DBEdit5.Visible:=true;

end;

Prodazh.ADOTable1kod_sotrudnika.Value:=StrToInt(dlKass.Edit1.Text);

dlProdaz.Show;

«Фильтрация кредитов»

ViplPoKred.ADOTable1.Filtered:=false;

ViplPoKred.ADOTable1.Filter:='kod_kredita='''+Edit2.Text+'''';

ViplPoKred.ADOTable1.Filtered:=true;

«Поиск автомобилей»

var s1,s2:string;

op:TLocateOptions;

begin

Case ComboBox1.ItemIndex of

0:begin s1:= 'kod_avt';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

1:begin s1:= 'marka';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

2:begin s1:= 'nazvan_avt';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

3:begin s1:= 'god_vipuska';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

4:begin s1:= 'strana_proizvod';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

5:begin s1:= 'stoim_s_nadb';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

6:begin s1:= 'kol_mest';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

7:begin s1:= 'cvet_avt';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

8:begin s1:= 'tip_kuzova';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

9:begin s1:= 'tip_dvigat';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

10:begin s1:= 'max_scor';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

11:begin s1:= 'moshn_avt';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

12:begin s1:= 'kol_dverei';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

13:begin s1:= 'razgon';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

14:begin s1:= 'obem_bagazhn';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

15:begin s1:= 'obem_topl_baka';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

16:begin s1:= 'tip_kor_pered';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

17:begin s1:= 'tip_rul';

s2:= Edit1.Text;

op:= [loCaseInsensitive];

end;

end;

if (Skl.Edit1.Text='0') then begin

if not KladSkl.ADOTable1.Locate(s1,s2,op) then

ShowMessage(' не найдена ');

end

else

begin

if not Sklad.ADOTable1.Locate(s1,s2,op) then

ShowMessage(' не найдена ');

end;

«Дерево данных автомобилей»

var

i:integer;

CaptionStr:String;

NewNode,NewNode2:TTreeNode;

j:integer;

r,c,h,m,k,d1,d2,d3,d4,d5:integer;

b:string;

g:real;

cv1:Tcolor;

begin

ADOTable1.Active:=false;

ADOTable1.Active:=true;

ADOQuery2.Active:=false;

ADOQuery2.Active:=true;

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

TreeView1.Items.Clear;

CaptionStr:='';

ADOQuery2.First;

for i:=1 to ADOQuery2.RecordCount do begin

NewNode:=TreeView1.Items.Add(Nil, ADOQuery2marka.AsString);

CaptionStr:=ADOQuery2marka.AsString;

ADOQuery1.First;

for j:=1 to ADOQuery1.RecordCount do begin

if ((CaptionStr)=(ADOQuery1marka.AsString)) then

begin

NewNode2:=TreeView1.Items.AddChild(NewNode, ADOQuery1nazvan_avt.AsString);

end;

ADOQuery1.Next;

end;

ADOQuery2.Next;

end;

s1:=0;

k:=225;

d1:=2;

d2:=5;

{d3:=280;

d4:=265;}

d5:=250;

j:=0;

m:=2;

with Image1 do Canvas.FillRect(Rect(0,0,Width,Height));

with Image1.Canvas do // Снова рисуем пустой зал

begin

for r:=1 to d1 do

begin

c:=0;

for m:=1 to d2 do begin

h:=m;

if r=2 then h:=h+5;

cv1:=cvet[h];

Brush.Color:=cv1;

RoundRect(24*m-24,24*r-24,24*m,24*r,24,24);

Brush.Color:=clWhite;

end;

end;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]