第6講 簡易電卓ソフト作りに挑戦しよう
第6話 欠点の改善例


private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
                    if(yy==3){
                         z=w+z;
                         textBox1->Text=z.ToString();
                    }
                    if(yy==1){
                        z=w*z;
                        textBox1->Text=z.ToString();
                    }
                    if(yy==4){
                        z=w-z;
                        textBox1->Text=z.ToString();
                    }
                    if(yy==2){
                        z=(double)w/(double)z;
                        textBox1->Text=z.ToString();
                    }
               }    

第6講最後の課題を出します。

g1小数点のボタンを加え、
さらに、2→×→3→=→+→4とクリックしても、
2→3→+→4→=とクリックしてもいずれでも答えが出るように工夫して下さい。
解答例は、30行下に示しますので、ご自分でよく考えてからスクロールして解答を見て下さい。






























解答例
#pragma once
int y1;
int y2=0;
int cn=0;
double z=0;
double w;
   ・
   ・
   ・
   ・
   ・
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+7;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+8;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+9;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+4;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+5;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+6;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+1;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+2;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    z=z+3;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    textBox1->Text=z.ToString();
               }
private: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {
                    int i;
                    if(y2==1){
                        cn=cn+1;
                        for(i=0;i<cn;i++){
                            z=10*z;
                        }
                    }
                    if(y2==0)z=z*10;
                    if(y2==1){
                        for(i=0;i<cn;i++){
                            z=z/10;
                        }
                    }

                    if(y2==0)textBox1->Text=z.ToString();
                    if(y2==1){
                        if(cn==1)textBox1->Text=z.ToString()+L".0";
                        if(cn>1)textBox1->Text=z.ToString()+L"0";
                   }
               }
private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {
                    z=0;
                    cn=0;
                    w=0;
                    y1=0;
          y2=0;  
                    textBox1->Text=L"";
}
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {
                    if(y1==3){
                        z=w+z;
                        textBox1->Text=z.ToString();
                    }
                    if(y1==1){
                        z=w*z;
                        textBox1->Text=z.ToString();
                    }
                    if(y1==4){
                        z=w-z;
                        textBox1->Text=z.ToString();
                    }
                    if(y1==2){
                        z=w/z;
                        textBox1->Text=z.ToString();
                    }
                    y1=1;
                    w=z;
                    z=0;
                    y2=0;
                    cn=0;
}
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
                    if(y1==3){
                        z=w+z;
                        textBox1->Text=z.ToString();
                    }
                    if(y1==1){
                        z=w*z;
                        textBox1->Text=z.ToString();
                     }
                    if(y1==4){
                        z=w-z;
                        textBox1->Text=z.ToString();
                    }
                    if(y1==2){
                        z=w/z;
                        textBox1->Text=z.ToString();
                     }
                     y1=2;
                     w=z;
                     z=0;
                     y2=0;
                     cn=0;
                }
private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {
                     if(y1==3){
                         z=w+z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==1){
                         z=w*z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==4){
                         z=w-z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==2){
                         z=w/z;
                         textBox1->Text=z.ToString();
                     }
                     y1=3;
                     w=z;
                     z=0;
                     y2=0;
                     cn=0;
               }
private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {
                     if(y1==3){
                         z=w+z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==1){
                         z=w*z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==4){
                         z=w-z;
                         textBox1->Text=z.ToString();
                      }
                      if(y1==2){
                          z=w/z;
                          textBox1->Text=z.ToString();
                      }
                      y1=4;
                      w=z;
                      z=0;
                      y2=0;
                      cn=0;
}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
                     if(y1==3){
                         z=w+z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==1){
                         z=w*z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==4){
                         z=w-z;
                         textBox1->Text=z.ToString();
                     }
                     if(y1==2){
                         z=w/z;
                         textBox1->Text=z.ToString();
                     }
                     y1=0;

                     }
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
                    y2=1;
               }


(コピーペスト用

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+7;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+8;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();

}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+9;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();

}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+4;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();

}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+5;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();

}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+6;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();

}
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+1;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();
}
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+2;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();
}
private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+3;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

textBox1->Text=z.ToString();
}
private: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}

if(y2==0)textBox1->Text=z.ToString();
if(y2==1){
if(cn==1)textBox1->Text=z.ToString()+L".0";
if(cn>1)textBox1->Text=z.ToString()+L"0";
}
}
private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {
z=0;
cn=0;
w=0;
y1=0;
y2=0;
textBox1->Text=L"";
}
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
} y1=1;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
} y1=2;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
} y1=3;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
} y1=4;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=0;

}
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
y2=1;
}

以上



第5話へ 第7話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部

vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