Автор работы: Пользователь скрыл имя, 02 Октября 2011 в 10:21, курсовая работа
Информатика является основной базой для проведения научно-исследовательских и проектно-технических работ в современной промышленности. С помощью аппаратно-программных комплексов выполняются как научно-технические расчеты, так и информационный и патентный поиск данных по необходимой тематике.
Согласно заданию цель данной курсовой работы – разработка программы численного решения эллептического дифференциального уравнения Лапласа в частных производных метода Дирихле в среде программирования Borland C++Builder для персонального компьютера.
Содержание
Введение 4
1 Описание поставленной задачи 5
1.1 Краткая характеристика численного метода 5
1.2 Анализ литературы и программ, патентный список 5
1.3 Формирование требований к программе 6
2 Проектирование схем алгоритмов 7
2.1 Разработка алгоритма головной программы 7
2.2 Проектирование алгоритма ввода исходных данных 9
2.3 Проектирование алгоритма вывода результатов 10
2.4 Проектирование алгоритма численного метода 10
3 Кодирование программы в среде программирования 11
3.1 Разработка структуры программы 11
3.2 Разработка интерфейса пользователя 11
3.2.1 Разработка интерфейса головной формы. 11
3.2.2 Интерфейс формы ввода данных Form2 12
3.2.3 Интерфейс формы результатов расчёта Form3 13
3.2.4 Интерфейс формы информации о программе Form4 13
3.3 Программирование ввода-вывода данных 14
3.4 Программная реализация численного метода 15
4 Тестирование работоспособности программы 16
4.1 Описание аппаратной конфигурации для тестирования 16
4.2 Тестирование разработанной программы 17
4.3 Решение задачи в математической системе Mathcad 19
4.4 Анализ результатов тестирования 19
5 Разработка гипертекстового варианта документа работы 21
Заключение 22
Список использованных источников 23
Приложение А 24
Тексты спроектированной программы 24
Результаты тестирования программы 32
Приложение В 33
Решение в математической системе Mathcad 33
Приложение Д 34
Гипертекстовая справка по программе 34
Приложение Е 36
Application->CreateForm(__
Application->CreateForm(__
Application->CreateForm(__
Application->CreateForm(__
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&
}
}
return 0;
}
//----------------------------
Файл Unit1.h (форма Form1)
//----------------------------
#ifndef Unit1H
#define Unit1H
//----------------------------
Продолжение
приложения А
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
//----------------------------
class TFormM : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TMainMenu *MainMenu1;
TButton *ButtonVVOD;
TButton *ButtonREZ;
TButton *ButtonEXIT;
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *N4;
TMenuItem *N5;
TMenuItem *N6;
void __fastcall FormShow(TObject *Sender);
void __fastcall N4Click(TObject *Sender);
void __fastcall ButtonEXITClick(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall ButtonVVODClick(TObject *Sender);
void __fastcall ButtonREZClick(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall N5Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormM(TComponent* Owner);
};
//----------------------------
extern PACKAGE TFormM *FormM;
//----------------------------
#endif
Файл Unit1.срр (форма Form1)
#include <vcl.h>
#pragma hdrstop
#include "Unit4.h"
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormP *FormP;
//----------------------------
__fastcall TFormP::TFormP(TComponent* Owner)
: TForm(Owner)
Продолжение
приложения А
{
}
//----------------------------
void __fastcall TFormP::ButtonCLOSEClick(
{
Close();
}
Файл Unit2.h (форма Form2)
//----------------------------
#ifndef Unit2H
#define Unit2H
//----------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
//----------------------------
class TFormD : public TForm
{
__published: // IDE-managed Components
TEdit *EditX0;
TEdit *EditY0;
TEdit *EditE;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TButton *ButtonRUN;
TButton *ButtonLOAD;
TButton *ButtonCL;
TOpenDialog *OpenDialog1;
TEdit *EditA;
TEdit *EditB;
TEdit *EditC;
TEdit *EditD;
TEdit *EditEE;
TEdit *EditF;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TLabel *Label8;
TLabel *Label9;
void __fastcall ButtonCLClick(TObject *Sender);
void __fastcall ButtonLOADClick(TObject *Sender);
void __fastcall ButtonRUNClick(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormD(TComponent* Owner);
};
//----------------------------
Продолжение
приложения А
extern PACKAGE TFormD *FormD;
//----------------------------
#endif
Файл Unit2.cpp (форма Form2)
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <math.h>
#include "Unit2.h"
#include "Unit1.h"
#include "Unit3.h"
#include "Unit4.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormD *FormD;
float X0,Y0,Xk,Yk,X,Y,e,S1,S2,dX,dY,
float f(float xx,float yy)
{
return A*xx*xx+B*yy*yy+C*xx+D*yy+E*
}
float gradx(float xx,float yy)
{
return 2*A*xx+C+E*yy;
}
float grady(float xx,float yy)
{
return 2*B*yy+D+E*xx;
}
//----------------------------
__fastcall TFormD::TFormD(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TFormD::ButtonCLClick(TObject *Sender)
{
Close();
}
//----------------------------
void __fastcall TFormD::ButtonLOADClick(
{
if (OpenDialog1->Execute())
{
char *namef=OpenDialog1->FileName.
ifstream fin(namef,ios_base::in);
fin>>A;
Продолжение
приложения А
fin>>B;
fin>>C;
fin>>D;
fin>>E;
fin>>F;
fin>>X0;
fin>>Y0;
fin>>e;
EditA->Text=FloatToStr(A);
EditB->Text=FloatToStr(B);
EditC->Text=FloatToStr(C);
EditD->Text=FloatToStr(D);
EditEE->Text=FloatToStr(E);
EditF->Text=FloatToStr(F);
EditX0->Text=FloatToStr(X0);
EditY0->Text=FloatToStr(Y0);
EditE->Text=FloatToStr(e);
fin.close();
}
}
//----------------------------
void __fastcall TFormD::ButtonRUNClick(TObject *Sender)
{
if(EditX0->Text==""||EditY0->
{ShowMessage("Ïðîâåðüòå
return;
}
A=StrToFloat(EditA->Text);
B=StrToFloat(EditB->Text);
C=StrToFloat(EditC->Text);
D=StrToFloat(EditD->Text);
E=StrToFloat(EditEE->Text);
F=StrToFloat(EditF->Text);
X0=StrToFloat(EditX0->Text);
Y0=StrToFloat(EditY0->Text);
e=StrToFloat(EditE->Text);
Xk=X0;
Yk=Y0;
do
{
S1=gradx(Xk,Yk)/sqrt(gradx(Xk,
S2=grady(Xk,Yk)/sqrt(gradx(Xk,
X=Xk-S1;
Y=Yk-S2;
dX=abs(X-Xk);
dY=abs(Y-Yk);
Xk=X;
Yk=Y;
}
while(dX>e & dY>e);
FormM->ButtonREZ->Enabled=
FormM->N5->Enabled=true;
FormR->EditX->Text=
FormR->EditY->Text=
Продолжение
приложения А
FormR->EditF->Text=
Close();
FormR->ShowModal();
Close();
}
//----------------------------
Файл Unit3.h (форма Form3)
//----------------------------
#ifndef Unit3H
#define Unit3H
//----------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
Информация о работе Поиск локального минимума методом градиентного спуска