Java语言程序设计
实验指导书
东北大学软件学院
实验要求
由于《Java语言程序设计》是一门实践性较强的课程,课堂教学应该与实践环节紧密结合,因此,《Java语言程序设计》课程的实验环节在整个《Java语言程序设计》课程的学习过程中占据着重要的位置。
《Java语言程序设计》课程实验的目的是为了使学生在课堂学习的同时,通过一系列的实验,使学生加深了解和更好地掌握《Java语言程序设计》课程教学大纲要求的内容。
在《Java语言程序设计》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察调试程序过程中出现的各种问题,记录主要问题,作出必要说明和分析。
(3)认真书写实验报告。实验报告模板见《实验报告格式》。 (4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (5)实验课程不迟到。如有事不能出席,所缺实验一般不补。
(6)本实验可以采用的开发工具有JDK,Jcreator和Eclipse等,同学在做实验之前要求熟悉开发环境。
实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。
2
实验1 Java类和对象(一)(4学时) 1. 实验目的
(1)掌握JDK的安装步骤,理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。掌握如何在命令行下编译和运行Java程序,掌握Editplus编辑器的使用方法。
(2)通过编程和上机实验理解 Java 语言如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,掌握对象和对象引用之间的关系,了解成员变量和成员方法的特性,掌握数组的定义方法,掌握类构造方法的定义和构造方法的使用,掌握 OOP 方式进行程序设计的方法。
2. 实验类型
设计型
3. 实验基本要求
1(Java基本语法练习).编写35选7的彩票程序,随机产生7个1-35之间的中奖号码,产生的7个号码应保证互不相同,采用冒泡排序将7个号码排序,从键盘输入7个1-35之间的号码(必须为整数),输入的7个号码要保证互不相同,将用户输入的号码与中奖号码进行比较,判断有几个号码相同,根据中奖号码的个数,判断用户中了几等奖。
2(Java类和对象练习,与上课实例类似). 编写一个银行客户类,客户属性有:姓名,编号,取款密码,存款余额,提供的方法包括存钱、取钱、查询余额。编写一个测试类,要求用户输入密码,如果密码正确,进入操作界面,操作界面提供一个菜单,提示用户如何进行存款,取款和查询,能够循环存款、取款和查询,存款金额和取款金额需要从键盘输入,输入的存款金额和取款金额大于0,取款金额小于等于存款余额,否则重新输入。
3(Java类和对象练习). 编写一个学生类,每个学生属性有:学号、姓名、年龄,创建5个学生对象,给一个学生数组赋值,完成以下功能:
①将学生按学号排序输出; ②给所有学生年龄加1; ③统计大于20岁的学生人数。
4(选做).实现一个复数类,实现复数的加法和乘法,并编写测试类测试它。
3
5(选做).编写一个三角形类,能根据3个实数构造三角形对象,如果三个实数不满足三角形的条件,则自动构造以最小值为边的等边三角形。输入任意三个数,求构造的三角形面积。注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2。
4. 编程技巧
1.(1) 如何根据构造方法的要求创建对象;
(2) 如何给对象数组赋值。
(3) 如何通过数组元素操作访问各对象的属性。 (4) 输出对象会自动调用对象的toString()方法。
(5) 通过数组管理学生对象,由于要多次输出学生数组,所以程序中编写了一个output方法。 2.两个字符串的比较要用equals方法。
5. 实验思考题
1. 以下程序的运行结果? public class A { static int k=3; static int m;
public static void main(String[] args) { k++;
if (m==0)
System.out.println(k); else
System.out.println(B.k); k++; } }
class B {
static int k=6; }
A. 3 B. 4 C.5 D.编译错误 E.6
2.以下程序的运行结果? public class A { static int k=3;
public static void main(String[] args) { int k=4;
A x1=new A(); x1.k++;
A x2=new A();
4
x2.k++; k++;
System.out.println(x1.k); } }
A. 3 B. 4 C.5 D.6 E.7
3.以下程序的运行结果为?
class ValHold{ public int i = 10; }
public class ObParm{
public static void main(String argv[]){ ObParm o = new ObParm(); o.amethod(); }
public void amethod(){ int i = 99;
ValHold v = new ValHold(); v.i=30; another(v,i);
System.out.print( v.i ); }
public void another(ValHold v, int i){ i=0; v.i = 20;
ValHold vh = new ValHold(); v = vh;
System.out.print(v.i); System.out.print(i); } }
A.10030 B. 20030 C. 209930 D. 10020
5