实验三 十进制转二进制


一、实验目的

1、   熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。

2、      学会使用栈和队列解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模:

分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。

分别建立一个顺序队列和链队列,实现队列的入队和出队操作。

2、设计算法并写出代码,实现一个十将二进制转换成2进制数。

3、选做题(*

设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。

三、实验步骤

1、依据实验内容分别说明实验程序中用到的数据类型的定义;

2、相关操作的算法表达;

3、完整程序;

4、总结、运行结果和分析。

5、总体收获和不足,疑问等。

四、实验要求

1、   按照数据结构实验任务书,提前做好实验预习与准备工作。

2、   “*”为选做题。做好可加分。

3、   严格按照数据结构实验报告模板和规范,及时完成实验报告。

4、   在个人主页上发文章提交作业。

5、   实验课会抽查3-5人,希望你可以被查到!


五、源代码

#include<iostream>
using namespace std;
const int Max=30;
class Change
{
public:
	Change(){top=-1;}
	~Change(){}
	void Push(int x);
	int Pop();
	void Print();
	int Empty(){
	if(top==-1)
		return 1;
	else
		return 0;
	}
private:
	int top;
	int data[Max];
};

void Change::Push(int x)
{
	if(top==Max-1) throw"上溢";
	data[++top]=x;
}

int Change::Pop()
{
	int x;
	if(top==-1) throw"下溢";
	x=data[top--];
	return x;
}

void Change::Print()
{
	if(top==-1) cout<<"NONE!";		
	while(top!=-1)
		cout<<Pop();
	
}


int main()
{
	Change a;
    int p,ab;
	cout<<"请输入一个十进制数:";
	cin>>ab;
	while(ab!=0)
	{
		p=ab%2;
		a.Push(p);
		ab=ab/2;
	}
	cout<<"二进制为:";
	a.Print();
	cout<<endl;
	return 0;
}

结果:



六、心得体会
    这一次实验用不同的方法做了几次都做不成,都出现了同一个问题,就是书写问题。让我找了好几天,是因为不太熟练的原因,让我重新拾起语法!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值