上海交大大数据结构实验报告材料.docx

上传人:b****6 文档编号:3002306 上传时间:2022-11-17 格式:DOCX 页数:17 大小:204.86KB
下载 相关 举报
上海交大大数据结构实验报告材料.docx_第1页
第1页 / 共17页
上海交大大数据结构实验报告材料.docx_第2页
第2页 / 共17页
上海交大大数据结构实验报告材料.docx_第3页
第3页 / 共17页
上海交大大数据结构实验报告材料.docx_第4页
第4页 / 共17页
上海交大大数据结构实验报告材料.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

上海交大大数据结构实验报告材料.docx

《上海交大大数据结构实验报告材料.docx》由会员分享,可在线阅读,更多相关《上海交大大数据结构实验报告材料.docx(17页珍藏版)》请在冰豆网上搜索。

上海交大大数据结构实验报告材料.docx

上海交大大数据结构实验报告材料

《数据结构》实验报告

说明:

本软件在win764位系统测试通过,需要安装.net3.5以上版本

七、数制转换问题

1.问题描述

对于输入的任意一个非负十进制整数,输出与其等值的其他进制数(二进制、八进制或十六进制)。

2.任务要求

⑴建立模型,确定存储结构;

⑵对任意十进制数,实现进制转换问题。

3.实验指导

(1)实验类型:

设计实验。

本实验要求同学们针对“数制转换”这个经典的问题,应用栈的存储结构,自己设计一个方案,并上机实现。

此实验的目的是培养学生对数据结构的简单应用能力。

(2)预备知识:

栈的基本定义、栈的基本操作算法、栈的存储结构。

(3)实现方法提示:

1)以十进制转换为八进制为例。

将十进制数整除8,计算过程中得到的余数依次进栈,按出栈序列输出栈中的内容即为与输入的十进制数对应的八进制数。

设Conversion函数执行数制转换的操作,对(1348)10转换为8进制的过程如下:

N

Ndiv8

Nmod8

1348

168

4

168

21

0

21

2

5

2

0

2

2)设计数制转换的算法。

4.实现方案

1)方案描述:

本方案采用C#语言实现,实现十进制与其他进制直接的转换

2)实现代码:

主要实现代码如下

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespace进制转换器

{

publicpartialclassMainFrm:

Form

{

publicMainFrm()

{

InitializeComponent();

}

privatevoidMainFrm_Load_1(objectsender,EventArgse)

{

txtStart.Focus();

}

 

///

///十进制转换为八进制

///

///

///

privatevoidradio_dto_Click_1(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

//TODO:

十进制转为八进制。

Int32i;

try

{

i=Convert.ToInt32(txtStart.Text.Trim());

lblTitle.Text="十进制转为八进制";

txtEnd.Text=Convert.ToString(i,8);

}

catch

{

MessageBox.Show("请输入合法的十进制数","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

///

///十进制转换为十六进制

///

///

///

privatevoidradio_dth_Click(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

//TODO:

十进制转换为十六进制。

Int32i;

try

{

i=Convert.ToInt32(txtStart.Text.Trim());

lblTitle.Text="十进制转换为十六进制";

txtEnd.Text=Convert.ToString(i,16);

}

catch

{

MessageBox.Show("请输入合法的十进制数","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

///

///十进制转换为二进制

///

///

///

privatevoidradio_dtb_Click(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

//TODO:

十进制转换为二进制。

Int32i;

try

{

i=Convert.ToInt32(txtStart.Text.Trim());

lblTitle.Text="十进制转换为二进制";

txtEnd.Text=Convert.ToString(i,2);

}

catch

{

MessageBox.Show("请输入合法的十进制数","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

///

///八进制到十进制

///

///

///

privatevoidradio_otd_Click(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

//TODO:

八进制到十进制。

try

{

lblTitle.Text="八进制到十进制";

txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text.Trim(),8));//八进制转为十进制

}

catch

{

MessageBox.Show("请提供合法的八进制数","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

///

///十六进制到十进制

///

///

///

privatevoidradio_htd_Click(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

try

{

//TODO:

十六进制到十进制。

lblTitle.Text="十六进制到十进制";

txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text,16));

}

catch

{

MessageBox.Show("请提供合法的十六进制数!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

///

///二进制到十进制

///

///

///

privatevoidradio_btd_Click(objectsender,EventArgse)

{

txtEnd.Text="";

if(txtStart.Text.Length!

=0)

{

try

{

//TODO:

二进制到十进制。

lblTitle.Text="二进制到十进制";

txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text,2));

}

catch

{

MessageBox.Show("请提供合法的二进制数!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

else

{

MessageBox.Show("请提供转换数据!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

txtStart.Focus();

}

privatevoidreset_Click(objectsender,EventArgse)

{

txtStart.Text="";

txtEnd.Text="";

txtStart.Focus();

}

privatevoidclose_Click(objectsender,EventArgse)

{

this.Close();

}

}

}

3)测试过程:

1.不输入数据,软件会温馨提示

2.输入数据选择转换模式

3.测试完成,结果正确

十四、Huffman编码

1.问题描述

设某编码系统共有

个字符,使用频率分别为

,设计一个不等长的编码方案,输出每个字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1