25 Oct
2011
Posted in: 코드
By    No Comments

03. 급여 관리를 만들어 보자, 2001


03. 급여 관리를 만들어 보자, 2001
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net

이제 완연한 여름이 오는것 같네요~ 햇살도 아주 따스하고, 날씨도 맑고. 쿠쿠. 이런때일수록 나른하고 피곤해지기 쉬우니 모두들 건강관리에 신경을 써야할 것 같습니다. 오늘은 간단한 if문을 배워서 급여를 관리하는 시스템을 만들어 볼 생각입니다. 모두들 재미있게 읽고, 오늘 배우는 if문 만은 마스터한다는 생각으로 강좌를 읽어 주시면 되겠네요~ 자, 그럼 시작하겠습니다.

if, 영어에서 가정문을 사용할때 쓰이는 단어입니다. 마찬가지로 플밍에서도 조건을 검사할때 사용합니다. “만약 이것이 참이면 이런행동을 하고, 이것이 거짓이면 저런 행동을 해라.” 따위의 조건을 판단하는 문장을 말하는 거죠~ 그럼 간단하게 사용되는 if문을 살펴보도록 할까요.

if( 검사할 조건 ) 
      실행문; 

위의 예가 간단한 if문을 사용한 예입니다. 검사할 조건이 참이면 실행문이 실행이 되겠죠. 거짓이면 실행이 되지 않을 겁니다. 그리고 만약 실행문 두개 이상이 한 if문에 걸릴때는 항상 브레이스( { } )로 묶어 주어야 합니다. 그럼 다음으로 완전한 if문을 한번 살펴 보도록 합니다.

   if(조건 1) 
      실행1; 
   else if(조건 2) 
      실행2; 
   else if(조건 3) 
      실행3; 
   else 
      실행4; 

예~, 길죠. 위의 예가 모든 if문의 구성요소를 보여주는 예입니다. 구성요소별로 살펴보면 처음의 키워드 if는 본체입니다. 그리고 생략이 안되고 반복도 안되죠. 그리고 나머지 else if와 else는 옵션입니다. 옵션은 생략을 해도 되고, 붙여도 되는 겁니다. 끝으로 옵션중에 else if는 반복사용이 가능합니다. 휴~ 그럼 위 구문을 해독해 보도록 합시다. 조건1이 참이면 실행1이 실행이 되고, 조건2가 참이면 실행2. 이런식으로 실행이 될 겁니다. 그런데 위에서 중요한 것은 위의 나열된 조건들은 서로 배타적이라는 겁니다. 배타적이라는 의미가 뭐냐면 만약 조건1과 조건3이 동시에 만족할 경우에는 실행1만 실행되고, 나머지 조건은 무시되는 겁니다. 그럼 그걸 잘 생각해 본 다음에 아래있는 if문 예제를 보세요~

   if(조건1) 
      실행1; 
   else 
      실행2; 

   if(조건3) 
      실행3; 

위의 if문에서 조건 1과 2는 서로 배타적인 관계이며, 조건 3과는 서로 독립적인 관계입니다. 그러니까 만약 조건 1과 2가 참이면. 실행 1만 실행이 될 겁니다. 반면에 조건 1과 3이 참이면 실행1과 실행3이 순차적으로 실행이 되는 겁니다. 아시겠죠 자알~ 생각해 보시면 금방 원리를 알 수 있을 겁니다.

아! 그리고 조건에 사용할 수 있는 관계연산자에는 ==(같다), >=(크거나같다), <=(작거나같다), >, <, !=(같지않다)가 있습니다. 그리고 주의할것은 =은 항상 모든 기호 오른쪽에 사용한다는 것입니다. 왼쪽에쓰면 구문오류가 발생합니다. 주의하세요!!!

그럼 오늘의 본론으로 들어가서, 회사의 급여관리 시스템을 만들텐데. 우선 구체적인 스펙을 정하도록 하죠. 쉬운 예제니까 아주 제한을 많이 가하도록 하겠습니다. 우리가 관리하려는 회사의 직원은 5명이며, 회사의 순수익은 수익의 45%입니다. 그 중에 10%를 회사에 재투자하고, 나머지 남은 금액을 5명이 아주 공평하게 분배하는 것을 원칙으로 하겠습니다. 그런 회사가 어딨냐구요?! 여기있습니다. 쿠쿠. 그럼 만들어 볼까요? 변수 정리부터 하도록 하죠.

int main() { 
   float sun_suik, jae_tu_ja, pay_per_man; 
   int suik; 
   const int max_man = 5; 

위에 있는 변수들이 우리가 사용할 변수의 전부입니다. sun_suik은 순수익을, suik은 수익을, jae_tu_ja는 재투자비용을, 그리고 pay_per_man은 일인당 급여를 그리고 max_man은 전체 사원수를 저장하는 변수입니다. 그런데 사원수 앞에 붙어있는 const가 궁금하죠. 그건 상수라는 건데, 그 값은 한번 초기화 되면, 프로그램이 실행되는 동안 변하지 않는 값을 의미합니다. 다음에 한번 자세하게 설명하도록 하죠~

   cout << "수익을 입력해 주세요!!!"; 
   cin >> suik; 

   sun_suik = suik * 0.45; 
   jae_tu_ja = sun_suik * 0.1; 
   pay_per_man = (sun_suik - jae_tu_ja) / max_man; 

   cout << "순수익은 " << sun_suik << " 입니다..." << endl; 
   cout << "재투자 비용은  \" << jae_tu_ja << \" 입니다..." << endl; 
   cout << "사원은 총 " << max_man << " 이며 , 일인당 급여는 " << pay_per_man << " 입니다..."; 
} 

소스를 다 짰는데 정작 중요한 오늘의 if문은 없는 것 같네요~ 그래서 그부분을 숙제로 내도록 하겠습니다~ ㅋㅋ

숙제!!!
5명의 직원이 사장, 부장, 대리, 사원 2명으로 구성되어 있으며,. 각각의 급여는 35%, 20%, 15%, 20% * 2라고 합시당… 그래서 사용자가 각각의 직원 코드와 총수익을 입력하면… 그 사원의 급여를 상황에 맞게 출력하는 겁니다… 별로 어렵진 않죠…! [Hint : 아래 코드를 참조하세요!!!]

int code; 

cin >> code; 
if(code == 0) 
   xxx; 
else if(code == 1) 
   yyy; 

Browser does not supports flash movie

  • 트랙백 주소: http://www.jiniya.net/wp/archives/5194/trackback

관련 글