Информационная система расчетов по договорам
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
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>