Разработка приложения «Автосалон»

Автор работы: Пользователь скрыл имя, 13 Июня 2013 в 18:34, курсовая работа

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

Целью курсовой работы является разработка приложения «Автосалон», которая по своей сути является справочной системой по автосалону. Данный курсовой проект предполагается разработать в визуальной среде разработки Borland Delphi 7. Для начала в программу предполагается ввести начальные сведения об автомобилях, их тех. характеристики, и имена владельцев. Всю информацию об автосалоне предполагается записывать в типизированный файл. При необходимости выполнить следующие запросы:
выдать информацию о наличии автомобилей определенной марки и модели;
выдать технические данные заданной модели;
выдать информацию обо всех проданных моделях некоторой марки;

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

ВВЕДЕНИЕ 3
1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ 4
1.1 Текст задания 4
1.2 Постановка задачи 5
2 ТЕХНИЧЕСКИЙ ПРОЕКТ 6
2.1 Структурная схема 6
2.2 Назначение модулей 7
2.3 Описание алгоритмов модулей 8
2.3.1 Unit1 8
2.3.2 Unit2 13
2.3.3 Unit3 14
2.3.4 Unit4 15
2.3.5 Unit5 16
2.3.6 Unit6 17
2.4 Формы 19
3 РАБОЧИЙ ПРОЕКТ 22
3.1 Текст программы 22
3.2 Контрольный пример 37
ЗАКЛЮЧЕНИЕ 42
ЛИТЕРАТУРА 43

Файлы: 1 файл

kursovik.doc

— 721.00 Кб (Скачать файл)

   End;

var  p:Avto; F:file of Avto;

  FormMain: TFormMain;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

{procedure Hgrid;

var i,j:integer;

begin

WiTh stringGrid1 do

begin

  for j := 1 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

end; }

procedureTFormMain.Button1Click(Sender:TObject); //Поисковик

выдать технические данные заданной модели

var

i,j:integer;  h:string;

begin

WiTh stringGrid1 do

begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

h:=Edit1.Text;

Reset(f);

i:=1;

while not eoF(f) do

begin

read(f,p);

if H=p.Model then begin

with StringGrid1 do begin

Cells[0,i]:=p.Marka;

Cells[1,i]:=p.Model;

Cells[2,i]:=p.Stran;

Cells[3,i]:=p.Nali;

Cells[4,i]:=p.TipK;

Cells[5,i]:=IntToStr(p.KolD);

Cells[6,i]:=IntToStr(p.KolM);

Cells[7,i]:=p.TipD;

Cells[8,i]:=p.RaspD;

Cells[9,i]:=FloatToStr(p.ObD);

Cells[10,i]:=FloatToStrF(p.Zena,ffFixed,10,2);

RowCount:=RowCount+1;

end;

i:=i+1;

end;

end;

CloseFile(f);

end;

procedure TFormMain.FormCreate(Sender: TObject); // заголовки таблиц

begin

WiTh stringGrid1 do

begin

  Cells[0,0]:='Марка авто';

  Cells[1,0]:='Модель';

  Cells[2,0]:='Страна';

  Cells[3,0]:='Наличие';

  Cells[4,0]:='Тип кузова';

  Cells[5,0]:='Кол.дверей';

  Cells[6,0]:='Кол.мест';

  Cells[7,0]:='Тип движка';

  Cells[8,0]:='Расп. движка';

  Cells[9,0]:='V движка';

  Cells[10,0]:='Цена';

  Cells[11,0]:='Покупатель';

  Cells[12,0]:='Дата продажи';

  Cells[13,0]:='Вид оплаты';

end;

AssignFile(f,'Avto.txt');

StringGrid1.RowCount:=2;

end;

procedure TFormMain.N221Click(Sender: TObject);//Запрос Инфа о наличии авто

begin

form1P.Show

end;

procedure TFormMain.N222Click(Sender: TObject);

begin

form3P.Show

end;

procedure TFormMain.N251Click(Sender: TObject);

begin

form6P.Show

end;

procedure TFormMain.N2Click(Sender: TObject);

begin

