개발 노트

c# 계산기 레이아웃잡기 본문

프로그래밍/C#

c# 계산기 레이아웃잡기

알 수 없는 사용자 2022. 1. 11. 17:02

https://m.post.naver.com/viewer/postView.naver?volumeNo=31984375&memberNo=6255089 

 

계산기 만들기 1편(폼 디자인) - C# 프로그래밍

[BY 메이커멘토] ★ 계산기계산기 프로그램은 모든 운영체제에 내장될 정도로 보편적이며 자주 사용하는 ...

m.post.naver.com

-> 정리가 정말 잘 되어있다

 

이슈

이슈해결

잘 살펴보니 { 이게 빠진거였음

 

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 Calculator
{
   
    public partial class Form1 : Form
    {

        enum Operators
        {
            None,
            Add,
            Subtract,
            Multiply,
            Divide,
            Result
        }

        Operators currentOperator = Operators.None;
        Boolean operatorChangeFlag = false;
        int firstOperand = 0;
        int secondOperand = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void ButtonResult_Click(object sender, EventArgs e)
        {
            secondOperand = Int32.Parse(display.Text);
            if (currentOperator == Operators.Add)
            {
                firstOperand += secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Subtract)
            {
                firstOperand -= secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Multiply)
            {
                firstOperand *= secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Divide)
            {
                if (secondOperand == 0)
                {
                    display.Text = "0으로 나눌 수 없습니다";
                }
                else
                {
                    firstOperand /= secondOperand;
                    display.Text = firstOperand.ToString();
                }
            }
        }

        private void ButtonAdd_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Add;
            operatorChangeFlag = true;
        }
     
        private void ButtonMultify_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Multiply;
            operatorChangeFlag = true;
        }

        private void ButtonDivide_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Divide;
            operatorChangeFlag = true;
        }

        private void ButtonSubstract_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Subtract;
            operatorChangeFlag = true;
        }

        private void ButtonAllClear_Click(object sender, EventArgs e)
        {
            firstOperand = 0; secondOperand = 0;
            currentOperator = Operators.None;
            display.Text = "0";
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void ButtonSeven_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "7";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonEight_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "8";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonNine_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "9";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonFour_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "4";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonFive_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "5";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonSix_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "6";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

      

        private void ButtonOne_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "1";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonTwo_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "2";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonThree_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "3";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

   

        private void ButtonZero_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "0";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonDot_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = ".";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

       
    }
}

 

 

 

