본문 바로가기
PROGRAMMING CODE/C#

윈도우 계산기 프로그램 _ C# (망한코드)

by daye_ 2021. 10. 14.

 

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 Form1 : Form
    {
        private int num1,num2,memory;
        String nums = null;
        private char op;
        bool opCheck = false, numCheck = false, firstInput = true;
        // numCheck t=num1, f=num2

        public Form1()
        {
            InitializeComponent();
        }
        void numsChange()
        {
            if (firstInput == true)
            {
                num1 = int.Parse(nums);
                firstInput = false;
                nums = null;
            }
            else
            {
                num2 = int.Parse(nums);
                numCheck = false; //메모리가 num2를 향함
                nums = null;
            }
        }
        private void btnNumber_Click (object sender, EventArgs e)
        {
            Button btn = sender as Button;

            if (firstInput == true) {
                textBox1.Text = btn.Text;
                firstInput = false;
            }
            else if (firstInput == false) textBox1.Text += btn.Text;
            nums += btn.Text; //입력받은 숫자 연산자 눌릴때 까지 nums에 저장
        }

        private void btnPlus_Click(object sender, EventArgs e)
        {
            numsChange();
            if(opCheck == true)
            {
                btnResult_Click(sender, e);
            }
            op = '+';
            textBox1.Text = num1.ToString() + "+";
            opCheck = true;            
        }
        private void btnMin_Click(object sender, EventArgs e)
        {
            numsChange();
            if (opCheck == true)
            {
                btnResult_Click(sender, e);
            }
            op = '-';
            textBox1.Text = num1.ToString() + "-";
            opCheck = true;
        }
        private void btnMul_Click(object sender, EventArgs e)
        {
            numsChange();
            if (opCheck == true)
            {
                btnResult_Click(sender, e);
            }
            op = '*';
            textBox1.Text = num1.ToString() + "x";
            opCheck = true;
        }
        private void btnDiv_Click(object sender, EventArgs e)
        {
            numsChange();
            if (opCheck == true)
            {
                btnResult_Click(sender, e);
            }
            op = '/';
            textBox1.Text = num1.ToString() + "/";
            opCheck = true;
        }
        private void btnRem_Click(object sender, EventArgs e)
        {
            numsChange();
            if (opCheck == true)
            {
                btnResult_Click(sender, e);
            }
            op = '%';
            textBox1.Text = num1.ToString() + "%";
            opCheck = true;
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            if(op=='+')
            {
                textBox1.Text = (num1 + num2).ToString();
                num1 += num2;
            }
            else if (op == '-')
            {
                textBox1.Text = (num1 - num2).ToString();
                num1 -= num2;
            }
            else if (op == '*')
            {
                textBox1.Text = (num1 * num2).ToString();
                num1 *= num2;
            }
            else if (op == '/')
            {
                textBox1.Text = (num1 / num2).ToString();
                num1 /= num2;
            }
            else if (op == '%')
            {
                textBox1.Text = (num1 % num2).ToString();
                num1 %= num2;
            }
            op = ' ';
            opCheck = false;
            numCheck = true; //메모리가 num1을 향함
        }

        private void btnMS_Click(object sender, EventArgs e)
        {
            if (numCheck == true) memory = num1;
            else if (numCheck == false) memory = num2;
        }

        private void btnC_Click(object sender, EventArgs e)
        {
            textBox1.Text = "0";
            numCheck = true;
            firstInput = true;
        }
        private void btnMR_Click(object sender, EventArgs e)
        {
            num1 = memory;
            textBox1.Text = num1.ToString();
            numCheck = false;
            firstInput = false;
        }

    }
}

'PROGRAMMING CODE > C#' 카테고리의 다른 글

[Oracle & C#] 메모장 만들기  (0) 2021.10.20
윈도우 계산기 프로그램 _ C#  (0) 2021.10.14