Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


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

Тип Реферат
Предмет Информатика и программирование
Просмотров
951
Размер файла
181 б
Поделиться

Ознакомительный фрагмент работы:

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

КУРСОВОЙ ПРОЕКТ

Тема:

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

Минск 2010

Введение

Для разработки программы была выбрана среда визуального проектирования Borland Delphi 7.0. Она позволяет за короткий промежуток времени и с наименьшими затратами физических и умственных сил создавать прикладные программы различной направленности, обеспечивая при этом наличие дружественного оконного интерфейса. Указанные (а также ряд других) преимущества среды Delphi 7.0. обуславливают широкое её использование при создании программного обеспечения разнообразного назначения.

Представленная для разработки в качестве курсового проекта программа является учебной, и предназначена для демонстрации возможностей технологии ООП и представляет собой форму чем-то похожую на приложение Excel.

Данная программа вносит данные в специальные файлы, сортирует их, осуществляет поиск, внося все данные при этом в специально приготовленную структуру.

Данная программа напоминает базу данных, но написанную вручную, данное ПО может успешно применяться в качестве учебного пособия, но не может применяться в качестве коммерческого проекта.


1.Состав проекта Delphi

Проект содержит главную форму, форму осуществления поиска, форму осуществления сортировки, форму очистки строк, главная форма содержит такие элементы как кнопки, StringGrid, CheckBox, RadioButton, меню и манифест Windows.

Проектсодержитмодули Unit1, Unit2, Unit3, Uni4, UnitCl.

Unit1 – головной файл программы

Unit2 – файл формы очистки строк

Unit3 – файл формы поиска

Unit4 – файл формы сортировки

Все методы инкапсулированы в класс. Класс (UnitCl) имеет следующие методы:

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); – процедурасортировкиспискаХДпоатр. 1

procedure MoySort2 (AStringGrid:TStringGrid); – процедурасортировкиспискаХДпоатр. 2

procedure MoySort5 (AStringGrid:TStringGrid); – процедурасортировкиспискаХДпоатр. 5

procedure MoySort7 (AStringGrid:TStringGrid); – процедурасортировкиспискаХДпоатр. 7


2.Статические данные и структуры

Запись линейного односвязного списка для данных хозяйственных договоров. В данной записи все поля являются строковыми, строковое поле имеет размер памяти 8 байт, следовательно, запись ХД будет иметь размер 56 байт. Поле Next во всех трех структурах означает адрес следующего элемента в списке. Поскольку в задании предлагался линейный односвязный список то переход от одного элемента к другому возможен только вперед, в отличие от двухсвязного списка, где можно перемещаться как вперед так и назад. В квадратных скобках указано количество символов, которое может входить в строку данного поля.

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;

Запись линейного односвязного списка для данных о временных трудовых коллективах. В данной записи все поля являются строковыми, строковое поле имеет размер памяти 8 байт, следовательно, запись ВТК будет иметь размер 80 байт.

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;

Запись линейного односвязного списка для данных с атрибутами банка. В данной записи все поля являются строковыми, строковое поле имеет размер памяти 8 байт, следовательно, запись БАНК будет иметь размер 40 байт.

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

Ниже приведены глобальные переменные различных типов данных, которые использует весь модуль класса.

kp:TKp;

i, Row, CP: Integer;

SList: TStringList;

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

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

Fil: string;

FirstStr: string;

3. Логическая структура данных

Используемая, в проекте структура линейный односвязный список приведена для всех трех записей поэтому ниже приведена схема структуры реализованной в проекте для записи хозяйственные договоры.

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;

Данная структура является примером линейного односвязного списка, в этой структуре возможен переход только к следующему элементу (next) т.е. только вперед.

В линейном односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента из данного не возможно. Точно такая же схема базовой структуры и у 2-х других списков, а именно списка временных трудовых коллективов и списка банков. (Из-за их абсолютной похожести, различается только их количество и название элементов) те две схемы не приводятся.

4. Логические схемы операций в базовой структуре данных

Процедура сортировки списка на примере списка ХД.

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.XDShow;

var

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

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

begin

n:=0;

st:='';

curr:=head1;

while curr <> NIL do

begin

n:=n+1;

st:=st+curr^.numb+' '+curr^.datzak+' '+curr^.datzav+' '+curr^.temadog+' '+curr^.namorg+' '+curr^.priznak+' '+curr^.stoimost+#13;

curr:=curr^.next;

end;

if n <> 0

