Белорусскийнациональный технический университет
Кафедра информационныхсистем и технологий
ПОЯСНИТЕЛЬНАЯЗАПИСКА
ккурсовому проекту (работе)
подисциплине «Конструирование программ и языки программирования»
Тема: ”Программная реализация разложения временного процессав тригонометрический ряд”
Исполнитель:_______________________
(подпись)
Студент 2 курса 417318 группы
Руководитель: _____________________ Гурский Н.Н.
(подпись)
Минск 2010
Содержание
Оглавление
Введение
1.Математическая формулировка задачи
2.Описание программы
2.1Структурная схема программы
2.2Описание разработанного класса
2.3Описание реализации технологии COM
2.4Описание динамических библиотек
2.5Основные возможности программы
2.6Средства использования сервисов, предоставляемых Microsoft Office
3.Руководство пользователя
4.Методика испытаний
Заключение
Литература
Приложение
Файлпроекта VremRiad.dpr
Файлголовного модуля UnitMain.pas
Файлвывода графика UnitGraphic.pas
Файлреализации класса - UnitRiad.pas
Файлописания динамической библиотеки About.dpr
Файлописания динамической библиотеки Prompt.dpr
Файлпроекта COM-сервера – MyServer.dpr
Файлописания COM- класса – UComRiad.pas
Временным рядом обычноназывается последовательность событий, наблюдаемых через некоторые, как правило,равные интервалы времени. Применительно к валютному дилингу это может бытьтекущее дневное значение обменного курса, по которому произошла очереднаясделка - когда мы изучаем дневной арбитраж, либо значение цены закрытия - еслимы пытаемся построить прогноз на несколько дней вперед.
Временной ряд — этоупорядоченная (по времени) последовательность значений некоторой произвольнойпеременной величины. Каждое отдельное значение данной переменной называетсяотсчётом временного ряда. Тем самым, временной ряд существенным образомотличается от простой выборки данных.
Анализ временных рядов —совокупность математико-статистических методов анализа, предназначенных длявыявления структуры временных рядов и для их прогноза. Сюда относятся, вчастности, методы регрессионного анализа. Выявление структуры временного ряданеобходимо для того, чтобы построить математическую модель того явления,которое является источником анализируемого временного ряда. Прогноз будущихзначений временного ряда используется при принятии решений, например, вэкономике.
Временные ряды состоят издвух элементов:
· периода времени,за который или по состоянию на который приводятся числовые значения;
· числовых значенийтого или иного показателя, называемых уровнями ряда.
Данная программапозволяет получить численные значения, описываемые следующей функциональнойзависимостью
при заданных начальныхданных
Результаты отображаются ввиде таблицы и графиков, совмещенных в одной системе координат.
Для разработки программыбыла выбрана среда визуального проектирования Borland Delphi 7.0. Она позволяетза короткий промежуток времени и с наименьшими затратами физических иумственных сил создавать прикладные программы различной направленности,обеспечивая при этом наличие дружественного оконного интерфейса. Указанные (атакже ряд других) преимущества среды Delphi 7.0. обуславливают широкое еёиспользование при создании программного обеспечения разнообразного назначения.
Разложения временного процесса в тригонометрический ряд осуществляетсяпри вычислении численных значений при использовании следующей функциональнойзависимости:
Начальные данные:
Вычисления необходимо провести для трех значений
:Результаты получить ввиде таблицы и графиков, совмещенных в одной системе координат.
Структурно программасостоит из главного модуля, модулей описания вспомогательных форм, динамическихбиблиотек, файлов помощи и обращений к другим программам. Связь модулейприведена на рисунке 2.1.
Рисунок-2.1. Структурнаясхема связей модулей программы
В результате анализапредметной области для её описания и моделирования был разработан класс TRiad, инкапсулирующий поля, методы исвойства, применимые к рассматриваемому объекту.
TRiad = class//класс
private
IniFile :TIniFile; //Объект Ini-файла
w: integer;
public
ConstructorCreate(AIniFileName : string);
Destructor Destroy;
procedureGraphic(AChart:TChart); //Постоение графика
procedureTable(AStringGrid:TStringGrid); //Вывод в таблицу
procedureWriteToIniFile; //Запись в Ini-файл
procedureReadFromIniFile; //Чтение из Ini-файла
function GetW: integer; //Получить w
procedureSetW; //Установить w
functionF(w:integer;t:extended):extended;//Вычисление суммы
//property ww: integer read GetW write SetW;
private
end;
Назначение полей иинкапсулированных в классе процедур и функций (методов) приведено вкомментариях. Описание и реализация класса структурно оформлено в отдельном Unit – UnitRiad. Используемые секции public и private определяют области видимости элементов класса. Так,видно, что все поля класса являются полностью закрытыми, а доступ к ниморганизуется с помощью методов и свойств.
В соответствии стребованиями на разработку данной курсовой работы была также реализованавозможность экспорта методов созданного класса с помощью технологии COM. Дляэтого был создан сервер в виде DLL –программный модуль MyServer.
libraryMyServer;
{ Importantnote about DLL memory management: ShareMem must be the first unit in yourlibrary's USES clause AND your project's (select Project-View Source) USESclause if your DLL exports any procedures or functions that pass strings asparameters or function results. This applies to all strings passed to and fromyour DLL--even those that are nested in records and classes. ShareMem is theinterface unit to the BORLNDMM.DLL shared memory manager, which must bedeployed along with your DLL. To avoid using BORLNDMM.DLL, pass stringinformation using PChar or ShortString parameters. }
uses
SysUtils,
ComServ,
UComRiad in'UComRiad.pas',
UCom_Tlb in'UCom_Tlb.pas',
Classes,
MyServer_TLBin 'MyServer_TLB.pas';
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.res}
begin
end.
Этот сервер позволяетсоздать COM-объект, описание класса которого находится в модуле UСomRiad. Следует заметить, что данный классполностью соответствует, приведенному в п.2.2 классу TRiad и имеет и такое же название, т.е. он является его копией,за исключение конструктора Create, который заменен обычной процедурой.Непосредственный доступ к открытым элементам COM-класса осуществляется спомощью интерфейса IcomRiad,описанного в модуде UCom_Tlb.
При разработке приложениябыли реализованы 2 динамические библиотеки.
Динамическая библиотека Prompt.dll содержит заставку, появляющуюся после запускапрограммы, но до появления главного окна.
Библиотека содержит 1экспортируемую процедуру ShowPrompt, служащую для отображения формы.
libraryPrompt;
{ Importantnote about DLL memory management: ShareMem must be the first unit in yourlibrary's USES clause AND your project's (select Project-View Source) USESclause if your DLL exports any procedures or functions that pass strings asparameters or function results. This applies to all strings passed to and fromyour DLL--even those that are nested in records and classes. ShareMem is theinterface unit to the BORLNDMM.DLL shared memory manager, which must bedeployed along with your DLL. To avoid using BORLNDMM.DLL, pass stringinformation using PChar or ShortString parameters. }
uses
SysUtils,
Classes,
Windows,
UnitPrompt in'UnitPrompt.pas' {FormPrompt};
{$R *.res}
//Показатьзаставку
procedureShowPrompt(AOwner:TComponent);
var
Time:extended;
Form:TFormPrompt;
begin
Form:=TFormPrompt.Create(AOwner);//Создать форму
Time:=GetTickCount/1000; //Запомнить время
Form.Show; //Показать форму
Form.Repaint; //Перерисовать форму
//Пока не вышел лимитвремени - ничего не делать
whileGetTickCount/1000<Time+4 do;
Form.Close; //Закрытьформу
Form.Free; //Уничтожить форму
end;
exports ShowPrompt;
begin
end.
Библиотека About.dll содержит форму с информацией о программе.
library About;
uses
SysUtils,
Classes,
Forms,
UnitAbout in'UnitAbout.pas' {FormAbout};
{$R *.res}
//Показатьформу
procedureShowAbout(AOwner:TComponent);
var
Form:TFormAbout;
begin
Form:=TFormAbout.Create(AOwner);//Создать форму
Form.ShowModal; //Показать форму
Form.Free; //Уничтожить форму
end;
exportsShowAbout;
begin
end.
Библиотека содержитэкспортируемую функцию ShowAbout для отображения формы.
Программа начинается сотображения оригинальной заставки (содержится в Prompt.dll), а затем на экранепоявляется главное окно программы (модуль UnitMain). Главный модуль управляетработой всех других модулей в соответствии с запросами пользователя.
Он содержит:
· Вызов окна «Опрограмме»;
· Вызовпрезентации;
· Передачу данных вWord и Excel;
· Вызов формы«График»;
· Вызов окнапомощи;
· Сохранение данныхв Ini-файлах;
· Использованиевозможностей разработанного COM-сервера;
Диалог с пользователемподдерживается с помощью главного и выпадающего меню, панели инструментов,кнопок и других интерфейсных элементов.