Смекни!
smekni.com

Информационная система расчетов по договорам (стр. 2 из 3)

Для старта программы нужно запустить файл 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