Смекни!
smekni.com

Проектирование и разработка классов средствами языка программирования С++Builder6/0 (стр. 4 из 4)

3.2 Результат тестирования программы

После запуска файла 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и составляющих скорости