47310

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

Дипломная

Информатика, кибернетика и программирование

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

Русский

2013-11-28

509 KB

18 чел.

Содержание

[1]
1 Постановка задачи

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

[3]
3 Проектирование интерфейса

[3.1] 3.1 Выбор и назначение визуальных компонентов

[3.2] 3.2 Формы проекта

[4]
4 Разработка программного  обеспечения

[4.1] 4.1 Модули, процедуры, функции проекта и их назначение

[4.2] 4.2 Листинг программного кода

[5]
5 Визуальное представление результатов

[6]
Список использованной литературы


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

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

База данных должна быть реализована в СУБД MS Access. Для создания интерфейса и программного кода необходимо использовать среду программирования Delphi.

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

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

2.Создание базы данных. Редактирование, добавление, удаление элементов БД.

3. Три вида поиска по определенным параметрам.

4. Три вида сортировки по определенным характеристикам

5. Три вида диаграмм и графиков.


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

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

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

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

2. При демонстрации предлагаемого к продаже товара обеспечивается свободный доступ к нему покупателя.

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

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

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

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

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

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

Минимальной информацией, необходимой от покупателя, является:

  •  ФИО покупателя;
  •  его паспортные данные;
  •  адрес;
  •  телефон.

Минимальным набором характеристик для автомобиля является:

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

Помимо этого необходима информация о менеджерах салона, осуществляющих непосредственную продажу автомобилей.

Для отчетности следует визуально отображать:

  •  анализ объемов выручки по месяцам;
  •  соотношение договоров с кредитом и без;
  •  соотношение продаж в различных ценовых категориях.


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

3.1 Выбор и назначение визуальных компонентов

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

1) Компоненты для обеспечения функционала программы:

Button из набора Standart – используется для размещения на форме кнопки, нажатие которой вызовет к действию заданную процедуру.

DBGrid из набора DataControls – размещает на форме табличную сетку, привязанную к таблице базы данных, с возможностями управления записями БД.

DBEdit из набора DataControls – размещает на форме поле ввода, связанное с определенным полем таблицы базы данных.

DBComboBox из набора DataControls – размещает на форме выпадающий список, возможные значения которого задаются статично, выбранное значение записывается в связанное поле БД.

DBLookupComboBox из набора DataControls – размещает на форме выпадающий список, возможные значения которого задаются из таблицы БД, выбранное значение записывается в связанное поле БД.

MainMenu из набора Standart – размещает на форме основное меню. Пункты меню исполняют заданные алгоритмы.

PopupMenu из набора Standart – размещает на форме контекстное меню. Пункты меню исполняют заданные алгоритмы.

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

2) Компоненты для доступа к базе данных

ADOConnection из набора ADO – компонент позволяет произвести подключение к базе данных. Настройки подключения прописываются в свойстве ConnectionString.

ADOTable из набора ADO – компонент обеспечивает доступ к определенной таблице БД.

DataSource из набора DataAccess – компонент служит для связи между соединением с базой данных и компонентами отображения и обработки записей базы данных.

3) Компоненты для визуального оформления

Label из набора Standart – размещает на форме статичную надпись.

Image из набора Standart – размещает на форме поле рисунка.

3.2 Формы проекта

Проект содержит 16 форм, часть которых однотипна.

Основная форма проекта представлена на рис.1. Она содержит

Рис. 1 Основная форма проекта

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

Форма для работы со справочником «Автомобили» представлена на рис.2.

Рис.2 Форма справочника «Автомобили»

Добавление записи происходит на отдельной форме (рис.3), вызываемой нажатием кнопки «Добавить».

Рис.3 Форма добавления записи в справочник «Автомобили»

Кнопка «Изменить» открывает отдельную форму для редактирования текущей записи (рис. 4).

Рис. 4 Форма редактирования записи справочника «Автомобили»

Работа со справочником «Клиенты» ведется в форме, представленной на рис. 5.

Рис.5 Форма справочника «Клиенты».

Добавление и редактирования записей происходит в отдельных формах, аналогичных представленным на рис.3-4.

Работа со справочником «Договоры» ведется в форме, приведенной на рис. 6.

Рис.6 Форма справочника «Договоры»

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

Работа со справочником «Менеджеры» ведется в форме, приведенной на рис. 7.

