《C++教学资料》自然数间的进制转换.doc

《C++教学资料》自然数间的进制转换.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学资料,自然数,进制,转换教学资料,自然数,进制,转换

河北工业大学计算机软件技术基础(VC)2008年课程设计报告学院 电气及其自动化 班级 电气C071 姓名 窦爽 __ 学号 073798 ____ 成绩 __ ____一、题目:自然数间的进制转换(18)二、设计思路1、总体设计1)分析程序的功能选择输入类型种类并输入数据,程序进行转换,输出该数据所对应的十进制二进制八进制和十六进制.2)系统总体结构和思路该程序由一个主函数和九个分函数组成.设计思路是分别将各进制转换为十进制,再将十进制转换为各进制.2、各功能模块的设计1---2 公共转换函数 3---5 各进制转换为十进制 6---9 十进制转换为各进制 10 主函数3、设计中的主要困难及解决方案1)大量使用函数调用,结构较难构造。 解决:认真分析构思结构,在清晰的模块下进行编写。2)基础知识不牢固导致大量错误并难以修改。解决:重新翻书,以及请教其他成绩优秀的的同学,多交流。3)进制转换算法上出现困难。解决:认真分析算法,努力将计算思路一步步体现在设计当中。4、设计的程序最终完成的功能1)程序能完成的功能基本实现了各进制间进行转换的功能2)测试数据及运行结果进入界面后进行用户选择,选择3(八进制),显示:请输入八进制数据:输入52461,输出十进制:21809 二进制:101010100110001 八进制:52461 十进制:5531三、程序清单本程序包含jinzhizhuanhuan.cpp和head.h。1jinzhizhuanhuan.cpp#includeiostream.h#includehead.h#includemath.hvoid secondmain(int a) //公共转换函数(各进制转换为十进制){ if(a==1) cout请输入十进制数据:; else if(a==2) cout请输入二进制数据:; else if(a==3) cout请输入八进制数据:; else if(a==4) cout请输入十六进制数据:; int b=0; cinb; //输入要转换的数据 if(a==1) commonchange(b); else if(a==2) { int t=0; t=twototen(b); //调用二进制转换十进制 commonchange(t); //调用公共转换函数 } else if(a==3) { int t=0; t=eighttoten(b); //调用八进制转换十进制 commonchange(t); //调用公共转换数 } else if(a==4) { int t=0; t=sixteentoten(b); //调用十六进制转换十进制 commonchange(t); //调用公共转换函数 }}void commonchange(int b) //公共转换函数(十进制转为各进制){ cout转换结果:endl; cout 十 进 制: b endl; cout 二 进 制: ; tentotwo(b); coutendl; //调用十转二 cout 八 进 制: ; tentoeight(b); coutendl;//调用十转八 cout 十六进制: ; tentosixteen(b); coutendl;//调用十转十六}int twototen (int b) //二进制转换十进制{ int i,j,c=0,a[100]={0}; for(i=0;i100;i++) { a[i]=b%10; //a[i]存放余数 b=b/10; //将输入数据依次拆开 if (b==0) //当b被除为0时for循环停止,否则将输出c[100]里的各个元素 break; } for(j=0;j=i;j++) c=a[j]*pow(2,j)+c; //余数乘以权位的相应次数再累加 return c; //c存放转换后的十进制数}int eighttoten (int b) //八进制转换十进制{ int i,j,c=0,a[100]={0}; for(i=0;i100;i++) { a[i]=b%10; //a[i]存放余数 b=b/10; /

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档