then ShowMessage ('Список:'+#13+#13+st)

else ShowMessage ('В списке нет элементов.');

end;

procedure TKp.XD (AStringGrid:TStringGrid);

var

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

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

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

i:integer; // counter

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

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

begin

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.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;

//until (i<11);

end;

ShowMessage (' ГОТОВО– СПИСОКХД!');

end;

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

var

curr:TPSpisXD; // текущий, проверяемыйузел

pre: TPSpisXD; // предыдущийузел

found:boolean; // TRUE – узел, которыйнадоудалить

// st:string;

// a:integer;

begin

if head1 = NIL then

begin

MessageDlg ('Списокпустой!', mtError, [mbOk], 0);

Exit;

end;

curr:=head1; // текущийузел– первыйузел

pre:=NIL; // предыдущегоузланет

found:=FALSE;

// найтиузел

=======

while (curr <> NIL) and (not found) do

begin

if (curr^.numb = {'13'} AEdit1. Text) xor (curr^.datzak = AEdit1. Text)

xor (curr^.datzav = AEdit1. Text) xor (curr^.temadog = AEdit1. Text)

xor (curr^.namorg = AEdit1. Text) xor (curr^.priznak = AEdit1. Text)

xor (curr^.stoimost = AEdit1. Text)

then found:=TRUE // нужныйузелнайден

else // кследующемуузлу

begin

pre:=curr;

curr:=curr^.next;

end;

=======

end;

if found then

begin

Kp. Clear(AStringGrid);

Kp.XDGr(AStringGrid);

Kp. RowC(AStringGrid);

ShowMessage ('Элементнайден');

AStringGrid. Cells [1,1]:=''+curr^.numb;

AStringGrid. Cells [2,1]:=''+curr^.datzak;

AStringGrid. Cells [3,1]:=''+curr^.datzav;

AStringGrid. Cells [4,1]:=''+curr^.temadog;

AStringGrid. Cells [5,1]:=''+curr^.namorg;

AStringGrid. Cells [6,1]:=''+curr^.priznak;

AStringGrid. Cells [7,1]:=''+curr^.stoimost;

end

else // если искомого в списке нет

MessageDlg ('Элементненайден', mtError, [mbOk], 0);

end;


5.Руководство пользователя

Для старта программы нужно запустить файл project1.exe. Запуститься программа, после этого пользователь увидит окно представленное ниже.

Для навигации и управления проектом пользователя предоставлены многочисленные виджеты, такие как меню, кнопки управления, флажки и переключатели, а также многочисленные выпадающие окна.

Все органы управления имеют всплывающие подсказки.


Для поиска нужно нажать кнопку Поиск, а для удаления кнопку DEL, все операции программы дублированы пользовательским меню.

Для загрузки списков нужно перемещать переключатели в 3 разных положения, а для просмотра списка необходимо вызвать одноименный пункт меню, или нажать соответствующую кнопку.

Заключение

В ходе работы над проектом были закреплены навыки работы с технологией ООП, были изучены структуры и то как они представлены в памяти компьютера. В ходе работы над проектом были доработаны и закреплены навыки работы в среде визуальной разработки приложений Delphi.

Данный проект очень интересен тем, что он дает студенту возможность попробовать себя в разработке простейшей базы данных, знания, полученные во время работы над проектом пригодятся в дальнейшей трудовой деятельности, а также в предметах курса, изучающих принципы построения и работы с базами данных.

Данный курсовой проект сможет пригодиться для изучения возможностей ООП использования структур данных

Литература

1. Бакнелл Д.М. Фундаментальные алгоритмы и структуры данных в Delphi. - СПб: ООО «ДиаСофтЮП», 2003. - 506 с.

2. Вирт Н. Алгоритмы и структуры данных. - СПб: Невский диалект, 2001. – 352 с.

3. Гудрич М.Т. Структуры данных и алгоритмы в Java. / М.Т. Гудрич, Р. Тамассия. – Мн.: Новое знание, 2003. – 671 с.

4. Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: построение и анализ. – М.: Издательский дом «Вильямс», 2009. – 1296 с.

5. Круз Р.Л. Структуры данных и проектирование программ. – М.: БИНОМ. Лаборатория знаний, 2008. – 765 с.

6. Седжвик Р. Фундаментальные алгоритмы на С. Части 1-4: Анализ / Структуры данных / Сортировка / Поиск. - К.: Издательство «ДиаСофт», 2003. - 672 с.

Приложение

Текст главного модуля Unit1.pas

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

// Created by Kamenev A.I.

// gr 417318

// Minsk 2010 MIDO BNTU

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

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Grids, XPMan, UnitCl, Menus, Unit2;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

XPManifest1: TXPManifest;

Button7: TButton;

Bevel1: TBevel;

CheckBox1: TCheckBox;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

Bevel2: TBevel;

Button3: TButton;

Button8: TButton;

FindDialog1: TFindDialog;

procedure Button6Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure RadioButton1Click (Sender: TObject);

procedure RadioButton2Click (Sender: TObject);

procedure RadioButton3Click (Sender: TObject);

procedure CheckBox1Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure Button7Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button8Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N7Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

uses Unit3, Unit4;

{$R *.dfm}

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

procedure TForm1. Button6Click (Sender: TObject);

begin

// Остановка программы:

Halt;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

// Инициализация формы и чтение из файла в стринг грид – из класса

CheckBox1Click(Sender);

Kp. ReadXD(StringGrid1);

Kp. Free;

end;

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

procedure TForm1. RadioButton1Click (Sender: TObject);

begin

// Дублир XD

FormCreate(Sender);

Button8Click(Sender);

end;

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

procedure TForm1. RadioButton2Click (Sender: TObject);

begin

// Открытие WTK автоматом из файла

Kp. Clear(StringGrid1); // Очистка грида

// инициал формы WTK

Kp.WTKGr(StringGrid1);

Kp. RowC(StringGrid1);

Kp. ReadWTK(StringGrid1);

Kp. Free;

Button8Click(Sender);

end;

procedure TForm1. RadioButton3Click (Sender: TObject);

begin

// Открытиефайла BANK

Kp. Clear(StringGrid1); // Очисткагрида

// Инициалформы Bank

Kp.BANGr(StringGrid1);

Kp. RowC(StringGrid1);

Kp. ReadBAN(StringGrid1);

Kp. Free;

Button8Click(Sender);

end;

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

procedure TForm1. CheckBox1Click (Sender: TObject);

begin

// запрет на редактир снять – поставить

If CheckBox1. Checked Then

StringGrid1. Options:=[goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSizing, goColSizing]

else

StringGrid1. Options:=[goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSizing, goColSizing, goEditing]

end;

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

procedure TForm1. Button4Click (Sender: TObject);

begin

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

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

Form3. ShowModal;

end;

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

procedure TForm1. Button1Click (Sender: TObject);

begin

// процедураочисткигридаповыборурадиокнопы

Kp. Clear(StringGrid1); // Вызов процедуры из класса

If RadioButton1. Checked Then //

begin //

Kp.XDGr(StringGrid1); // –

Kp. RowC(StringGrid1);

end

else if RadioButton2. Checked Then

begin

Kp.WTKGr(StringGrid1);

Kp. RowC(StringGrid1);

end

else if RadioButton3. Checked Then

begin

Kp.BANGr(StringGrid1);

Kp. RowC(StringGrid1);

end;

Kp. Free;

end;

// = ОПРОГРАММЕ

=====

procedure TForm1.N2Click (Sender: TObject);

begin

ShowMessage

('КУРСОВОЙ ПРОЕКТ'+#13+#13+'Разработал Каменев А.И. гр 417 318 / 10 вариант'

+#13+'МИДО БНТУ 2010 г.'+#13+#13+'Структуры и алгоритмы обработки данных.');

end;

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

procedure TForm1.N10Click (Sender: TObject);

begin

// Менюдублвыход

Button6Click(Sender);

end;

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

procedure TForm1.N8Click (Sender: TObject);

begin

// Сбросдублменю

Button1Click(Sender);

end;

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

procedure TForm1. Button5Click (Sender: TObject);

begin

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

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

Form4. ShowModal;

end;

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

procedure 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;

procedureTForm1. 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 Kamenev A.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;

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.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
152761
рейтинг
icon
3183
работ сдано
icon
1378
отзывов
avatar
Математика
Физика
История
icon
148352
рейтинг
icon
5975
работ сдано
icon
2702
отзывов
avatar
Химия
Экономика
Биология
icon
105024
рейтинг
icon
2092
работ сдано
icon
1305
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
59 265 оценок star star star star star
среднее 4.9 из 5
МФПУ
МАКСИМ, ЭТО ПРОСТО СУПЕР СУПЕР СУПЕР ЧТО ВЫ МНЕ ОТПРАВИЛИ, ВСЕ ТО ЧТО КАК НАДО БЫЛО.ВАМ ЗА...
star star star star star
ЛГУ им. А.С Пушкина
Спасибо большое, Денису все сделал качественно. Надеюсь экзамен будет сдан на отлично.
star star star star star
Томский политехнический университет
Спасибо. Работа истории выполнена очень хорошо и в срок. А самое главное недорого. Советую ;)
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

В целом, единственное тз в прикрепленном файле

Курсовая, IT-Архитектура предприятия

Срок сдачи к 22 мар.

только что

Преюдиции в УПК, 3 шт

Поиск информации, уголовный процесс

Срок сдачи к 18 мар.

1 минуту назад

45 страниц

Реферат, Экономическая оценка деятельности

Срок сдачи к 30 апр.

1 минуту назад

есть готовая работа в презентацию данные с работы в таблицы перенести...

Презентация, экономика и бухгалтерский учет

Срок сдачи к 17 мар.

1 минуту назад

сделать практическую работу

Контрольная, Медико-биологические основы безопасности жизнедеятельности

Срок сдачи к 22 мар.

1 минуту назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени: 17 марта 2025 г. 11:39

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Press the down arrow key to interact with the calendar and select a date. Press the question mark key to get the keyboard shortcuts for changing dates.

Файлы (при наличии)

    это быстро и бесплатно