Рис.7 Форма справочника «Менеджеры»

Добавление и редактирование записей ведется непосредственно в таблице.

Для поиска информации в базе предназначена отдельная форма (рис. 8), вызываемая пунктом «Поиск» меню основной формы.

Рис. 8. Форма поиска информации

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

Для визуального представления отчетности предназначено три формы с диаграммами, вызываемые через пункт «отчеты» меню основной формы. Экранные копии форм с диаграммами приведены на рис.9-11 в п.5.


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

4.1 Модули, процедуры, функции проекта и их назначение

Программа содержит 17 модулей:

MainUnit – основная форма проекта, содержит титульную информацию и основное меню для перехода к другим формам.

DataModulUnit – модуль для размещения компонентов соединения с базой данных.

KlientUnit – форма отображения справочника «Клиенты».

KlientAddUnit – форма добавления записи в справочник «Клиенты».

KlientRewUnit – форма редактирования записи справочника «Клиенты».

AvtoFUnit – форма отображения справочника «Автомобили».

AvtoAddUnit – форма добавления записи в справочник «Автомобили».

AvtoRewUnit – форма редактирования записи справочника «Автомобили».

DogUnit – форма отображения справочника «Договоры».

DogAddUnit – форма добавления записи в справочник «Договоры».

DogRewUnit – форма редактирования записи справочника «Договоры».

ManUnit – форма работы со справочником «Менеджеры».

PoiskUnit – форма поиска информации в БД.

AnalizUnit, ProdaziUnit, VidiUnit – формы с диаграммами.

Интерес представляют некоторые процедуры программы (весь листинг приведен в п.4.2).

Процедура удаления записи из справочника предварительно выдает запрос предупреждения. Листинг процедуры приведен ниже:

procedure TDog.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.DogTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

 DataModul.DogT.Delete;

end;

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

procedure TDogAdd.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox1.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

 begin

 if DataModul.AvtoTDSDesigner.AsInteger=id then

   price:=DataModul.AvtoTDSDesigner9.AsInteger;

 DataModul.AvtoT.Next;

 end;

DBEdit3.Text:=InttoStr(price);

end;

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

procedure TDogRew.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

 DataModul.DogT.Post;

DogRew.Close;

end;

Процедура построения диаграммы по справочнику «Договоры» с суммированием продаж за каждый месяц представлена ниже:

procedure TAnaliz.FormCreate(Sender: TObject);

var sum:array[1..12] of integer;

   i:integer;

   d:string;

   s:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

for i:=1 to 12 do

 sum[i]:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='01'  then

 sum[1]:=sum[1]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='02'  then

 sum[2]:=sum[2]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='03'  then

 sum[3]:=sum[3]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='04'  then

 sum[4]:=sum[4]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='05'  then

 sum[5]:=sum[5]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='06'  then

 sum[6]:=sum[6]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='07'  then

 sum[7]:=sum[7]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='08'  then

 sum[8]:=sum[8]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='09'  then

 sum[9]:=sum[9]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='10'  then

 sum[10]:=sum[10]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='11'  then

 sum[11]:=sum[11]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='12'  then

 sum[12]:=sum[12]+DataModul.DogTDSDesigner9.AsInteger;

DataModul.DogT.Next;

  end;

s:=sum[1]/1000;

Analiz.Series1.Add(s,'январь');

s:=sum[2]/1000;

Analiz.Series1.Add(s,'февраль');

s:=sum[3]/1000;

Analiz.Series1.Add(s,'март');

s:=sum[4]/1000;

Analiz.Series1.Add(s,'апрель');

s:=sum[5]/1000;

Analiz.Series1.Add(s,'май');

s:=sum[6]/1000;

Analiz.Series1.Add(s,'июнь');

s:=sum[7]/1000;

Analiz.Series1.Add(s,'июль');

s:=sum[8]/1000;

Analiz.Series1.Add(s,'август');

s:=sum[9]/1000;

Analiz.Series1.Add(s,'сентябрь');

s:=sum[10]/1000;

Analiz.Series1.Add(s,'октябрь');

s:=sum[11]/1000;

Analiz.Series1.Add(s,'ноябрь');

s:=sum[12]/1000;