Rewrite(f); //создать

closefile(f);

end;

procedure TFormMain.N311Click(Sender: TObject);

begin

Form6.Show

end;

procedure TFormMain.N3Click(Sender: TObject);  //запись

begin

formNew.Show

end;

procedure TFormMain.N4Click(Sender: TObject); //отчистка таблицы

var I,j,K:integer;

begin

WiTh stringGrid1 do

begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

Reset(f);

i:=1;

while not eoF(f) do

begin

read(f,p);

if p.Nali='Да' then  k:=k+1;

with StringGrid1 do begin

Cells[0,i]:=p.Marka;

Cells[1,i]:=p.Model;

Cells[2,i]:=p.Stran;

Cells[3,i]:=p.Nali;

Cells[4,i]:=p.TipK;

Cells[5,i]:=IntToStr(p.KolD);

Cells[6,i]:=IntToStr(p.KolM);

Cells[7,i]:=p.TipD;

Cells[8,i]:=p.RaspD;

Cells[9,i]:=FloatToStr(p.ObD);

Cells[10,i]:=FloatToStrF(p.Zena,ffFixed,10,2);

Cells[11,i]:=p.Pokup;

Cells[12,i]:=DateToStr(p.DataP);

Cells[13,i]:=p.VidO;

RowCount:=RowCount+1;

end;

i:=i+1;

end;

CloseFile(f);

Label20.Caption:='Количество авто на складе='+IntToStr(k);

end;

procedure TFormMain.N81Click(Sender: TObject);  //самый дорогой

var i,j:integer; max:Avto;

begin

Reset(f);

WiTh stringGrid1 do

begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

StringGrid1.RowCount:=2;

I:=1;

max.Zena:=0;

while not eof(f) do begin

read(f,p);

if p.Zena>max.Zena then

max:=p;

end;

with StringGrid1 do

begin

Cells[0,i]:=max.Marka;

Cells[1,i]:=max.Model;

Cells[2,i]:=max.Stran;

Cells[3,i]:=max.Nali;

Cells[4,i]:=max.TipK;

Cells[5,i]:=IntToStr(max.KolD);

Cells[6,i]:=IntToStr(max.KolM);

Cells[7,i]:=max.TipD;

Cells[8,i]:=max.RaspD;

Cells[9,i]:=FloatToStr(max.ObD);

Cells[10,i]:=FloatToStrF(max.Zena,ffFixed,10,2);

Cells[11,i]:=max.Pokup;

Cells[12,i]:=DateToStr(max.DataP);

Cells[13,i]:=max.VidO;

end;

end;

procedure TFormMain.N9Click(Sender: TObject); //в меню  ВЫХОД

begin

close;

end;

end.

Текст модуля Unit 2:

unit Unit2;  //Форма добавления информации о авто

interface

uses

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

  Dialogs, StdCtrls, Buttons;

type

  TFormNew = class(TForm)

    Label1: TLabel;

    Edit1: TEdit;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Edit3: TEdit;

    Label5: TLabel;

    Edit5: TEdit;

    Label6: TLabel;

    Edit6: TEdit;

    ComboBox1: TComboBox;

    BitBtn1: TBitBtn;

    Edit2: TEdit;

    Edit4: TEdit;

    Edit7: TEdit;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Edit8: TEdit;

    Label11: TLabel;

    Label12: TLabel;

    Edit10: TEdit;

    Edit11: TEdit;

    Label13: TLabel;

    Edit12: TEdit;

    Label14: TLabel;

    Edit13: TEdit;

    Label15: TLabel;

    ComboBox2: TComboBox;

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  FormNew: TFormNew;

implementation

uses Unit1;

{$R *.dfm}

procedure TFormNew.BitBtn1Click(Sender: TObject) //Кнопка ОК

записываем наши данные в файл

begin

Reset(f);

seek(f,filesize(f));

p.Marka:=Edit1.text;

p.Model:=Edit3.Text;

p.TipK:=Edit6.Text;

p.Kold:=StrToInt(Edit2.Text);

p.KolM:=StrToInt(Edit4.Text);

p.TipD:=Edit7.Text;

