ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:338.95KB ,
资源ID:2493585      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2493585.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数制转换-c语言程序设计课程设计报告.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数制转换-c语言程序设计课程设计报告.doc

1、计算机学院高级语言程序设计课程设计报告学号2016-2017学年 第二学期C语言程序设计课程设计报告题目:数制转换专业:网络工程(对口)班级:姓名:指导教师:成绩:计算机学院2017 年 4月 25日目录一、转换概述21、需求分析22、概要设计23.详细设计41.十进制转化为任意进制函数:42.任意进制转化十进制函数:53.程序流程图64.运行环境115.开发工具和编程语言12二、数学原理13十进制转二进制:13十进制转八进制:13十进制转十六进制:14二进制转十进制:14二进制转八进制:14二进制转十六进制:15八进制转十进制:15八进制转十六进制:16十六进制转二进制:16十六进制转八进制

2、:16三、附:源代码17测试结果22参考文献25四、小结26致谢26一、转换概述1、需求分析 进制数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制、八进制和十六进制。十六进制数有两个基本特点:它由十六个字符09以及A,B,C,D,E,F组成(它们分别表示十进制数015),十六进制数运算规律是逢十六进一。要求: (1) 输入一个十进制数N,将它转换成R进制数输出,并可以进行逆转换。(2) 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2=R=16, R10)。(3) 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,

3、则对应的数字规则参考16进制(比如,10用A表示,等等)。(4) 界面友好。2、概要设计 数制转换器程序是要求任意两种数间的相互转化,本次课程设计以任意进制间转换为中心实现二进制、八进制、十进制、十六进制、十八进制之间的相互转化。对输入的任意进制的数字进行转换,实现常见进制间的转换以及用户自定义需要转换的目标进制数,这样大大提高了本程序的用途。常见的二进制、八进制、十进制、十六进制、十六进制之间的固定转换,其转换方式大同小异,从低进制数向高进制数转换进行乘数累加,反之则逐步求余,最终进行分布计算得到想要的结果,对以上思想进行扩展,使其不仅仅局限于那些常见进制间的转换,更多的应用到任意进制之间的

4、转换。本次系统程序,主要有两大模块组成,即任意进制转换为十进制、十进制转换为任意进制,这两部分共同组成了对任意进制数的转换的实现,通过菜单选择,让用户实现自己想要的结果,同时也在程序的简洁上有所压减,达到简洁的应用程序实现相对较复杂的功能。最后打印输出结果,清屏执行下次任务。 该程序包括七个子函数模块,其中菜单函数模块定义为整型,其余字符转换函数处理模块都根据函数所需定义数据类型。数制转换器处理系统中用数组来储存处十进制以外的数,将一个指定进制的数,从低到低高一位一位取出,并计算出每位的十进制值,然后乘以其数基的特定幂指数,得出这一位数的十进制值,将所有各位的十进制值相加得出这个数的十进制值,

