版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课程设计说明书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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场理性心态修炼 冷静处理工作问题课件
- 【可研专栏】只差可行性研究报告就能过会临时找人还来得及吗
- 宴会会务接待执行标准化操作手册
- 设施农业栽培基质与种植土替换标准
- 全面质量管理实务操作课件
- 养老中心建设项目技术方案
- 预拌混凝土生产管理制度
- 门窗塞缝防水施工方案
- 无人机整机装配质量检验报告
- 消防应急处置技能培训课件
- 2026年一级建造师《港口与航道工程管理与实务》真题及答案
- 2026产业园区运营模式创新与招商策略分析报告
- 2026秋【新情境新趋势】第一章有理数 情境卷 沪科版数学七年级上册
- 2026秋小学人教版(新教材)数学六年级上册第三单元学情测试练习卷及答案
- 雨课堂学堂在线学堂云《创伤重症医学(陆军军医大学)》单元测试考核答案
- 事业编计算机岗2026高频考题
- DTII(A)带式输送机计算书Ver1.57蓝天(95版,20140109)
- 第一单元《语文园地》教案(2课时)-2026-2027学年统编版(新版)小学语文三年级上册
- 2026年中国创新方法大赛理论模拟题
- 老年人心理评估(老年心理学课件)
- 食品安全控制体系课件
评论
0/150
提交评论