VC++ 多功能计算器_第1页
VC++ 多功能计算器_第2页
VC++ 多功能计算器_第3页
VC++ 多功能计算器_第4页
VC++ 多功能计算器_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书课程设计说明书NO.#沈阳大学沈阳大学沈阳大学沈阳大学〃压栈templatevclassT>voidStackvT>::Push(constT&item)if(StackFull())〃判断堆栈是否已满if(StackFull())〃判断堆栈是否已满cerr<<"Stackoverflow!"vvendl;exit(l);top++;stacklist[top]=item;〃不满则压栈stacklist[top]=item;〃不满则压栈〃出栈templatevclassT>TStackvT>::Pop()〃判断是否为空栈{Ttemp;〃判断是否为空栈if(StackEmpty())cerrvv"Attempttopopanemptystack!"vvendl;exit(l);temp=stacklist[top];〃弹出top--;returntemp;〃清栈templatevclassT>voidStackvT>::ClearStack(){top=-l;}〃返回栈顶元素templatevclassT>TStack<T>::Peek()const{if(top==-1)〃判断top是否有效{cerr<<"attempttopeekatanemptystack!"vvendl;exit(l);}returnstacklist[top];}〃判断堆栈是否为空templatevclassT>intStackvT>::StackEmpty()const{returntop==-1;}〃判断堆栈是否已满templatevclassT>intStackvT>::StackFull()const{returntop==MaxStackSize-1;}#endif

//calculator.h计算器模板类的头文件}〃四则运算函数templatevclassT>voidCalcualatorvT>::Run(void){coutvv"输入要进行的四则运算(后缀法):\n";charc;Tnewoperand;while(cin>>c,c!='=')“)case'+':case'-':case'*':case'/':case'A'.case'A'.Computel(c);break;default:〃非运算符,则必为操作数,将字符送回cin.putback(c);〃读入操作数并将其存入栈中cin>>newoperand;Enter(newoperand);break;}}〃答案已在栈顶,用peek输出之if(!S.StackEmpty())coutvv"结果是:"vvS.Peek()vvendl;}templatevclassT>voidCalcualatorvT>::Compute2(chard){Tdata,N;coutvv"请输入角度"vvendl;cin>>data;N=data*(PI/180);〃把输入的角度转换成弧度S.ClearStack();coutvv"\n";Enter(N);//将N存放到栈中switch(d){case'T':S.Push(tan(N));〃正切计算break;case'S':S.Push(sin(N));〃正弦计算break;case'c':S.Push(cos(N));〃余弦计算break;default:S.ClearStack();break;}f(!S.StackEmpty())coutvv"结果是:"vvS.Peek()vvendl;coutvv"************************************"vvendl°}〃三角函数界面选择函数templatevclassT>voidCalcualatorvT>::trangle(void){intflag=0;charddo{flag=0;coutvv"#######################################"vvendl;coutvv"请选择:\n";〃选择语句coutvv"T正切#"vvendl;coutvv"S正弦#"vvendl;coutvv"c余弦#"vvendl;cin>>d;

if(d!='T'&&d!='S'&&d!='c'&&d!='y')〃判断选择代码的输入是否有误,输入错误时,重新输入{coutvv"Errornode,pleasechooseagain!"vvendl;flag=1;elseCompute2(d);〃各类三角函数的具体操作函数Compute2(d);〃各类三角函数的具体操作函数}while(flag=l);〃乘方,开方,阶乘运算函数templatevclassT>voidCalcualatorvT>::com(void){Calcualator<T>A;intd;chary;do{coutvv"#######################################"vvendl;utvv"请选择:\n";coutvv"1.乘方#"vvendl;coutvv"2.开方#"vvendl;coutvv"3.阶乘#"vvendl;cin>>d;switch(d)〃选择语句{case1:chengfang(A);//乘方的具体运算函数break;case2:kaifang(A);//开方的具体运算函数

break;case3:jiecheng(A);//阶乘的具体运算函数break;default:coutvv"Continue?(yorN)"vvendl;break;cm>>y;}while(y=='y');〃循环语句控制是否继续该类型的计算否则进入主菜单templatevclassT>voidCalcualatorvT>::Clear()S.ClearStack();}#endif//main.cpp源文件#include"calculator.h"intmain(){coutvv"Wellcometocalculatorsystem!\n";coutvv"\n";chark;docoutvv"***"vvendl;coutvv"*a.普通四则运算**"vvendl;coutvv"*s.三角函数的运算**"<<endl;coutvv”*k.乘方开方阶乘运算**"<<endl;charh;cin»h;Calcualatorvdouble>CALC;if(h=='k')

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论