欢迎来到天天文库
浏览记录
ID:39890860
大小:84.50 KB
页数:8页
时间:2019-07-14
《28进制转换翻转小游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、编号:28河北工业大学计算机软件技术基础(VC)2012年课程设计报告学院电信类班级C1134班姓名相倩学号116027成绩____一、题目:进制转换翻转小游戏二、设计思路1、总体设计1)分析程序的功能给定一个十进制数据,将其转换成十六进制的数据,十六进制的数据再进行翻转,翻转后再转换成十进制数据,十进制数据再逆序,作为下一周期的输入值,如此进行五个周期,输出五个周期内的数据。2)系统总体结构:此游戏分为五个周期,每一次周期可分为:输入的十进制转换为十六进制,十六进制的翻转,十六进制转换为十进制,十进制的翻转。每次循环由主函数控
2、制。模块函数名称主函数Voidmain十转换十六Voidshitoshiliu十六的翻转Voidshiliufanzhuan十六转换十Intshiliutoshi十的翻转Intshifanzhuan其中VoidshitoshiliuVoidshiliufanzhuanIntshiliutoshiIntshifanzhuan均为调用函数,在主函数中被调用。2、各功能模块的设计:1)Voidmain模块第8页/共8页编号:28这是一个五个周期的循环,所以主函数要能实现循环,首先用一个if函数来判断输入的数据是否符合要求,如果不符合要
3、求,则要输出“请重新输入:”。如果符合要求,就进行程序代码。程序是利用for函数来实现周期循环的。每次循环,在主函数内再调用其它函数。代码参见Voidmain函数。2)Voidshitoshiliu模块此函数用来把输入的十进制数据转换成十六进制的数据,利用数组的赋值和while函数来实现,再以数组的输出来输出转换成的十六进制数据。代码参见Voidshitoshiliu函数3)Voidshiliufanzhuan模块此函数实现的是字符的逆序,在for循环下,字符数组调换,然后使用字符数组的输出将十六进制数据翻转后的字符输出。代码参
4、见Voidshiliufanzhuan函数。4)Intshiliutoshi模块此函数把字符型的十六进制转变成整型的十进制数,利用的是字符的ASCII码值来转换的,根据字符ASCII码值和数据的关系来编程的,最后还要return回到主函数继续运行。代码参见Intshiliutoshi函数。5)Intshifanzhuan模块此函数是数据的逆序,利用取余和取整赋值于变量,在运用乘权法得到转换后的十进制数。代码参见Intshifanzhuan函数。6)创新设计部分输入于程序中的数据应该为小于10000,如果大于10000,不符合程序
5、要求,应该与以提醒,如果为小于0,也不符合要求,所以,当输入一个十进制数据时,应该先对其进行一下判断,符合要求就继续进行,不符合输出提醒语。第8页/共8页编号:28改进的代码参见panduan函数。3、设计中的主要困难及解决方案设计中主要用到的就是十六进制转换到十进制时,首先想到的是用乘权法,当把程序代码写出后,在运行过程中,发现少一循环,但检查代码却没用发现任何错误。再请教老师后决定采用字符的ASCII码值来编写程序,因为对ASCII码值不是很清楚,所以再设计这段代码时,很费力,最后在了解了ASCII码值与数据的关系后,运用f
6、or循环来完成了这段代码。发现用ASCII码值很方便,但是却需要自己对其的数值运算很了解,数据的计算必须准确。4、我所设计的程序最终完成的功能1)说明我编制的程序能完成的功能输入一个十进制的数据,转变成十六进制后,十六进制数据进行翻转,翻转后在转换成十进制数据,最后十进制数据在翻转最为下一周期的输入值,如此循环五个周期,将五个周期内的数据都先显示出来。2)准备的测试数据及运行结果第8页/共8页编号:28三、程序清单1)main函数//主函数voidmain(){intn;cout<<"请输入一个10000以内的整数:";cin>
7、>n;if(n>=0&&n<=10000)cout<<"t"<8、=s[j];n/=16;i++;}cout<<"t";for(q=i-1;q>=0;q--)//逆序输出str[q];cout<
8、=s[j];n/=16;i++;}cout<<"t";for(q=i-1;q>=0;q--)//逆序输出str[q];cout<
此文档下载收益归作者所有