p.ObD:=StrToFloat(Edit8.Text);

p.RaspD:=Edit10.Text;

p.Zena:=StrToInt(Edit11.Text);

p.Pokup:=Edit12.Text;

p.DataP:=StrToDate(Edit13.text);

p.Nali:=ComboBox1.text;

p.VidO:=ComboBox2.Text;

p.Stran:=Edit5.text;

write(f,p);

closeFile(f);

edit1.text:='  ';

edit2.Text:='  ';

edit3.text:='  ';

edit5.text:='  ';

edit6.text:='  ';

edit7.Text:='  ';

edit10.Text:='  ';

edit12.Text:='  ';

edit13.Text:='  ';

edit8.Text:='  ';

edit4.Text:='  ';

edit11.Text:='  ';

end;

end.

Текст модуля Unit 3:

unit Unit3; //Информация о наличие авто на складе

interface

uses

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

  Dialogs, ExtCtrls, Grids, StdCtrls;

type

  TForm1P = class(TForm)

    Edit20: TEdit;

    Label1: TLabel;

    Button1: TButton;

    Button2: TButton;

    StringGrid3: TStringGrid;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1P: TForm1P;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm1P.Button1Click(Sender: TObject); //Кнопка поиск

var

i,j:integer;  h:string;

begin

WiTh stringGrid3 do

begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

h:=Edit20.Text;

Reset(f);

i:=1;

while not eoF(f) do

begin

read(f,p);

if (H=p.Marka) or (H=p.Model) then begin

with StringGrid3 do begin

Cells[0,0]:='Марка авто';

Cells[1,0]:='Модель';

Cells[2,0]:='Страна';

Cells[3,0]:='Наличие';

Cells[4,0]:='Тип кузова';

Cells[5,0]:='Кол.дверей';

Cells[6,0]:='Кол.мест';

Cells[7,0]:='Тип движка';

Cells[8,0]:='Расп. движка';

Cells[9,0]:='V движка';

Cells[10,0]:='Цена';

Cells[11,0]:='Покупатель';

Cells[12,0]:='Дата продажи';

Cells[13,0]:='Вид оплаты';

Cells[0,i]:=p.Marka;

Cells[1,i]:=p.Model;

Cells[2,i]:=p.Stran;

Cells[3,i]:=p.Nali;

Cells[4,i]:=p.TipK;

Cells[5,i]:=IntToStr(p.KolD);

Cells[6,i]:=IntToStr(p.KolM);

Cells[7,i]:=p.TipD;

Cells[8,i]:=p.RaspD;

Cells[9,i]:=FloatToStr(p.ObD);

Cells[10,i]:=FloatToStrF(p.Zena,ffFixed,10,2);

Cells[11,i]:=p.Pokup;

Cells[12,i]:=DateToStr(p.DataP);

Cells[13,i]:=p.VidO;

RowCount:=RowCount+1;

end;

i:=i+1;

end;

end;

CloseFile(f);

end;

procedure TForm1P.Button2Click(Sender: TObject);//кнопка закрыть

begin

Close;

end;

end.

Текст модуля Unit 4:

unit Unit4; //Выдать информацию обо всех проданных моделях некоторой марки 

interface

uses

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

  Dialogs, StdCtrls, Grids;

type

  TForm3P = class(TForm)

    Label1: TLabel;

    Edit30: TEdit;

    Button1: TButton;

    Button2: TButton;

    StringGrid4: TStringGrid;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form3P: TForm3P;

implementation

 

uses Unit1, Unit2, Unit3;

{$R *.dfm}

procedure TForm3P.Button1Click(Sender: TObject);

var

i,j:integer;  h:string;

begin

WiTh stringGrid4 do begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

h:=Edit30.Text;

Reset(f);

i:=1;

while not eoF(f) do begin

read(f,p);

if (H=p.Marka) and (p.Nali='Нет')  then

  begin

with StringGrid4 do begin

Cells[0,0]:='Марка авто';

Cells[1,0]:='Модель';

Cells[2,0]:='Страна';

Cells[3,0]:='Наличие';

