[계산기][calculater][C언어]다항식 중위표기식을 후위표기식으로 변환후 연산합니다.
*승*
다운로드
장바구니
소개글
Visual Studio 2010 버전을 이용하여 만든 프로젝트 폴더가 통체로 압축되어 있습니다.폴더내부에 .c 파일에 소스가 저장되어 있으며 그 소스를 그대로 이용하여
Visual Studio 6버전과 2008 버전에서도 바로 실행 가능합니다.
다항식을 중위표기에서 후외표기로 변환한후에 연산하고 결과를 출력해주는 계산기 프로그램입니다.
링크드스택을 이용하였습니다.
한자리 숫자 뿐만아니라 여러자리 숫자도 연산가능합니다.
괄호 처리가능하고 사칙연산외에도 각종 논리연산자까지 총 17개 연산자가 실행 가능합니다.
중복괄호도 처리 가능합니다.
소스코드는 약 270라인 정도 이고 적절히 주석처리가 되어있습니다.
Visual Studio 타 버전을 이용할시에
Win32 Console application 형식의 프로젝트를 새로 만드신 후에
C++ source file 형태의 .c 확장자를 가진 파일을 생성하여 내부에 소스코드를 복사해서 붙여넣으신후에
실행하시면 됩니다.
컴파일 실행환경
Microsoft Visual Studio 2010본문내용
#include#include // exit, malloc
#include // strlen
int fm2[100]={0};
// 연결된 스택과 관련된 함수들
typedef int element;
typedef struct
{
element item;
struct StackNode *link;
}StackNode;
typedef struct
{
StackNode *top;
}LinkedStackType;
void init(LinkedStackType *s)
{
s->top=NULL;
}
int is_empty(LinkedStackType *s)
{
return (s->top==NULL);
}
void push(LinkedStackType *s, element item)
{
StackNode *temp=(StackNode *)malloc(sizeof(StackNode));
if(temp==NULL)
{
fprintf(stderr, "메모리 할당 에러n");
return;
}
else
{
temp->item=item;
temp->link=s->top;
s->top=temp;
}
}
element pop(LinkedStackType *s)
{
if(is_empty(s))
{
fprintf(stderr, "스택이 비어있음aan");
exit(1);
}
else
{
StackNode *temp=s->top;
int item=temp->item;
s->top=s->top->link;
free(temp);
return item;
}
}
element peek(LinkedStackType *s)
{
if(is_empty(s))
{
fprintf(stderr, "스택이 비어있음bbn");
exit(1);
}
else
return s->top->item;
}
.
.
.
.
.
압축파일 내 파일목록
Debug/vc2010v-calculater.exe
Debug/vc2010v-calculater.ilk
Debug/vc2010v-calculater.pdb
ipch/vc2010v-calculater-37efb009/vc2010v-calculater-d249224b.ipch
vc2010v-calculater/calculater.c
vc2010v-calculater/Debug/calculater.obj
vc2010v-calculater/Debug/cl.command.1.tlog
vc2010v-calculater/Debug/CL.read.1.tlog
vc2010v-calculater/Debug/CL.write.1.tlog
vc2010v-calculater/Debug/link-cvtres.read.1.tlog
vc2010v-calculater/Debug/link-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.1848-cvtres.read.1.tlog
vc2010v-calculater/Debug/link.1848-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.1848.read.1.tlog
vc2010v-calculater/Debug/link.1848.write.1.tlog
vc2010v-calculater/Debug/link.6068-cvtres.read.1.tlog
vc2010v-calculater/Debug/link.6068-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.6068.read.1.tlog
vc2010v-calculater/Debug/link.6068.write.1.tlog
vc2010v-calculater/Debug/link.command.1.tlog
vc2010v-calculater/Debug/link.read.1.tlog
vc2010v-calculater/Debug/link.write.1.tlog
vc2010v-calculater/Debug/mt.command.1.tlog
vc2010v-calculater/Debug/mt.read.1.tlog
vc2010v-calculater/Debug/mt.write.1.tlog
vc2010v-calculater/Debug/rc.command.1.tlog
vc2010v-calculater/Debug/rc.read.1.tlog
vc2010v-calculater/Debug/rc.write.1.tlog
vc2010v-calculater/Debug/vc100.idb
vc2010v-calculater/Debug/vc100.pdb
vc2010v-calculater/Debug/vc2010v-calculater.exe.embed.manifest
vc2010v-calculater/Debug/vc2010v-calculater.exe.embed.manifest.res
vc2010v-calculater/Debug/vc2010v-calculater.exe.intermediate.manifest
vc2010v-calculater/Debug/vc2010v-calculater.lastbuildstate
vc2010v-calculater/Debug/vc2010v-calculater.log
vc2010v-calculater/Debug/vc2010v-calculater_manifest.rc
vc2010v-calculater/vc2010v-calculater.vcxproj
vc2010v-calculater/vc2010v-calculater.vcxproj.filters
vc2010v-calculater/vc2010v-calculater.vcxproj.user
vc2010v-calculater.sdf
vc2010v-calculater.sln
vc2010v-calculater.suo
Debug/vc2010v-calculater.ilk
Debug/vc2010v-calculater.pdb
ipch/vc2010v-calculater-37efb009/vc2010v-calculater-d249224b.ipch
vc2010v-calculater/calculater.c
vc2010v-calculater/Debug/calculater.obj
vc2010v-calculater/Debug/cl.command.1.tlog
vc2010v-calculater/Debug/CL.read.1.tlog
vc2010v-calculater/Debug/CL.write.1.tlog
vc2010v-calculater/Debug/link-cvtres.read.1.tlog
vc2010v-calculater/Debug/link-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.1848-cvtres.read.1.tlog
vc2010v-calculater/Debug/link.1848-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.1848.read.1.tlog
vc2010v-calculater/Debug/link.1848.write.1.tlog
vc2010v-calculater/Debug/link.6068-cvtres.read.1.tlog
vc2010v-calculater/Debug/link.6068-cvtres.write.1.tlog
vc2010v-calculater/Debug/link.6068.read.1.tlog
vc2010v-calculater/Debug/link.6068.write.1.tlog
vc2010v-calculater/Debug/link.command.1.tlog
vc2010v-calculater/Debug/link.read.1.tlog
vc2010v-calculater/Debug/link.write.1.tlog
vc2010v-calculater/Debug/mt.command.1.tlog
vc2010v-calculater/Debug/mt.read.1.tlog
vc2010v-calculater/Debug/mt.write.1.tlog
vc2010v-calculater/Debug/rc.command.1.tlog
vc2010v-calculater/Debug/rc.read.1.tlog
vc2010v-calculater/Debug/rc.write.1.tlog
vc2010v-calculater/Debug/vc100.idb
vc2010v-calculater/Debug/vc100.pdb
vc2010v-calculater/Debug/vc2010v-calculater.exe.embed.manifest
vc2010v-calculater/Debug/vc2010v-calculater.exe.embed.manifest.res
vc2010v-calculater/Debug/vc2010v-calculater.exe.intermediate.manifest
vc2010v-calculater/Debug/vc2010v-calculater.lastbuildstate
vc2010v-calculater/Debug/vc2010v-calculater.log
vc2010v-calculater/Debug/vc2010v-calculater_manifest.rc
vc2010v-calculater/vc2010v-calculater.vcxproj
vc2010v-calculater/vc2010v-calculater.vcxproj.filters
vc2010v-calculater/vc2010v-calculater.vcxproj.user
vc2010v-calculater.sdf
vc2010v-calculater.sln
vc2010v-calculater.suo