티스토리 뷰

프로그래밍/C#

C# 계산기 만들기

뽀로로친구에디 2018. 10. 13. 15:30

C#으로 계산기 만들기




버튼 당 핸들러를 각자 넣지 않는다.

왜? 코드가 너무 길어진다.

핸들러를 각가 모두 만드는건 좋은 방법이 아니라고 한다. 

모든 버튼 0~9까지 하나의 핸들러로 처리한다. 



0~9까지 버튼의 클릭 핸들러를 위와 같이 한개로 처리한다. 


 

0~9까지 버튼 핸들러를 하나의 핸들러로 처리하는 코드




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 First_cSharp_App

{

    public partial class calc : Form

    {


        public int Result = 0; // 결과값을 저장하는 변수

        public bool isNewNum = true; //더하기 버튼을 누르면 새로운 숫자인지 판단.


        public calc()

        {

            InitializeComponent();

        }





        private void NumButton1_Click(object sender, EventArgs e)

        {

            Button numButton = (Button)sender;

            SetNum(numButton.Text);


        }


   


        public void SetNum(string num )

        {

            if (isNewNum)

            {

                NumScreen.Text = num;

                isNewNum = false;

            }

            else if (NumScreen.Text == "0")

            {

                NumScreen.Text = num;


            }

            else

            {

                NumScreen.Text = NumScreen.Text +  num;


            }

        }


        private void NumPlus_Click(object sender, EventArgs e)

        {

            int num = int.Parse(NumScreen.Text);

            Result = Result + num;


            NumScreen.Text = Result.ToString();

            isNewNum = true;


        }

    }

}


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 First_cSharp_App

{

    public enum Operators { Add, Sub, Multi, Div}


    public partial class calc : Form

    {


        public int Result = 0; // 결과값을 저장하는 변수

        public bool isNewNum = true; //더하기 버튼을 누르면 새로운 숫자인지 판단.

        public Operators Opt = Operators.Add;


        public calc()

        {

            InitializeComponent();

        }


   

        private void NumButton1_Click(object sender, EventArgs e)

        {

            Button numButton = (Button)sender;

            SetNum(numButton.Text);


        }


   


        public void SetNum(string num )

        {

            if (isNewNum)

            {

                NumScreen.Text = num;

                isNewNum = false;

            }

            else if (NumScreen.Text == "0")

            {

                NumScreen.Text = num;


            }

            else

            {

                NumScreen.Text = NumScreen.Text +  num;


            }

        }


        private void NumPlus_Click(object sender, EventArgs e)

        {

            if (isNewNum == false )

            {

                int num = int.Parse(NumScreen.Text);

                if (Opt == Operators.Add)

                    Result = Result + num;

                else if (Opt == Operators.Sub)

                    Result = Result - num;

                else if (Opt == Operators.Multi)

                    Result = Result * num;

                else if (Opt == Operators.Div)

                    Result = Result / num;


            }

           


            NumScreen.Text = Result.ToString();

            isNewNum = true;


            Button optButton = (Button)sender;

            if (optButton.Text == "+")

                Opt = Operators.Add;

            else if (optButton.Text == "-")

                Opt = Operators.Sub;

            else if (optButton.Text == "*")

                Opt = Operators.Multi;

            else if (optButton.Text == "/")

                Opt = Operators.Div;


        }


        private void NumClear_Click(object sender, EventArgs e)

        {

            Result = 0;

            isNewNum = true;

            Opt = Operators.Add;


            NumScreen.Text = "0";

        }

    }

}

2019/12/03 - [프로그래밍/Xamarin] - 자마린(Xamarin)으로 계산기 앱 만들기




댓글
최근에 달린 댓글
글 보관함
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday
    뽀로로친구에디
    최근에 올라온 글