十进制和二进制相互转化程序的设计书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
十进制和二进制相互转化
程序设计书
需求分析
随着技术的不断提高,进制转换向着简单化,规模化发展,而对于只能识别二进制0和1码的计算机来说,如何翻译成人类可以认识和编译的语言,和安全加密等给信息管理有关的信息随之增加。在这种情况下单靠人工来处理这些信息不但显得大不从心,而且极容易出错。因此,需要开发二进制与十进制互换系统,该系统可以实现由计算机代替人工执行一系列复杂而繁琐的操作,使得办公人员可以轻松快捷的完成进制转换的任务。
总结系统需求分为大体分为5个模块:
首先第一个需要数据的信息输入,即输入数据的基本信息包括输入的进制选项,所输入的二进制位数,所输入的二进制数,所输入的十进制数和判断是否全1或全0五个模块。
第二个需求是判断数据进制选项信息,在信息和科技不断进步的今天,数据及时准确的更新成了任何一个系统的首要任务,本系统应时代所需设计了数制信息功能,包括对包括数据的进制,二进制数据的位数,十进制数据,进行进制转换计算。
第三个需求是所输入的二进制数据,数据的运行使用主要是解决向十进制转换
第四个需求是所输入的十进制数据,数据运行使用主要是解决向二进制转换。
第五个需求是打印退出,在对系统进行操作后,退出系统。
1.1 数据需求分析
本系统的主要数据进制转换的实现。转换包括:二进制数向十进制数转换,十进制数向二进制数转换,判断是否为全0或全1,是否继续执行等。
1.2功能需求分析
本程序功能为二进制和十进制的相互转换,二进制转十进制主要根据进制转换的根本方法,分别乘以2的次方得到十进制数;十进制转二进制主要根据“除2取余法”得到二进制数。另外,本程序简单易懂,操作简便,给出引导说明,以及还出错处理,只需按照提示输入即可用。
本系统主要实现对二进制与十进制之间互换,需要实现以下几个方面的功能:
(1)二进制转十进制:选择二进制向十进制转换,选择二进制位数,输入二进制数,进行数制转换,输出结果,判断是否继续。
(2)十进制转二进制:选择十进制向二进制转换,输入十进制数,进行数制转换,输出结果,判断是否继续。
2系统总体设计
2.1系统模块划分
本系统主要是对二进制与十进制互换的管理,包括了二进制转十进制、十进
制转二进制。整个系统分为以下几个模块。
1、主界面模块
本模块提供选择界面的欢迎界面和主菜单界面,供用户选择与执行各项操作工作。
2、输入界面
本模块用于输入数据信息,例如输入二进制位数并输入二进制数(3,101)等。
3、显示转换结果
本模块用于显示转换后的数据信息,以及提供是否继续信息。
2.2系统模块结构图
算法
二进制转十进制:通过循环将二进制每一位分别乘以2的相应次方,相加得到十进制数;十进制转二进制:通过“除二取余”发循环,将每一位存在一个数组中;直到除数为0,将此数组逆置,得到该数相应的二进制数。
3系统详细设计
3.1程序流程图
开始
选择转换类
型,存入k
K=1 K=2 K!=1&&k!=2
3.2中文DOS界面
在VC++6.0环境中将已编写好的程序代码通过编译、调试和运行操作,即可得到以下DOS界面。
3.3程序代码清单
/*二进制与十进制的相互转换*/
#include
#include
#include
#include
void main()
{
char c, Y[33],temp[33];
int n,i=0,k,j=0;
double T;
for(c='y';c!='n'&&c!='N';)
{cout<<"请选择:"< cout<<"1.二进制转十进制;"< cin>>k; switch(k) { case 1: { printf("请输该数位数:\n"); cin>>n; cout<<"请输该数:"; for(i=0;i { cin>>Y[i]; if(Y[i]!='0'&&Y[i]!='1') { cout<<"输入有误!"< break; } } if(i break; else { for(T=0,i=0;n>0;i++) { if(Y[i]=='1') T=T+pow(2,n-1); n=n-1; } cout<<"该数的十进制为:"< break; } } case 2: { cout<<"请输入十进制数:"< cin>>n; for(i=0;n!=0;i++) { k=(n%2); n=n/2; if(k==1)Y[i]='1'; else if(k==0)Y[i]='0'; } for(j=0,i=i-1;i>=0;i--,j++) temp[j]=(int)Y[i]; temp[j]='\0'; cout<<"该数的二进制数为:"; for(i=0;temp[i]!='\0';i++) cout< break; } default:cout<<"输入有误!"<