Федеральное государственное образовательное учреждение
Высшего профессионального образования
Институт градостроительства, управления и региональной экономики Сибирского Федерального университета.
Информатика и программирование.
Лабораторная работа №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 //если не первый и ни последний
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.