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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

rocedure TForm1. Button2Click (Sender: TObject);

// Запись в файл

begin

If RadioButton1. Checked Then

Kp. WriteXD(StringGrid1)

else if RadioButton2. Checked Then

Kp. WriteWTK(StringGrid1)

else if RadioButton3. Checked Then

Kp. WriteBAN(StringGrid1);

ShowMessage (Данные записаны в файл!);

Kp. Free;

end;

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

procedure TForm1.N3Click (Sender: TObject);

begin

// меню дублир

Button2Click(Sender);

end;

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

// Удаление строки из грида

procedure TForm1. Button7Click (Sender: TObject);

begin

Form2. Top:=Trunc (Form1. Top + Form1. Height/2 Form2. Height/2);

Form2. Left:=Trunc (Form1. Left +Form1. Width/2 Form2. Width/2);

Form2. ShowModal;

// Элемент пользовательского интерфейса

// очистка cellsов

// в StringGrid1

end;

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

procedure TForm1.N4Click (Sender: TObject);

begin

// Меню дублирование удаление строки

Button7Click(Sender);

end;

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

procedure TForm1. FormActivate (Sender: TObject);

begin

// Очистка головы списка №1 №2 №3

Kp.null;

end;

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

procedure TForm1. Button3Click (Sender: TObject);

begin

// процедура показа

If RadioButton1. Checked Then

Kp.XDShow

else if RadioButton2. Checked Then

Kp.WTKShow

else if RadioButton3. Checked Then

Kp.BANKShow;

Kp. Free;

end;

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

procedure TForm1. Button8Click (Sender: TObject);

begin

FormActivate(Sender);

// процедура внесения содержимого StrigGrid в список

If RadioButton1. Checked Then

Kp.XD(StringGrid1)

else if RadioButton2. Checked Then

Kp.WTK(StringGrid1)

else if RadioButton3. Checked Then

Kp.BANK(StringGrid1);

Kp. Free;

end;

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

procedure TForm1.N6Click (Sender: TObject);

begin

// Поиск-меню-дублирующее

Button4Click(Sender);

end;

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

procedure TForm1.N7Click (Sender: TObject);

begin

// Сортировка-меню-дублирующее

Button5Click(Sender);

end;

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

end.

Текст модуля класса UnitCl.pas

// ************

// Created by KamenevA.I. 417 318 10 var.

// Minsk MIDO BNTU.

// САОД КУРСОВОЙ

// ************

unit UnitCl;

interface

uses

SysUtils, Forms, StdCtrls, Grids, Classes, Dialogs;

type

TKp = class (TObject)

Private

{Private data}

Public

procedure RowC (AStringGrid:TStringGrid);

procedure XDGr (AStringGrid:TStringGrid);

procedure WTKGr (AStringGrid:TStringGrid);

procedure BANGr (AStringGrid:TStringGrid);

procedure Clear (AStringGrid:TStringGrid);

procedure WriteXD (AStringGrid:TStringGrid);

procedure WriteWTK (AStringGrid:TStringGrid);

procedure WriteBAN (AStringGrid:TStringGrid);

procedure ReadXD (AStringGrid:TStringGrid);

procedure ReadWTK (AStringGrid:TStringGrid);

procedure ReadBAN (AStringGrid:TStringGrid);

procedure BANK (AStringGrid:TStringGrid);

procedure WTK (AStringGrid:TStringGrid);

procedure XD (AStringGrid:TStringGrid);

procedure XDShow;

procedure WTKShow;

procedure BANKShow;

procedure null;

procedure FindXD (AEdit1:TEdit; AStringGrid:TStringGrid);

procedure FindWTK (AEdit1:TEdit; AStringGrid:TStringGrid);

procedure FindBANK (AEdit1:TEdit; AStringGrid:TStringGrid);

procedure MoySort1 (AStringGrid:TStringGrid);

procedure MoySort2 (AStringGrid:TStringGrid);

procedure MoySort5 (AStringGrid:TStringGrid);

procedure MoySort7 (AStringGrid:TStringGrid);

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;

NIL)and(node.numb>curr^.numb)do">while (curr 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;

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

begin

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

pre:= curr;

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

end;

if pre = NIL

then

begin

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

node^.next:=head1;

head1:=node;

end

else

begin

// новый уз?/p>