Analiz.Series1.Add(s,'декабрь');

end;

4.2 Листинг программного кода

MainUnit

unit MainUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ExtCtrls, StdCtrls, jpeg, Menus;

type

 TMain = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   Label9: TLabel;

   Image1: TImage;

   Label10: TLabel;

   Label11: TLabel;

   Button1: TButton;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   N5: TMenuItem;

   N10: TMenuItem;

   N11: TMenuItem;

   procedure Button1Click(Sender: TObject);

   procedure N9Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure N4Click(Sender: TObject);

   procedure N6Click(Sender: TObject);

   procedure N11Click(Sender: TObject);

   procedure N8Click(Sender: TObject);

   procedure N10Click(Sender: TObject);

   procedure N5Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Main: TMain;

implementation

uses DataModulUnit, KlientUnit, AvtoFUnit, KlientAddUnit, KlientRewUnit,

 AvtoAddUnit, AvtoRewUnit, DogAddUnit, DogUnit, DogRewUnit, ManUnit,

 PoiskUnit, AnalizUnit, ProdaziUnit, VidiUnit;

{$R *.dfm}

procedure TMain.Button1Click(Sender: TObject);

begin

Main.Close;

end;

procedure TMain.N9Click(Sender: TObject);

begin

Main.Close;

end;

procedure TMain.N3Click(Sender: TObject);

begin

Klient.ShowModal;

end;

procedure TMain.N2Click(Sender: TObject);

begin

AvtoF.ShowModal;

end;

procedure TMain.N4Click(Sender: TObject);

begin

Dog.ShowModal;

end;

procedure TMain.N6Click(Sender: TObject);

begin

Man.ShowModal;

end;

procedure TMain.N11Click(Sender: TObject);

begin

Poisk.ShowModal;

end;

procedure TMain.N8Click(Sender: TObject);

begin

Analiz.ShowModal;

end;

procedure TMain.N10Click(Sender: TObject);

begin

Vidi.ShowModal;

end;

procedure TMain.N5Click(Sender: TObject);

begin

Prodazi.ShowModal;

end;

end.

DataModulUnit DataModulUnit

unit DataModulUnit;

interface

uses

 SysUtils, Classes, DB, ADODB;

type

 TDataModul = class(TDataModule)

   Connect: TADOConnection;

   KlientT: TADOTable;

   AvtoT: TADOTable;

   DogT: TADOTable;

   ManT: TADOTable;

   KlientS: TDataSource;

   AvtoS: TDataSource;

   DogS: TDataSource;

   ManS: TDataSource;

   KlientTDSDesigner: TAutoIncField;

   KlientTDSDesigner2: TWideStringField;

   KlientTDSDesigner3: TWideStringField;

   KlientTDSDesigner4: TWideStringField;

   KlientTDSDesigner5: TWideStringField;

   AvtoTDSDesigner: TAutoIncField;

   AvtoTDSDesigner2: TWideStringField;

   AvtoTDSDesigner3: TWideStringField;

   AvtoTDSDesigner4: TWideStringField;

   AvtoTDSDesigner5: TWideStringField;

   AvtoTDSDesigner6: TWideStringField;

   AvtoTDSDesigner7: TWideStringField;

   AvtoTDSDesigner8: TWideStringField;

   AvtoTDSDesigner9: TBCDField;

   DogTDSDesigner: TAutoIncField;

   DogTDSDesigner2: TWideStringField;

   DogTDSDesigner3: TDateTimeField;

   DogTDSDesigner4: TIntegerField;

   DogTDSDesigner5: TIntegerField;

   DogTDSDesigner6: TWideStringField;

   DogTDSDesigner7: TWideStringField;

   DogTDSDesigner8: TIntegerField;

   ManTDSDesigner: TAutoIncField;

   ManTDSDesigner2: TWideStringField;

   DogTDSDesigner9: TBCDField;

   AvtoTDSDesigner10: TWideStringField;

   DogTField: TStringField;

   DogTField2: TStringField;

   DogTField3: TStringField;

   procedure KlientTFilterRecord(DataSet: TDataSet; var Accept: Boolean);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 DataModul: TDataModul;

implementation

uses PoiskUnit;

{$R *.dfm}

