数据结构 设计进制转换计算器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

天津职业技术师范大学Tianjin University of Technology and Education

《面向对象程序设计》

课程设计报告

设计进制转换计算器

学院:信息技术工程学院

专业:计算机科学与技术

班级学号:14

学生姓名:**

指导教师:***

2012年12月

一.课程设计名称:采用面向对象的程序设计方法设计实现二进制、八进制、十进制、十六进制之间的进制转换计算器。

二.实用工具软件:Microsoft Visual C++

三.课程设计内容简介:

#include

#include

#include//字符串头文件

#include

class GY//各进制转换为十进制

{

public:

GY()

{}

int ten()//十转二

{ int ss,aa;

cout<<"请输入一个十进制数"<

cin>>ss;

aa=ss;

int tw[10],i(0),j(0);

while(ss)

{

tw[i]=ss%2;

ss/=2;

i++;

}

cout<<"转换为8进制为\n"<

cout<<"转换为16进制为\n"<

cout<<"转换为2进制为\n";

for(j=i-1;j>=0;j--) //输出二进制结果

cout<

cout<

return 0;

}

int twototen()//二转十

{ int pd=0; //判断

cout<<"请输入一个二进制数:"<

cin>>s;

int m(0);

m=strlen(s);//求出输入字符串的长度有效字符的个数

for(int i=m-1;i>=0;i--)

sum+=((s[i]-'0')<<(m-i-1));

//<<是位操作符,表示二进制数向左移位,如001变为010,等效于

sum+=((s[i]-'0')*2^(m-i-1));这样应该清楚了,如

0101==0*2^3+1*2^2+0*2^1+1*2^0;即转为十进制

return sum;

}

int octtoten()//八转十

{ cout<<"请输入一个八进制数:"<

cin>>s;

int n=strlen(s);

int i,sum=0;

for(i=0;i

sum=sum+(int)(s[i]-'0')*(int)pow(8,n-i-1);//八转十公式 return sum;

}

int hextoten()//十六转十

{ cout<<"请输入一个十六进制数"<

cin>>s;

int n=strlen(s);

int i,sum=0;

for(i=0;i

{

if(s[i]>57)

{s[i]=s[i]-'7';}

else

{s[i]=s[i]-'0';}

sum=sum+(int)s[i]*(int)pow(16,n-i-1);

}

return sum;

}

private:

char s[37];

int sum;

};

GY a;

class T:public GY//定义类T,公有继承GY 二到十后,十进制转为其它进制{

public:

void zhuan()

{ int i;

int nu=a.twototen();

int tw[10],j,n(nu);

i=0;

cout<<"\n您输入的数转为10进制为:"<

cout<

while(nu)//转换为八进制

{

tw[i]=nu%8;

nu/=8;

i++;

}

cout<<"您输入的数转为8进制为:"<

for(j=i-1;j>=0;j--) //倒序输出

cout<

cout<

i=0;

while(n)//转为十六进制

{

tw[i]=n%16;

n/=16;

i++;

}

cout<<"您输入的数转为16进制为:"<

for(j=i-1;j>=0;j--) //倒序输出

cout<

cout<

}

};

class O:public GY//八到十后,十进制转其它

{

public:

void zhuan()

{ int i;

int nu=a.octtoten();

int tw[10],j,n(nu);

i=0;

cout<<"\n您输入的数转为10进制为:"<

cout<

while(nu)//十转二

{

相关文档
最新文档