|
Программная реализация разложения временного процесса в тригонометрический ряд |
а рисунке 3.6 приведены команды, вызываемые пунктом главного меню «Помощь». Рисунок 3.6 - Пункт меню «Помощь»При выборе пункта меню «Презентация» начинается просмотр возможностей программы под управлением Power Point.Выбор пункта меню «Справка» приводит к появлению окна помощи, содержащим сведения о работе с программой (см. рисунок 3.7)Рисунок 3.7 - Окно справочной системыВыбор пункта главного меню «О программе» позволяет получить на экране краткие сведения о программе в виде, показанном на рисунке 3.8.Рисунок 3.8 - Окно «About»Кроме главного меню программа управляется также кнопками на панели инструментов, которые дублирует наиболее важные пункты главного меню и предназначены для оперативного выполнения основных команд:Рисунок 3.9 - Панель инструментовТакже имеется четыре управляющие кнопки, показанные на рисунке 3.10.Рисунок 3.10 - Управляющие кнопкиКнопка «Вычислить» обеспечивает расчет состояния системы и вывод соответствующей информации. Кнопка «График» обеспечивает появление окна с графиком, т.е. имеется возможность просмотра результатов разложения временного процесса в тригонометрический ряд при заданном значении w. Можно просмативать сразу как несколько графиков (рисунок 3.11), так и один для определенного значения w (рисунок 3.12). Рисунок 3.11 - График разложения временного процесса в тригонометрический ряд при заданном значении w=3Рисунок 3.12 - График разложения временного процесса в тригонометрический ряд при заданном значении w=3 и w=1Кнопка «Очистить» очищает область построения графиков. Для закрытия окна используется кнопка «Закрыть».Для выхода из программы следует нажать кнопку «Выход».4. Методика испытанийЦелью проведения испытаний является проверка работоспособности (надежности) программы при различных условиях ее функционирования.Программа должна обеспечивать корректность ввода исходных данных (путем осуществления соответствующих проверок и информирования пользователя о возникших неточностях в работе), а также получение непротиворечивого результата.Для демонстрации работоспособности программы необходимо провести ряд испытаний с различными начальными условиями. Для обеспечения нормальной работы программы требуется наличие соответствующих DLL, а также приложений Word, Excel, PowerPoint.Для использования COM-сервера, он должен быть предварительно зарегистрирован в системе. Тестовые примеры выполнялись в среде операционной системы Windows XP Profesional при использовании процессора Intel Pentium 4 2.4 GHz и разрешении экрана 1024*768. Для работы с программой необходимо также наличие клавиатуры и манипулятора типа «мышь».Испытание проведем с начальными данными, указанными в задании.Начальные данные: при w=3Результаты этого вычислительного эксперимента приведены на рисунках 4.1, 4.2.Рисунок 4.1 -Тестовая таблица №1Рисунок 4.2 - Тестовый график №1Если w не выбрано, выводится сообщение об ошибке (рисунок 3.5). Произведем также испытание при других значениях исходных данных и с использованием разработанного COM-объекта.Начальные данные: при w=5Полученные результаты Рисунок 4.3 - Тестовый график №2Рисунок 4.4 - Тестовая таблица №2Таким образом, проведенное тестирование программы не выявило сбойных ситуаций и некорректностей в ее работе. Следует считать, что в целом программа протестирована, отвечает поставленным требованиям и вполне работоспособна.ЗаключениеВ ходе выполнения курсовой работы:· были закреплены знания по курсу «Конструирование программ и языки программирования»;· приобретен опыт при разработке объектно-ориентированных программ;· изучены принципы создания динамических библиотек;· изучены и реализованы способы создания клиент-серверных приложений на базе COM-технологий;· освоены методы передачи данных между приложениями;· изучены возможности создания справочной системой высокой степени сложности и различных форматов.При разработке программы использовался модульный принцип программирования. Такая структура программы позволяет в дальнейшем модифицировать отдельные её части без нарушения работоспособности и потери функциональности приложения.Программа имеет достаточно ясный и понятый дружелюбный пользовательский интерфейс, обеспечивающий удобство в работе и обеспечивающий получение необходимой пользователю информации с наименьшими затратами времени.Таким образом, разработанное в ходе выполнения курсовой работы приложение является законченным программным продуктом.Программа может быть использована для физического разложения временного процесса в тригонометрический ряд.Литература1. Фаронов В.В. Delphi 6. Учебный курс.-М.: Издатель Молгачева С.В., 2001.-672с.2. Елмакова Н., Трепалин С., Тенцер А. Delphi 6 и технология COM.-СПб.: Питер, 2002. - 640 с.3. Федоров А.. Delphi 5.0 для всех. -М.: Тоо фирма “КомпьютерПресс”, 1998. - 464 с.4. Марко Кэнту. Delphi 5 для профессионалов.-СПб.: Питер. 2001. - 944 с.5. Бобровский С. Delphi 5: учебный курс- СПб: Издательство «Питер», 2000.- 640с.6. А.М.Епанешников, В.А.Епанешников Программирование в среде Delphi.-М.:»Диалог МИФИ», 1998.ПриложениеФайл проекта VremRiad.dprprogram VremRiad;uses Forms,Windows,Classes,Dialogs,SysUtils, UnitMain in 'UnitMain.pas' {Form1}, UnitRiad in 'UnitRiad.pas', UComRiad in 'UComRiad.pas', UCom_Tlb in 'UCom_Tlb.pas', UnitGraphic in 'UnitGraphic.pas' {FormGraphic}, VremRiad_TLB in 'VremRiad_TLB.pas';{$R *.TLB}//******************************************Type//Процедурный тип для функции, вызываемой из DLL TProc=procedure(AOwner:TComponent); Var Handle : LongWord; //Дескриптор DLL ShowPrompt : tproc; //Переменная для функции//******************************************* {$R *.res}begin Application.Initialize;//Загрузка иконкиApplication.Icon.LoadFromFile('Prompt.ico');//*****Загрузка библиотеки и показ заставки******//Handle:= LoadLibrary('Prompt.dll');if Handle <> 0 thenbegin//Получить адрес функции из библиотеки@ShowPrompt:= GetProcAddress(Handle, PChar('ShowPrompt'));ShowPrompt(Application); //Показать заставкуFreeLibrary(Handle); //Удалить библиотекуendelse ShowMessage('Не найдена библиотека Prompt.dll');//***********************************************// Application.CreateForm(TForm1, Form1); Application.CreateForm(TFormGraphic, FormGraphic); Application.Run;end.Файл головного модуля UnitMain.pasunit UnitMain;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Menus, ToolWin, ComCtrls, XPMan, ImgList, Grids,IniFiles, Clipbrd, WordXP, Math, ShellAPI, ExtCtrls, msppt8,UCom_Tlb, ComObj, MSPpt2000, PowerPointXP, Activex, OleServer, Buttons;type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; RadioGroup1: TRadioGroup; BitBtn1: TBitBtn; Panel3: TPanel; BitBtn2: TBitBtn; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N6: TMenuItem; BitBtn3: TBitBtn; N7: TMenuItem; StringGrid1: TStringGrid; Label9: TLabel; Label10: TLabel; BitBtn4: TBitBtn; PowerPointApplication1: TPowerPointApplication; Presentation: TSpeedButton; N8: TMenuItem; Word1: TSpeedButton; Excel1: TSpeedButton; N9: TMenuItem; EXcel2: TMenuItem; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; procedure BitBtn3Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure PresentationClick(Sender: TObject); procedure Word1Click(Sender: TObject); procedure Excel1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); // Procedure TFormMain.PresentationClick(Sender: TObject); private { Private declarations } publicIniFileName : string; //Имя файла инициализацииprocedure ReportExcel(AStringGrid : TStringGrid); //Передать отчет в Excelprocedure ReportWord (AStringGrid : TStringGrid); //Передать отчет в Word { Public declarations } end;var Form1: TForm1; Flag : bool; //Флаг определения вида используемого объекта const x=1; const P=500; implementationuses UnitRiad, UnitGraphic;{$R *.dfm}procedure TForm1.BitBtn3Click(Sender: TObject);begin Close;end;procedure TForm1.FormActivate(Sender: TObject); var i:integer;begin //По умолчанию установить работу с обычным (классическим) объектом Flag:= false; //Имя Ini-файла сохранения параметров IniFileName:= GetCurrentDir+'\Riad.ini'; //Создать обычный объект Riad:= TRiad.Create(IniFileName); //Считать данные из Ini-файла Riad.ReadFromIniFile; //Вычисление и вывод данных в таблицу Riad.Table(StringGrid1); StringGrid1.Cells[0,0]:='Номер' ; StringGrid1.Cells[1,0]:='Время(с)'; StringGrid1.Cells[2,0]:='F{t} при w=1'; StringGrid1.Cells[3,0]:='F{t} при w=3'; StringGrid1.Cells[4,0]:='F{t} при w=5'; for i:=1 to 201 do StringGrid1.Cells[0,i]:=IntToStr(i) ; for i:=0 to 201 do begin StringGrid1.Cells[1,i+1]:=FloatToStr(0.5*i) end; label10.Caption:='';end;procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; begin Riad.SetW(); //Вычисление и вывод данных в таблицу Riad.Table(StringGrid1); end;procedure TForm1.BitBtn4Click(Sender: TObject);var i:integer;begin for i:=0 to 201 do begin StringGrid1.Cells[2,i+1]:=''; StringGrid1.Cells[3,i+1]:=''; StringGrid1.Cells[4,i+1]:=''; end;end;procedure TForm1.BitBtn2Click(Sender: TObject);begin FormGraphic.Show;end;procedure TForm1.N4Click(Sender: TObject);Type//Процедурный тип для вызова процедуры из DLLTProc = procedure(AOwner:TComponent);varHandle : LongInt; //Дескриптор библиотекиShowAbout : TProc; //Переменая для вызова функции из DLLbeginbegin//Получить значение дескриптора загруженной библиотекиHandle:=LoadLibrary('About.dll');//Проверить существование библиотекиif Handle = 0 thenbeginShowMessage('Библиотека не найдена : About.dll');exit;end;//Получить адрес вызываемой функции@ShowAbout:= GetProcAddress(Handle, PChar('ShowAbout'));//Вызов функции, показывающей форму AboutShowAbout(Application);FreeLibrary(Handle); //Выгрузка библиотекиend;procedure TForm1.PresentationClick(Sender: TObject);varname : string;pw : TOleEnum;begin //Запуск презетацииName:= ExtractFileDir(Application.ExeName) + '\Vremennoj process.ppsx';PowerPointApplication1.Activate;PowerPointApplication1.Presentations.Open(Name, pw, pw, pw);PowerPointApplication1.Presentations.Item(1).SlideShowSettings.Run;//Другой способ запуска// ShellExecute(Application.MainForm.Handle,PChar('Open'),// PChar('Riad.pps'), NIL, PChar(''), sw_ShowNormal);end;//TFormMain.PresentationClickprocedure TForm1.Word1Click(Sender: TObject);begin //Отчет в WordReportWord(StringGrid1);end;//TFormMain.Word1ClickProcedure TForm1.ReportExcel(AStringGrid : TStringGrid);//Отчет в ExcelvarExcel : variant;WorkBook : variant; //Рабочая книгаi, j : integer;begin//Cоздать форму для графикаFormGraphic:= TFormGraphic.Create(Form1);//Создать Соm-объектExcel:= CreateOleObject('Excel.Application');//Отключить реакцию на внешние события-для ускорения процесса передачи данныхExcel.Application.EnableEvents:= false;//Добавить рабочую книгуWorkBook:= Excel.WorkBooks.Add;//Изменение ширины столбцовfor j:=0 to AStringGrid.ColCount doWorkBook.WorkSheets[1].Columns[j+1].ColumnWidth:= 10;//Вывод строкиWorkBook.WorkSheets[1].Cells[1,1]:= 'Отчет о колебаниях стержня';//Заполнение ячеек таблицы Excel значениями из StringGrid//Нумерация ячеек в Excel начинается с 1 и идет в формате строка-столбецfor i:= 1 to AStringGrid.RowCount + 1 dofor j:= 0 to AStringGrid.ColCount doWorkBook.WorkSheets[1].Cells[i+1, j+1]:= AStringGrid.Cells[j, i-1];//Вставит изображение графика в ExcelWorkBook.WorkSheets[1].Shapes.AddPicture(GetCurrentDir+'\PictureWord.bmp',True, True, 0, (AStringGrid.RowCount+2)*12.5+10, FormGraphic.Chart1.Width*0.8,FormGraphic.Chart1.Height*0.8);//Уничтожить формуFormGraphic.Release;FormGraphic:= NIL;//Показать ExcelExcel.Visible:=true;end;//TFormMain.ReportExcelProcedure TForm1.ReportWord(AStringGrid : TStringGrid);//Отчет в Wordvari,j,k : integer;a,b,c : OleVariant;wa : TWordApplication; //WordApplicationwd : TWordDocument; //WordDocumentbegin//Создать форму для графикаFormGraphic:= TFormGraphic.Create(Form1);//Создать com-объектwa:= TWordApplication.Create(Form1);//Подключиться к серверу Wordwa.Connect;//Добавить новый документwa.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);wd:= TWordDocument.Create(Form1);wd.ConnectTo(wa.ActiveDocument);//Отменить проверку правописанияwa.Options.CheckSpellingAsYouType:=False;//Отменить проверку орфографииwa.Options.CheckGrammarAsYouType:=False;a:= 0;b:= 0;wd.Range.InsertAfter('Отчет');c:= Length(wd.Range.Text) - 1;a:= c;b:= c + 10;//Добавить таблицуwd.Tables.Add(wd.Range(a), AStringGrid.RowCount,
Страницы: 1, 2, 3
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|