[프로그램] 리스트를 이용한 스택 계산기

등록일 2003.11.01 C언어 (cpp) | 10페이지 | 가격 1,000원

목차

#include<stdio.h>
#include<stdlib.h>
#include<conio.h> //getch() 함수를 위해 설정하였다.
#include<malloc.h>
#include<math.h> //pow(double,double) 함수를 위해 설정하였다.
#define MAX_SIZE 100
#define IS_FULL(ptr) (!(ptr))
#define IS_EMPTY(ptr) (!(ptr))

enum precedence {lparen, rparen, plus, minus, times, divide, mod, square, eos, operand, error};
// ( , ) , + , - , *, /, %, ^, 0, 숫자, 에러 를 포함한다.
//스택에 입력이 되는 기호, 연산자 들의 열거체. '^' 계산을 위한 square를 첨가했다.
typedef struct stack *stack_ptr; // 링크를 위한 포인터 변수 선언
typedef struct stack { // 스택 구조체 선언
precedence item; // 데이타 부분
stack_ptr link; // 리스트의 다음을 지정한다.
};
char expr[MAX_SIZE]; // 입력받을 문자열
int multi[MAX_SIZE]; // multi-digit을 위한 배열
char str[10]; // 임시 배열
static int isp[] = {0, 19, 12, 12, 13, 13, 13, 14, 0};
// 스택내 우선순위[( , ) , + , - , *, /, %, ^, 0)]
static int icp[] = {20, 19, 12, 12, 13, 13, 13, 14, 0}; //
// 입력토큰 우선순위[( , ) , + , - , *, /, %, ^, 0)]

void Add(stack_ptr *top, int item); // 스택의 top과 데이터를 전한다. addition
precedence Delete(stack_ptr *top); // 스택의 top을 전한다. delete
int eval(void); // 계산결과를 출력
void error_check(); // 문자열의 에러를 체크한다.
precedence get_token(char *symbol, int *n); // 문자열에서 토큰을 추출한다.
void postfix(void); // infix->postfix로 바꾼다.
void print_token (precedence key, int *i); // 토큰을 출력
int tomulti(char*,int*); // multi-digit으로 바꾸는 함수

본문내용

이 소스는 기본적으로 계산기프로그램입니다.
단, 특징적인 것은 스택을 리스트로 구현했다는
점이고, 또한 한자리 수만의 계산이 아니라
두자리 이상의 수의 계산이 가능하고 즉, 35 + 42
이런식의..... 또한 에러체크 기능이 있습니다.
*원하는 자료를 검색 해 보세요.
  • 도서관리 C프로그램 0페이지
    .
  • [C언어 프로그래밍] Postfix 변환 & 계산기 9페이지
    long stack[MAX_STACK_SIZE]; /* 스택 메모리로 사용하기 위한 전역 배열 */char expr[MAX_EXPR_SIZE]; /* 입력 문자열을 저장하기 위한 전역 배열 */long symb[MAX_EXPR_SIZE]; /* 입력된 문자..
  • [프로그램]스택과 postfix를 이용한 계산기 20페이지
    #include < stdio.h>#include < stdlib.h>#include < math.h>#include "cal.h"precedence get_token(char *symbol, int *n){*symbol = pre_expr[(*n)++];switch(..
  • [자료구조] infix 로 입력받아서 prefix로 바꾼 후 계산하는 계산기 3페이지
    #include < stdio.h >#include < string.h >#define MAX_STACK_SIZE 100#define MAX_EXPR_SIZE 100typedef enum {lparen, rparen, plus, minus, times, divide, ..
  • [공학기술]스택의 정의 및 원리 2페이지
    스택(Stack)이란 쌓아올린 더미를 말한다. 책상 위에 쌓아놓은 책, 설거지를 위해 쌓아놓은 식판, 창고에 쌓인 박스 등이 모두 스택이다. 편의점 선반에 놓여있는 물건도 일종의 스택이다. 새로운 음료수가 입고되었다면 이전 것을 뒤로 밀고 그 앞에 놓게 된다. 물론, ..
  • 스택을 이용하여 구현된 수식 계산기 소스입니다. 0페이지
    스택을 이용하여 구현된 수식 계산기 소스입니다.계산상 소숫점 계산은 제외하고 구현하였습니다.목적은 스택을 이용한 수식 계산기의 구현이므로 소숫점은 중요하지 않았습니다.소숫점 계산왜 안되냐고 딴지 걸지 말아주십시오.다시 말씀 드리는데, 소숫점 계산 안됩니다.알고리즘에는 ..
  • 스택을 이용한 계산기 0페이지
    템플릿으로 작성한 스택 소스와 스택을 이용한 계산기 소스입니다.보기 편하게 작성되어있구요. 사칙연산과 괄호연산 연산자 우선순위가 모두 적용되어있고 프리픽스 포스트픽스로 변환하시기 편할 것입니다. 아마 이 레포트로 높은 점수를 받으실 것입니다. C++로 제작하였습니다.
더보기
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      최근 본 자료더보기
      추천도서