공학용 계산기 프로그램(C++) 후위 수식 변환 알고리즘
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

공학용 계산기 프로그램(C++) 후위 수식 변환 알고리즘에 대한 보고서 자료입니다.

목차

1. 메인 함수

2. 입력받은 문자를 연산자와 피연산자로 구분하여 순서 바꾸고 계산하는 클래스 파일

3. 위의 Token 클래스에서 사용하는 스택 프로그램 파일 (template 과 linked list 이용)

본문내용

로 저장
variable_value[z]=c;
z++;
}
}
}// End of else
}// End of for
cout << "\n\n계산된 값: " << estack.del() << "\n\n";
}// End of eval()
#endif
위의 Token 클래스에서 사용하는 스택 프로그램 파일 (template 과 linked list 이용)
stackh.h
#ifndef STACKH_H // stack 클래스
#define STACKH_H
//---------------------------------------------------------------------
// 설명 : 이 클래스는 노드의 형태를 나타내는 클래스이다.
// 기능 : 하나의 노드를 구성하는 형태로 선언 되어 있다.
//---------------------------------------------------------------------
template
class Node
{
public:
Node();
Type value; // 입력 받는 값을 포인터로 하여 저장한 값을 가리키게 한다.
Node *Next; // 다음 노드를 가리키는 포인터 값
};
template
Node::Node()
{ // 생성자 함수. 변수 초기화
Next=NULL;
}
//----------------------------------------------------------------------
// 설명 : 스택 클래스. 자료를 저장하고 후에 저장한 값을 먼저 빼낸다.
// 기능 : Node 형의 자료를 저장하고 불러온다. 링크드 리스트를 이용한다.
//----------------------------------------------------------------------
template // template로 클래스 선언
class Stack { // stack 클래스
private:
Node *top; // 자료를 저장하고 뺄 top 선언
Node *first;// 첫번째 자료의 위치 기억 포인터
public:
Stack(); // 생성자 함수
bool Isempty();
void add(T x); // stack 값을 저장하는 함수
T del(); // top 의 값을 빼오고 노드를 삭제하는 함수
};
template // 스택이 비어 있는지 확인
bool Stack::Isempty()
{
if (first==NULL)
return true;
else
return false;
}
template
Stack::Stack()// 생성자 함수
{
top=NULL;
first=NULL;
}
//------------------------------------------------------------------
// 기능 : 새로운 데이터를 저장한다.
// 동작 : 새로운 동적 Node 를 생성하여 그곳에 입력한 데이터 저장
//------------------------------------------------------------------
template
void Stack::add(T x) // 데이터 저장 함수
{
if (Isempty()) // first가 NULL이면
{
first= top = new Node;// 새로운 노드 생성 하고 first와 top에 저장
top->value=x; // top value에 입력한 값 저장
top->Next=0; // top Next 에 0저장 하여 마지막 알림
} else {
top->Next = new Node; // 노드가 1개 이상 존재하면 새로운 노드 생성
top = top->Next; // top을 새로 생성된 노드로 이동
top->value=x; // top에 입력값 저장
top->Next=0; // top Next 에 0을 저장하여 마지막 값 알림
}
}
//--------------------------------------------------------------------
// 기능 : 가장 나중에 저장된 데이터를 반환하고 그 Node 를 삭제한다.
// 동작 : top에 저장된 값을 반환하고 top의 주소를 이전 Node 로 바꾼다.
//--------------------------------------------------------------------
template
T Stack::del() // stack 에 저장된 값 반환 및 삭제 함수
{
Node *current; // Node 형 포인터 변수 선언 (현재의 위치 지정 포인터)
Node temp; // Node 형 변수 선언 (반환할 값을 저장할 변수)
current=first; // first 의 값 current에 저장
if (Isempty()) // current 가 NULL이면 저장된값 없음
{
return 0;
}
else if (current==top) // current 가 top와 같으면 값이 하나 있음
{
temp=*top; // top에 저장된 값을 temp 변수에 넘겨주고
delete top; // top의 노드 삭제
return temp.value; // temp.value(마지막 저장값 ) 반환
} else {
while (current->Next!=top) // current의 Next 값이 top과 같을때 까지
{
current=current->Next; // currentf를 하나씩 다음 노드로 이동
}
temp=*top; // top의 노드값을 temp 에 저장
top=current; // top을 이전 노드로 이동(current는 top의 바로 전 노드이다. )
delete top->Next;// top 노드 삭제
top->Next=0;
return temp.value; //// temp.value(마지막 저장값 ) 반환
}
}
#endif
  • 가격300
  • 페이지수12페이지
  • 등록일2003.11.26
  • 저작시기2003.11
  • 파일형식한글(hwp)
  • 자료번호#234629
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니