-> 함수로 다시 만들어보기

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 Calculator
{
   
    public partial class Form1 : Form
    {

        enum Operators
        {
            None,
            Add,
            Subtract,
            Multiply,
            Divide,
            Result
        }

        Operators currentOperator = Operators.None;
        Boolean operatorChangeFlag = false;
        int firstOperand = 0;
        int secondOperand = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void ButtonResult_Click(object sender, EventArgs e)
        {
            secondOperand = Int32.Parse(display.Text);
            if (currentOperator == Operators.Add)
            {
                firstOperand += secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Subtract)
            {
                firstOperand -= secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Multiply)
            {
                firstOperand *= secondOperand;
                display.Text = firstOperand.ToString();
            }
            else if (currentOperator == Operators.Divide)
            {
                if (secondOperand == 0)
                {
                    display.Text = "0으로 나눌 수 없습니다";
                }
                else
                {
                    firstOperand /= secondOperand;
                    display.Text = firstOperand.ToString();
                }
            }
        }

        private void ButtonAdd_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Add;
            operatorChangeFlag = true;
        }
     
        private void ButtonMultify_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Multiply;
            operatorChangeFlag = true;
        }

        private void ButtonDivide_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Divide;
            operatorChangeFlag = true;
        }

        private void ButtonSubstract_Click(object sender, EventArgs e)
        {
            firstOperand = Int32.Parse(display.Text);
            currentOperator = Operators.Subtract;
            operatorChangeFlag = true;
        }

        private void ButtonAllClear_Click(object sender, EventArgs e)
        {
            firstOperand = 0; secondOperand = 0;
            currentOperator = Operators.None;
            display.Text = "0";
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }


        int num1 =0;
        int num2 =0;
        int result = 0;
        int opr1 = 0;
        int opr2 = 0;

        private void calc(string num)
        {
            // 1. 숫자냐, 문자냐(+,-,*,/) , .
            if (num == "+")
            {
                currentOperator = Operators.Add;
                opr1 = num1;
            }
            else if (num == "-") {

            }
            else if (num == "*") {
            }
            else if (num == "/") {
            }
            else if (num == "%") {
            }
            else if (num == ".")
            {

            }else 
            {
                int n1 = Convert.ToInt16(num);
                if (num1 == 0)
                {
                    num1 = n1;
                    display.Text = num;
                }
                else
                {
                    string newStr=Convert.ToString(num1) + num;
                    num1 = Convert.ToInt16(newStr);
                    display.Text = newStr;
                }

            }
            


        }

        private void ButtonSeven_Click(object sender, EventArgs e)
        {
            calc(((Button)sender).Text);

            //if (operatorChangeFlag == true)
            //{
            //    display.Text = "";
            //    operatorChangeFlag = false;
            //}

            //MessageBox.Show(((Button)sender).Text);

            //string strNumber = display.Text = "7";
            //int intNumber = Int32.Parse(strNumber);
            //display.Text = intNumber.ToString();
        }

        private void ButtonEight_Click(object sender, EventArgs e)
        {
            calc(((Button)sender).Text);

            //if (operatorChangeFlag == true)
            //{
            //    display.Text = "";
            //    operatorChangeFlag = false;
            //}

            //string strNumber = display.Text = "8";
            //int intNumber = Int32.Parse(strNumber);
            //display.Text = intNumber.ToString();
        }

        private void ButtonNine_Click(object sender, EventArgs e)
        {
            calc(((Button)sender).Text);

            //if (operatorChangeFlag == true)
            //{
            //    display.Text = "";
            //    operatorChangeFlag = false;
            //}

            //string strNumber = display.Text = "9";
            //int intNumber = Int32.Parse(strNumber);
            //display.Text = intNumber.ToString();
        }

        private void ButtonFour_Click(object sender, EventArgs e)
        {
            calc(((Button)sender).Text);
            //if (operatorChangeFlag == true)
            //{
            //    display.Text = "";
            //    operatorChangeFlag = false;
            //}

            //string strNumber = display.Text = "4";
            //int intNumber = Int32.Parse(strNumber);
            //display.Text = intNumber.ToString();
        }

        private void ButtonFive_Click(object sender, EventArgs e)
        {
            calc(((Button)sender).Text);
            //if (operatorChangeFlag == true)
            //{
            //    display.Text = "";
            //    operatorChangeFlag = false;
            //}

            //string strNumber = display.Text = "5";
            //int intNumber = Int32.Parse(strNumber);
            //display.Text = intNumber.ToString();
        }

        private void ButtonSix_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "6";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

      

        private void ButtonOne_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "1";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonTwo_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "2";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonThree_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "3";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

   

        private void ButtonZero_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = "0";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

        private void ButtonDot_Click(object sender, EventArgs e)
        {
            if (operatorChangeFlag == true)
            {
                display.Text = "";
                operatorChangeFlag = false;
            }

            string strNumber = display.Text = ".";
            int intNumber = Int32.Parse(strNumber);
            display.Text = intNumber.ToString();
        }

       
    }
}

'프로그래밍 > C#' 카테고리의 다른 글

c# 계산기 참고자료  (0) 2022.01.11
c# 계산기 코드  (0) 2022.01.11
간단한 사칙연산 프로그램  (0) 2022.01.11
c# 조건문,switchcase  (0) 2022.01.11
변수,상수  (0) 2022.01.11