1、实验一 Control Statements实验一 Control Statements一、实验目的:1. Be familiar with JAVA developing environment2. Grasp switch statements and loop statements二、实验内容:数制转换问题,编写一个应用,接收用户输入的一个10进制数,然后分别把它转换为2进制、8进制和16进制数输出。三、实验要求:必须用分支结构和循环结果去实现数制转换,只要求能完成正整数的转换。设计一个类DataTransfer,里面包括3个公共的类方法,分别把指的整数参数转换为2进制、8进制和16进制
2、数,私有的类方法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; End while Return str四、
3、实验学时:2学时五、实验步骤:1、Edit the Java program;package control.statements;import java.util.Scanner;public class ControlStatements public static void main(String args) / TODO code application logic here DataTransfer data =new DataTransfer (); Scanner scanner =new Scanner(System.in); System.out.print (请输入一个十进
4、制数: ); int num =scanner.nextInt(); int flag =0; if(num = 10 ) str = toChar(D) + str; else str = D + str; num = num / base; return str; public String toChar(int d) String x = new String(); switch(d) case 10: x=A; break; case 11: x=B; break; case 12: x=C; break; case 13: x=D; break; case 14: x=E; brea
5、k; case 15: x=F; break; default: break; return x; 2、Compile Java program,find the syntactic errors in the program, record the main errors and correct them;输入程序,编译无误。3、Test the program using the pre-designed test case, find the logical errors in the program and correct them;1) 测试:随机取五个测试数:7、16、222、35
6、0、4011,测试结果如下:a) 7b) 16c) 222d) 350e) 4011显然结果错误,十进制转换为十六进制失败,检查程序,发现问题并加以改。将代码:private String transfer2Other(int num,int base)String str =new String();int D;while ( num != 0) D = num % base;str = toChar(D) + str; /toChar是用户自定义函数,用于把数字转化为字符num = num / base;return str;public char toChar(int decade)re
7、turn (char)(decade+0);改为: private String transfer2Other(int num,int base) String str = new String(); int D; while ( num != 0) D = num % base; if( D=10 ) str = toChar(D) + str; else str = D + str; num = num / base; return str; public String toChar(int d) String x = new String(); switch(d) case 10: x=
8、A; break; case 11: x=B; break; case 12: x=C; break; case 13: x=D; break; case 14: x=E; break; case 15: x=F; break; default: break; return x; f) -999负数转换出错,检查程序并加以修改。修改程序如下:将代码:public static void main(String args) / TODO code application logic here DataTransfer data =new DataTransfer (); Scanner scan
9、ner =new Scanner(System.in); System.out.print (请输入一个十进制数: ); int num =scanner.nextInt(); String a =data.toBinary(num); String b =data.toOctal(num); String c =data.toHexadecimal(num); System.out.print(n十进制转化为二进制 + a); System.out.print(n十进制转化为八进制 + b); System.out.print(n十进制转化为十六进制 + c); 改为: public sta
10、tic void main(String args) / TODO code application logic here DataTransfer data =new DataTransfer (); Scanner scanner =new Scanner(System.in); System.out.print (请输入一个十进制数: ); int num =scanner.nextInt(); int flag =0; if(num = 0) num = -num; flag =1; String a =data.toBinary(num); String b =data.toOcta
11、l(num); String c =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、Run the final program, and analyze the results。修改后运行程序,再次输入测试数,运行结果如下:a) 7b) 16c) 222d) 350e) 4011f) -999六、总结
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1