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;
        }
    }
}

この記事が気に入ったらサポートをしてみませんか?