После запуска файла ProjectOOP. exe на экране появилось окно программы (см. рисунок 1 приложения 2). После нажатия кнопки "Заполнить массив" при помощи электронной таблицы StringGrid были выведены значения элементов массива: поле dd (направление ветра) - в левой колонке, поле V (скорость) - в правой (см. рисунок 2 приложения 2). При выделении какой-либо ячейки таблицы в строке "Характеристики ветра" выводилось значение соответствующей пременной в виде dd-V. В строках "Составляющая скорости u" и "Составляющая скорости v" выводились соответствующие значения составляющих скорости (см. рисунок 3 приложения 2). Программа выводит значения элементов массива переменных класса wind на экран, вычисляет значения составляющих скорости для каждого элемента, следовательно, она работает правильно.
Проектирование и разработка классов является основой построения сложных программных комплексов. Навыки, приобретенные мною в ходе выполнения курсовой работы помогут в дальнейшем при выполнении курсовых и дипломного проекта.
В результате работы получены следующие результаты:
спроектирован класс wind, характеризующий ветровой режим,
построена UML- диаграмма класса,
написан программный модуль на языке программирования C++ в среде программирования C++Buiilder 6/0 демонстрирующий работу с классом wind,
разработано руководство по применению программы.
Приложение 1
Текст программы
Код заголовочного файла (kursOOP1. h):
// ---------------------------------------------------------------------------
#ifndef kursOOP1H
#define kursOOP1H
// ---------------------------------------------------------------------------
#include <Classes. hpp>
#include <Controls. hpp>
#include <StdCtrls. hpp>
#include <Forms. hpp>
#include <Grids. hpp>
// ---------------------------------------------------------------------------
class TForm1: public TForm
{
__published: // IDE-managed Components
TStringGrid *StringGrid1;
TGroupBox *GroupBox1;
TButton *Button1;
TEdit *Edit1;
TLabel *Label1;
TEdit *Edit2;
TLabel *Label2;
TEdit *Edit3;
TLabel *Label3;
void __fastcall FormCreate (TObject *Sender);
void __fastcall Button1Click (TObject *Sender);
void __fastcall StringGrid1SelectCell (TObject *Sender, int ACol,
int ARow, bool &CanSelect);
private: // User declarations
public: // User declarations
__fastcall TForm1 (TComponent* Owner);
};
// ---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
// ---------------------------------------------------------------------------
#endif
Код файла реализации (kursOOP1. cpp):
// ---------------------------------------------------------------------------
#include <vcl. h>
#pragma hdrstop
#include "kursOOP1. h"
#include <Math. h>
#include <string>
#include <stdlib. h>
#include <dstring. h>
// ---------------------------------------------------------------------------
#pragma package (smart_init)
#pragma resource "*. dfm"
class wind
{
private: int dd;
int V;
public:
wind (): dd (0),V (0) {};
wind (int dd1, int V1): dd (dd1),V (V1) {};
String ShowWind () const
{
return IntToStr (dd) +" град. - "+IntToStr (V) +" км/ч";
}
int ShowDirect () const
{return dd;
}
int ShowSpeed () const
{return V;
}
void Components (wind w,float&v,float&u) const
{v=V*sin (dd);
u=V*cos (dd); }
};
TForm1 *Form1;
const n=10;
wind array [n] ; float v,u;
// ---------------------------------------------------------------------------
__fastcall TForm1:: TForm1 (TComponent* Owner)
: TForm (Owner)
{
}
// ---------------------------------------------------------------------------
void __fastcall TForm1:: FormCreate (TObject *Sender)
{
StringGrid1->Cells [0] [0] ="Направление в град. ";
StringGrid1->Cells [1] [0] ="Скорость";
StringGrid1->RowCount=n;
for (int j=0; j<2; j++)
{for (int i=1; i<n; i++)
{StringGrid1->Cells [j] [i] =""; }}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1:: Button1Click (TObject *Sender)
{
for (int i=0; i<n; i++)
{array [i] =wind (random (360),random (250));
StringGrid1->Cells [0] [i+1] =array [i]. ShowDirect ();
StringGrid1->Cells [1] [i+1] =array [i]. ShowSpeed (); }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1:: StringGrid1SelectCell (TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
Edit1->Text=array [ARow-1]. ShowWind ();
array [ARow-1].components (array [ARow-1],v,u);
Edit2->Text=FloatToStr (v);
Edit3->Text=FloatToStr (u);
}
// ---------------------------------------------------------------------------
Приложение 2
Результаты тестирования
Рис.1 - окно программы
Рис.2 - вывод значений элементов массива на экран при помощи таблицы StringGrid1
Рис.3 - вывод значений характеристик ветра в виде dd-Vи составляющих скорости