Рефераты. Информационная система расчетов по договорам

end;

 // ********** глобальная переменная

var

kp:TKp;

i, Row, CP: Integer;

SList: TStringList;

n: integer; // длина (кол-во элементов) списка

st: string; // строковое представление списка

Fil: string;

FirstStr: string;

 // ********** раздел описаний

implementation

type

TPSpisXD=^TSpisXD;

TSpisXD = record

numb:string[20]; // номер

datzak:string[20]; // дата заключения

datzav:string[20]; // дата завершения

temadog:string[40]; // тема

namorg:string[20]; // наименование организации

priznak:string[15]; // признак

stoimost:string[10]; // стоимость в тыс руб.

next: TPSpisXD; // следующий элемент списка

end;

type

TPSpisWTK=^TSpisWTK;

TSpisWTK=record

fam:string[20]; // фамилия

name:string[20]; // имя

otc:string[20]; // отчество

god:string[40]; // дата рождения

kod:string[20]; // код договора

prznak:string[15]; // признак

zarplat:string[20]; // зарплата

adres:string[20]; // адрес

banknum:string[20]; // номер банка

rasschet:string[40]; // Р/С

next: TPSpisWTK;

end;

type

TPSpisBAN=^TSpisBAN;

TSpisBAN=record

numotd:string[20]; // фамилия

gorod:string[20]; // имя

adress:string[20]; // отчество

naim:string[40]; // дата рождения

kod:string[20]; // код отделения

next: TPSpisBAN;

end;

var

head1: TPSpisXD; // начало (голова) списка XD

head2: TPSpisWTK; // голова списка WTK

head3: TPSpisBAN; // голова списка BAN

 // ===================

procedure TKp.null;

 // Обнуление начала списка

begin

head1:=NIL;

head2:=NIL;

head3:=NIL;

end;

 // ===================

procedure TKp. MoySort1 (AStringGrid:TStringGrid);

 // Сортировка по первой колонке

var

node: TPSpisXD; // новый узел списка

curr: TPSpisXD; // текущий узел списка

pre: TPSpisXD; // предыдущий, относительно curr, узел

i:integer; // counter

begin

Kp.null;

i:=1;

 //repeat

while (i<11) do

begin

new(node);

node^.numb:=AStringGrid. Cells [1, i];

node^.datzak:=AStringGrid. Cells [2, i];

node^.datzav:=AStringGrid. Cells [3, i];

node^.temadog:=AStringGrid. Cells [4, i];

node^.namorg:=AStringGrid. Cells [5, i];

node^.priznak:=AStringGrid. Cells [6, i];

node^.stoimost:=AStringGrid. Cells [7, i];

 // подходящее место для узла

curr:=head1;

pre:=NIL;

while (curr <> NIL) and (node.numb > curr^.numb) do

begin

 // введенное значение больше текущего

pre:= curr;

curr:=curr^.next; // к следующему узлу

end;

if pre = NIL

then

begin

 // новый узел в начало списка

node^.next:=head1;

head1:=node;

end

else

begin

 // новый узел после pre, перед curr

node^.next:=pre^.next;

pre^.next:=node;

end;

i:=i+1;

end;

Kp.XDShow;

end;

 // ===================

procedure TKp. MoySort2 (AStringGrid:TStringGrid);

 // Сортировка по второй колонке

var

node: TPSpisXD; // новый узел списка

curr: TPSpisXD; // текущий узел списка

pre: TPSpisXD; // предыдущий, относительно curr, узел

i:integer; // counter

begin

Kp.null;

i:=1;

 //repeat

while (i<11) do

begin

new(node);

node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];

node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];

node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];

node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];

node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];

node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];

node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];

curr:=head1;

pre:=NIL;

while (curr <> NIL) and (node.datzak > curr^.datzak) do

begin

 // введенное значение больше текущего

pre:= curr;

curr:=curr^.next; // к следующему узлу

end;

if pre = NIL

then

begin

 // новый узел в начало списка

node^.next:=head1;

head1:=node;

end

else

begin

 // новый узел после pre, перед curr

node^.next:=pre^.next;

pre^.next:=node;

end;

i:=i+1;

end;

Kp.XDShow;

end;

 // ===================

procedure TKp. MoySort5 (AStringGrid:TStringGrid);

 // Сортировка по пятой

var

node: TPSpisXD; // новый узел списка

curr: TPSpisXD; // текущий узел списка

pre: TPSpisXD; // предыдущий, относительно curr, узел

i:integer; // counter

 // n:integer; // длина (кол-во элементов) списка

 // st:string; // строковое представление списка

begin

Kp.null;

i:=1;

 //repeat

while (i<11) do

begin

new(node);

node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];

node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];

node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];

node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];

node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];

node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];

node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];

 // подходящее место для узла

curr:=head1;

pre:=NIL;

while (curr <> NIL) and (node.namorg > curr^.namorg) do

begin

 // введенное значение больше текущего

pre:= curr;

curr:=curr^.next; // к следующему узлу

end;

if pre = NIL

then

begin

 // новый узел в начало списка

node^.next:=head1;

head1:=node;

end

else

begin

 // новый узел после pre, перед curr

node^.next:=pre^.next;

pre^.next:=node;

end;

i:=i+1;

 //until (i<11);

end;

Kp.XDShow;

end;

 // ===================

procedure TKp. MoySort7 (AStringGrid:TStringGrid);

 // Сортировка по 7

var

node: TPSpisXD; // новый узел списка

curr: TPSpisXD; // текущий узел списка

pre: TPSpisXD; // предыдущий, относительно curr, узел

i:integer; // counter

 // n:integer; // длина (кол-во элементов) списка

 // st:string; // строковое представление списка

begin

Kp.null;

i:=1;

 //repeat

while (i<11) do

begin

new(node);

node^.numb:={Edit1. Text;} AStringGrid. Cells [1, i];

node^.datzak:= {Edit2. Text;} AStringGrid. Cells [2, i];

node^.datzav:= {Edit3. Text;} AStringGrid. Cells [3, i];

node^.temadog:= {Edit4. Text;} AStringGrid. Cells [4, i];

node^.namorg:= {Edit5. Text;} AStringGrid. Cells [5, i];

node^.priznak:= {Edit6. Text;} AStringGrid. Cells [6, i];

node^.stoimost:= {Edit7. Text;} AStringGrid. Cells [7, i];

 // подходящее место для узла

curr:=head1;

pre:=NIL;

while (curr <> NIL) and (node.stoimost > curr^.stoimost) do

begin

 // введенное значение больше текущего

pre:= curr;

curr:=curr^.next; // к следующему узлу

end;

if pre = NIL

then

begin

 // новый узел в начало списка

node^.next:=head1;

head1:=node;

end

else

begin

 // новый узел после pre, перед curr

node^.next:=pre^.next;

pre^.next:=node;

end;

i:=i+1;

 //until (i<11);

end;

Kp.XDShow;

end;

 // ===================

procedure TKp.WTKShow;

var

end

else if Form4. RadioButton4. Checked Then

begin

Kp. MoySort7 (Form1. StringGrid1);

end;

Kp. Free;

end;

procedure TForm4. Button2Click (Sender: TObject);

begin

Form4. Close;

end;

end.

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.