procedure TDataModul.KlientTFilterRecord(DataSet: TDataSet;

 var Accept: Boolean);

begin

Accept:=False;

if copy (KlientTDSDesigner2.AsString,1,Length(Poisk.Edit1.Text))=Poisk.Edit1.Text then

  Accept:=True;

end;

end.

KlientUnit

unit KlientUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Grids, DBGrids, StdCtrls;

type

 TKlient = class(TForm)

   DBGrid1: TDBGrid;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Button6: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button6Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Klient: TKlient;

implementation

uses DataModulUnit, MainUnit, KlientAddUnit, KlientRewUnit;

{$R *.dfm}

procedure TKlient.Button1Click(Sender: TObject);

begin

DataModul.KlientT.Insert;

KlientAdd.ShowModal;

end;

procedure TKlient.Button6Click(Sender: TObject);

begin

Klient.Close;

end;

procedure TKlient.Button2Click(Sender: TObject);

begin

KlientRew.ShowModal;

end;

procedure TKlient.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.KlientTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

 DataModul.KlientT.Delete;

end;

end.

KlientAddUnit

unit KlientAddUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Mask, DBCtrls;

type

 TKlientAdd = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   DBEdit1: TDBEdit;

   DBEdit2: TDBEdit;

   DBEdit3: TDBEdit;

   DBEdit4: TDBEdit;

   Button2: TButton;

   Button1: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 KlientAdd: TKlientAdd;

implementation

uses DataModulUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TKlientAdd.Button1Click(Sender: TObject);

begin

KlientAdd.Close;

end;

procedure TKlientAdd.Button2Click(Sender: TObject);

begin

if DataModul.KlientT.Modified then

 DataModul.KlientT.Post;

KlientAdd.Close;

end;

end.

KlientRewUnit

unit KlientRewUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Mask, DBCtrls;

type

 TKlientRew = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   DBEdit1: TDBEdit;

   DBEdit2: TDBEdit;

   DBEdit3: TDBEdit;

   DBEdit4: TDBEdit;

   Button2: TButton;

   Button1: TButton;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 KlientRew: TKlientRew;

implementation

uses DataModulUnit;

{$R *.dfm}

procedure TKlientRew.Button2Click(Sender: TObject);

begin

if DataModul.KlientT.Modified then

 DataModul.KlientT.Post;

KlientRew.Close;

end;

procedure TKlientRew.Button1Click(Sender: TObject);

begin

KlientRew.Close;

end;

end.

AvtoFUnit

unit AvtoFUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids, DBGrids;

type

 TAvtoF = class(TForm)

   DBGrid1: TDBGrid;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Button6: TButton;

   procedure Button6Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 AvtoF: TAvtoF;

implementation

uses DataModulUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

 AvtoAddUnit, AvtoRewUnit;

{$R *.dfm}

procedure TAvtoF.Button6Click(Sender: TObject);

begin

AvtoF.Close;

end;

procedure TAvtoF.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.AvtoTDSDesigner.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

 DataModul.AvtoT.Delete;

end;

procedure TAvtoF.Button1Click(Sender: TObject);

begin

DataModul.AvtoT.Insert;

AvtoAdd.ShowModal;  

end;

procedure TAvtoF.Button2Click(Sender: TObject);

begin

AvtoRew.ShowModal;

end;

end.

AvtoAddUnit

unit AvtoAddUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Mask, DBCtrls;

type

 TAvtoAdd = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   DBEdit1: TDBEdit;

   DBEdit2: TDBEdit;

   DBEdit5: TDBEdit;

   DBEdit6: TDBEdit;

   DBEdit7: TDBEdit;

   DBEdit8: TDBEdit;

   Button2: TButton;

   Button1: TButton;

   DBComboBox1: TDBComboBox;

   DBComboBox2: TDBComboBox;

   Label9: TLabel;

   DBComboBox3: TDBComboBox;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 AvtoAdd: TAvtoAdd;

implementation

uses AvtoFUnit, DataModulUnit, KlientAddUnit, KlientRewUnit, KlientUnit,

 MainUnit;

{$R *.dfm}

procedure TAvtoAdd.Button2Click(Sender: TObject);

begin

if DataModul.AvtoT.Modified then

 DataModul.AvtoT.Post;

