下载此文档

28 进制转换翻转小游戏.doc


文档分类:管理/人力资源 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
河北工业大学计算机软件技术基础(VC)2012年课程设计报告
学院班级姓名学号成绩____
一、题目:
进制转换翻转小游戏(28)
二、设计思路
1、总体设计
分析程序的功能
将一个10进制的数转换为16进制的数;再将十六进制的数翻转;再将翻转后的16进制数转换为10进制的数;再将10进制的数翻转。把上述整个过程作为一个周期。计算10000以内的一个数据经过5个周期变换后的数据。
系统总体结构:
系统有一个主函数构成,依次用了:数据输入命令,循环结构,switch结构,if结构,数学公式,数据输出命令。这些完成了10机制与16进制之间的相互转化以及数据的翻转变化。
2、各功能模块的设计:
①首先,程序进行的是10进制的数到16进制数的转化,由于数的定义类型为int,故求商时得到的是整数部分,取余计算得到的是16进制各位上的数。为16进制数的输出打下了基础。
②接着,程序进行的是对16进制数的输出,先用if结构对各位上的数进行判断,若为0-9的数直接输出,若为10-15的数则需要进行换数,原则为:10-A,11-B,12-C,13-D,14-E,15-F。输出后的数即为16进制的数。
③然后进行的是16进制数逆序输出,只要②循环结构反向进行即可,其余与16进制数的输出完全一样,即可完成。
④接着进行的是逆序后的16进制的数到10进制数的转化,应用了数学函数pow进行计算,目标实现。
⑤再然后,进行的是10进制数的逆序,与①基本相同,也是采用了求商,取余。
⑥最后进行的是实现5个周期的变化,为让所学知识充分应用,我运用了while循环而不是for循环,使5个周期成功实现。
3、设计中的主要困难及解决方案
①10进制到16进制数间的转化时,对于10-A,11-B,12-C,13-D,14-E,15-F的转化,开始我忘记了switch结构,想到的是使用if,else结构,但这样程序显得特别散乱没有整体感,于是我询问舍友有没有更好的程序结构。他们提到了switch结构我才恍然大悟,这个结构我们是学过的。
②刚开始调制程序时,由于忘记将程序结尾的a【0】设为0,使第一个周期后的数据总出错,但当我看到调试多次后二、三、四、五周期的数为定值后,我知道这肯定不是一个随机数。经过仔细思考,看出只要将程序结尾的a【0】设为0就行了,否则,a【0】会叠加出现错误。
③还有一点我也是绞尽脑汁才想出来的,程序每个周期输出的第一个数总是一个三位数,若上一个程序结束时是大于三位数的数就会凭空少一位,很令人头疼。反复查看是j这个数用得不对,于是又定义了一个n,用来统计每个周期后10进制数的位数,问题解决。
4、设计的程序最终完成的功能
说明你编制的程序能完成的功能
将读入的10000以内的数实现10进制到16进制间的转化并实现位序的逆序,以及该数进行5个周期的变化后的结果。
准备的测试数据及运行结果
今以1234和2345为例进行测试:

三、程序清单
#include <>
#include <>
void main ()
{
int i,j,m=0,n,a[255],b[255],c[255],s=0;
cout<<"请输入一个10000以内的整数:"<<"\t";

28 进制转换翻转小游戏 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bjy0415
  • 文件大小0 KB
  • 时间2015-09-10