用顺序栈实现十进制数转换成二进制数
来源:互联网 发布:qq飞车朱雀数据 编辑:程序博客网 时间:2024/04/29 15:19
一、实验目的
1、 熟练掌栈的结构特点,掌握栈的顺序存储和链式存储结构和实现。2、 学会使用栈解决实际问题。
二、实验内容
设计算法并写出代码,实现一个十将二进制转换成2进制数。
三、源代码
#include <iostream>using namespace std;const int StackSize=10;template<class DataType>class SeqStack{public:SeqStack();~SeqStack(){};void Push(DataType x);DataType Pop();void Decimaltor(int num,int r);private:DataType data[StackSize];int top;};template<class DataType>SeqStack<DataType>::SeqStack(){top=-1;}template<class DataType>void SeqStack<DataType>::Push(DataType x){if(top==StackSize-1)throw"上溢";top++;data[top]=x;}template<class DataType>DataType SeqStack<DataType>::Pop(){DataType x;if(top==-1)throw"下溢";x=data[top--];return x;}template<class DataType>void SeqStack<DataType>::Decimaltor(int num,int r){int k;top=-1;while(num!=0){k=num%r;//得到余数 Push(k);num=num/r;}while(top!=-1){cout<<Pop();}}int main(){int num;int r;SeqStack<int>S;cout<<"请输入一个十进制的数字:"<<endl;cin>>num; cout<<"请问你要转换为几进制"<<endl; cin>>r; S.Decimaltor(num,r); return 0;}
四、实验结果
五、心得
这个十进制转换为二进制数的实验关键在于设计算法,我通过查阅书本上的资料和向同学询问最终敲出了代码,但是仍然存在很多错误,比如出栈的操作一直出不来数据,后面发现是因为被之前的文件调试遗漏的数据影响了,改了文件没有保存导致出不来数据,后面通过多次调试最终成功出栈,十分的有成就感。通过这次实验,我明白了在调试过程中如果遇到错误,要有耐心去找出问题所在并修改。
阅读全文
0 0
- 用顺序栈实现十进制数转换成二进制数
- 二进制数转换成十进制数(栈来实现)
- 实验三:十进制转换成二进制数(顺序栈)
- 十进制转换成二进制数
- 将十进制数转换成二进制数
- 十进制数转换成二进制数
- 将二进制数转换成十进制数
- 十进制转换二进制数
- 用递归把十进制数转换成二进制数
- 将一个十进制数转换成二进制输出--递归实现
- java 十进制转换成二进制数
- 将十进制转换成二进制数
- <C++>十进制数转换成二进制显示
- 十进制数??? 转换为二进制
- 二进制 十进制数的转换
- 十进制数转换为二进制
- 顺序栈实现十进制转换二进制
- 将十进制数转换成二进制数输出
- Java学习笔记1:Java中有关print、println、printf的用法和区别
- 关于select选中option时的方法
- BZOJ4245 二进制贪心
- C++入门知识总纲
- DBus介绍
- 用顺序栈实现十进制数转换成二进制数
- HyperNet/ION/SDP-CRC/R-CNN/Fast R-CNN/Faster R-CNN/物体检测算法
- 【正一专栏】恒大中超七连冠到手了
- FreeMarker中assign指令的用法
- servlet乱码
- py object的内置方法与字段
- 欢迎使用CSDN-markdown编辑器
- Eclipse 添加GBK编码
- MYSQL实现将两个结果集合并,并且按照时间字段分组,其他字段的值求和