下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一栈的应用数制转换1.程序设计简介该程序以顺序栈为工具,实现十进制数到其他一至十六进制数的转换。设计中采用了一个循环,使得用户可重复进行数制转换。需转换的十进制数和要转换的数制均通过交互方式输入。因采用了顺序栈,程序中包含SqStack.h。2.源程序#include<iostream.h>//cout,cin#include"process.h"//exit()#include"stdio.h"//EOF,NULL#include"SqStack.h"template<classT>voidconvert(Tn,Tm){//把十进制数n转换为m进制数Te;charc;SqStack<int>s(10);coutvv"需转换的十进制数是:"vvnvvendl;while(n){try{s.Push(n%m);}catch(char*err){cout<<err<<endl;}n=n/m;}coutvv"转换为"vvmvv"进制数为:";while(!s.StackEmpty()){try{e=s.Pop();if(ev10)coutvvevv'\t';else{c='A'+e-10;coutvvcvv'\t';}}catch(char*err){coutvverrvvendl;}}//
coutvvendl;}voidmain(){intn,m;〃分别存放被转换的数及转换数制charans;〃工作变量,存放是否继续的应答intflag=l;〃工作变量,是否继续的标志while(flag){coutvv"输入需转换的十进制数:";cin>>n;coutvv"输入需转换的数制:";cin»m;convert(n,m);coutvv"继续吗(Y/N)?"vvendl;cin»ans;if(ans=='Y'llans=='y')flag=1;else{flag=0;coutvv"程序运行结束,BYe-Bye!"vvendl;}}//while}//main3•程序运行结果'E:、匚卜+\IWSDbv9&\M'E:、匚卜+\IWSDbv9&\MyProject5\shujujiegcu2\Debug\shujujiegou2曲b鐵2-制:足1十数毂餐十站詈的乩=8菽为输璽聶011110幣灣|懈土进制数;222薛植环进制規乩半缭唱幣灣|懈土进制数;222薛植环进制規乩半缭唱£YdD?1十曲制数:蚀-磁是:2ZZ3n理序运"亍里克,HYe-ByeTPressanLjkeytocontintie实验二表达式括号匹配配对判断问题1.问题描述假设一个算法表达式中包括圆括号、方括号两种,设计判别表达式中括号是否正确匹配的算法。2.基本要求表达式用字符串表示,以初始化方式创建或以交互方式创建;借助栈进行算法设计;输出:显示表达式,并给出匹配处理结果:匹配、不匹配(右括号多、左括号多等)。3.思想stepl:创建一个栈;step2:从左到右扫描表达式,直至表达式结束;2.1:如果是左括号,入栈;取下一个字符;2.2:如果是右括号:2.2.1:与栈顶括号匹配,则出栈,消去一个左括号,取下一个字符;2.2.2:与栈顶括号不匹配,得到“不匹配”,结束;2.2.3:栈空,得到“不匹配”,结束;step3:若栈空,则表达式中括号匹配,否则不匹配。4.源程序#include<iostream.h>//cout,cin#include"process.h"//exit()#include"stdio.h"//EOF,NULLstructNode{inttop;chardata[stacksize];};Nodenode;voidInitStack() //初始化栈{node.top=-1;}sqstack(intn){base=newT[m];if(base=NULL){coutvv"创栈失败";exit(1);}stacksize=m;top=-1;}}voidPush(charx)if(node.top==stacksize-1);node.top++;node.data[node.top]=x;}voidPop(char&x){if(node.top==-1);x=node.data[node.top--];}for(i=0;*(p+i)!='\0'&&count!=0;i++){switch(*(p+i)){case'(':Push(*(p+i));break;case'[':Push(*(p+i));break;case')':{Pop(e);if(e!='(')count=0;};break;case']':{Pop(e);if(e!='[')count=0;};break;default:break;}}if(!StackEmpty()||count==0){coutvv"不匹配"vvendl;coutvv"继续吗?(y/n)"vvendl;cin>>s;
if(S=='y'||s=='Y')gotoinput;elseif(s=='n'lls==N)coutvv"谢谢,再见!"vvendl;return0;}else{ coutvv"匹配"vvendl;coutvv"继续吗?(y/n)"vvendl;cin>>s;if(s=='y'||s=='Y')gotoinput;elseif(s=='n'||s==N)coutvv"谢谢,再见!"vvendl;return0;}5•程序运行结果:continme;1+2^3+4'?(加n):1+:吗?(,/n)蝮吗?S)continme;1+2^3+4'?(加n):1+:吗?(,/n)蝮吗?S):1+;2+3)〔Wn)”E:\匚++XMSDbv9S\MyProject5\123124\Debug\123124.ex?回0谢总结与心得:这次实验中有些C++语句有些遗忘,编写源代码时还顺带复习了一下大一的C++知识,才还算可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 角色设计答辩
- 质保期合同范本
- 《国际经济法》多选题
- 淋巴结的治疗及护理
- 社会实践活动我们与游戏
- 厨房用品全年服务合同范本
- 绿植的租赁合同范本
- 顺丰员工劳动合同范本
- 古民居承包合同范本
- 《基于NF-κB信号通路的抗支糖浆抑制咳嗽变异性哮喘气道重塑的作用及机制研究》
- 开展修旧利废活动方案
- 交流高压架空输电线路跨越石油天然气管道的相关规定
- 初三全一册单词表汉语部分
- 中国画PPT精选课件
- 《幼儿教师口语训练》课程实训手册
- 35kV-SF6气体绝缘金属封闭式高压开关柜技术规范书
- 大学小组成员介绍动态PPT
- 纺织服装制造行业纳税评估模型案例
- 关于“钓鱼执法”现象的法律思考
- 广告牌拆除施工方案
- 英语-2020年3月高三第一次在线大联考(北京卷)(考试版)
评论
0/150
提交评论