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;

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

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

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


Информация о работе «Информационная система расчетов по договорам»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27889
Количество таблиц: 0
Количество изображений: 5

Похожие работы

Скачать
210741
6
16

... -корреспондентом, адрес которого указан в поле 053 сообщения МТ 100. Таким образом, сообщество S.W.I.F.T. поддерживает классификацию ти­повых сообщений и их стандартизацию при передаче по сво­ей сети. Информационные системы рынка ценных бумаг. Рыночная экономика в классическом понимании базируется на пяти основных рынках: рынке средств производства, рынке предметов потреб­ления, рынке ...

Скачать
134795
0
0

... животные на выращивании и откорме. ПРОИЗВОДСТВО – процесс создания разных видов экономического продукта. ПРОТОКОЛ – стандартизованное соглашение по порядку обмена информацией и данными в информационных системах. ПРОЦЕСС – загруженная в память выполняемая прикладная программа, ее адресное пространство и ресурсы. ПРОЦЕССОР – специализированная электронная схема, которая выполняет все вычисления ...

Скачать
74935
32
9

... 6. Справка. Представление графа сценария задачи представлено на рисунке 1. Рис.1 Граф сценария задачи «Библиотека вуза» 3.2 Разработка контекстной диаграммы Контекстной диаграмма позволяет наглядно представить бизнес-процессы, протекающие в данной информационной системе, документооборот и информационные массивы При построении данной диаграммы используется принцип ...

Скачать
128912
10
20

... обоснование проекта   5.1 Разработка математической модели проекта   5.1.1 Определение источника доходов проекта Целью данного дипломного проекта является разработка автоматизированной информационной системы для лизинговой компании. Разработка настоящего программного продукта осуществляется с целью его внедрения и эксплуатации на предприятие ООО "Тольяттинская Лизинговая Компания". Прибылью ...

0 комментариев


Наверх