C언어 큐 계산기 - Ceon-eo kyu gyesangi

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (0)
  • 판매자정보

소개글

스택과 큐를 이용한 사칙연산 계산기

- 십의자리 이상 숫자 연산 가능
- 연산의 우선순위 고려하여 연산함
- 링크드 리스트를 이용한 스택과 큐를 사용함

컴파일 실행환경

visual studio 2005

태그

프로그램소스 파워포인트 추천자료

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (0)
  • 판매자정보

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (0)
  • 판매자정보

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.

환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류중복자료저작권 없음설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (1)
  • 판매자정보

소개글

"C언어로 구현한 스택, 큐를 활용한 계산기"에 대한 내용입니다.

컴파일 실행환경

Microsoft Visual Studio 2019

태그

프로그램소스 파워포인트 추천자료

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (1)
  • 판매자정보

  • 상세정보
  • 자료후기 (0)
  • 자료문의 (1)
  • 판매자정보

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.

환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류중복자료저작권 없음설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

명품 c언어 프로그래밍 => 쉽게 풀어쓴 C언어 Express (생능출판사) 7장 의 6번 문제를 풀어보자.


앞장에서 간단한 정수 계산기를 만들어본 적이 있다. 이 계산기 프로그램에 메뉴를 추가하도록 한다. 다음과 같은 메뉴를 화면에 출력하고 사용자가 메뉴 중에서 하나를 선택할 때까지 반복을 계속한다. do...while 반복문을 사용하여 사용자가 적절한 선택을 했는지를 검사하도록 하라. 만약 사용자가 A, S, M, D, Q가 아닌 다른 문자를 입력하면 "연산을 선택하시요:" 메시지를 계속해서 출력한다. 하나의 메뉴가 선택되면 해당되는 연산을 실행하고 다시 메뉴를 선택할 수 있도록 하라. 반복을 종료하는 메뉴인 Q는 break 문을 이용하여 다시 구현하도록 하라.

C언어 큐 계산기 - Ceon-eo kyu gyesangi
메뉴

풀이

A는 더하기, S는  빼기, M은 곱하기, D는 나누기, Q는 종료를 수행하면 되겠다.

두 수를 x와 y로 받아서 출력문에 바로 연산을 수행시켜주면 간단할 것이다. do~while 문을 사용해야하는데, Q를 선택할 때 까지 반복을 계속하므로 while에 조건이 들어가 있을 필요가 없다. 연산(Q 포함)을 입력받는 문장이 반복문 안에 들어가 있어야하므로 while에 Q 조건을 넣어줄 수 없다.

그러므로 while(1), 즉 항상 실행한다는 뜻의 반복문을 작성해주고, 반복문 내에서 Q를 입력받을 경우 break를 통해서 수동적으로 반복을 종료시켜주는 방법을 사용하면 되겠다.

코드

#include <stdio.h> 
int main(void) { 
	char op; 
	int x, y; 
	
	printf("*****************\n"); 
	printf("A---- Add \n"); 
	printf("S---- Subtract \n"); 
	printf("M---- Multiply \n"); 
	printf("D---- Divide \n"); 
	printf("Q---- Quit \n"); 
	printf("*****************\n"); 

	do{
		printf("연산을 선택하시오:"); 
		scanf_s(" %c", &op); 

		if (op == 'Q')
			break;

		printf("두수를 공백으로 분리하여 입력하시오: "); 
		scanf_s("%d %d", &x, &y); 

		if( op == 'A' ) 
			printf("%d \n", x + y); 
		else if( op == 'S' ) 
			printf("%d \n", x - y); 
		else if( op == 'M' ) 
			printf("%d \n", x * y); 
		else if( op == 'D' ) 
			printf("%d \n", x / y); 
		else 
			printf("지원되지 않는 연산자입니다. \n"); 

	} while (1);

	return 0; 
}

실행결과

C언어 큐 계산기 - Ceon-eo kyu gyesangi

C언어 스택을 이용한 Postfix 계산기 소스 코드입니다.

스택을 이용한 것과

후위계산식(123++, 34*5-65+ 꼴)을 이용한 계산기 프로그램이라는 것

두 가지만 생각합시다.

스택에서 push와 pop을 쓰던 것을 그대로 가져와

후위계산식으로 만드는 응용 작업만 약간 거친다면

생각보다 어려울 게 없는 코드입니다!

<Postfix.h>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

typedef char Element;

typedef char StackElement;

typedef struct StackNode *StackNodePtr;        // 노드 선언할때 편리하게 하기 위해

typedef struct StackNode {

    StackElement Element;

    StackNodePtr Next;

} StackNode;            // 스택 노드

typedef struct {

    StackNodePtr top;

} Stack;                // 스택

void init(Stack *s);

void isEmpty(Stack *s);

void push(Stack *s, Element e);

Element pop(Stack *s);

void stack_show(Stack *s);

void stack_clear(Stack *s);

헤더파일은 보시는 것과 같이

연결 스택 (linked stack)의 헤더 파일과 별반 다를 게 없습니다.

<Postfix.c>

메인 함수를 잘 관찰해주시기 바랍니다.

다른 밑의 함수들은 그냥 링크드 스택 함수이므로

따로 특별히 주석을 달지는 않았습니다!

나눗셈을 할 때 0으로 나누는 예외 경우를 해주지 못했습니다.

예외 처리를 해주시면 오류로 종료되지 않을 겁니다!

또한 숫자를 계산할 때 그냥 계산하면

아스키 코드 값으로 계산되어버리니

'0' 값을 빼주는 것! 저것을 잘 이용하시기 바랍니다.