Cells[4,0]:='Тип кузова';

Cells[5,0]:='Кол.дверей';

Cells[6,0]:='Кол.мест';

Cells[7,0]:='Тип движка';

Cells[8,0]:='Расп. движка';

Cells[9,0]:='V движка';

Cells[10,0]:='Цена';

Cells[11,0]:='Покупатель';

Cells[12,0]:='Дата продажи';

Cells[13,0]:='Вид оплаты';

Cells[0,i]:=p.Marka;

Cells[1,i]:=p.Model;

Cells[2,i]:=p.Stran;

Cells[3,i]:=p.Nali;

Cells[4,i]:=p.TipK;

Cells[5,i]:=IntToStr(p.KolD);

Cells[6,i]:=IntToStr(p.KolM);

Cells[7,i]:=p.TipD;

Cells[8,i]:=p.RaspD;

Cells[9,i]:=FloatToStr(p.ObD);

Cells[10,i]:=FloatToStrF(p.Zena,ffFixed,10,2);

Cells[11,i]:=p.Pokup;

Cells[12,i]:=DateToStr(p.DataP);

Cells[13,i]:=p.VidO;

RowCount:=RowCount+1;

end;

i:=i+1;

end;

end;

CloseFile(f);

end;

procedure TForm3P.Button2Click(Sender: TObject);

begin

Close;

end;

end.

Текст модуля Unit 5:

unit Unit5; //Выдать список клиентов по виду оплаты

interface

uses

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

  Dialogs, Grids, StdCtrls;

type

  TForm6P = class(TForm)

    Edit23: TEdit;

    Label1: TLabel;

    Button1: TButton;

    Button2: TButton;

    StringGrid5: TStringGrid;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form6P: TForm6P;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm6P.Button1Click(Sender: TObject);

var

i,j:integer;  h:string;

begin

WiTh stringGrid5 do begin

  for j := 0 to colcount-1 do

    for i := 1 to roWcount-1 do

    cells[j,i]:='';

  end;

h:=Edit23.Text;

Reset(f);

i:=1;

while not eoF(f) do begin

read(f,p);

if H=p.VidO then begin

with StringGrid5 do begin

Cells[0,0]:='Марка авто';

Cells[1,0]:='Модель';

Cells[2,0]:='Страна';

Cells[3,0]:='Наличие';

Cells[4,0]:='Тип кузова';

Cells[5,0]:='Кол.дверей';

Cells[6,0]:='Кол.мест';

Cells[7,0]:='Тип движка';

Cells[8,0]:='Расп. движка';

Cells[9,0]:='V движка';

Cells[10,0]:='Цена';

Cells[11,0]:='Покупатель';

Cells[12,0]:='Дата продажи';

Cells[13,0]:='Вид оплаты';

Cells[0,i]:=p.Marka;

Cells[1,i]:=p.Model;

Cells[2,i]:=p.Stran;

Cells[3,i]:=p.Nali;

Cells[4,i]:=p.TipK;

Cells[5,i]:=IntToStr(p.KolD);

Cells[6,i]:=IntToStr(p.KolM);

Cells[7,i]:=p.TipD;

Cells[8,i]:=p.RaspD;

Cells[9,i]:=FloatToStr(p.ObD);

Cells[10,i]:=FloatToStrF(p.Zena,ffFixed,10,2);

Cells[11,i]:=p.Pokup;

Cells[12,i]:=DateToStr(p.DataP);

Cells[13,i]:=p.VidO;

RowCount:=RowCount+1;

end;

i:=i+1;

end;

end;

CloseFile(f);

end;

procedure TForm6P.Button2Click(Sender: TObject);

begin

Close;

end;

end.

Текст модуля Unit 6:

unit Unit6; //Сумма по каждой модели

interface

uses

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

  Dialogs, StdCtrls, Grids;

type

  TForm6 = class(TForm)

    StringGrid6: TStringGrid;

    Button1: TButton;

    Button2: TButton;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form6: TForm6;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm6.Button1Click(Sender: TObject);

var

i,j,k,n:integer;  h:string;   s:real;

