Программа электронного каталога автомобилей

Страницы работы

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

Федеральное государственное образовательное учреждение

Высшего профессионального образования

Институт градостроительства, управления и региональной экономики Сибирского Федерального университета.

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

Лабораторная работа №6.

Работу выполнила:

Богомолова Надежда Ивановна

Работу проверил:

Пупков Александр Николоаевич

Красноярск 2008

Задание

1) Электронный каталог автомобилей.

unit Lab_6;

interface

uses

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

  Dialogs, ActnList, Menus, StdCtrls, ExtCtrls, Grids;

type

  TForm1 = class(TForm)

    GroupBox1: TGroupBox;

    GroupBox2: TGroupBox;

    GroupBox3: TGroupBox;

    Memo1: TMemo;

    MainMenu1: TMainMenu;

    ActionList1: TActionList;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    RadioGroup1: TRadioGroup;

    Button7: TButton;

    Button9: TButton;

    EditMarkaCar: TEdit;

    EditModelCar: TEdit;

    EditTypBasketCar: TEdit;

    EditVolumeEngineCar: TEdit;

    EditMaxPowerCar: TEdit;

    EditConsuptionFuelCar: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    ActionAddBeginList: TAction;

    ActionAddEndList: TAction;

    N7: TMenuItem;

    N8: TMenuItem;

    ActionAddBefore: TAction;

    ActionAddAfter: TAction;

    ActionDelete: TAction;

    ActionSort: TAction;

    ActionFind: TAction;

    ActionLook: TAction;

    ActionClear: TAction;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    C1: TMenuItem;

    N14: TMenuItem;

    N15: TMenuItem;

    N16: TMenuItem;

    GroupBox4: TGroupBox;

    Button8: TButton;

    StringGrid1: TStringGrid;

    ActionAddAllelement: TAction;

    Button10: TButton;

    procedure N6Click(Sender: TObject);

    procedure FormActivate(Sender: TObject);

    procedure ActionClearExecute(Sender: TObject);

    procedure ActionAddEndListExecute(Sender: TObject);

    procedure ActionLookExecute(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure AddEndList();

    procedure AddBeginList();

    procedure Delete();

    procedure AddBefore();

    procedure AddAfter();//Добавить после текущего элемента

    procedure N4Click(Sender: TObject);

    procedure ActionAddBeginListExecute(Sender: TObject);

    procedure ActionSortExecute(Sender: TObject);

    procedure ActionFindExecute(Sender: TObject);

    procedure ActionDeleteExecute(Sender: TObject);

    procedure ActionAddBeforeExecute(Sender: TObject);

    procedure ActionAddAfterExecute(Sender: TObject);

    procedure ActionAddAllelementExecute(Sender: TObject);

    procedure Button10Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

  //создаем запись: автомобиль

  PCar = ^TCar;//вводим соответствующий TCar указательный тип данных PCar

  TCar = record

   markaCar_ :string;  // Марка

   modelCar_ :string;  // Модель

   typBasketCar_ :string;  // Тип кузова

   volumeEngineCar_ :real; //Oбъем двигателя

   maxPowerCar_ :integer; // Максимальная мощность

   consuptionFuelCar_ :integer; // Расход топлива в городе,л/100 км (на новой машине!)

   next_ :PCar;// указатель на следующий элемент

   prev_ :PCar;// указатель на предыдущий элемент

end;

var

  Form1 :TForm1;

  car :PCar; // указатель на переменную типа TCar

  carCurrent: Pcar; // указатель на текущий элемент списка

  carBegin :PCar; //указатель на первый элемент списка

  carEnd :PCar;// //указатель на последний элемент списка

implementation

{$R *.dfm}

procedure TForm1.N6Click(Sender: TObject);//выход из программы

begin

   close; //выход из программы

end;

procedure TForm1.FormActivate(Sender: TObject);//  вызывается при создании формы

begin

   // устанавливаем начальные значения

   carBegin:=nil; //это говорит о том, что  указателю не выделена динамическая память

   carEnd:=nil;

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

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

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

   StringGrid1.Cells[3, 0]:='Oбъем двигателя(л)';

   StringGrid1.Cells[4, 0]:='Маx мощность(лс)';

   StringGrid1.Cells[5, 0]:='Расход топлива(л/100)';

end;

procedure TForm1.ActionClearExecute(Sender: TObject);//очищаем Memo

begin

   Memo1.Clear;//очищаем Memo

end;

procedure TForm1.AddEndList();//Добавить в конец списка

begin

  //Добавить в конец списка

  if carBegin = nil then //если условие выполняется то это первый элемент

  begin

    // указатель на следующий и предыдущий элемент не куда не указывают

    car^.next_:=nil;

    car^.prev_:=nil;

    //т.к это первый элемент, то указатель на первый элемент

    // и указатель на последний указывают на одно и тоже

    carBegin:=car;

    carEnd:=car;

  end

  else //если это не первый

  begin

    carEnd^.next_:=car;//указатель на следующий елемент указывает на новый элемент

    //теперь последним элементом списка является car, а carEnd предпоследним

    car^.prev_:=carEnd;

    car^.next_:=nil;//указатель на следующий  элемент не куда не указывают

    carEnd:=car;//делаем carEnd последним элементом

  end;

end;

procedure TForm1.AddBeginList();//Добавить в начало списка

begin

  //Добавить в начало списка

  if carBegin = nil then //если условие выполняется то это первый элемент

  begin

    // указатель на следующий и предыдущий элемент не куда не указывают

    car^.next_:=nil;

    car^.prev_:=nil;

    //т.к это первый элемент, то указатель на первый элемент

    // и указатель на последний указывают на одно и тоже

    carBegin:=car;

    carEnd:=car;

  end

  else //если это не первый

  begin

    carBegin^.prev_:=car;//указатель на предыдущий елемент указывает на новый элемент

    //теперь первым элементом списка является car, а carBegin идет после него

    car^.next_:=carBegin;

    car^.prev_:=nil;//указатель на предыдущий  элемент не куда не указывают

    carBegin:=car;//делаем carBegin первым элементом

  end;

end;

procedure TForm1.AddBefore();//Добавить перед текущим элементом

begin

   //Добавить перед текущим элементом

  if carBegin = nil then //если условие выполняется то это первый и единственный элемент в списке

  begin

    // указатель на следующий и предыдущий элемент не куда не указывают

    car^.next_:=nil;

    car^.prev_:=nil;

    //т.к это первый элемент, то указатель на первый элемент

    // и указатель на последний указывают на одно и тоже

    carBegin:=car;

    carEnd:=car;

  end

  else //если это не первый

  begin

    if (carCurrent<>carBegin)or(carCurrent=carEnd)then

    begin //если не первый и ни последний

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Отчеты по лабораторным работам
Размер файла:
118 Kb
Скачали:
0