




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:28河北工业大学计算机软件技术基础(VC)2012年课程设计报告学院 电信类 班级 C1134班 姓名 相倩 学号116027成绩_ _一、 题目:进制转换翻转小游戏二、设计思路1、总体设计1) 分析程序的功能 给定一个十进制数据,将其转换成十六进制的数据,十六进制的数据再进行翻转,翻转后再转换成十进制数据,十进制数据再逆序,作为下一周期的输入值,如此进行五个周期,输出五个周期内的数据。2) 系统总体结构:此游戏分为五个周期,每一次周期可分为:输入的十进制转换为十六进制,十六进制的翻转,十六进制转换为十进制,十进制的翻转。每次循环由主函数控制。模块函数名称主函数Void main十转换十六Void shitoshiliu十六的翻转Void shiliufanzhuan 十六转换十Int shiliutoshi十的翻转Int shifanzhuan 其中Void shitoshiliu Void shiliufanzhuan Int shiliutoshi Int shifanzhuan 均为调用函数,在主函数中被调用。 2、各功能模块的设计:1)Void main 模块 这是一个五个周期的循环,所以主函数要能实现循环,首先用一个if函数来判断输入的数据是否符合要求,如果不符合要求,则要输出“请重新输入:”。如果符合要求,就进行程序代码。程序是利用for函数来实现周期循环的。每次循环,在主函数内再调用其它函数。代码参见Void main函数。2)Void shitoshiliu模块此函数用来把输入的十进制数据转换成十六进制的数据,利用数组的赋值和while函数来实现,再以数组的输出来输出转换成的十六进制数据。代码参见Void shitoshiliu函数3)Void shiliufanzhuan模块此函数实现的是字符的逆序,在for循环下,字符数组调换,然后使用字符数组的输出将十六进制数据翻转后的字符输出。 代码参见Void shiliufanzhuan函数。4)Int shiliutoshi模块 此函数把字符型的十六进制转变成整型的十进制数,利用的是字符的ASCII码值来转换的,根据字符ASCII码值和数据的关系来编程的,最后还要return回到主函数继续运行。代码参见Int shiliutoshi函数。5)Int shifanzhuan模块此函数是数据的逆序,利用取余和取整赋值于变量,在运用乘权法得到转换后的十进制数。代码参见Int shifanzhuan函数。6)创新设计部分输入于程序中的数据应该为小于10000,如果大于10000,不符合程序要求,应该与以提醒,如果为小于0,也不符合要求,所以,当输入一个十进制数据时,应该先对其进行一下判断,符合要求就继续进行,不符合输出提醒语。改进的代码参见panduan函数。3、设计中的主要困难及解决方案设计中主要用到的就是十六进制转换到十进制时,首先想到的是用乘权法,当把程序代码写出后,在运行过程中,发现少一循环,但检查代码却没用发现任何错误。再请教老师后决定采用字符的ASCII码值来编写程序,因为对ASCII码值不是很清楚,所以再设计这段代码时,很费力,最后在了解了ASCII码值与数据的关系后,运用for循环来完成了这段代码。发现用ASCII码值很方便,但是却需要自己对其的数值运算很了解,数据的计算必须准确。4、我所设计的程序最终完成的功能1) 说明我编制的程序能完成的功能 输入一个十进制的数据,转变成十六进制后,十六进制数据进行翻转,翻转后在转换成十进制数据,最后十进制数据在翻转最为下一周期的输入值,如此循环五个周期,将五个周期内的数据都先显示出来。2) 准备的测试数据及运行结果三、程序清单1)main函数/主函数void main() int n; coutn; if(n=0 & n=10000) couttn; else cout请重新输入:; for(int m=0;m5;m+) shitoshiliu(n); shiliufanzhuan(); n=shiliutoshi(); if(m!=4) /当m=4时,不进行下一步转换; n=shifanzhuan(n); 2)Void shitoshiliu函数void shitoshiliu(int n) int j,i=0,q; while(n!=0) /十进制转换成十进制; j=n%16; stri=sj; n/=16; i+; cout=0;q-) /逆序输出strq; coutstrq;3)Void shiliufanzhuan函数void shiliufanzhuan() int i,j; char str1; int l=strlen(str); for(i=0,j=l-1;ij;i+,j-)str1=stri; stri=strj; strj=str1; cout=0;j-) cout=0;i-) s=s*16+stri-0; if(stri9) /当stri9时,还要进行ASCII码值的数据 s-=7; 计算; coutt; couts=0) int c=s%10; s/=10; p=10*p+c; if(s = 0) break; coutt=0 & n=10000) couttn; else cout请重新输入:; 四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。 我完成了程序的设计,虽花费了不少时间,但我能调试出和效果图一样的程序,我感到挺好的,此外,我还为程序增加了一项输入判断的代码,用来对输入的数据是否符合要求来判断。2、 对课题提出更完善的方案 通过颜色设计,使十六进制数据为红色,十进制数据为蓝色,这样在每一次循环中能明显的区别出它们,更直观。5、 收获及心得通过这次课程设计,让我进一步了解了程序的编排。以为很简单的程序,让自己写的时候发现很不容易,这几天课程设计而知道的知识很多,在十六进制向十进制转换时,采用的ASCII码值的运算,因为ASCII码值对我开说很陌生,所以在编排时,特为此做了有关了解,扫除了这部分的盲区,明白了十进制的字符型如何转变为数据型,在这个题目中,还主要用到了调用函数,我认为,调用函数的使用使程序结构更清晰明了。一个主函数为主要路线,其他函数辅助完成,避免了程序中部分复杂代码重复出现。在编程中,调用函数间的连接很重要,通过返回值来运行。翻转在此游戏中使用最多。字符翻转,数据的逆序,这些程序都需要数组的赋值来完成,还在for,while等函数的循环下实现。对数组有了更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《英语国家概况》课程介绍与教学大纲
- 社会科学研究方法 课件 第十一章 资料分析
- 全国一等奖高中语文统编版必修上册《赤壁赋》 公开课课件
- 老年人意外伤害课件
- 老年人急救相关课件
- 老年人床上清洁课件
- 提高粗苯回收率
- CN120204103A 一种护肤组合物的制备方法及其递送系统和应用
- 实数、整式、分式及其运算(7大考点)-2023-2025年中考数学试题分类汇编(广东专用)解析版
- 第一节 直线的倾斜角与斜率、直线的方程 2026年高三数学第一轮总复习
- 幼儿园课程概论第2版(学前教育专业)PPT全套完整教学课件
- 系统性红斑狼疮狼疮性肾炎
- 《思想道德与法治》课件第四章明确价值要求践行价值准则第三节积极践行社会主义核心价值观
- 高等土力学土的本构关系
- JJG 956-2013大气采样器
- 2023年化工检修钳工题库及答案
- GA/T 1707-2020防爆安全门
- 教师调课申请表
- 会展项目管理教材 课件
- 酒店文化全套教学课件
- 钻孔桩桩底沉渣处理高压注浆方案
评论
0/150
提交评论