欢迎来到天天文库
浏览记录
ID:58372467
大小:747.50 KB
页数:28页
时间:2020-04-30
《C语言进制转换课程设计方案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言进制转换课程设计方案学生专业班级学号题目进制转换课题性质A.工程设计课题来源D.自拟课题。指导教师同组无主要容针对进制转换问题,选择、设计和实现合适的抽象数据类型;进行进制转换分析,给出设计方案。学习掌握并熟练运用C语言进行程序设计;任务要求这次课程设计不仅提升C语言理论知识,更重要的是能够提高自己的编程能力。这个项目是用来实现进制转换的一些简单功能。实现过程中需要编制函数,依次实现各个功能。也需要学会利用网络或其他工具来查找相关的资料解决问题,每解决一个问题,就会多一份收获,会不断培养自我学习的能力。参考文献.专业.专注.审查意见指导教师
2、签字:教研室主任签字:2014年6月15日一、转换概述1、需求分析进制数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制、八进制和十六进制。十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一。要求:(1)输入一个十进制数N,将它转换成R进制数输出,并可以进行逆转换。(2)输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16,R<>10)。(3)为每个测试实例输出转换后的数,每个输出占
3、一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。(4)界面友好。2、概要设计数制转换器程序是要求任意两种数间的相互转化,本次课程设计以任意进制间转换为中心实现二进制、八进制、十进制、十六进制、十八进制之间的相互转化。对输入的任意进制的数字进行转换,实现常见进制间的转换以及用户自定义需要转换的目标进制数,这样大大提高了本程序的用途。常见的二进制、八进制、十进制、十六进制、十六进制之间的固定转换,其转换方式.专业.专注.小异,从低进制数向高进制数转换进行乘数累加,反之则逐步求余,最终进行分布计算得到想要的结果,对以上思
4、想进行扩展,使其不仅仅局限于那些常见进制间的转换,更多的应用到任意进制之间的转换。本次系统程序,主要有两大模块组成,即任意进制转换为十进制、十进制转换为任意进制,这两部分共同组成了对任意进制数的转换的实现,通过菜单选择,让用户实现自己想要的结果,同时也在程序的简洁上有所压减,达到简洁的应用程序实现相对较复杂的功能。最后打印输出结果,清屏执行下次任务。该程序包括七个子函数模块,其中菜单函数模块定义为整型,其余字符转换函数处理模块都根据函数所需定义数据类型。数制转换器处理系统中用数组来储存处十进制以外的数,将一个指定进制的数,从低到低高一位一位取出,
5、并计算出每位的十进制值,然后乘以其数基的特定幂指数,得出这一位数的十进制值,将所有各位的十进制值相加得出这个数的十进制值,然后再将该十进制数转换为指定数制的数,此过程采用求余法进行,用这个十进制数作为被除数,用指定的数基作除数,连续求余,得出的余数依由个位到十位等的顺序组成新数,即得指定数制的数。(1)逻辑设计如图所示:.专业.专注.图2.1.专业.专注.(2)程序中各函数简单说明见如表1、1函数说明所示:表2.1返回值函数名参数表函数说明intmainvoid主函数voidintANY_ten()intx,intnum任意进制转换为十进制voi
6、dIntten_ANY()intnum,inty十进制转换为任意进制voidten_ANY()num,2十进制转换为二进制voidlist1()num进制转换菜单voidlist2()num主菜单voidANY_ch()num,num任意进制间的转换3.详细设计1.十进制转化为任意进制函数:十进制整数num转换为任意(x)进制整数采用"除x取余,逆序排列法。具体做法是:用x去除十进制整数,可以得到一个商和余数;再用x去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为x进制数的低位有效位,后得到的余数作为x进制数的高位
7、有效位,结构图如图3.4所示:intANY_ten(intx,intnum){inti,j=0;ints=0;.专业.专注.for(i=1;num!=0;i*=x){if(num%10>(x-1)){j=1;break;}else{s+=(num%10)*i;num=num/10;}}if(j==1)printf("原数据出错!请重新输入:");elseprintf("转换为十进制:%d",s);returns;}2.任意进制转化十进制函数:从最后一位开始算,依次列为第0、1、2...位第n位的数乘以任意进制数y的n次方得到的结果相加
8、结构图如图3.5所示:voidten_ANY(intnum,inty){inti;intarr[30];for(i=0;;i++){ar
此文档下载收益归作者所有