MQL5プログラミングの要求分析のまとめ記事--------要求分析(クラス作成)抽出01
要求分析(クラス作成)抽出01
1.ゴール要求
(1)円のクラスを作成。
(2)円周率と半径をクラスメンバー(public)とする。
(3)円周率は3.14に。
2.シナリオ要求
(1)エキスパートタブに半径を表示。
(2)スクリプトイベントで計算し表示。
3.要求定義
(1)要求分析済、要求確認済、要求定義済。
class CCircle
{
public:
double pi;
double r ;
CCircle(void){pi=3.14;};
~CCircle(void){};
};
void OnStart()
{
//CCircleクラス型のオブジェクトを生成
CCircle c;
//クラスメンバー変数rを呼び出し、半径の数値を入力
c.r=5;
Print(c.r);
}
要求分析(クラス作成)抽出02
1.ゴール要求
要求追加01
(1)円周を計算し、表示する。
class CCircleは変わらず。
void OnStart()
{
CCircle c;
c.r=5;
Print(2*c.r*c.pi);
}
要求分析(クラス作成)抽出03
1.ゴール要求
要求追加02
(1)面積を計算し、表示する。
class CCircleは変わらず。
void OnStart()
{
CCircle c;
c.r=5;
Print(c.r*c.r*c.pi);
}
MQL5プログラミング研究会の案内ページはこちらから
要求分析(クラス作成)抽出04
1.ゴール要求
要求追加03
(1)サブクラスを作成。
(2)円のクラスを継承。
(3)円周率をサブクラスから使用可能なprotectedとする。
(4)サブクラスに円周を計算するメッソドを置く。
(5)円周を計算し、表示。
class CCircle
{
protected:
double pi;
public:
double r ;
CCircle(void){pi=3.14;};
~CCircle(void){};
};
class CSquare : public CCircle
{
public:
double f1(void ){return(2*r*pi);};
};
void OnStart()
{
CSquare s;
s.r=5;
Print(s.f1());
}
要求分析(クラス作成)抽出04
1.ゴール要求
要求追加04
(1)サブクラスに円の面積を計算するメッソドを置く。
(2)円の面積を計算し、表示する。
サブクラスのみ変更
class CSquare : public CCircle
{
public:
double f1(void ){return(2*r*pi);};
double f2(void ){return(r*r*pi);};
};
void OnStart()
{
CSquare s;
s.r=5;
Print(s.f2());
}
瑕疵担保責任なし。
期日までに全額支払い。