База данных "Почтовое отделение"

 

СОДЕРЖАНИЕ


ВВЕДЕНИЕ

. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. КЛАССЫ И ОБЪЕКТЫ В PASCAL

.1 Объявление класса. Поля и методы

.2 Объявление объекта. Инициализация полей

.3 Обращение к полям и методам объекта

.4 Инициализация полей объекта

.5 Операция присваивания объектов

.6 Библиотеки классов. Ограничение доступа к полям и методам

. ПРАКТИЧЕСКАЯ ЧАСТЬ. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ДОСТУПА К БАЗЕ ДАННЫХ

.1 Структура и интерфейс приложения

.2 Структурная схема взаимодействия объектов

.3 Листинг программного кода.

.4 Требования к программному и аппаратному обеспечению

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

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


ВВЕДЕНИЕ


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

Использование объектно-ориентированного программирования является хорошим решением при разработке крупных программных проектов. Чем проект объемнее и сложнее, тем больше выгоды вы получите при использовании объектно-ориентированной технологии программирования. Одним из наибольших преимуществ объектно-ориентированного программирования является возможность многократного использования программного кода. Если вы, к примеру, создали класс, то можете порождать от него новые классы и изменять их свойства и функциональное назначение.

В качестве примера объектно-ориентированного языка в дальнейшем будем рассматривать Object Pascal. Языковые расширения Object Pascal предоставляют все средства объектно-ориентированного программирования: большую структурированность и модульность, большую абстрактность и встроенную непосредственно в язык возможность повторного использования. Все эти характеристики соответствуют коду, который является более структурированным, более гибким и более легким для обслуживания.

Объектно-ориентированное программирование требует оставить в стороне характерные представления о программировании, которые долгие годы рассматривались как стандартные. Однако после того, как это сделано, объектно-ориентированное программирование становится простым, наглядным и превосходным средством разрешения многих проблем, которые доставляют неприятности традиционному программному обеспечению.

Целью данной работы была разработка информационно-справочной системы и рассмотрение теоретического вопроса Классы и объекты в Pascal.


1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. КЛАССЫ И ОБЪЕКТЫ В PASCAL


Объектная модель, реализованная в Borland Pascal, по современным меркам является упрощенной, но она позволяет изучить основные приемы объектно-ориентированного программирования и оценить его достоинства и недостатки.

В настоящей главе рассмотрены средства, используемые для объявления классов и объектов, и принципы создания «универсальных» классов.


1.1 Объявление класса. Поля и методы


С точки зрения синтаксиса класс представляет собой структурный тип данных, в котором помимо полей разрешается описывать прототипы (заголовки) процедур и функций, работающих с этими полями данных. По форме описание класса напоминает запись.

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

Описание типа класс выполняется следующим образом:

Туре <имя класса> = object

<описание полей класса>

<прототипы методов>

end;...

Тела методов класса описываются после объявления класса. Причем в заголовке метода можно не повторять списка параметров, но перед именем метода необходимо указать имя класса, отделив его от имени метода точкой:<имя класса>.<имя метода>;

<локальные ресурсы процедуры>

Begin

<тело процедуры>

End;...<имя класса>. <имя метода>;

<;покальные ресурсы функции>

<тело процедуры>;...


1.2 Объявление объекта. Инициализация полей


Описав класс, мы можем объявить любое количество объектов этого

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

Например:A.'TRoom; {объект А класса TRoom}

B:array[1..5] of TRoom; {массив объектов типа TRoom}

Type pTRoom=^TRoom; {тип указателя на объекты класса TRoom}рС: pTRoom; {указатель на объекты класса TRoom}

Как и для любой другой динамической переменной, для динамического объекта необходимо выделить память, а после его использования - освободить память.

Выделение памяти осуществляют процедурой New или функцией New.

Например:(pC); или pC:=New(pTRoom);...

Для освобождения памяти используют процедуру Dispose. Например:(рС);...

Работа с динамическими объектами классов, построенных с использованием наследования со сложным полиморфизмом, имеет свои особенности.

1.3 Обращение к полям и методам объекта


Обращение к полям и методам

объекта выполняется так же, как к полям записей:

