FuzzyTrade

MQL5プログラミング研究会の案内を目的としています。MQL5プログラミングミングをやさしく解説。要求工学から開発プロセスまで、オブジェクト指向の小さなプログラミングから説明。

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プログラミング研究会の案内ページはこちらから

MyFuzzyTrade


要求分析(クラス作成)抽出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());   
  }
瑕疵担保責任なし。
期日までに全額支払い。