C# フォーム 電卓アプリ
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 電卓アプリ
{
public partial class form : Form
{
//変数宣言
string strAns = "0";
double num1 = 0;
double num2 = 0;
string formula = "";
bool usedPoint = false;
//1:加算, 2:減算, 3:掛け算, 4:割り算
int operation = 0;
public form()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textAns.Text = strAns;
}
private void btn1_Click(object sender, EventArgs e)
{
ConnctNum("1");
}
private void btn2_Click(object sender, EventArgs e)
{
ConnctNum("2");
}
private void btn3_Click(object sender, EventArgs e)
{
ConnctNum("3");
}
private void btn4_Click(object sender, EventArgs e)
{
ConnctNum("4");
}
private void btn5_Click(object sender, EventArgs e)
{
ConnctNum("5");
}
private void btn6_Click(object sender, EventArgs e)
{
ConnctNum("6");
}
private void btn7_Click(object sender, EventArgs e)
{
ConnctNum("7");
}
private void btn8_Click(object sender, EventArgs e)
{
ConnctNum("8");
}
private void btn9_Click(object sender, EventArgs e)
{
ConnctNum("9");
}
private void btb0_Click(object sender, EventArgs e)
{
ConnctNum("0");
}
//処理(関数)
private void ConnctNum(string numStr)
{
if (strAns != "0")
{
strAns = strAns + numStr;
}
else
{
strAns = numStr;
}
textAns.Text = strAns;
formula = formula + numStr;
textFormula.Text = formula;
}
private void btnClear_Click(object sender, EventArgs e)
{
strAns = "0";
textAns.Text = strAns;
formula = "";
textFormula.Text = formula;
usedPoint = false;
}
private void btnPlus_Click(object sender, EventArgs e)
{
operation = 1;
num1 = double.Parse(strAns);
strAns = "0";
formula = formula + "+";
textFormula.Text = formula;
usedPoint = false;
}
private void btnMinus_Click(object sender, EventArgs e)
{
operation = 2;
num1 = double.Parse(strAns);
strAns = "0";
formula = formula + "-";
textFormula.Text = formula;
usedPoint = false;
}
private void btnMultiple_Click(object sender, EventArgs e)
{
operation = 3;
num1 = double.Parse(strAns);
strAns = "0";
formula = formula + "*";
textFormula.Text = formula;
usedPoint = false;
}
private void btnDivide_Click(object sender, EventArgs e)
{
operation = 4;
num1 = double.Parse(strAns);
strAns = "0";
formula = formula + "/";
textFormula.Text = formula;
usedPoint = false;
}
private void btnEqual_Click(object sender, EventArgs e)
{
num2 = double.Parse(strAns);
double ans = 0;
if (operation == 1)
{
ans = num1 + num2;
}
else if (operation == 2)
{
ans = num1 - num2;
}
else if (operation == 3)
{
ans = num1 * num2;
}
else if (operation == 4)
{
ans = num1 / num2;
}
strAns = ans.ToString();
textAns.Text = strAns;
strAns = "0";
usedPoint = true;
}
private void btnPoint_Click(object sender, EventArgs e)
{
ConnctPointNum(".");
usedPoint = true;
}
private void ConnctPointNum(string numStr)
{
if(usedPoint == false)
{
strAns = strAns + ".";
textAns.Text = strAns;
formula = formula + ".";
textFormula.Text = formula;
}
}
private void textFormula_TextChanged(object sender, EventArgs e)
{
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (strAns.Length > 0)
{
strAns = strAns.Substring(0, strAns.Length - 1);
textAns.Text = strAns;
formula = formula.Substring(0, formula.Length - 1);
textFormula.Text = formula;
}
}
private void btnClearEntry_Click(object sender, EventArgs e)
{
strAns = "0";
textAns.Text = strAns;
usedPoint = false;
if (formula.Length > 0)
{
// ユーザーが入力した最後の文字が演算子だった場合、式からその演算子を削除する
if ("+-*/".Contains(formula.Last()))
{
formula = formula.Substring(0, formula.Length - 1);
}
else
{
// 最後のエントリが演算子でない場合は、直前のエントリを削除する
while (formula.Length > 0 && !"+-*/".Contains(formula.Last()))
{
formula = formula.Substring(0, formula.Length - 1);
}
}
}
textFormula.Text = formula;
}
}
}
この記事が気に入ったらサポートをしてみませんか?