mas:array[1..50] of Avto;

pp:Avto;

begin

Reset(f);

i:=1;

While not eoF(f) do begin

read(f,p);

mas[i]:=p;

i:=i+1;

end;

for k:=1 to i-2 do

for j:=1 to i-2 do

if mas[j].Marka>mas[j+1].Marka then begin

pp:=mas[j];

mas[j]:=mas[j+1];

mas[j+1]:=pp;

end;

    WiTh stringGrid6 do begin

Cells[0,0]:='Марка';

  Cells[1,0]:='Сумма';

  end;

  WiTh stringGrid6 do begin // Чистка

  for j:=0 to colcount-1 do

    for k:=1 to roWcount-1 do

    cells[j,k]:='';

  end;

s:=0;

N:=1;

for j:=1 to i-2 do begin

if mas[j].Marka=mas[j+1].Marka then

s:=s+mas[j].Zena

else  begin   s:=s+mas[j].Zena;

     //s:=mas[j].Zena;

  WiTh stringGrid6 do begin

  Cells[0,n]:=mas[j].Marka;

  Cells[1,n]:=FloatToStr(s);

  rowcount:=rowcount+1;

  s:=0;

end;

n:=n+1;

end;

end;

CloseFile(f);

end;

procedure TForm6.Button2Click(Sender: TObject);

begin

Close;

end;

end.

3.2 Контрольный пример

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

Главная форма с рабочим меню представлена на рисунке 3.1 и рисунке 3.2.

 

Рисунок 3.1 – Главная форма, меню файл

 

Рисунок 3.2 – Главная  форма, меню запросы

 

 

 

 

 

 

 

 

 

 

 

FormNew позволяет добавить новые сведения об автомобиле и приведена на рисунке 3.3.

 

    

 

Рисунок 3.3 – Форма добавления информации об автомобили

 

Результат запроса «Инфа о наличие авто на складе»  приведена на рисунке 3.4.  

Рисунок 3.4 – Форма запроса (Информация о наличие автомобиля на складе)

 

 

 

 

Результат запроса  «Выдать информацию обо всех проданных моделях некоторой марки» приведена на рисунке 3.5.           

Рисунок 3.5 – Форма запроса (Информация о проданных автомобилях)

 

Результат запроса «Самый дорогой авто» приведена на рисунке 3.6.

 

Рисунок 3.6 – Форма запроса (Информация о самом дорогом автомобиле)

 

Результат запроса «Выдать список клиентов и авто по виду оплаты» приведена на рисунке 3.7.

 

Рисунок 3.7 – Форма запроса (Список автомобилей по виду оплаты)

 

 

 

Результат запроса «Сумма по каждой модели» приведена на рисунке 3.8.

 

Рисунок 3.8 – Форма  запроса (Сумма по каждой модели)

 

 

Результат клика по клавише «Показать тех. Данные» приведена на рисунке 3.9.

 

Рисунок 3.9 – Главная форма (Тех. Характеристики модели)

 

 

 

 

 

 

На главной форма приложение автоматически показывает «Количество автомобилей на складе» после нажатия «Файл → Открыть» на рисунке 3.10.

 

Рисунок 3.10 – Главная форма количество автомобилей на складе

 

ЗАКЛЮЧЕНИЕ

 

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

  • марка автомобиля,
  • модель,
  • страна-изготовитель,
  • наличие на складе (да, нет),
  • тип кузова,
  • количество дверей,
  • количество мест,
  • тип двигателя,
  • расположение двигателя,
  • рабочий объем двигателя,
  • цена,
  • ФИО покупателя,
  • дата продажи,
  • вид оплаты.

Программа с использованием данных из файла обеспечила:

  • Выдачу информацию о наличии автомобилей определенной марки и модели;

  • Выдачу технические данные заданной модели;

  • Выдачу информацию обо всех проданных моделях некоторой марки;

  • Считает сумму продаж моделей каждой марки;

  • Выдачу информацию о самом дорогом автомобиле;

  • Выдачу списки клиентов и автомобилей по виду оплаты;

Информация о работе Разработка приложения «Автосалон»