Visual Studioで簡易電卓を作ってみた
はじめに
C#の勉強としてVisual Studio 2022で下記画像の簡易電卓を作ってみました。
環境
- OS : Windows 10
- Visual Studio 2022
作成した電卓の機能
基本機能
- 四則演算は可能
- ACを押すまでは続けて計算できる。
注意点
- 小数点の入力は不可
- $2+2+2=6$ のように続けて計算がしたいときは、$2+2=4+2=6$ のように$=$を毎回入力しなければならない。
作る
画面の作成
下記画像のようにテキストボックスとボタンを配置し、テキストボックスのプロパティからReadOnlyをTrueに変更とボタンとテキストボックスの(Name)とTextの変更を行う。
コード編
数字ボタン
現在表示されているTextにそのまま数字を足すとはじめに表示させている $0$ が残ってしまいます。
そのままTextに数字を足した場合
なので、$0$ を消すために一度decimal型にしています。
decimal型にする処理を入れた場合
//数字ボタンを押したとき
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型のOper
とdecimal型のMem1
を定義しています。
四則演算の記号ボタンを押したときにstring型の変数Operにそれぞれ押した記号の文字を入れることで押したボタンの計算をできるようにしています。
//+,-,×,÷を押したとき
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
にある文字の情報で計算方法が変わるようになっています。
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();
}
オールクリアボタンを押したとき
private void buttonAC_Click(object sender, EventArgs e)
{
//初期化
txtResult.Text = "0";
Mem1 = 0m;
Oper = null;
}
動作確認
実際に動作を確認してみます。
下のようにしっかり動作する簡易電卓が作成できました。
おわりに
C#を勉強し始めたばかりの初心者でわからないことばかりですがこれから頑張っていこうと思います。
最後まで読んでいただきありがとうございました!
Author And Source
この問題について(Visual Studioで簡易電卓を作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/yomo46/items/81a56151ffe6cd346045著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .