版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课程设计说明书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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学园艺(观赏园艺学)试题及答案
- 2025年中职安全技术管理(安全生产法规)试题及答案
- 2025年高职模具设计与制造(模具设计制造)试题及答案
- 2025年大学油气储运技术(安全管理)模拟试题
- 2025年中职(老年服务与管理)老年人心理护理阶段测试试题及答案
- 2025年高职地理学(人文地理学)试题及答案
- 2025年中职药品经营与管理(药品经营管理)试题及答案
- 2025年大学(软件工程)Java程序设计阶段测试卷
- 2025年本科护理学(外科护理)试题及答案
- 2025年大学四年级(公共事业管理)公共项目评估试题及答案
- 2025中数联物流科技(上海)有限公司招聘笔试历年参考题库附带答案详解
- 湖南佩佩教育战略合作学校2026届高三1月第二次联考语文试题
- 幼儿园家长学校培训课件
- 电气控制及PLC应用-项目化教程 课件 2.1 项目二 认识三菱系列PLC
- 优衣库的论文
- RECP的课件教学课件
- 请做饭人员合同协议
- 864《商务英语4》开放大学期末考试机考题库(按拼音)
- 2025智慧园区建设运营模式创新与经济效益分析
- 农民种花生的课件
- 生产管理存在的主要问题和对策分析
评论
0/150
提交评论