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버튼입니다. 전체를 초기화 시킵니다.
실행결과
앞으로 %변경, 소수점과 +/-는 언젠가 추가예정입니다..