본문으로 바로가기
- C++

C++에서는 어디에서나 변수를 선언하고 사용할 수 있다.

강제 형변환 : (자료형)데이터, 자료형(데이터) 사용 가능

함수 호출 방식 : 함수 이름,매개변수의 정보를 함께 사용하여 호출한다. 


- 함수 오버로딩 

매개변수의 형식/개수가 다르면 같은 이름의 함수 사용 가능
반환자료형만 다르면 불가능.


- 디폴트 매개변수 

매개변수의 오른쪽부터 값을 기본값으로 지정해준다 ( 매개변수로 넘어오는 값들은 왼쪽부터 차기때문에 오른쪽부터 지정해주어야 한다.)


- 계산기 
#include<iostream>

int calc(int a1,char bu,int a2)
{
if(bu=='+')
return a1+a2;
else if(bu=='-')
return a1-a2;
else if(bu=='*')
return a1*a2;
else if(bu=='/')
return ((double)a1/(double)a2);
else 
{
std::cout<<"부호를 잘못 입력하셨습니다."<<std::endl;
return 0;
}
}

double calc(double a1,char bu, double a2)
{
if(bu=='+')
return a1+a2;
else if(bu=='-')
return a1-a2;
else if(bu=='*')
return a1*a2;
else if(bu=='/')
return (double)a1/(double)a2;
else 
{
std::cout<<"부호를 잘못 입력하셨습니다."<<std::endl;
return 0; 
}
}

void main()
{
while(1)
{
std::cout<<"======================"<<std::endl;
std::cout<<"      & 계산기 &      "<<std::endl;
std::cout<<"======================"<<std::endl;
std::cout<<"1. 정수연산"<<std::endl;
std::cout<<"2. 실수연산"<<std::endl;
std::cout<<"3. 종료"<<std::endl;
 int i;
 int num1=0,num2=0;
 char bu;
 double dnum1,dnum2;
std::cin>>i;

if(i==1)
{
for(bu='0';bu!='+'||bu!='-'||bu!='*'||bu!='/';)
{
std::cout<< "선택 : 1.정수연산" << std::endl;
std::cout<< "입력(ex.4+5) : " ;
std::cin >> num1 >> bu >> num2;
break;
}
std::cout<< std::endl<< "결과 : "<< calc(num1,bu,num2) << std::endl<< std::endl;
bu='0';
system("pause");
system("cls");
}
else if(i==2)
{
for(bu='0';bu!='+'||bu!='-'||bu!='*'||bu!='/';)
{
std::cout<< "선택 : 2.실수연산" << std::endl;
std::cout<< "입력(ex.4.5+5.4) : " ;
std::cin >> dnum1 >> bu >> dnum2;
break;
}
std::cout<< std::endl<< "결과 : "<< calc(dnum1,bu, dnum2) << std::endl<< std::endl;
bu='0';
system("pause");
system("cls");
}
else if(i==3)
{
std::cout<<"프로그램을 종료하겠습니다."<<std::endl;
exit(1);
}
else 
std::cout<<"올바른 값을 입력해주십시오."<<std::endl;
system("pause");
system("cls");
continue;
}
}

}

오늘 짜본 계산기 

- 부호나 선택지가 틀렸을 때 다른 메시지 출력되면서 메뉴로 다시 돌아가는 기능들을 넣다보니 반복문 계속 걸어줘야돼서 귀찮다... 
   약간의 기능 개선의 여지가 있으나 패스. 나중에 할거없으면 해야지.

- C++로 짰음에도 불구하고 C로 짠것과 다른것 없는 코딩. 클래스가 전혀 들어가지 않았음.