AvtoAdd.Close;

end;

procedure TAvtoAdd.Button1Click(Sender: TObject);

begin

AvtoAdd.Close;

end;

end.

AvtoRewUnit

unit AvtoRewUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Mask, DBCtrls;

type

 TAvtoRew = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   DBEdit1: TDBEdit;

   DBEdit2: TDBEdit;

   Button2: TButton;

   Button1: TButton;

   DBComboBox1: TDBComboBox;

   DBComboBox2: TDBComboBox;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   DBEdit5: TDBEdit;

   DBEdit6: TDBEdit;

   DBEdit7: TDBEdit;

   DBEdit8: TDBEdit;

   Label9: TLabel;

   DBComboBox3: TDBComboBox;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 AvtoRew: TAvtoRew;

implementation

uses AvtoAddUnit, AvtoFUnit, DataModulUnit, KlientAddUnit, KlientRewUnit,

 KlientUnit, MainUnit;

{$R *.dfm}

procedure TAvtoRew.Button2Click(Sender: TObject);

begin

if DataModul.AvtoT.Modified then

 DataModul.AvtoT.Post;

AvtoRew.Close;

end;

procedure TAvtoRew.Button1Click(Sender: TObject);

begin

AvtoRew.Close;

end;

end.

DogUnit

unit DogUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids, DBGrids, Menus;

type

 TDog = class(TForm)

   DBGrid1: TDBGrid;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Button6: TButton;

   PopupMenu1: TPopupMenu;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   procedure Button6Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure N1Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Dog: TDog;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, KlientAddUnit,

 KlientRewUnit, KlientUnit, MainUnit, DogAddUnit, DogRewUnit;

{$R *.dfm}

procedure TDog.Button6Click(Sender: TObject);

begin

Dog.Close;

end;

procedure TDog.Button1Click(Sender: TObject);

begin

DataModul.DogT.Insert;

DogAdd.ShowModal;

end;

procedure TDog.Button2Click(Sender: TObject);

begin

DogRew.ShowModal;

end;

procedure TDog.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.DogTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

 DataModul.DogT.Delete;

end;

procedure TDog.N1Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Номер';

end;

procedure TDog.N2Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Дата';

end;

procedure TDog.N3Click(Sender: TObject);

begin

DataModul.DogT.IndexFieldNames:='Сумма';

end;

end.

DogAddUnit

unit DogAddUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, DBCtrls, StdCtrls, Mask;