с использованием точечной нотации:

<имя объекта>.<имя поля> или <имя объекта>.<имя метода>;

с использованием оператора with:<имя объекта> do

...<имя поля>...

...<имя метода>...; ...

Например:

а) v:=A. length;

б) s:= A.Square;

в) s:=s+В[i],Square;

T)pC4ength:=3;...


1.4 Инициализация полей объекта

справочная система доступ поле листинг код

Поля объекта должны инициализироваться.

Инициализация полей объекта может осуществляться тремя способами:

прямым занесением в поле, например:

Program ex;TRoom = object, width:real;{поля: длина и ширина комнаты}Square;real;{мотод определения площади};

Function TRoom.Square; {тело метода определения площади}

Begin:^ length"^ width;;

Var A:TRoom; {объявляем объект-переменную}:-3.5; {инициализируем поля объекта}

У4. width:-5J;

.гИе1п(*Площадъ комнаты равна \A.Square);

с использованием типизированных констант - синтаксис описания

совпадает с синтаксисом типизированных констант типа «запись»:

Program ex;TRoom = object, width:real;{nonH: длина и ширина комнаты}Square;real;{MQTOJX определения площади}

end;TRoom.Square; {тело метода определения площади}

Begin:^ length"^ width;;:TRoom = (length:3.5; width:5.1); {объявляем константу}('Площадь комнаты равна \A.Square);

End

посредством специального метода - очень часто в качестве такого метода

используют специальную инициализирующую процедуру, которую рекомендуется

называть Init:

Program ex;TRoom = object

length, width.real;{пояя: длина и ширина комнаты}

function Square:real;{MQTOJX определения площади}

procedure //i//(7,H';/'^aO;{инициализирующий метод}

end;

{метод определения площади}TRoom.Square;

Begin: = length* width;;

{инициализирующий метод}TRoontlnit;:=l; width:-w;;

Var A:TRoom; {объявляем объект-переменную}

{основная программа}(3.5y5.1); {инициализируем поля объекта}

