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

등록일 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언어 프로그래밍] Postfix 변환 & 계산기 9페이지
    // postfix.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include /* isdigit()이 들어있는 ..
  • [자료구조] Translation of infix to postfix program list 4페이지
    [Programming Project] Translation of infix to postfix program list 2002/10/28 (A8766) 016311 박석무 { Definition Define #include #include
  • C++ 포인터/ 오버로드 과제물입니다. 8페이지
    정말 힘들게 배웠던 C++입니다.많은 도움 되시길 바래요.
  • [Java Programming] JAVA로 구현한 Infix to Postfix 계산기 7페이지
    import java.io.*; import java.util.*; import java.lang.Integer; class Node // 노드 정의 { public Object element; public Node next; public Node(Object e) {..
  • [프로그램]스택과 postfix를 이용한 계산기 20페이지
    ..FILE:Calc.plg Build Log --------------------Configuration: Calc - Win32 Debug-------------------- Command Lines Creating temporary file "C:\DOCUME~1..
  • [프로그래밍] C언어로 짠 행렬연산 6페이지
    #include #include //system을 쓰기 위한 라이브러리 #include "simpio.h" #define Max 100 //행렬의 최대 크기 상수 /*함수 선언 */ void Menu(); int Select(); ..
  • [자료구조] infix 로 입력받아서 prefix로 바꾼 후 계산하는 계산기 3페이지
    #include #include #define MAX_STACK_SIZE 100 #define MAX_EXPR_SIZE 100 typedef enum {lparen, rparen, plus, minus, times, divide, ..
더보기
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      4. 지식포인트 보유 시 지식포인트가 차감되며
         미보유 시 아이디당 1일 3회만 제공됩니다.
      상세하단 배너
      최근 본 자료더보기
      상세우측 배너
      추천도서
      [프로그램] 리스트를 이용한 스택 계산기