type

 TDogAdd = class(TForm)

   Label1: TLabel;

   DBEdit1: TDBEdit;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   DBEdit2: TDBEdit;

   DBLookupComboBox1: TDBLookupComboBox;

   DBLookupComboBox2: TDBLookupComboBox;

   DBEdit3: TDBEdit;

   DBComboBox1: TDBComboBox;

   DBComboBox2: TDBComboBox;

   DBLookupComboBox3: TDBLookupComboBox;

   Button2: TButton;

   Button1: TButton;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure DBLookupComboBox1CloseUp(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 DogAdd: TDogAdd;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogUnit,

 KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TDogAdd.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

 DataModul.DogT.Post;

DogAdd.Close;

end;

procedure TDogAdd.Button1Click(Sender: TObject);

begin

DogAdd.Close;

end;

procedure TDogAdd.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox1.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

 begin

 if DataModul.AvtoTDSDesigner.AsInteger=id then

   price:=DataModul.AvtoTDSDesigner9.AsInteger;

 DataModul.AvtoT.Next;

 end;

DBEdit3.Text:=InttoStr(price);

end;

end.

DogRewUnit

unit DogRewUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, DBCtrls, Mask;

type

 TDogRew = class(TForm)

   Label1: TLabel;

   DBEdit1: TDBEdit;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   DBEdit2: TDBEdit;

   DBLookupComboBox1: TDBLookupComboBox;

   DBLookupComboBox2: TDBLookupComboBox;

   DBEdit3: TDBEdit;

   DBComboBox1: TDBComboBox;

   DBComboBox2: TDBComboBox;

   DBLookupComboBox3: TDBLookupComboBox;

   Button2: TButton;

   Button1: TButton;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure DBLookupComboBox1CloseUp(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 DogRew: TDogRew;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

 DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TDogRew.Button2Click(Sender: TObject);

begin

if DataModul.DogT.Modified then

 DataModul.DogT.Post;

DogRew.Close;

end;

procedure TDogRew.Button1Click(Sender: TObject);

begin

DogRew.Close;

end;

procedure TDogRew.DBLookupComboBox1CloseUp(Sender: TObject);

var id, price:integer;

begin

id:=DBLookupComboBox2.KeyValue;

DataModul.AvtoT.First;

while DataModul.AvtoT.Eof <> True do

 begin

 if DataModul.AvtoTDSDesigner.AsInteger=id then

   price:=DataModul.AvtoTDSDesigner9.AsInteger;

 DataModul.AvtoT.Next;

 end;

DBEdit3.Text:=InttoStr(price);

end;

end.

ManUnit

unit ManUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids, DBGrids;

type

 TMan = class(TForm)

   DBGrid1: TDBGrid;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Button6: TButton;

   procedure Button6Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Man: TMan;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

 DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit;

{$R *.dfm}

procedure TMan.Button6Click(Sender: TObject);

begin

Man.Close;

end;

procedure TMan.Button1Click(Sender: TObject);

begin

DataModul.ManT.Insert;

end;

procedure TMan.Button3Click(Sender: TObject);

begin

if Application.MessageBox(PChar('Удалить запись '

+DataModul.ManTDSDesigner2.AsString+'?'),'Подтверждение',

MB_OKCANCEL)=id_OK then

 DataModul.ManT.Delete;

end;

procedure TMan.Button2Click(Sender: TObject);

begin

DataModul.ManT.Post;

end;

end.

PoiskUnit

unit PoiskUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Grids, DBGrids, StdCtrls;

type

 TPoisk = class(TForm)

   RadioButton1: TRadioButton;

   RadioButton2: TRadioButton;

   RadioButton3: TRadioButton;

   Edit1: TEdit;

   Label1: TLabel;

   Button3: TButton;

   Button6: TButton;

   DBGrid1: TDBGrid;

   DBGrid2: TDBGrid;

   DBGrid3: TDBGrid;

   procedure Button3Click(Sender: TObject);

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure Button6Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Poisk: TPoisk;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

 DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

 ManUnit;

{$R *.dfm}

procedure TPoisk.Button3Click(Sender: TObject);

var filters: string;

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton1.Checked) then

 begin

 Filters:=DataModul.DogT.Fields[1].DisplayName+'='''+Poisk.Edit1.Text+'''';

 DBGrid1.Visible:=True;

 DataModul.DogT.Filter:=Filters;

 DataModul.DogT.Filtered:=True;

 end;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton2.Checked) then

 begin

 Filters:=DataModul.KlientT.Fields[1].DisplayName+'>'''+Poisk.Edit1.Text+'''';

 DBGrid2.Visible:=True;

 DataModul.KlientT.Filter:=Filters;

 DataModul.KlientT.Filtered:=True;

 end;

if (length(Poisk.Edit1.Text)<>0) and (Poisk.RadioButton3.Checked) then

 begin

 Filters:=DataModul.AvtoT.Fields[5].DisplayName+'<'''+Poisk.Edit1.Text+'''';

 DBGrid3.Visible:=True;

 DataModul.AvtoT.Filter:=Filters;

 DataModul.AvtoT.Filtered:=True;

 end;

if filters='' then

 ShowMessage('Не заданы параметры поиска');

 

end;

procedure TPoisk.FormClose(Sender: TObject; var Action: TCloseAction);

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

DataModul.DogT.Filter:='';

DataModul.DogT.Filtered:=False;

DataModul.KlientT.Filter:='';

DataModul.KlientT.Filtered:=False;

DataModul.AvtoT.Filter:='';

DataModul.AvtoT.Filtered:=False;

end;

procedure TPoisk.Button6Click(Sender: TObject);

begin

Poisk.Close;

end;

end.

AnalizUnit

unit AnalizUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

 TAnaliz = class(TForm)

   Label1: TLabel;

   Chart1: TChart;

   Button1: TButton;

   Series1: TLineSeries;

   procedure FormCreate(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Analiz: TAnaliz;

implementation

uses AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit, DogAddUnit,

 DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit, KlientUnit, MainUnit,

 ManUnit, PoiskUnit;

{$R *.dfm}

procedure TAnaliz.FormCreate(Sender: TObject);

var sum:array[1..12] of integer;

   i:integer;

   d:string;

   s:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

for i:=1 to 12 do

 sum[i]:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='01'  then

 sum[1]:=sum[1]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='02'  then

 sum[2]:=sum[2]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='03'  then

 sum[3]:=sum[3]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='04'  then

 sum[4]:=sum[4]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='05'  then

 sum[5]:=sum[5]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='06'  then

 sum[6]:=sum[6]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='07'  then

 sum[7]:=sum[7]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='08'  then

 sum[8]:=sum[8]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='09'  then

 sum[9]:=sum[9]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='10'  then

 sum[10]:=sum[10]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='11'  then

 sum[11]:=sum[11]+DataModul.DogTDSDesigner9.AsInteger;

if copy (DataModul.DogTDSDesigner3.AsString,4,2)='12'  then

 sum[12]:=sum[12]+DataModul.DogTDSDesigner9.AsInteger;

DataModul.DogT.Next;

  end;

s:=sum[1]/1000;

Analiz.Series1.Add(s,'январь');

s:=sum[2]/1000;

Analiz.Series1.Add(s,'февраль');

s:=sum[3]/1000;

Analiz.Series1.Add(s,'март');

s:=sum[4]/1000;

Analiz.Series1.Add(s,'апрель');

s:=sum[5]/1000;

Analiz.Series1.Add(s,'май');

s:=sum[6]/1000;

Analiz.Series1.Add(s,'июнь');

s:=sum[7]/1000;

Analiz.Series1.Add(s,'июль');

s:=sum[8]/1000;

Analiz.Series1.Add(s,'август');

s:=sum[9]/1000;

Analiz.Series1.Add(s,'сентябрь');

s:=sum[10]/1000;

Analiz.Series1.Add(s,'октябрь');

s:=sum[11]/1000;

Analiz.Series1.Add(s,'ноябрь');

s:=sum[12]/1000;

Analiz.Series1.Add(s,'декабрь');

end;

procedure TAnaliz.Button1Click(Sender: TObject);

begin

Analiz.Chart1.Series[0].Active:=False;

Analiz.Close;

end;

end.

ProdaziUnit

unit ProdaziUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

 TProdazi = class(TForm)

   Label1: TLabel;

   Button1: TButton;

   Chart1: TChart;

   Series1: TBarSeries;

   procedure Button1Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Prodazi: TProdazi;

implementation

uses AnalizUnit, AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit,

 DogAddUnit, DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit,

 KlientUnit, MainUnit, ManUnit, PoiskUnit;

{$R *.dfm}

procedure TProdazi.Button1Click(Sender: TObject);

begin

Analiz.Chart1.Series[0].Active:=False;

Prodazi.Close;

end;

procedure TProdazi.FormCreate(Sender: TObject);

var p:real;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

  if (DataModul.DogTDSDesigner9.AsInteger>=200000) and (DataModul.DogTDSDesigner9.AsInteger<300000) then

    p:=p+1;

 DataModul.DogT.Next;

 end;

Series1.Add(p, '200-299 тыс.руб.');

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

  if (DataModul.DogTDSDesigner9.AsInteger>=300000) and (DataModul.DogTDSDesigner9.AsInteger<400000) then

    p:=p+1;

 DataModul.DogT.Next;

 end;

Series1.Add(p, '300-399 тыс.руб.');

p:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

  if (DataModul.DogTDSDesigner9.AsInteger>=400000) and (DataModul.DogTDSDesigner9.AsInteger<500000) then

    p:=p+1;

 DataModul.DogT.Next;

 end;

Series1.Add(p, '400-499 тыс.руб.');

end;

end.

VidiUnit

unit VidiUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type

 TVidi = class(TForm)

   Label1: TLabel;

   Chart1: TChart;

   Button1: TButton;

   Series1: TPieSeries;

   procedure FormCreate(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Vidi: TVidi;

implementation

uses AnalizUnit, AvtoAddUnit, AvtoFUnit, AvtoRewUnit, DataModulUnit,

 DogAddUnit, DogRewUnit, DogUnit, KlientAddUnit, KlientRewUnit,

 KlientUnit, MainUnit, ManUnit, PoiskUnit, ProdaziUnit;

{$R *.dfm}

procedure TVidi.FormCreate(Sender: TObject);

var k,o:integer;

begin

Analiz.Chart1.Series[0].Active:=True;

Analiz.Chart1.Series[0].Clear;

k:=0;

o:=0;

DataModul.DogT.First;

while DataModul.DogT.Eof <> True do

 begin

if copy (DataModul.DogTDSDesigner6.AsString,1,1)='К'  then

 k:=k+1;

if copy (DataModul.DogTDSDesigner6.AsString,1,1)='О'  then

 o:=o+1;

DataModul.DogT.Next;

 end;

Series1.Add(k, 'Кредит');

Series1.Add(o, 'Оплата');

end;

procedure TVidi.Button1Click(Sender: TObject);

begin

Vidi.Close;

end;

end.


5 Визуальное представление результатов

Диаграмма «Анализ продаж» позволяет увидеть график объемов продаж в тыс.руб. по месяцам за текущий год. Экранная копии формы с диаграммой приведена на рис. 9.

Рис. 9 Диаграмма «Анализ продаж»

Диаграмма «Ценовые категории» отражает количество продаж автомобилей различных ценовых категорий. Экранная копии формы с диаграммой приведена на рис. 10.

Рис. 10 Диаграмма «Ценовые категории»

Диаграмма «Виды договоров» отражает долю договоров по кредитам и без кредита в общей доле продаж. Экранная копии формы с диаграммой приведена на рис. 11.

Рис. 11 Диаграмма «Виды договоров»


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

  1.  Microsoft Office Access 2003. Шаг за шагом. Официальный учебный курс. – Microsoft, 2004. – 432 с.
  2.  Архангельский А.Я. Приемы программирования в Delphi. – М.: ООО «Бином-Пресс», 2003 г. – 784 стр.
  3.  Бобровский С. И. Технологии Delphi. Разработка приложений для бизнеса. Учебный курс. – СПб.: Питер, 2006.
  4.  Гончаров А.Ю. Access 2003. Самоучитель с примерами. – М.: Кудиц-Образ, 2004. – 272 с.
  5.  Диго С.М. Создание баз данных в среде СУБД Access’2000. – М., 2001 – 139 с.
  6.  Золотова С.И. Практикум по Access. – М.: Финансы и статистика, 2007. – 144 с.
  7.  Карчевская М.П., Рамбургер О.Л., Тархов С.В.. Хамзина Е.А. Разработка приложений в среде Borland Delphi. Лабораторный практикум по дисциплине "Информатика".
  8.  Кошелев BE. Access 2007. — M.: ООО «Бином-Пресс», 2008 г. — 592 с.
  9.  Попов В. Б. Паскаль и Дельфи. Самоучитель. – СПб.: Питер, 2004.
  10.  Финансы, денежное обращение и кредит. Учебник./Под редакцией В. К. Сенчагова, А. И. Архипова.– М.: "Проспект", 1999. – 496 с.
  11.  Фленов М. Е. Библия Delphi. — СПб.: БХВ-Петербург, 2004.

PAGE   \* MERGEFORMAT2


 

А также другие работы, которые могут Вас заинтересовать

27200. Особенности раскола раб. движения после 1МВ. и субъективные причины появления Коментерна и РСИ 42 KB
  под ее влиянием револ. течения: революционное левый ревизионизм реформистское правый ревизионизм центриское. револ. – были реформистами оппортунистами боящимися револ.
27201. Сравнительная характеристика социально-экономической П. «нового курса» ФДР и Народного Фронта во Фр 72 KB
  нового курса ФДР и Народного Фронта во Фр. Движение за создание Народного фронта Народный фронт во Фр. В оргкомитет по созданию Народного фронта вошли наряду с ФКП и СФИО радикалы другие левые группировки профсоюзы Лига прав человека и т. комитет Народного фронта.
27204. Международные отношения в кон. 1930-х гг. Мюнхенский сговор и пакт Молотова – Ребентропа 35 KB
  Герм. Главной задачей Герм. несправедливости у некоторохых стран уже вызывало сочуствиеГерм. – в Герм.