5、然后再将该十进制数转换为指定数制的数,此过程采用求余法进行,用这个十进制数作为被除数,用指定的数基作除数,连续求余,得出的余数依由个位到十位等的顺序组成新数,即得指定数制的数。(1)逻辑设计如图所示: 图2.1(2) 程序中各函数简单说明见如表1、1函数说明所示:表2.1返回值函数名参数表函数说明intmainvoid主函数voidint ANY_ten()int x,int num任意进制转换为十进制voidInt ten_ANY()int num,int y十进制转换为任意进制voidten_ANY()num,2十进制转换为二进制voidlist1()num进制转换菜单voidlist2(

6、)num主菜单voidANY_ch ()num,num任意进制间的转换3.详细设计1.十进制转化为任意进制函数:十进制整数num转换为任意(x)进制整数采用除x取余,逆序排列法。具体做法是:用x去除十进制整数,可以得到一个商和余数;再用x去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为x进制数的低位有效位,后得到的余数作为x进制数的高位有效位,结构图如图3.4所示:int ANY_ten(int x,int num) int i,j=0;int s=0;for(i=1;num!=0;i*=x)if(num%10(x-1)j=1;break;elses+=(num

7、%10)*i;num=num/10;if(j=1)printf(原数据出错!请重新输入:n);elseprintf(转换为十进制:%dnn,s);return s;2.任意进制转化十进制函数:从最后一位开始算,依次列为第0、1、2.位第n位的数乘以任意进制数y的n次方得到的结果相加结构图如图3.5所示:void ten_ANY(int num,int y)int i;int arr30;for(i=0;i+)arri=num%y;num=num/y;if(num=0)break;printf(转换为 %d 进制:,y);for(;i=0;i-)switch(arri)case 10 : pri

8、ntf(A);break;case 11 :printf(B);break;case 12 :printf(C);break;case 13 :printf(D);break;case 14 :printf(E);break;case 15 :printf(F);break;case 16 :printf(G);break;case 17 :printf(H);break;case 18 :printf(I);break;case 19 :printf(J);break;default :printf(%d,arri);printf(nn);3.程序流程图(1)主函数main()流程图,如图3

9、.1所示:图3.1 main函数流程图(2)主菜单list2()流程图,如图3.2所示:图3.2 list2()函数流程图6(3)常见进制转换菜单list1()函数流程图,如图3.3所示:图3.3常见进制转换菜单list1()函数流程图(4)十进制转换为任意进制函数ten_ANY ()函数流程图,如图3.4所示:图3.4十进制转换为任意进制函数ten_ANY ()函数流程图(5)任意进制转换为十进制函数ANY _ch()函数流程图,如图3.5所示:图3.5任意进制数之间的转换ANY_ch ()函数流程图4.运行环境 软件环境 操作系统:Windows7 硬件环境 处理器:Intel Penti

10、um 166MX 或更高 内存:32MB以上 硬盘空间:1GB以上 显卡:SVGA 显示适配5.开发工具和编程语言 C语言二、数学原理 实现进制转换需要编个函数(进制转换器),每一函数完成相应进制的转换,下面是各个进制之间转换的数学方法的算法。十进制转二进制: 十进制数转换成二进制数,是一个连续除2的过程;把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0.最后将所有余数倒序排列,得到数就是转换结果。例如:302/2=151余0151/2=75余175/2=37余137/2=18余118/2=9余09/2=4余14/2=2余02/2=1余0所以302转换为2进制,结果:100101

11、110.十进制转八进制: 十进制数转换成八进制的方法和转换为二进制的方法类似,唯一变化:除数由2变成8。例如:120/8=15余015/8=1余71/8=0余1所以120转换为8进制,结果:170.十进制转十六进制: 十进制数转换成十六进制数的方法和转换为二进制的方法类似,唯一变化:除数由2变成16。不过,十六进制数:(1015)是用英文大写字母(AF)表示。例如:123/16=7余11所以123转换为16进制,结果:7B.二进制转十进制: 二进制数转换为十进制数按权展开,第0位的权值是2的0次方,第1位的权值是2的1次方例如:1010转换成十进制数:第0位:0*20=0第1位:1*21=2第

12、2位:0*22=0第3位:1*23=8所以1010转换成十进制数,结果:0+2+0+8=10.二进制转八进制: 利用421,从后往前每三位一组,缺位补0,然后按十进制方法进行转换。例如:(11001)001=1011=3然后将结果按从下往上顶顺序书写:31.二进制转十六进制: 二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算;利用8421,对于任意一个4位的二进制数,都可以很快算出它对应的10进制值。例如:1111=8+4+2+1=15又因为十六进制数:1015用大写字母AF表示,所以15为F.八进制转二进制: 利用421;从后往前每三位一组,缺位处用0填补,然后按十进制方法进行

13、转化;例如:10013-011然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式。八进制转十进制: 八进制就是逢8进1,八进制数采用07这八数来表达一个数;八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方例如:1507转换成十进制数:第0位:7*80=7第1位:0*81=0第2位:5*82=320第3位:1*83=512所以换算成十进制:7+0+320+512=839.八进制转十六进制: 八进制转换成十六进制:有两种方法:一种是先将八进制转换成二进制,在将二进制转换成十六进制。另一种方法是将八进制转换成十进制,在将十

14、进制转换成十六进制。十六进制转二进制: 上面已经提到二进制转换成十六进制的方法,记住8421,每一位的权值,所以十六进制转成二进制就是一段四位分别转成二进制。例如:F1111,D1101,A1010,50101.十六进制转八进制: 十六进制转八进制也不能直接转换,需要将十六进制转换成十进制或者二进制,才能由十进制或者二进制转换成八进制。十六进制转十进制: 16进制就是逢16进1,但我们只有09这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方所以,在

15、第N(N从0开始)位上,如果是数X(X大于等于0,并且X小于等于15,即:F)表示的大小为X*16的N次方。例如:2AF5第0位:5*160=5第1位:F*161=240第2位:A*163=2560第3位:2*164=8192所以转换成十进制数为:10997.29三、附:源代码#include#include#includelist2();int ANY_ten(int x,int num) int i,j=0;int s=0;for(i=1;num!=0;i*=x)if(num%10(x-1)j=1;break;elses+=(num%10)*i;num=num/10;if(j=1)prin

16、tf(原数据出错!请重新输入:n);elseprintf(转换为十进制:%dnn,s);return s;void ten_ANY(int num,int y)int i;int arr30;for(i=0;i+)arri=num%y;num=num/y;if(num=0)break;printf(转换为 %d 进制:,y);for(;i=0;i-)switch(arri)case 10 : printf(A);break;case 11 :printf(B);break;case 12 :printf(C);break;case 13 :printf(D);break;case 14 :pr

17、intf(E);break;case 15 :printf(F);break;case 16 :printf(G);break;case 17 :printf(H);break;case 18 :printf(I);break;case 19 :printf(J);break;default :printf(%d,arri);printf(nn);void list1()int i,a,m,num;char ch100;FILE *f;dogetchar();system(cls);printf( *n);printf( * *n);printf( * 数制转换器 *n);printf( *

18、*n);printf( * 1 - 十进制转二进制 *n);printf( * 2 - 十进制转八进制 *n);printf( * 3 - 十进制转十六进制 *n);printf( * 4 - 二进制转十进制 *n);printf( * 5 - 八进制转十进制 *n);printf( * 6 - 十六进制转十进制 *n);printf( * 7 - 二进制转八进制 *n);printf( * 8 - 二进制转十六进制 *n);printf( * 0 - 返回 *n);printf( * * *n);printf( *n);loop:printf(请输入你所选择的序号: ); scanf(%d,

19、&a); if(a!=0&a9) st:printf(n输入要转换的数: ); scanf(%s,&ch); f=fopen(num.txt,w); for(i=0;i=(int)strlen(ch);i+) fputc(chi,f); fclose(f); for(i=0;i=48&(int)(chi)=A&(int)(chi)0);void ANY_ch()int a,m,x,y,num;printf(请输入进制数: );scanf(%d,&x);printf(输入该 %d 进制数:,x);scanf(%d,&num);m=ANY_ten(x,num);printf( 是否将当前十进制数进

20、一步转换: 1.是 2.否n); printf( 请选择: );loop2:scanf(%d,&a); switch(a) case 1:printf(转换的目标进制数为: ); scanf(%d,&y); ten_ANY(m,y);break; case 2:printf(t转换结束!);break; default:printf(选择有误! 请重选: );goto loop2;break; getchar();int list2()int b;doprintf( *n);printf( * 二十进制内任意进制转换! *n);printf( *n);printf(tt按Enter进入主菜单!

21、);getchar();system(cls);printf( *n);printf( * 【主菜单】 *n);printf( * *n);printf( * 模式选择 *n);printf( * *n);printf( * 1 - 常见进制转换 *n);printf( * 2 - 自定义进制数转换 *n);printf( * 0 - 退出 *n);printf( * *n);printf( *n);loop1:printf( 请选择要执行的模式: ); scanf(%d,&b); switch(b) case 1: list1();break; /*常见进制转换菜单*/ case 2: AN

22、Y_ch();break; /*任意进制数之间转换*/ case 0: exit(0);break; default: printf(n您的输入有误,请重新选择!nn);goto loop1;break; getchar();while(b0);return 0;void main()list2();测试结果按Enter键进入主菜单,如图3.1所示:图3.1十进制转换为二进制选择1,进入常见进制转换菜单,如图3.2所示:图3.2十进制转换为二进制选择1,十进制转换为二进制函数,输入12,结果如图3.3所示:图3.3十进制转换为二进制选择2,十进制转换为八进制函数,输入20,结果如图3.4所示:

23、图3.4十进制转换为八进制选择3,十进制转换为十六进制函数,输入30,结果如图3.5所示:图3.5十进制转换为十六进制选择4,二进制转换为十进制函数,输入131,结果如图3.6所示:图3.6二进制转换为十进制选择4,二进制转换为十进制函数,输入111,结果如图3.7所示:图3.7二进制转换为十进制选择5,八进制转换为十进制函数,输入171,结果如图3.8所示:图3.8八进制转换为十进制选择6,十六进制转换为十进制函数,输入19AF,结果如图3.9所示:图3.9十六进制转换为十进制选择7,二进制转换为八进制函数,输入1101,结果如图3.10所示:图3.10十六进制转换为十进制选择8,二进制转换

24、为十六进制函数,输入11111,结果如图3.11所示:图3.11二进制转换为十六进制选择0,返回主菜单如图3.12所示:图3.12返回主菜单选择2,自定义进制转换,输入进制数为2,数字为110101,选择1.是,结果如图3.13所示:图3.13自定义进制转换参考文献1谭浩强.C程序设计(第三版).北京:清华大学出版社.2005:342李建忠.大学计算机基础.西安:西北大学出版社.2005:1043谭浩强.C程序设计题解与上机指导(第三版).北京:清华大学出版社.2005:684罗建军、朱丹军、顾刚.C+程序设计教程(第2版).北京:高等教育出版社.2007:76四、小结本次课程设计,完成的数制

25、转换器系统实现了二进制、八进制、十六进制和十进制之间相互转换等功能,同时也实现了二十进制内任意进制之间的转化功能。并且加入了对输入数字的判定是否符合要求,对输入不合法字符检验并提示的功能。当输入的数字太大而无法实现转化时,主要是因为数字超过了定义的长度,无法实现两个数制转化。除此之外本程序不能实现小数的转化等问题。我希望以后可以实现上述两个问题,首先是改进程序,使其能实现小数的转化,其次改进定义的长度问题,使其能够转化更大的数。这次课程设计使我对C语言知识进行了系统的、有条理的复习,对许多知识点都加强了记忆。通过本次数据结构课程设计,我进一步学习了用C语言设计代码的思想,并把它运用到实际操作中

26、。C语言是工具,数据结构是思想,把两者结合起来,熟练运用,才能设计出符合要求的算法。设计过程中,我也遇到很多麻烦,并通过翻阅资料、询问同学来解决。在这个过程中,我知道了与他人合作的重要性,学会了与他人合作。以后,我会更认真的学习C语言,不断提高自己的编程水平。致谢在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师熊茜老师,还有我的C语言任课老师金尚柱老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!目 录第一章 总 论11.1 项目概要11.2 可行性研究报告编制依据11.3 项目区简介及建设单位概况21.4 可研报告研

27、究内容61.5 可研报告研究结论、问题及建议7第二章 项目背景及建设的必要性和可行性92.1 建设背景92.2 项目建设的必要性132.3 项目建设的可行性15第三章 项目建设内容及规模173.1 项目建设内容173.2 建设规模17第四章 场址选择及建设条件194.1 场址现状194.2 建设条件19第五章 工程方案245.1 方案设计指导思想及原则245.2 建筑设计245.3 结构设计295.4 给排水设计335.5 暖通设计365.6 电气及弱电设计395.7 消防设计42第六章 能源和资源节约措施456.1 能源节约措施456.2 建筑节能具体措施466.3 给排水资源节约措施466

28、.4 电气节能具体措施466.5 供热系统节能技术措施47第七章 环境影响评价487.1 环境影响487.2 保护措施507.3 安全保护措施517.4 环境影响评价结论52第八章 组织机构538.1 管理机构538.2 项目组织管理53第九章 工程管理及实施计划549.1 项目建设管理原则549.2 工程管理549.3 项目实施步骤559.4 项目实施进度计划55第十章 劳动安全、卫生与消防5810.1 劳动安全与卫生5810.2 消防安全59第十一章 投资估算及资金筹措6111.1 估算依据及内容6111.2 投资估算6311.3 资金筹措6412.1 招标依据6512.2 工程招标65第十三章 社会影响分析及评价6813.1 项目社会评价的依据6813.2 建设地区基本的社会环境情况6813.3 社会影响分析6813.4 项目在建设、运营中的社会风险分析6913.5 社会评价结论70第十四章 结论及建议7114.1 结论7114.2项目建议71第十五章 附表、附图、附件7315.1 附表7315.2 附图7315.3 附件73

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服