上机指导3 本章对Java语言中的控制语句做了详细讲解,其中包括Java的循环语句、J归va的跳转 语句、Java的选择语句、Java的晰言等,本节将利用己讲解的知识进行实践。 实验3-1:多重for循环绘制图形 实验内容 编程实现运算一个简单的图形绘制,利用符号“*”的个数,实现不同的图形。实现 结果如图330所示。 图330实验31运行结果 实验目的 通过这个简单实例让读者巩固学习for语句的使用。 实现思路 根据绘制图形的规律,发现“幸”符号的变化规律,从而利用o循环对其进行绘制。 关键代码如下所示: nt temp 0: 1小I111tIte即 for(int:2.n1;) 6n-.2+m-1-1 //I templ for(intj:j<temp:j+t) II fori systen.out.print ("*") /八111"时1 System.out.println(): /i11:f11 通过javac、java等命令编译并运行程序,运行结果如图3-30所示。 实验3-2:使用switch语句实现条件分支 实验内容 编程实现运算一个简单的程序,程序可以根据学生的成绩判断学生成锁的等级。声明 个整形数组保存学生成绩,如:int student=95,85,75,65,55.程序运行结果如图3-31所示 6
6 本章对 Java 语言中的控制语句做了详细讲解,其中包括 Java 的循环语句、Java 的跳转 语句、Java 的选择语句、Java 的断言等,本节将利用已讲解的知识进行实践。 实验内容 编程实现运算一个简单的图形绘制,利用符号“*”的个数,实现不同的图形。实现 结果如图 3-30 所示。 3-30 3-1 实验目的 通过这个简单实例让读者巩固学习 for 语句的使用。 实现思路 根据绘制图形的规律,发现“*”符号的变化规律,从而利用 for 循环对其进行绘制。 关键代码如下所示: int t em p = 0; // te mp for (i nt i = 0; i < 2 * n - 1; i ++ ) { if (i < = n) t em p = i; el se t em p = 2 * n - 1 - i ; // tem p fo r( in t j = 0 ; j < te mp ; j ++ ) // for S ys te m. out .p ri nt (" *" ); // "* " Sy st em .o ut .pr in tl n( ); // } 通过 javac、java 等命令编译并运行程序,运行结果如图 3-30 所示。 实验内容 编程实现运算一个简单的程序,程序可以根据学生的成绩判断学生成绩的等级。声明一 个整形数组保存学生成绩,如:int student[] = {95,85,75,65,55}。程序运行结果如图 3-31 所示
甘及习 图331实验32运行结果 实验目的 通过这个简单实例让读者利用switch语句来实现条件分支,实现对于不同分数段的成 绩,输出不同等级标识。 实现思路 首先定义5个学生,分别对其的成绩进行赋值,并在for循环语句中利用Switch语句分 别对每个学生的成绩进行判断。 关键代码如下所示: int student1·t95,85,75,65,551: 1f1111·11,1f15卡1t for(int is0:i<5:i++) /n1I(:III11{11 svitch(student []/10) 1n1 svitch,11111110i111f141 case 9: /711P- 1oyaten.out.printin("student's result is B ystem.out.printin("atudent's result is C!"); 1n111101711111c 通过javac、java等命令编译并运行程序,运行程序结果如图3-31所示。 实验3-3:使用switch语句实现条件分支测试break功能 实验内容 在实验3-2的基础上进行简单修改,在每个case语句后不加break语句。运行后效果如 7
7 3-31 3-2 实验目的 通过这个简单实例让读者利用 switch 语句来实现条件分支,实现对于不同分数段的成 绩,输出不同等级标识。 实现思路 首先定义 5 个学生,分别对其的成绩进行赋值,并在 for 循环语句中利用 Switch 语句分 别对每个学生的成绩进行判断。 关键代码如下所示: in t s tu de nt [] = {9 5, 85 ,7 5, 65 ,55 }; // 5 fo r(i nt i =0 ;i <5 ;i+ +) // { switch(student[i]/10) // swi tch 10 { c ase 9 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is A! ") ; // 1 0 9 "A " b re ak ; c ase 8 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is B! ") ; // 1 0 8 "B " b re ak ; c ase 7 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is C! ") ; // 1 0 7 "C " b re ak ; c ase 6 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is D! ") ; // 10 6 " D" b re ak ; d efa ul t: S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is F! ") ; // 1 0 1 5 "F " } } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 3-31 所示。 实验内容 在实验 3-2 的基础上进行简单修改,在每个 case 语句后不加 break 语句。运行后效果如
图332所示。显然这个运行结果是不符合常规逻辑的: 际命冷畏示莉 图332实验33运行结果 实验目的 通过这个简单实例让读者利用switch语句来实现条件分支,用含有break和不含有break 的case语句做比较,测试break的功能, 实现思路 结合实验3-2进行比较设计,实现思路与实验3-2基本相同,不同之处在于:每个cse 语句之后没有break语句。通过比较输出结果的区别,进一步了解break语句的功能。 关健代码如下所示: nt student095,85,75,65,551: for(int i0:i<5:i++) 1n11111411t1411 case 9: 10f case 8. case 6 default 通过javac、java等命令编译并运行程序,运行程序结果如图3-32所示。 8
8 图 3-32 所示。显然这个运行结果是不符合常规逻辑的。 3-32 3-3 实验目的 通过这个简单实例让读者利用 switch 语句来实现条件分支,用含有 break 和不含有 break 的 case 语句做比较,测试 break 的功能。 实现思路 结合实验 3-2 进行比较设计,实现思路与实验 3-2 基本相同,不同之处在于:每个 case 语句之后没有 break 语句。通过比较输出结果的区别,进一步了解 break 语句的功能。 关键代码如下所示: in t s tu de nt [] = {9 5, 85 ,7 5, 65 ,55 }; // 5 fo r(i nt i =0 ;i <5 ;i+ +) // { switch(student[i]/10) // swi tch 10 { c ase 9 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is A! ") ; // 10 9 " A" c ase 8 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is B! ") ; // 1 0 8 "B " c ase 7 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is C! ") ; // 1 0 7 "C " c ase 6 : S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is D! ") ; // 10 6 " D" d efa ul t: S ys te m.o ut .p ri nt ln ("s tu de nt "+ i+ "'s r es ul t is F! ") ; // 1 0 1 5 "F " } } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 3-32 所示
上机指导4 本章介绍了面向对象的基本思想,并详细介绍了类的定义及其使用,同时介绍了成员变 量与方法的继承、方法的重载、fnal与abstract的类与方法。 实验4-1:对象引用型成员变量的使用 实验内容 编程实现两个同类对象的比较,两个对象的成员变量intMember都为默认值66,并在 屏幕上输出比较的结果。运行后效果如图4-12所示。 图412实验41运行结果 实验目的 通过这个简单的实例让读者了解对象引用型成员变量的使用,加深对类、对象的理解 实现思路 首先利用定义类的成员变量intMember默认值为66,两个对象的intMember成员变星 初始值都是66,两个对象是一样的。第一次比较两个引用返回的是Fase,因为各自指向不 同的对象。第二次比较两个引用返回的是True,因为在比较前将ref2的值赋给了ref1,这 样两个引用指向同一个对象了。 关罐代码如下所示 System.out.println("refl rer2): else Syatem.out.printin("retl!ret2i"); refl-ret2: if(refl-ref2) Syatem.out.printin("retl ret21); else System.out.printin("refl ref2i ") 通过javac、.java等命令编译并运行程序,运行程序结果如图412所示 9
9 本章介绍了面向对象的基本思想,并详细介绍了类的定义及其使用,同时介绍了成员变 量与方法的继承、方法的重载、final 与 abstract 的类与方法。 实验内容 编程实现两个同类对象的比较,两个对象的成员变量 intMember 都为默认值 66,并在 屏幕上输出比较的结果。运行后效果如图 4-12 所示。 4-12 4-1 实验目的 通过这个简单的实例让读者了解对象引用型成员变量的使用,加深对类、对象的理解。 实现思路 首先利用定义类的成员变量 intMember 默认值为 66,两个对象的 intMember 成员变量 初始值都是 66,两个对象是一样的。第一次比较两个引用返回的是 False,因为各自指向不 同的对象。第二次比较两个引用返回的是 True,因为在比较前将 ref2 的值赋给了 ref1,这 样两个引用指向同一个对象了。 关键代码如下所示: // Sam pl e6 _4 r ef1 =n ew S am pl e6_ 4( ); Sam pl e6 _4 r ef2 =n ew S am pl e6_ 4( ); // System.out.println("ref1.intMember="+ref1.intMember+", ref2.intMember="+ref2. intMember); // if( re f1 == re f2) { System.out.println("ref1 r ef2 " ); } els e { System.out.println("ref1 r ef2 ") ; } ref 1= re f2 ; if( re f1 == re f2) { System.out.println("ref1 r ef2 " ); } els e { System.out.println("ref1 r ef2 ") ; } 通过 javac、java 等命令编译并运行程序,运行程序结果如图 4-12 所示
实验4-2:含有返回值的方法的使用 实验内容 编程实现调用带有返回值的方法,并在屏幕上输出调用后的结果。分别定义返回值为整 形、字符型、双精度等的方法,为了简单,方法中可以不做任何操作,直接将已定义的变量 值返回。运行后效果如图4-13所示。 实验目的 方法的使用,让读 w试及 者了解如果调用带有返回值的方法。 实现思路 首先利用定义含有返回值的各种方法, 方法里 用各种方法,将其返回值直接输出至屏幕。 关键代码如下所示: int 图4-13实验4+2运行钻果 /11111111,1i11f1oat 1111; double public double getDouble() (return d;) 11 nain1111111111141111t 通过javac、java等命令编译并运行程序,运行程序结果如图413所示。 实验4-3:使用对象模拟“商店客户折扣卡”功能 实验内容 编程实现一个模拟的用户消费信用卡的示例,在其中用户Cu5 tomer类具有用户名、地
10 实验内容 编程实现调用带有返回值的方法,并在屏幕上输出调用后的结果。分别定义返回值为整 形、字符型、双精度等的方法,为了简单,方法中可以不做任何操作,直接将已定义的变量 值返回。运行后效果如图 4-13 所示。 实验目的 在书中简单介绍了方法的使用,而本实验 将给读者介绍带有返回值的方法的使用,让读 者了解如果调用带有返回值的方法。 实现思路 首先利用定义含有返回值的各种方法, 如:返回值为整型的,返回值为字符型的,返 回值为双精度型的。在主方法里,可以直接调 用各种方法,将其返回值直接输出至屏幕。 关键代码如下所示: // , int pub li c in t get In t( ) {re tu rn a ;} // , c har pub li c ch ar ge tC ha r( ) {re tu rn c ;} // , f lo at pub li c fl oa t g et Fl oa t( ) {re tu rn f ;} // , d ou ble pub li c do ub le ge tD ou bl e( ) {re tu rn d ;} // , St ri ng pub li c St ri ng ge tS tr in g( ) {re tu rn s tr ;} //main // pri va te i nt a = 10 0; pri va te c ha r c = ' C' ; pri va te f lo at f = 3. 0f ; pri va te d ou ble d = 4 .0 ; pri va te S tr ing s tr = " He llo "; // Sy st em .o ut .pr in tl n( ge tI nt( )) ; Sy st em .o ut .pr in tl n( ge tC har () ); Sy st em .o ut .pr in tl n( ge tF loa t( )) ; Sy st em .o ut .pr in tl n( ge tD oub le () ); Sy st em .o ut .pr in tl n( ge tS tri ng () ); 通过 javac、java 等命令编译并运行程序,运行程序结果如图 4-13 所示。 实验内容 编程实现一个模拟的用户消费信用卡的示例,在其中用户 Customer 类具有用户名、地 4-13 4-2