C#

C# 일반 계산기

hyun0229 2022. 3. 12. 00:34

허접하지만 만들어 봤습니다...

계산기

제 계산기에서 %는 나머지를 구합니다 코딩에서의 %와 의미가 같습니다.

string first_value = " ", second_value = "0";
int sign = 0;

위 변수들은 차례로 숫자를 입력받고, 계산 후 저장하고, 부호를 구별하는데 사용합니다.

 private void N1_Click(object sender, EventArgs e)
        {
            first_value += '1';
            label1.Text = "" + double.Parse(first_value);
        }

위 코드는 숫자 1버튼입니다.

누를때 마다 first_value에 문자열로 저장하고 label1에 출력시킵니다.

private void Button17_Click(object sender, EventArgs e)
        {
            if (sign==0)
            {
                second_value = first_value;
            }
            else if (sign==1) 
            {
                double a = double.Parse(first_value) + double.Parse(second_value);
                second_value = a.ToString();
            }
            else if (sign == 2) 
            {
                double a = double.Parse(second_value) - double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 3)
            {
                double a = double.Parse(second_value) * double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 4)
            {
                double a = double.Parse(second_value) / double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 5)
            {
                double a = double.Parse(second_value) % double.Parse(first_value);
                second_value = a.ToString();
            }
            label2.Text = "" + double.Parse(second_value)+'+';
            first_value = "";
            label1.Text = "";
            sign = 1; 
        }

위에 코드는 +버튼입니다. sign을 사용하여 그전에 어떤 버튼을 눌렀고 계산할지 구분합니다.

계산후 first_value는 초기화 시키고 second_value에 계산값을 저장합니다.

label2에는 second_value를 출력하고 label1은 초기화 시킵니다.

 private void Button13_Click(object sender, EventArgs e)
        {
            if (sign == 0)
            {
                second_value = first_value;
            }
            else if (sign == 1)
            {
                double a = double.Parse(first_value) + double.Parse(second_value);
                second_value = a.ToString();
            }
            else if (sign == 2)
            {
                double a = double.Parse(second_value) - double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 3)
            {
                double a = double.Parse(second_value) * double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 4)
            {
                double a = double.Parse(second_value) / double.Parse(first_value);
                second_value = a.ToString();
            }
            else if (sign == 5)
            {
                double a = double.Parse(second_value) % double.Parse(first_value);
                second_value = a.ToString();
            }
            label2.Text = "" + double.Parse(second_value) + '=';
            first_value = "" + double.Parse(second_value);
            label1.Text = "" + double.Parse(second_value);
            sign = 0;
        }

위 코드는 =버튼입니다. first_value를 초기화시키지 않고 저장해 label1에 출력합니다.

 private void Button18_Click(object sender, EventArgs e)
        {
            first_value = "";
            label1.Text = "";
        }

위 코드는 CE버튼입니다. first_value와 label1의 값을 초기화 시킵니다.

   private void CE_Click(object sender, EventArgs e)
        {
            label2.Text = "";
            first_value = "";
            label1.Text = "";
            second_value = "0";
            sign = 0;
        }

위 코드는 C버튼입니다. 전체를 초기화 시킵니다.

 

실행결과

 

실행화면입니다.

 

 

 

앞으로 %변경, 소수점과 +/-는 언젠가 추가예정입니다..