WriteLn('Площадь комнаты равна \A.Square);.


.5 Операция присваивания объектов


Над объектами одного класса определена операция присваивания. Физически при этом происходит копирование полей одного объекта в другой методом «поле за полем»:

Const A:TRoom=(length:3.7;:5,2);B:TRoom;..,

В:=А; {теперь B.length=3.7, а B.width=5.2}

Существуют некоторые особенности выполнения операции присваивания для объектов родственных классов и полиморфных объектов.


1.6 Библиотеки классов. Ограничение доступа к полям и методам


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

Например:

Unit Room;

Type TRoom = object

length, width:real; {поля: длина и ширина комнаты}Square:real; {метод определения площади}/w/Y(7,w.Te(2/j;{инициализирующий метод}

end;

Implementation

Function TRoom.Square; {метод определения площади}:= length"^ width;;TRoom.Init; {инициализирующий метод}: =1;: =w;;

End.

В этом случае основная программа будет подключать соответствующий модуль и работать с классом, его полями и методами, как с ресурсами библиотеки:ex;/loom;{подключаем модуль с описанием класса TRoom}A:TRoom; {объявляем объект-переменную}

AJnit(3.5y5.1); {инициализируем поля объекта}Комната: длина= ', AJength,

V ширииа= \ A.width);

WriteLnCПлощадь комнаты = \A.Square);

End.

В Borland Pascal можно ограничить доступ к полям и методам класса в пределах модуля. Для этого описание класса делится на специальные секции:

public-секция, содержащая описание общих или общедоступных полей и методов класса;

private - секция, содержащая описание внутренних или скрытых полей и методов класса.

В описании класса эти секции могут чередоваться, причем, если секции компонент не указаны, то по умолчанию принимается, что эти компоненты доступны как общие:

Unit <имя модуля>;

Interface

Туре <имя класса>= object

<описание общих полей и методов>

private

<описание внутренних полей и методов>

public

<описание общих полей и методов>

private

<описание внутренних полей и методов>;...

Например, в нашем случае, если объекты класса TRoom используются только для получения информации о площади комнаты, то можно поля описать в секции private, но тогда доступ к этим полям из программы станет невозможным:

Unit RoomHiden;

Interface

Type TRoom = object

private {скрытые компоненты класса}, width:real; {поля: длина и ширина комнаты}

public {общие компоненты класса}Square.real;{метод определения площади}

procedure Init(l,w:real);{инициализирующий метод};

Implementation

Function TRoom.Square; {метод определения площади}:= length"^ width;;TRoomJnit; {инициализирующий метод}: =1; width: =w;;

End.

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


2. ПРАКТИЧЕСКАЯ ЧАСТЬ. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ДОСТУПА К БАЗЕ ДАННЫХ


2.1 Структура и интерфейс приложения


Разработка приложения осуществлялась с помощью программного пакета разработки программного обеспечения Delphi 2009 For Windows System 32. C помощью этой объектной ориентированной среды разработки создавалось программное обеспечения с доступом к базе данных Microsoft Access 2010. В ходе разработки приложения использовались стандартные наборы компонентов, функций, входящих в состав среды программирования Delphi 2009. Первым шагом при разработке приложения с доступом к БД было создание визуальной компоновки форм, размещение основных компонентов отвечающих за обеспечение доступа к базе данных. Непосредственно сама БД создавалась в программе Microsoft Access 2010, структура базы разрабатывалась под систему управления базой данных почтовая корреспонденция и в результате имеет несколько основных таблиц заполнения это виды корреспонденции, корреспонденция, операции, сотрудники.

Основной технологией для создания подключения к БД являлась технология ADO которая представляет собой основная модель доступа к данным для приложений, основанных на Microsoft NET. ADO (от англ <#"220" src="doc_zip1.jpg" />

Рисунок 2.1 - Окно подключения к БД.


По щелчку по кнопке Build откроется окно свойств связи с данными (Рисунок 2.1). При этом перед установкой подключения необходимо выбрать провайдера в данном случае при связях с БД MS Access и другие БД используется провайдер Microsoft.Jet.OLEDB.4.0 Provider.


Рисунок 2.2 - Окно свойств канала передачи данных.


Щелкая по нему откроется окно подключения к самой базе все что остается это указать путь к БД.

Далее обеспечивается связь компонентов DataSourse, ADOTable между собой и компонента DBGrid с компонентом DataSourse, вся связь осуществляется через свойства объектов. Компонент DBGrid служит вывода данных БД, следует запомнить что компонент DBGrid не хранит данные а выводит их. В приложении технология ADO реализует доступ к базе которая содержит несколько таблиц и именно эти таблицы выводятся на компонент DBGrid и пользователь непосредственно работающий с программой видит отображаемые таблицы.

Так же в приложении реализован алгоритм который обеспечивает заполнение обработку и сохранение данных в текстовой файл для последующего его открытия, редактирования и просмотра. Для непосредственного удобства в программе была разработана система экспорта содержимого DBGrid в Excel что в значительной мере улучшает и упрощает работу с приложением. Основную часть в разработке приложения помимо доступа к БД составляет и вход в БД под разными пользователями которые могли работать с программой, главной особенностью алгоритма является ограничение прав каждого пользователя в работе с приложением. С помощью компонента ADOTable основного алгоритма поиска реализуется поиск по БД во всех таблицах базы, поиск представляет собой фильтрацию по основным критериям фильтрования которые выбираются из соответствующего меню. Сам алгоритм работает следующим образом сначала проверяются поля куда вводятся данные если данные пусты то выводится сообщение о пустом поле, после фильтр ADOTable неактивен, выбирается критерий поиска и сравнивается с введенным значением далее активируем фильтр. Основной принцип алгоритма заключается в компоненте ADOTable и его фильтре данных.

Следующий алгоритм, алгоритм подсчета суммы продукции и количества записей в таблице. Реализуется с помощью компонента ADOQuery принцип работы компонентов технологии ADO схож в данном алгоритме с подошью свойства SQL Add идет выбор таблицы и поля где будет проводится сумма, вывод результата осуществляется свойством Fields и может выводится практически в любой компонент поддерживающий вывод. Для подсчета количества записей в таблице реализуется тот же самый алгоритм но с учетом вывода не суммы а количества записей IntToStr(ADOQuery2.RecordCount) стандартная система вывода информации преобразования целого типа в строковый.

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

·ComboBox

·RadioButton

·ToolBar

·PageControl

·Panel

·MainMenu

·Button

·BitBtn

·Image

·ImageList

·StatusBar

·ProgressBar

·Edit

Приведенные выше компоненты обеспечивают приложению функциональность, именно наличие этих и других компонентов в языке программирования представляет его средой разработки программного обеспечения. Так ImageList служит для присвоения изображения в формате bmp, ico различным визуальным компонентам которые используются в программе. Компонент StatusBar служит для вывода дополнительных, данных алгоритм реализован в программе на подсчет и вывод данных таблицы БД. Интерфейс приложения разработан под удобства пользователя он разбит на несколько частей:

1.Главное меню

В меню файл осуществляется :

·Выбор пользователя Меню->Файл->Выбор пользователя;

·Извещение Меню->Файл->Извещение;

·Квитанция Меню->Файл->Квитанция;

·Выход Меню->Фаил->Выход;

В меню управления осуществляется:

·Переход в начало БД Управление->В начало;

·Переход назад Управление->Назад;

·Переход вперед Управление->Вперед;

·Переход в конец БД Управление->В конец;

В меню опций осуществляется:

·Изменение цвета таблицы отображаемой БД Опции->Изменение цвета;


Рисунок 2.3 - Главное меню


2.Визуальное меню управления

В меню визуального управления осуществляется:

·В начало - переход в начало БД;

·Назад - переход на одну строку назад;

·Вперед - переход на одну строку вперед;

·В конец - переход в конец БД;

·Добавить - добавление новой записи в БД;

·Изменить - изменение записи в БД;

·Удалить - удаление записи из БД;

·Квитанция - вывод формы для печати квитанции;

·Извещение - Вывод формы для формирования извещения.


Рисунок 2.4 - Меню визуального управления


3.Рабочая область

В рабочей области осуществляется:

·Вывод таблиц БД;

·Поиск и фильтрация;

·Подсчет количества отправителей и получателей;

·Общее количество записей в строках.


Рисунок 2.5 - Рабочая область


4.Таблицы

В таблицах осуществляется:

·Виды корреспонденции - вывод наименований видов корреспонденции;

·Корреспонденция - вывод данных об отправителях и получателях почтовой корреспонденции, адресов, стоимости и дат;

·Операции - вывод информации о приеме и получении корреспонденции;

·Сотрудники - вывод информации о сотрудниках;


Рисунок 2.6 - БД Виды корреспонденции


Рисунок 2.7 - БД Корреспонденция


Рисунок 2.8 - БД Операции


Рисунок 2.9 - БД Сотрудники


5.Выбор пользователя

В выборе пользователя осуществляется:

·Выбор пользователя администратор Логин (Администратор) Пароль(0000);

·Выбор пользователя приемщик Логин (Приемщик) Пароль(0000);

·Выбор пользователя продавец Логин (Менеджер) Пароль(0000);

Выбор пользователя является основой базы данных, каждый пользователь обладает определенными правами.

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

Приемщик - осуществляет создание и ведение каталога почтовой корреспонденции, формирования прайс-листа на доставку почтовой корреспонденции и книги суммарного учета, заполнение стандартных входных форм для принятия корреспонденции.

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


Рисунок 2.10 - Выбор пользователя


2.2 Структурная схема взаимодействия объектов



2.3 Листинг программного кода


Листинг программного кода для формы входа в БД.

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls;= class(TForm): TListBox;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TTimer;: TLabel;: TBitBtn;: TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);ListBox1Click(Sender: TObject);FormActivate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2;

{$R *.dfm}TForm1.BitBtn1Click(Sender: TObject);Listbox1.ItemIndex of

: if (edit1.Text='Администратор') and (edit2.Text='0000') then.Show;('Здравствуйте Администратор.');.Caption:='Вы в базе под логином администратор';.ToolButton9.Enabled:=False;.GroupBox5.Visible:=False;('Неверный логин или пароль');

: if (edit1.Text='Приемщик') and (edit2.Text='0000') then.Show;.Caption:='Вы в базе под логином Приемщик';('Здравствуйте Приемщик.');.ToolButton9.Enabled:=False;.GroupBox5.Visible:=True;('Неверный логин или пароль');

: if (edit1.Text='Менеджер')and (edit2.Text='0000') then.Show;.Caption:='Вы в базе под логином Менеджер';('Здравствуйте Менеджер.');.GroupBox5.Visible:=False;.ToolButton9.Enabled:=True;

end('Вы указали неверный логин или пароль');

end;;TForm1.BitBtn2Click(Sender: TObject);.Close;;TForm1.ListBox1Click(Sender: TObject);TCustomListBox(Sender) doItemIndex >= 0 then.Caption:='Вход в базу данных почта как '+Items[ItemIndex];.Text := Items[ItemIndex];;;TForm1.FormActivate(Sender: TObject);.Caption := DateTimeToStr(Now);

end;.

Листинг программного кода для формы БД.

unit Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, DB, ADODB, ComCtrls, StdCtrls, ExtCtrls, DBCtrls,, ToolWin, Buttons,OleServer, EXCEL2000, ComObj, ExcelXP, Menus,, jpeg;= class(TForm): TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TTabSheet;: TDBGrid;: TPanel;: TGroupBox;: TEdit;: TComboBox;: TRadioButton;: TRadioButton;: TGroupBox;: TComboBox;: TEdit;: TDataSource;: TADOConnection;: TADOTable;: TADOTable;: TDataSource;: TPanel;: TDBGrid;: TGroupBox;: TComboBox;: TEdit;: TRadioButton;: TRadioButton;: TMainMenu;: TMenuItem;: TGroupBox;: TMenuItem;: TMenuItem;: TComboBox;: TEdit;: TDBGrid;: TADOTable;: TDataSource;: TADOQuery;: TToolBar;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TADOQuery;: TGroupBox;: TBitBtn;: TBitBtn;: TBitBtn;: TMenuItem;: TMenuItem;: TMenuItem;: TPanel;: TGroupBox;: TComboBox;: TEdit;: TRadioButton;: TRadioButton;: TGroupBox;: TComboBox;: TEdit;: TADOQuery;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TColorDialog;: TProgressBar;: TImage;: TToolBar;: TStatusBar;: TToolButton;: TTabSheet;: TADOTable;: TADOQuery;: TDataSource;: TDBGrid;: TBitBtn;: TGroupBox;: TComboBox;: TEdit;: TRadioButton;: TRadioButton;: TGroupBox;: TComboBox;: TEdit;: TImageList;ToolButton1Click(Sender: TObject);ToolButton3Click(Sender: TObject);ToolButton5Click(Sender: TObject);ToolButton7Click(Sender: TObject);ToolButton9Click(Sender: TObject);ToolButton11Click(Sender: TObject);Edit1Change(Sender: TObject);Edit2Change(Sender: TObject);Edit3Change(Sender: TObject);N3Click(Sender: TObject);N4Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);Edit4Change(Sender: TObject);PageControl1Change(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn5Click(Sender: TObject);BitBtn6Click(Sender: TObject);BitBtn7Click(Sender: TObject);Edit5Change(Sender: TObject);Edit6Change(Sender: TObject);N9Click(Sender: TObject);N14Click(Sender: TObject);N10Click(Sender: TObject);N13Click(Sender: TObject);Ds1Click(Sender: TObject);BitBtn4Click(Sender: TObject);BitBtn8Click(Sender: TObject);Edit7Change(Sender: TObject);Edit8Change(Sender: TObject);ToolButton12Click(Sender: TObject);Excel1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;: variant;:integer;:integer;,k,j:integer;Unit1, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;

{$R *.dfm}TForm2.ToolButton1Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.First;

: ADOTable2.First;

: ADOTable3.First;

: ADOTable4.First;;;TForm2.ToolButton3Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Prior;

: ADOTable2.Prior;

: ADOTable3.Prior;

: ADOTable4.Prior;;;TForm2.ToolButton5Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Next;

: ADOTable2.Next;

: ADOTable3.Next;

: ADOTable4.Next;;;TForm2.ToolButton7Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Last;

: ADOTable2.Last;

: ADOTable3.Last;

: ADOTable4.Last;;;TForm2.ToolButton9Click(Sender: TObject);pageControl1.ActivePageIndex of

:AdoTable1.Insert;

:ADOTable2.Insert;

:ADOTable3.insert;

:begin.Insert;.Show;;;;TForm2.ToolButton11Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Edit;

: ADOTable2.Edit;

: ADOTable3.Edit;

: ADOTable4.Edit;;;TForm2.ToolButton12Click(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Delete;

: ADOTable2.Delete;

: ADOTable3.Delete;

: ADOTable4.Delete;;;TForm2.Edit1Change(Sender: TObject);((Length(Edit1.Text) > 0)and(Length(ComboBox1.Text) > 0)) then.Filtered:=false;RadioButton1.Checked then.Filter:=Combobox1.Text + ' LIKE '+ #39 + Edit1.Text + '%' + #39.Filter:=Combobox1.Text + ' LIKE '+ #39+ '%' + Edit1.Text + '%' + #39;.Filtered:=true;ADOTable1.Filtered:=false;;TForm2.Edit2Change(Sender: TObject);Length(Edit2.Text) > 0 then.Filtered:=false;.Filter:=Combobox2.Text + ' = ' + #39 + Edit2.Text + #39;.Filtered:=true;ADOTable1.Filtered:=false;;TForm2.Edit3Change(Sender: TObject);((Length(Edit3.Text) > 0)and(Length(ComboBox3.Text) > 0)) then.Filtered:=false;RadioButton3.Checked then.Filter:=Combobox3.Text + ' LIKE '+ #39 + Edit3.Text + '%'+ #39.Filter:=Combobox3.Text + ' LIKE '+ #39+ '%' + Edit3.Text + '%' + #39;.Filtered:=true;ADOTable2.Filtered:=false;;TForm2.Edit4Change(Sender: TObject);Length(Edit4.Text) > 0 then.Filtered:=False;.Filter:=ComboBox4.Text + '=' + #39 + Edit4.Text + #39;.Filtered:=True;ADOTable2.Filtered:=False;;

//Меню в верху. TForm2.N10Click(Sender: TObject);PageControl1.ActivePageIndex of

: if ColorDialog1.Execute then DBGrid2.Color:=ColorDialog1.Color;

: if ColorDialog1.Execute then DBGrid1.Color:=ColorDialog1.Color;

: if ColorDialog1.Execute then DBGrid3.Color:=ColorDialog1.Color;;;TForm2.N13Click(Sender: TObject);.Show;;TForm2.N14Click(Sender: TObject);.Close;;TForm2.N3Click(Sender: TObject);PageControl1.ActivePageIndex of

: ADOTable1.First;

: ADOTable2.First;

: ADOTable3.First;

: ADOTable4.First;;;TForm2.N4Click(Sender: TObject);PageControl1.ActivePageIndex of

: ADOTable1.Prior;

: ADOTable2.Prior;

: ADOTable3.Prior;

: ADOTable4.Prior;;;TForm2.N5Click(Sender: TObject);PageControl1.ActivePageIndex of

: ADOTable1.Next;

: ADOTable2.Next;

: ADOTable3.Next;

: ADOTable4.Next;;;TForm2.N6Click(Sender: TObject);PageControl1.ActivePageIndex of

: ADOTable1.Last;

: ADOTable2.Last;

: ADOTable3.Last;

: ADOTable4.Last;;;TForm2.N9Click(Sender: TObject);.Show;;TForm2.PageControl1Change(Sender: TObject);pageControl1.ActivePageIndex of

: ADOTable1.Next;

: ADOTable2.Next;;PageControl1.ActivePageIndex of

: begin.Panels[0].Text:='Система управления базой';.Panels[1].Text:='';;

: begin.Active:=False;.SQL.Clear;.SQL.ADD ('SELECT * FROM виды_корреспонденции Where код_кор');.Active:=True;.Panels[0].Text: ='Количество записей '+IntToStr(ADOQuery1. RecordCount);.Panels[1].Text:='';;

: begin.Active:=False;.SQL.Clear;.SQL.ADD('SELECT * FROM корреспонденция Where уч_номер');.Active:=True;.Panels[0].Text:='Количество записей '+IntToStr(ADOQuery2.RecordCount);.Panels[1].Text:='';;

: begin.Active:=False;.SQL.Clear;.SQL.ADD('SELECT * FROM операции Where код_операции');.Active:=True;.Panels[0].Text:='Количество записей '+IntToStr(ADOQuery3.RecordCount);.Panels[1].Text:='';;

: begin.Active:=False;.SQL.Clear;.SQL.ADD('SELECT * FROM сотрудники Where код_сотрудника');.Active:=True;.Panels[0].Text:='Количество записей '+IntToStr(ADOQuery4.RecordCount);.Panels[1].Text:='';;;;TForm2.BitBtn1Click(Sender: TObject);.Show;Change(PageControl1);;TForm2.BitBtn2Click(Sender: TObject);.Show;Change(PageControl1);;TForm2.BitBtn3Click(Sender: TObject);.Show;Change(PageControl1);;TForm2.BitBtn4Click(Sender: TObject);.Show;;TForm2.BitBtn5Click(Sender: TObject);.Insert;;TForm2.BitBtn6Click(Sender: TObject);.Edit;;TForm2.BitBtn7Click(Sender: TObject);.Delete;;TForm2.BitBtn8Click(Sender: TObject);.Show;Change(PageControl1);;TForm2.Ds1Click(Sender: TObject);.Show;;TForm2.Edit5Change(Sender: TObject);((Length(Edit5.Text) > 0)and(Length(ComboBox5.Text) > 0)) then.Filtered:=false;RadioButton5.Checked then.Filter:=Combobox5.Text + ' LIKE '+ #39 + Edit5.Text + '%'+ #39.Filter:=Combobox5.Text + ' LIKE '+ #39+ '%' + Edit5.Text + '%' + #39;.Filtered:=true;ADOTable3.Filtered:=false;;TForm2.Edit6Change(Sender: TObject);Length(Edit6.Text) > 0 then.Filtered:=false;.Filter:=Combobox6.Text + ' = ' + #39 + Edit6.Text + #39;.Filtered:=true;ADOTable3.Filtered:=false;;TForm2.Edit7Change(Sender: TObject);((Length(Edit7.Text) > 0)and(Length(ComboBox7.Text) > 0)) then.Filtered:=false;RadioButton8.Checked then.Filter:=Combobox7.Text + ' LIKE '+ #39 + Edit7.Text + '%'+ #39.Filter:=Combobox7.Text + ' LIKE '+ #39+ '%' + Edit7.Text + '%' + #39;.Filtered:=true;ADOTable4.Filtered:=false;;TForm2.Edit8Change(Sender: TObject);Length(Edit8.Text) > 0 then.Filtered:=false;.Filter:=Combobox8.Text + ' = ' + #39 + Edit8.Text + #39;.Filtered:=true;ADOTable4.Filtered:=false;;TForm2.Excel1Click(Sender: TObject);.show;;.

Листинг программного кода для формы редактора заказов.

unit Unit7;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, DB, ADODB, ImgList, ComCtrls, ToolWin;= class(TForm): TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TToolBar;: TToolButton;: TToolButton;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TCheckBox;ToolButton1Click(Sender: TObject);ToolButton3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm7;Unit2;

{$R*.dfm}TForm7.ToolButton1Click(Sender: TObject);.ADOTable2.Insert;.ADOTable2.Edit;.ADOTable2.FieldByName('уч_номер').Value:=LabeledEdit5.Text;.ADOTable2.FieldByName('код_операции').Value:=LabeledEdit1.Text;.ADOTable2.FieldByName('код_вида_кор').Value:=LabeledEdit2.Text;.ADOTable2.FieldByName('код_сотрудника').Value:=LabeledEdit3.Text;.ADOTable2.FieldByName('получатель').Value:=LabeledEdit4.Text;.ADOTable2.FieldByName('адрес_получ').Value:=LabeledEdit6.Text;.ADOTable2.FieldByName('отправитель').Value:=LabeledEdit7.Text;.ADOTable2.FieldByName('адрес_отпрв').Value:=LabeledEdit8.Text;.ADOTable2.FieldByName('дата').Value:=LabeledEdit9.Text;.ADOTable2.FieldByName('ценность').Value:=LabeledEdit10.Text;.ADOTable2.FieldByName('вес').Value:=LabeledEdit11.Text;.ADOTable2.FieldByName('цена').Value:=LabeledEdit12.Text;.ADOTable2.FieldByName('номер_квитанции').Value:=LabeledEdit13.Text;.ADOTable2.Post;.Close;;TForm7.ToolButton3Click(Sender: TObject);.Close;;.


2.4 Требования к программному и аппаратному обеспечению


Операционная система: Windows 2000/2003 Professional/Vista.

Процессор: Pentium4, частота 700Мгц или выше.

Оперативная память: 6Мб.

Память на жестком диске: 4Мб.

Клавиатура, мышь.


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


Использование программного обеспечения начинается со входа в базу данных пользователя. Пользователь должен ввести свой логин и пароль в соответствии со своей квалификацией. Пользователю могут соответствовать три вида квалификации: Администратор, Приемщик и Менеджер. Каждый из пользователей имеет свой уникальный пароль. В нашем случае все три пользователя имеют пароль: 0000.

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

Управление в программе ведется с помощью кнопок находящихся в верхней части приложения. Кнопки имеют следующие функции: В начало - возврат в самое начало таблицы; Вперед - перемещение по таблице на строку вниз; Назад - перемещение по таблице на строку вверх; В конец - перемещение в самый низ таблицы; Добавить - переход к форме менеджера; Изменить - редактирование данных в строке; Удалить - удаление строки с данными; Квитанция - вывод формы для создания квитанции; Извещение - вывод формы для формирования извещения.


Заключение


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

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


Список использованной литературы


1. Технологии Delphi. Разработка приложений для бизнеса. Учебный курс Авторы: Бобровский С. 1-е издание, 2007 год, 720 стр. изд. Питер

. Практикум по информатике под редакцией Е.К. Хеннера. Москва, 2001г.

. Жуков А. Изучаем De1phi. Москва, 2005г.

. Никулин Е. Компьютерная геометрия и алгоритмы машинной графики. - СПб.: Питер, 2004. - 416 с.

. Порев В. Н. Компьютерная графика. - СПб.: БлВ - Петербург, 2002. - 432 с.

. Культюнов Н. Б. Delphi 6. программирование на Object Pascal. - СПб.: БХВ - Петербург, 2002. - 432 с.

. Краснов М. В. DirectX. Графика в проектах Delphi. - СПб.: БХВ - Петербург, 2004. - 352 с. 9. Мозговой М. В. Занимательное протраММИрОВaJП1е. Самоучитель. - СПб.: Питер, 2001. ¬ 528 с.

. Тихомиров Ю. OpenGL. Программирование трехмерной графики. СПб.: Пшер, 2004. - 304 с.

. Шишкин Е. В., Боресков А. В. Компьютерная Графика. Полигональные модели. - М. :ДИАЛОГ - МИФИ, 2000. - 464 с.

. Архангельский А.Я. «Приемы программирования в Delphi на основе VCL. - М.: ООО «Бином-Пресс», 2006г. - 944 с.: ил.

.Культин Н.Б. «Основы программирования в Delphi 7. - СПб.: БХВ-Петербург. 2003. - 608с.

. М.В. Сухарев «Основы Delphi. Профессиональный подход - СПб.: Наука и Техника, 2004. - 600 с.

. Фараонов В.В. «ТurboPascal. - СПб.: БХВ-Петербург, 2004. - 1056 с.

. Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. - СПб.: БХВ-Петербург, 2003. - 288 с.

. Фленов М. Е. Библия Delphi. - СПб.: БХВ-Петербург, 2004. - 880 с.


СОДЕРЖАНИЕ ВВЕДЕНИЕ . ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. КЛАССЫ И ОБЪЕКТЫ В PASCAL .1 Объявление класса. Поля и методы .2 Объявление объекта. Инициализация по

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