1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Visual Studioで簡易電卓を作ってみた

Posted at

はじめに

C#の勉強としてVisual Studio 2022で下記画像の簡易電卓を作ってみました。
image.png

環境

  • OS : Windows 10
  • Visual Studio 2022

作成した電卓の機能

基本機能

  • 四則演算は可能
  • ACを押すまでは続けて計算できる。

注意点

  • 小数点の入力は不可
  • $2+2+2=6$ のように続けて計算がしたいときは、$2+2=4+2=6$ のように$=$を毎回入力しなければならない。

作る

画面の作成

下記画像のようにテキストボックスとボタンを配置し、テキストボックスのプロパティからReadOnlyをTrueに変更とボタンとテキストボックスの(Name)とTextの変更を行う。
2022-03-31 (2).png

コード編

数字ボタン

現在表示されているTextにそのまま数字を足すとはじめに表示させている $0$ が残ってしまいます。
そのままTextに数字を足した場合
image.png
なので、$0$ を消すために一度decimal型にしています。
decimal型にする処理を入れた場合
image.png

btnNum_Click.C#
//数字ボタンを押したとき
private void btnNum_Click(object sender, EventArgs e){
    Button btn = (Button)sender;
    decimal inputNum = decimal.Parse(txtResult.Text + btn.Text);

    txtResult.Text = inputNum.ToString();
}

四則演算の記号ボタンを押したとき

メソッド間で値の受け渡しをするために、btnOpe_Click()メソッドの外側で、string型のOperdecimal型のMem1を定義しています。
四則演算の記号ボタンを押したときにstring型の変数Operにそれぞれ押した記号の文字を入れることで押したボタンの計算をできるようにしています。

btnOpe_Click
//+,-,×,÷を押したとき
private void btnOpe_Click(object sender, EventArgs e)
 {
     Button btn = (Button)sender;

     if(btn.Text == "÷")
     {
         Oper = "÷";
     }
     else if(btn.Text == "×")
     {
         Oper = "×";
     }
     else if(btn.Text == "-")
     {
         Oper = "-";
     }
     else if(btn.Text == "+")
     {
         Oper = "+";
     }

     Mem1 = decimal.Parse(txtResult.Text);//一つ目の項
     txtResult.Text = "0";
 }

イコールボタンを押したとき

現在表示されているTextを2つ目の項として保存します。
string型の変数Operにある文字の情報で計算方法が変わるようになっています。

btnEqu_Click
private void btnEq_Click(object sender, EventArgs e)//イコールボタンを押したとき
 {
     decimal Mem2 = decimal.Parse(txtResult.Text);//二つ目の項
     decimal CalcResult = 0m;

     if(Oper == "÷")
     {
         CalcResult = Mem1 / Mem2;
     }
     else if(Oper == "×")
     {
         CalcResult = Mem1 * Mem2;
     }
     else if (Oper == "-")
     {
         CalcResult = Mem1 - Mem2;
     }
     else if (Oper == "+")
     {
         CalcResult = Mem1 + Mem2;
     }
     txtResult.Text = CalcResult.ToString();
 }

オールクリアボタンを押したとき

btnAC_Click
private void buttonAC_Click(object sender, EventArgs e)
 {
     //初期化
     txtResult.Text = "0";
     Mem1 = 0m;
     Oper = null;
 }

動作確認

実際に動作を確認してみます。
下のようにしっかり動作する簡易電卓が作成できました。
Animation.gif

おわりに

C#を勉強し始めたばかりの初心者でわからないことばかりですがこれから頑張っていこうと思います。
最後まで読んでいただきありがとうございました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?