코드를 짜봤는데 도통 무슨소린지 모르겠어요 ㅠ
Calculator 프로그램을 확장하여 아래와 같은 기능을 하도록 프로그램을 작성하시오.
1.main 함수에서는 하나의 함수만 호출하도록 한다.
예를 들어, CalcMain.c 에는 main 함수만 존재하고 main 함수 안에서 startCalculator() 함수를 호출하도록 하고 CalcStart.c 에 startCalculator 함수를 만들어 분할 컴파일한다.
2.전역변수, 지역변수, 로컬변수, 정적변수를 적절히 사용한다.
즉, int gFirst, int gSecond, int gThird, int gFour, int gMenu 와 같이 전역변수를 만들어 공유한다. 다른 파일에서 사용시는 extern int gFirst 등과 같이 사용할 수 있다.
3.최소한의 연산자의 지원은 +, -, *, /, ! 최소한의 기능 지원은 c(LEAR), q(UIT) 이다.
4.일반 계산기와 같이 작동되도록 제어 흐름을 변경한다. 우선 순서도를 작성해보고 프로그램을 만들어 간다.
제어 흐름은
•c 입력시 - 계산 결과 화면 클리어
•q 입력시 - 프로그램 종료
•"수 입력" -> "+ or - or * or / 입력 " -> "수 입력 " -> "= 입력" -> "결과 표시"
결과 표시 형식 : {first_number} {+ or – or * or /} {second_number} = {result_number}
•! 입력시 -> "수 입력" -> "! 계산" -> "결과 표시"
결과 표시 형식 : {!}{first_number} = {result_number}
5.하향식 프로그래밍 방법을 적용한다.
즉 showMenu() or showCalcDisplay(), showResult() 와 같이 함수를 만들어 호출한다.
6.본인의 아이디어를 추가하여 프로그램을 개선시킨다.
화면을 예쁘게 만든다든지, 제어 흐름을 좀 더 편한 방법으로 한다든지 등등...
----------------------------------------------------------------
#include <stdio.h>
#define LINE1_M1(A) A A A A A A A A A A A A A A A A A A A A A
void main()
{
int a, b, c;
int nMenu;
system("chcp 437 > null");
printf("%s%s%s\n", "\xDA", LINE1_M1("\xC4"), "\xBF");
printf("%s%s%s\n", "\xB3", "Welcome to the Calculator!", "\xB3");
printf("%s%s%s\n", "\303", LINE1_M1("\xC4"), "\264");
printf("%4s%-5s%7s\n", " ", "1.", "+");
printf("%4s%-5s%7s\n", " ", "2.", "-");
printf("%4s%-5s%7s\n", " ", "3.", "/");
printf("%4s%-5s%7s\n", " ", "4.", "%");
printf("%s%s%s\n", "\xC3", LINE1_M1("\xC4"), "\xB4");
printf("%4s%-5s%7s\n", " ", "5. ", "Quit");
printf("%s%s%s\n", "\xC0", LINE1_M1("\xC4"), "\xD9");
while(1){
printf(" Enter your Selection: ");
scanf("%d", &nMenu);
printf("\n");
if (nMenu == 5)
break;
printf(" input a and b: ");
if (nMenu == 1 )
{
printf("Addition: ");
}
else if (nMenu == 2)
{
printf("Subtraction: ");
}
else if (nMenu == 3)
{
printf("Multiplication: ");
}
else if (nMenu == 4)
{
printf("Division: ");
}
scanf("%d%d", &a, &b);
printf("\n");
switch(nMenu)
{
case 1:
c = a + b;
break;
case 2:
c = a - b;
break;
case 3:
c = a * b;
break;
case 4:
c = a / b;
break;
}
printf("answer = %d\n", c);
system("pause");
}}
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.