实验一Control Statements.docx

上传人:b****5 文档编号:6444358 上传时间:2023-01-06 格式:DOCX 页数:11 大小:80.01KB
下载 相关 举报
实验一Control Statements.docx_第1页
第1页 / 共11页
实验一Control Statements.docx_第2页
第2页 / 共11页
实验一Control Statements.docx_第3页
第3页 / 共11页
实验一Control Statements.docx_第4页
第4页 / 共11页
实验一Control Statements.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验一Control Statements.docx

《实验一Control Statements.docx》由会员分享,可在线阅读,更多相关《实验一Control Statements.docx(11页珍藏版)》请在冰豆网上搜索。

实验一Control Statements.docx

实验一ControlStatements

实验一ControlStatements

一、实验目的:

1.BefamiliarwithJAVAdevelopingenvironment

2.Graspswitchstatementsandloopstatements

二、实验内容:

数制转换问题,编写一个应用,接收用户输入的一个10进制数,然后分别把它转换为2进制、8进制和16进制数输出。

三、实验要求:

必须用分支结构和循环结果去实现数制转换,只要求能完成正整数的转换。

设计一个类DataTransfer,里面包括3个公共的类方法,分别把指的整数参数转换为2进制、8进制和16进制数,私有的类方法transfer2Other用于把第一个参数转换为由第二个参数指定的数制。

比如,transfer2Other(85,2)把85转化为2进制数。

toBinary、toOctal和toHexadecimal都通过调用transfer2Other方法来完成。

Transfer2Other方法的基本流程是:

Str=“”;

While(num!

=0)Do

D=num%base;

Str=toChar(D)+Str;//toChar是一个用户自定义函数,用于把数字转化为字符

num=num/base;

Endwhile

Returnstr

四、实验学时:

2学时

五、实验步骤:

1、EdittheJavaprogram;

packagecontrol.statements;

importjava.util.Scanner;

publicclassControlStatements

{

publicstaticvoidmain(String[]args)

{

//TODOcodeapplicationlogichere

DataTransferdata=newDataTransfer();

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个十进制数:

");

intnum=scanner.nextInt();

intflag=0;

if(num<=0)

{

num=-num;

flag=1;

}

Stringa=data.toBinary(num);

Stringb=data.toOctal(num);

Stringc=data.toHexadecimal(num);

if(flag==1)

{

System.out.print("\n十进制转化为二进制-"+a);

System.out.print("\n十进制转化为八进制-"+b);

System.out.print("\n十进制转化为十六进制-"+c);

}

else

{

System.out.print("\n十进制转化为二进制"+a);

System.out.print("\n十进制转化为八进制"+b);

System.out.print("\n十进制转化为十六进制"+c);

}

}

}

classDataTransfer

{

publicStringtoBinary(intnum)

{

Stringbinary=transfer2Other(num,2);

returnbinary;

}

publicStringtoOctal(intnum)

{

java.lang.Stringoctal=transfer2Other(num,8);

returnoctal;

}

publicStringtoHexadecimal(intnum)

{

Stringhexadecimal=transfer2Other(num,16);

returnhexadecimal;

}

privateStringtransfer2Other(intnum,intbase)

{

Stringstr=newString();

intD;

while(num!

=0)

{

D=num%base;

if(D>=10)

{

str=toChar(D)+str;

}

else

{

str=D+str;

}

num=num/base;

}

returnstr;

}

publicStringtoChar(intd)

{

Stringx=newString();

switch(d)

{

case10:

x="A";

break;

case11:

x="B";

break;

case12:

x="C";

break;

case13:

x="D";

break;

case14:

x="E";

break;

case15:

x="F";

break;

default:

break;

}

returnx;

}

}

2、CompileJavaprogram,findthesyntacticerrorsintheprogram,recordthemainerrorsandcorrectthem;

输入程序,编译无误。

3、Testtheprogramusingthepre-designedtestcase,findthelogicalerrorsintheprogramandcorrectthem;

1)测试:

随机取五个测试数:

7、16、222、350、4011,测试结果如下:

a)7

b)16

c)222

d)350

e)4011

显然结果错误,十进制转换为十六进制失败,检查程序,发现问题并加以改。

将代码:

privateStringtransfer2Other(intnum,intbase)

{

Stringstr=newString();

intD;

while(num!

=0)

{

D=num%base;

str=toChar(D)+str;//toChar是用户自定义函数,用于把数字转化为字符

num=num/base;

}

returnstr;

}

publicchartoChar(intdecade)

{

return(char)(decade+'0');

}

改为:

privateStringtransfer2Other(intnum,intbase)

{

Stringstr=newString();

intD;

while(num!

=0)

{

D=num%base;

if(D>=10)

{

str=toChar(D)+str;

}

else

{

str=D+str;

}

num=num/base;

}

returnstr;

}

publicStringtoChar(intd)

{

Stringx=newString();

switch(d)

{

case10:

x="A";

break;

case11:

x="B";

break;

case12:

x="C";

break;

case13:

x="D";

break;

case14:

x="E";

break;

case15:

x="F";

break;

default:

break;

}

returnx;

}

f)-999

负数转换出错,检查程序并加以修改。

修改程序如下:

将代码:

publicstaticvoidmain(String[]args)

{

//TODOcodeapplicationlogichere

DataTransferdata=newDataTransfer();

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个十进制数:

");

intnum=scanner.nextInt();

Stringa=data.toBinary(num);

Stringb=data.toOctal(num);

Stringc=data.toHexadecimal(num);

System.out.print("\n十进制转化为二进制"+a);

System.out.print("\n十进制转化为八进制"+b);

System.out.print("\n十进制转化为十六进制"+c);

}

改为:

publicstaticvoidmain(String[]args)

{

//TODOcodeapplicationlogichere

DataTransferdata=newDataTransfer();

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个十进制数:

");

intnum=scanner.nextInt();

intflag=0;

if(num<=0)

{

num=-num;

flag=1;

}

Stringa=data.toBinary(num);

Stringb=data.toOctal(num);

Stringc=data.toHexadecimal(num);

if(flag==1)

{

System.out.print("\n十进制转化为二进制-"+a);

System.out.print("\n十进制转化为八进制-"+b);

System.out.print("\n十进制转化为十六进制-"+c);

}

else

{

System.out.print("\n十进制转化为二进制"+a);

System.out.print("\n十进制转化为八进制"+b);

System.out.print("\n十进制转化为十六进制"+c);

}

}

4、Runthefinalprogram,andanalyzetheresults。

修改后运行程序,再次输入测试数,运行结果如下:

a)7

b)16

c)222

d)350

e)4011

f)-999

六、总结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1