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();
}
}
}