十进制和二进制相互转化程序的设计书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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<<"输入有误!"<

相关文档
最新文档