java程序设计-试验2(学生版)()

合集下载

Java程序设计实验二_含答案_

Java程序设计实验二_含答案_

Java程序设计实验二实验目的:熟悉java控制结构语句。

实验内容:1、排序算法实现(过程实现方式、对象实现方式, 多态性)import java.applet.Applet;import java.awt.Graphics;class IntSort {public String sort(int a, int b) {if (a>b)return a+" "+b;elsereturn b+" "+a;}public String sort(int a, int b, int c) {int swap;if (a<b) {swap=a; a=b; b=swap;}if (a<c) {swap=a; a=c; c=swap;}if (b<c) {swap=b; b=c; c=swap;}return a+" "+b+" "+c;}public String sort(int arr[ ]) {String s=" ";int swap;for (int i=0; i<arr.length; i++)for (int j=0; j<arr.length-1; j++)if (arr[j]>arr[j+1]) {swap=arr[j];arr[j]=arr[j+1];arr[j+1]=swap;}for (int i=0; i<arr.length; i++)s=s+arr[i]+" ";return s;} } public class SortDemo extends Applet {IntSort s =new IntSort();public void paint(Graphics g) {int a=30, b=12, c=40;int arr[]={34,8,12,67,44,98,52,23,16,16};g.drawString("两个数排序结果:"+s .sort(a,b),30,30);g.drawString("三个数排序结果:"+s .sort(a,b,c),30,60);g.drawString("数组的排序结果:"+s .sort(arr),30,90);} }2、判断一个数是否为素数?public class Prime {public static void main(String[] args) {final int n =4;int i = 2;for ( i=2; i<Math.sqrt (n); i++) {if (n%i==0) break ;}if (i>Math.sqrt (n)) {System.out .println(n+" is a prime!");} else {System.out .println(n+" is not a prime");}} }3、计算下列表达式值。

java实验二试验报告

java实验二试验报告

姓名学号:班级:说明:实验2(类的继承,与接口的实现)1. 编一程序,求两个正整数m、n的最大公约数。

要求程序中有两个方法,分别使用循环和递归,最后在主方法中两次求解并输出最大公约数。

截图:代码:public class gcd {public static void main(String[] args) {int a = 6, b = 9;System.out.printf("two nums:%d %d\n", a, b);System.out.println("递归: " + gcd1(a, b));System.out.println("辗转相除: " + gcd2(a, b));}public static int gcd1(int m, int n){return m % n == 0 ? n : gcd1(n, m%n);}public static int gcd2(int m, int n){while(n != 0){int t = m;m = n;n = t % n;}return m;}}2. 使用类编写程序(在程序中定义类,然后在主方法中创建类的对象,并调用该类中的方法,观察所得结果。

)截图:代码:public class Date {public static void main(String[] args) {Date d = new Date();System.out.println(d);d.setYear(2011);d.setMonth(10);d.setDay(3);System.out.println(d);}public Date(){}public Date(int y, int m, int d){year = y; month = m; day = d;}public void setYear(int new_year){ this.year = new_year;} public void setMonth(int m){ this.month = m; }public void setDay(int d){ this.day = d; }public String toString(){return new String("" + year + "/" + month + "/" + day);}public int year = 2000, month = 1, day = 1;}3. 编写一个包含圆类的程序,并为圆类设计几个构造方法,编译并运行它。

java实验2实验报告

java实验2实验报告

reader=new Scanner(System.in); standard=reader.nextLine(); }while(!"no".equals(standard)); } } 四、运行结果与测试分析 1.程序分析: 首先,在 TestException 这个类中除了 main 方法和一个无参数构造函数之外,还有另外 3 个方法:testEx()、testEx1()和 testEx2()。它们的返回值都是布尔型,且都可能抛出异 常。程序从 main 方法开始执行,首先创建了一个 TestException 类的对象 testException1, 然后进入 try 语句块,用对象 testException1 调用函数 testEx,程序开始执行 testEx 函 数的函数体。在函数 testEx 的 try 块中调用了函数 testEx1,于是又转向执行 testEx1 的 函数体,但在它的 try 块中又调用了 testEx2(),于是程序转向执行 testEx2 的函数体。 在 testEx2 的 try 块中的 for 循环中,前两次循环正常执行,分别输出 i=2 和 i=1,但第 三次循环时出错(出现了除数 i 为 0 的情况),抛出异常并被本函数中的 catch 语句捕获, 输出“testEx2,catch exception”,把 ret 的值赋成 false,并抛出原异常,但在离开本 函数之前还要执行 finally 中的语句,于是输出“testEx2,finally; return value=false” 并返回 ret 的值 false,由于 finally 语句中使用了 return 语句,所以导致异常丢失,接 着程序返回 testEx2 的调用者 testEx1 中,由于 testEx2 的返回值为 false,故 testEx1 中的 ret 为 false,if 语句条件为真,返回 false,但在离开 testEx1 之前,要执行 finally 中的语句,于是输出“testEx1,finally; return value=false”并返回 ret 的值 false (由于 finally 语句中使用了 return 语句,所以 try 区域中 return 语句的返回值被覆盖)。 流程转到 testEx 中,由于 testEx1 返回 false,故 testEx 中的 ret 为 false,接着执行 finally 中的语句,输出“testEx,finally;return value=false”并返回 ret 的值 false。 接着流程返回到 main 函数中,程序正常结束。运行结果截图如下:

【兔年惊喜】Java语言程序设计 实验二 面向对象程序设计实验任务二

【兔年惊喜】Java语言程序设计 实验二 面向对象程序设计实验任务二

实验报告课程Java语言程序设计实验名称面向对象程序设计实验任务二第页专业班级学号__ __ 姓名实验日期:2010 年9 月21 日报告退发(订正、重做)一、实验目的•掌握类、域、方法的定义和实例对象的创建•理解类的继承性、多态性、封装性•掌握包的应用•掌握关键字abstract、static、final和this的使用•掌握接口的定义和使用•掌握内部类使用•理解变量作用域范围的含义和参数传递方式•体会面向对象程序设计基本思想二、实验环境1、微型计算机一台2、DOS或WINDOWS操作系统,j2se开发包三、实验内容1.定义一个员工类,包含姓名、出生年月、性别三个属性,包含计算员工到目前为止年龄段方法。

●源文件名为:Employee.java●类名:Employee●要求定义静态成员域,以便统计该类及其子类的实例对象中,男性和女性的数量。

2.定义一个教师类,继承员工类,增设开始从教时间属性及职称属性,增设计算教师到目前为止教龄的方法。

●源文件名:Teacher.java●类名:Teacher3.定义一个行政人员类,继承员工类,增设开始工作时间及职务属性,增设计算该工作人员到目前为止工龄的方法。

●源文件名:Staff.java●类名:Staff4.定义主类,●源文件名:School.java●类名:School●完成以下工作:✓创建一个教师类实例,性别为女性,输入各个属性,输出她的姓名、年龄、教龄及职称。

✓创建一个行政人员实例,性别为男性,输入各个属性,输出他的姓名、年龄、工龄及职务。

✓统计输出程序执行到此,所创建男性和女性实例对象的个数。

该操作要求在员工类中定义静态成员实现。

四、实验步骤和结果1.在Eclipse中新建名字为test的工程。

2.新建Employee.java,Teacher.java,Staff.java,School.java 四个类。

3.分别编写java程序,求解员工类、教师类、行政人员类和主类问题。

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)
华北电力大学
实验报告
实验名称Java程序面向对象设计(一)课程名称Java程序设计
专业班级:学生姓名:
学号:成绩:指导教师:张学斌实验日期:
自己的speed的值增加80
【代码10】//car2调用speedUp方法将自己的speed的值增加80
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
}
}
1.3 实验指导
●创建一个对象时,成员变量被分配空间,这些内
存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。

●空对象不能使用,即不能让一个空对象去调用方
法产生行为。

假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时。

java实验二附答案

java实验二附答案

Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。

通过实例验证编程无误。

(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。

通过实例验证编程无误。

(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。

根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。

(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。

(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。

(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

Java实验二实验报告

Java实验二实验报告

本科学生实验报告(二)姓名学院计算机科学学院专业计算机科学与技术班级实验课程名称Java面向对象设计试验时间2012年10 月14日指导教师及职称实验成绩开课时间2012—2013学年第一学期实验管理中心印制实验题目类与对象小组合作是○否⊙姓名班级学号一、实验目的1、熟悉Java面向对象程序设计的基本思想。

2、掌握类与对象的定义及使用方法。

3、掌握package语句与import语句的用法。

4、掌握java 继承中父类及其子类的定义方法。

5、掌握子类重写父类同名方法的方法。

6、掌握用法。

二.实验环境JDK1.6和Eclipse3.4.1开发环境三、实验内容与步骤一、分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法1、程序代码如下class Trangle {double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){sideA=a;sideB=b;sideC=c;//参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。

}else{boo=false; //给boo赋值。

}}double getLength(){if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){sideA=a;sideB=b;sideC=c; //参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。

《Java语言程序设计》实验报告二

《Java语言程序设计》实验报告二

《Java技术》实验报告—实验(二)实验室:C207 2018 年10 月13日6.以'R'开头的事务表示这是一个到货单记录,在'R'后面是Item number和它的数量Quanlity。

处理一条到货单意味着增加库存中相应货物的数量(增加的数量=到货单中的数量)。

注意:如果在Transactions.txt文件中,到货单出现在发货单之后,到货单中的货物数量可以用来填补发货单中的数量(可以理解成在Transactions.txt中,优先处理到货单)。

7.以'A'开头的事务表示向库存中增加一种新的货物(即这种货物以前库存中没有),在'A'后面是Item number,供应商supplier以及货物的描述description。

处理一个新增货物记录意味着向库存中增加一个数量Quantity为0的新的Item。

你可以假设在一个Transactions.txt 中,新增货物记录总是出现在第一个到货单之前。

8.以'D'开头的事务表示从库存中删除一种货物,在'D'后面是Item号。

删除操作总是在所有的事物处理之后才被处理,以保证对于可能出现的同一种货物的发货单的操作能在删除之前被正确处理。

如果要删除的某种货物的库存量Quantity不为0的话,系统应该向Errors.txt记录出错信息。

9.文件Shipping.txt中的每一行代表给某一客户的发货信息。

Shipping.txt中的每一行分别是客户编号、Item号、货物数量,它们之间用tab键分隔。

如果发货单中有两条客户编号和Item 编号一样的记录,在Shipping.txt中应该将这两条发货信息合并(即将它们的数量相加)。

10.Errors.txt文件包含未发送的发货记录和库存量大于0的删除记录。

Errors.txt每一行包含Custom编号、Item编号以及发货单上的数量Quantity。

实验二JAVA 简单程序设计

实验二JAVA 简单程序设计

实验二java简单程序设计
1.计算d
表达式的值,a=15,b=12,c=5,e=4,d=2(注意数值方
e c
ab/
法的使用,和整个程序中的调用)
2.根据下面的条件,写出一个程序判断一元二次方程是否有实根,ax²+bx+c=0条件是a≠0,且b²-4ac≥0
3.铁路运货的运费与路程远近及货物的重量有关,设有如下的单位运费:
不足100千米,每吨每千米为1.00元
100千米以上,不足300米,每吨每千米为0.90元
300上,不足500千米,每吨每千米为0.80元
500千米以上,不足1000千米,每吨每千米为0.70元
超过或等于1000千米,每吨每千米为0.60元
计算700千米,500吨货物的运费,注意分支控制语句的使用,最后需要有输出
4.计算整数3和浮点数4.5二者的和,差,商,数值较大者和平均值。

注意布尔表达式和数值方法的应用。

程序为java application,输出5个具体的数值。

5.输出语句的使用,输出以下语句:
Update student set stname=”unsigned”,注意表达式转义字符,程序为Java Applet。

6.打印出成绩等级,如果成绩大于等于 90 分,输出“优秀”,
如果成绩大于等于80 分且小于90分,输出“良好".求85的等级。

java实验2实验报告

java实验2实验报告

引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。

实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。

实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。

2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。

要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。

3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。

编写各个类和方法的代码,确保代码的规范和可读性。

4.调试和测试:编写完代码后,进行充分的调试和测试工作。

确保程序能够正确运行并符合预期的功能需求。

5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。

可以通过重构代码、增加异常处理等方式进行优化。

6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。

实验结果:实验结果表明,本次实验成功实现了所要求的功能。

通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。

同时,通过实验过程中的调试和测试工作,我对程序的错误处理和调试技巧也有了一定的了解和掌握。

实验分析:通过本次实验,我认识到了面向对象编程的重要性和优势。

在程序设计过程中,合理设计类和对象的关系,充分利用面向对象编程的特性,可以提高程序的可读性、可维护性和扩展性。

同时,对于Java编程语言的学习和理解也是很有必要的,它是一种广泛应用于软件开发的编程语言。

总结:本次实验是一次很好的学习和实践机会,通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。

在实验过程中,我收获了很多,对面向对象编程有了更深刻的理解,也对程序的调试和测试有了更多的经验。

Java实验二-

Java实验二-

部分代码: double speed;//代码 1 int bulletAmount;//代码 2
speed=s+speed;//代码 3 speed=speed-d;//代码 4 bulletAmount=bulletAmount-1; 实验结果
// 代码 5
实验后的练习 (1) if(speed>=220){ //不能超 220,否则置为 0
实验结果
三.实验总结
在此次实验中,对 eclipse.exe 的使用还不够熟悉,有待加强。在敲代码时 不够细心,总会漏掉一些,以致程序出错。当然,此次实验也有收获,就是对函 数的调用有了更深一步的理解,对封装类与组合有了更进一步的了解,更加理解 了 Java 的编程。
在今后的实验中,要更加认真,要多看看书,以便更好的理解与掌握相关知 识。
( 1 ) 有 三 个 源 文 件 : Computer.java 、 CD.java 和 User.java , 其 中 Computer.java 中的 Computer.类有类型是 CD,名字是 includeCD 的成员变量, Computer 类负责创建计算机对象。User.java 是主类。
this.speed=0;System.out.println("不能超速!"); } 实验结果
(2)
void brake(){ speed=0;
} 实验结果
拟在计算机中放入光盘,即计算机奖 CD 类型的 对象作为自己的一个成员变量。具体要求如下:
二.实验内容
1.实验题目
编写一个 Java 应用程序,该程序中有两个类:Tank(用于刻画坦克)和 Fight (主类)。具体要求如下: (1)Tank 类有一个 double 类型的变量 speed,用于刻画坦克的速度;一个 int 型变量 bulletAmount,用于刻画痛苦的炮弹数量。定义 speedUp()和 speedDown ()方法,体现坦克有加速、减速行为;定义了 setBulletAmount(int p)方 法,用于设置坦克炮弹数量;定义了 fire()方法,体现坦克有开炮行为。 (2)在主类中 Fight 的 main 方法中用 Tank 类创建坦克,并让坦克调用方法设置 炮弹的数量,显示坦克的加速、减速等行为。

java实验2实验报告1

java实验2实验报告1

java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。

通过实践,提高我们的编程能力和解决问题的能力。

二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。

操作系统为 Windows 10。

三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。

定义构造方法用于初始化学生对象的属性。

定义获取和设置学生属性的方法。

2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。

计算并返回学生的平均年龄。

3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。

四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。

Java程序设计实验报告_2

Java程序设计实验报告_2

Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。

二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。

三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。

3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。

4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。

这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。

对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。

五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。

2java程序设计实验指导书(实验二)new4

2java程序设计实验指导书(实验二)new4

实验二组件与事件处理一、实验目的及要求1.学习处理ActionEvent事件;2.学习处理ItemEvent事件和paint方法;3.学习使用布局类。

二、实验学时6学时三、实验任务【内容】1 编写代码,创建标题为“使用面板的基本GUI编程”的面板代码实现2. 编写一个程序,创建如下图所示的GUI, 使用FlowLayout布局管理器。

3. 编写一个登录的应用程序。

创建如下图所示的GUI。

4.算术测试。

✧实验要求:编写一个算书测试小软件,用来训练小学生的算术能力。

程序由3个类组成,其中Teach er类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。

✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:Teacher.javapublic class Teacher{ int numberOne,numberTwo;String operator="";boolean right;public int giveNumberOne(int n){ numberOne=(int)(Math.random()*n)+1;return numberOne;}public int giveNumberTwo(int n){ numberTwo=(int)(Math.random()*n)+1;return numberTwo;}public String giveOperator(){ double d=Math.random();if(d>=0.5)operator="+";elseoperator="-";return operator;}public boolean getRight(int answer){ if(operator.equals("+")){ if(answer==numberOne+numberTwo)right=true;elseright=false;}else if(operator.equals("-")){ if(answer==numberOne-numberTwo)right=true;elseright=false;}return right;}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s){ super(s);teacher=new Teacher();setLayout(new FlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10textTwo=【代码2】 //创建textTwo,其可见字符长是10textResult=【代码3】 //创建textResult,其可见字符长是10operatorLabel=new Label("+");message=new Label("你还没有回答呢");getProblem=new Button("获取题目");giveAnwser=new Button("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0);}});}public void actionPerformed(ActionEvent e){ if(【代码7】) //判断事件源是否是getProblem{ int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.giveOperator();textOne.setText(""+number1);textTwo.setText(""+number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}if(【代码8】) //判断事件源是否是giveAnwser{ String answer=textResult.getText();try{int result=Integer.parseInt(answer);if(teacher.getRight(result)==true){ message.setText("你回答正确");}else{ message.setText("你回答错误");}}catch(NumberFormatException ex){ message.setText("请输入数字字符");}}textResult.requestFocus();validate();}}MainClass.javapublic class MainClass{ public static void main(String args[]){ ComputerFrame frame;frame=【代码9】//创建窗口,其标题为:算术测试}}5.信号灯。

java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。

了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:创建一个java项目,命名为experiment2。

(如何创建项目参考《实验一》的项目创建方法。

)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add方法把组件加入到容器中。

1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

各章参考答案(1-9章)第一章【习题内容】1. Java语言有哪些特点?2.简述Java的运行机制。

3.简述Java应用程序的开发过程。

4.在计算机上安装、配置Java运行环境,并编辑运行本章中的例程。

【参考答案】1.面向对象、语法简单、平台无关性、安全性、分布式应用、多线程2. Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。

Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。

在运行Java 程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,JVM把不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。

3.(1)安装JDK(2)配置环境变量(3)使用记事本编写java源文件(4)使用javac 编译java源文件(5)使用java运行java程序。

4.略。

第二章【习题内容】1. 现有语句:String s = "Example"; 则下面哪些语句是合法语句?A. s >>> = 3;B. s[3] = "x";C. int i = s.length();D. String t = "For " + s;E. s = s + 10;2.下面哪些是Java保留字?A. runB. defaultC. implementD. import3.下面声明float变量的语句合法的有:A. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;4.以下哪两个表达式是等价的:A. 3/2B. 3<2C. 3*4D. 3<<2E. 3*2^2F. 3<<<25.分析下列程序的执行结果:(1)public class TestA{public static void main(String args[]){int i = oxFFFFFFF1;int j = ~i;System.out.println("j=" + j);}}(2)public class TestB{public static void main(String[] args){System.out.println(6 ^ 3);}}(3)public class FooBar{public static void main(String[] args){int i = 0, j = 5;tp:for(; ; i++){for( ; ; --j)if(i > j)break tp;}System.out.println("i=" + i + ",j=" + j);}}(4)public class TestC{public static void main(String[] args){int i = 1, j = 10;do{if(i++ > --j)continue;}while(i < 5);System.out.println("i=" + i + " j=" + j);}}【参考答案】1. C、D、E2.B、D3.A、D、F4.C、D5.(1)j=14(2)5(3)i=0,j=-1(4)i=5 j=6第三章【习题内容】1.什么叫引用类型,对象是引用类型吗?2.Java的访问限定修饰符有几种,各自的访问权限是什么?3.什么是类成员,什么是实例成员?它们之间有什么区别?4.如何创建自己的包,如何引入包?5.下面哪一个是类Myclass的构造方法?class Myclass{public void Myclass(){}public static Myclass(){}public Myclass(){}public static void Myclass(){}}6.设计一个动物类,它包含动物的基本属性,例如名称、身长、重量等,并设计相应的动作,例如跑、跳、走等。

Java程序设计教程与实训第二版课程设计

Java程序设计教程与实训第二版课程设计

Java程序设计教程与实训第二版课程设计1. 介绍本文档为Java程序设计教程与实训第二版的课程设计,旨在帮助学生加深对Java语言的理解和应用能力。

本课程设计共分为两个部分:实验题和大作业。

实验题为基础知识练习,大作业则是能够综合运用所学知识的实践项目。

2. 实验题实验一实验一为Java基础语法练习,包括以下内容:1.定义一个Employee类,包含id, name, age, gender, salary等属性;2.实现Employee类的构造函数和toString方法;3.分别创建三个Employee对象,并将它们添加到List中;4.遍历List,输出其中所有的Employee信息。

思路提示:首先在Employee类中定义属性,然后通过构造函数初始化属性。

toString方法用于将对象转换成字符串输出。

在主函数中创建List对象,并添加Employee对象,最后遍历List输出员工信息。

实验二实验二是Java异常处理练习,包括以下内容:1.定义一个Circle类,包含radius、diameter、circumference、area等属性;2.使用异常处理机制,防止输入负数时抛出异常;3.编写测试程序,验证Circle类中的方法是否正确。

思路提示:在Circle类中处理输入负数的情况,通过异常处理机制进行处理。

测试程序中创建Circle对象,并测试各方法功能是否正确。

实验三实验三为Java集合框架练习,包括以下内容:1.定义一个Student类,包含id, name, age, gender等属性;2.创建List对象,并添加Student对象;3.创建Set对象,并添加Student对象;4.创建Map对象,将Student对象作为key,年龄作为value,并将所有对象添加到Map中;5.遍历List、Set和Map,输出其中的所有元素。

思路提示:在Student类中定义属性,创建List,Set和Map对象,并添加Student对象。

java实验二实验报告模板

java实验二实验报告模板

实验二:java 程序设计一、实验目的与要求一、实验目的与要求1、了解、了解Java Java 的数据类型;的数据类型;2、掌握各种变量的声明方式;、掌握各种变量的声明方式;3、理解运算符的优先级;、理解运算符的优先级;4、掌握、掌握Java Java 基本数据类型、运算符与表达式、数组的使用方法;基本数据类型、运算符与表达式、数组的使用方法;5、理解理解Java Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;6、通过以上内容,掌握、通过以上内容,掌握Java Java语言的编程规则。

二、实验内容二、实验内容读入一个浮点数值,将其转换为中文金额的大写方式,如123.45,123.45,转换为转换为转换为::壹佰贰拾叁元肆角伍分。

要求:肆角伍分。

要求:(1)当金额为整数时,当金额为整数时,只表示整数部分,只表示整数部分,只表示整数部分,省略小数部分,省略小数部分,省略小数部分,并添加并添加“整”字。

例如,123123表示为表示为表示为::壹佰贰拾叁元整;壹佰贰拾叁元整;(2)当金额中含有连续的当金额中含有连续的00时,只需写一个“零”即可,例如, 10005表示为:表示为:壹万零伍元整; (3)1010的表示方式,例如,的表示方式,例如,的表示方式,例如,110110110元表示为:壹佰壹拾元整,而元表示为:壹佰壹拾元整,而元表示为:壹佰壹拾元整,而101010则表示为:拾元整。

则表示为:拾元整。

则表示为:拾元整。

提示:将字符串型转换为浮点型可以用提示:将字符串型转换为浮点型可以用Float.parseFloat(s)Float.parseFloat(s)Float.parseFloat(s)函数转换。

函数转换。

函数转换。

三、实验器材三、实验器材微机微机+windows +windows +windows操作系统操作系统操作系统+eclipse +eclipse +eclipse四、实验步骤四、实验步骤1、程序代码、程序代码import java.io.*;import java.util.Scanner; public class ee { /*** @param args*/ public static void main(String[] args) { // TODO Auto-generated method stub /** * 数据输入*/ System.out .println(.println(""请输入一个实数"); InputStream is=System.in ; Scanner scan=new Scanner(is); float y=scan.nextFloat(); System.out .println(.println("y=""y="+y);float x=y; int ix=(int )x;)x;////整数部分float px=x-ix; px=x-ix;////小数部分String cx=ix+String cx=ix+""""; String cy=px+String cy=px+""""; /*** 处理整数部分,采用二进制转换思想*/ int []zhengshu=new int [cx.length()]; int i=0;if (cx.length()<=4) { while (ix>0) { zhengshu[i]=ix-ix/10*10;zhengshu[i]=ix-ix/10*10;////求出余数,并赋给数组zhengshui++;ix=ix/10;ix=ix/10;////商}} /*** 整数钱币输出*/for (int ii=cx.length()-1;ii>=0;ii--) { if (zhengshu[ii]==0) { if (ii!=0) { if (zhengshu[ii-1]!=0) {System.out .println(.println(""零");}}if (ii==0) {System.out .print(.print(""圆");}}if(zhengshu[ii]!=0){if(ii==3){.print(""壹仟");if(zhengshu[ii]==1) System.out.print(.print(""贰仟"); if(zhengshu[ii]==2) System.out.print(.print(""叁仟"); if(zhengshu[ii]==3) System.out.print(.print(""肆仟"); if(zhengshu[ii]==4) System.out.print(.print(""伍仟"); if(zhengshu[ii]==5) System.out.print(.print(""陆仟"); if(zhengshu[ii]==6) System.out.print(.print(""柒仟"); if(zhengshu[ii]==7) System.out.print(.print(""捌仟"); if(zhengshu[ii]==8) System.out.print(.print(""玖仟"); if(zhengshu[ii]==9) System.out.print(}if(ii==2){.print(""壹佰");if(zhengshu[ii]==1) System.out.print(.print(""贰佰"); if(zhengshu[ii]==2) System.out.print(.print(""叁佰"); if(zhengshu[ii]==3) System.out.print(.print(""肆佰"); if(zhengshu[ii]==4) System.out.print(.print(""伍佰"); if(zhengshu[ii]==5) System.out.print(.print(""陆佰"); if(zhengshu[ii]==6) System.out.print(.print(""柒佰"); if(zhengshu[ii]==7) System.out.print(.print(""捌佰"); if(zhengshu[ii]==8) System.out.print(.print(""玖佰"); if(zhengshu[ii]==9) System.out.print(}if(ii==1){.print(""壹拾");if(zhengshu[ii]==1) System.out.print(.print(""贰拾"); if(zhengshu[ii]==2) System.out.print(.print(""叁拾"); if(zhengshu[ii]==3) System.out.print(.print(""肆拾"); if(zhengshu[ii]==4) System.out.print(.print(""伍拾"); if(zhengshu[ii]==5) System.out.print(.print(""陆拾"); if(zhengshu[ii]==6) System.out.print(.print(""柒拾"); if(zhengshu[ii]==7) System.out.print(.print(""捌拾"); if(zhengshu[ii]==8) System.out.print(.print(""玖拾"); if(zhengshu[ii]==9) System.out.print(}if(ii==0){.print(""壹圆");if(zhengshu[ii]==1) System.out.print(.print(""贰圆"); if(zhengshu[ii]==2) System.out.print(.print(""叁圆"); if(zhengshu[ii]==3) System.out.print(.print(""肆圆"); if(zhengshu[ii]==4) System.out.print(.print(""伍圆"); if(zhengshu[ii]==5) System.out.print(.print(""陆圆"); if(zhengshu[ii]==6) System.out.print(.print(""柒圆"); if(zhengshu[ii]==7) System.out.print(.print(""捌圆"); if(zhengshu[ii]==8) System.out.print(.print(""玖圆"); if(zhengshu[ii]==9) System.out.print(}}}/*** 处理小数部分*/float yushu;int xiaoshu[]=new int[2];xiaoshu[0]=(int)(px*10);yushu=px*10-xiaoshu[0];xiaoshu[1]=(int)(yushu*10);if(xiaoshu[0]!=0){.print(""壹角");if(xiaoshu[0]==1) System.out.print(.print(""贰角");if(xiaoshu[0]==2) System.out.print(.print(""叁角");if(xiaoshu[0]==3) System.out.print(.print(""肆角");if(xiaoshu[0]==4) System.out.print(.print(""伍角");if(xiaoshu[0]==5) System.out.print(.print(""陆角");if(xiaoshu[0]==6) System.out.print(.print(""柒角");if(xiaoshu[0]==7) System.out.print(.print(""捌角");if(xiaoshu[0]==8) System.out.print(.print(""玖角");if(xiaoshu[0]==9) System.out.print(}else{if(xiaoshu[0]==0){if(xiaoshu[1]!=0).println(""零");System.out.println(}}if(xiaoshu[1]!=0){if (xiaoshu[1]==1) System.out .print(.print(""壹分"); if (xiaoshu[1]==2) System.out .print(.print(""贰分"); if (xiaoshu[1]==3) System.out .print(.print(""叁分"); if (xiaoshu[1]==4) System.out .print(.print(""肆分"); if (xiaoshu[1]==5) System.out .print(.print(""伍分"); if (xiaoshu[1]==6) System.out .print(.print(""陆分"); if (xiaoshu[1]==7) System.out .print(.print(""柒分");if (xiaoshu[1]==8) System.out .print(.print(""捌分");if (xiaoshu[1]==9) System.out .print(.print(""玖分"); }}}五、实验结果五、实验结果请输入一个实数请输入一个实数 34.678 y=34.678 叁拾肆圆陆角柒分叁拾肆圆陆角柒分请输入一个实数请输入一个实数 123.23 y=123.23壹佰贰拾叁圆贰角叁分壹佰贰拾叁圆贰角叁分请输入一个实数请输入一个实数 110.00 y=110.0 壹佰壹拾圆壹佰壹拾圆六、实验小结六、实验小结1、通过这个实验巩固了、通过这个实验巩固了java java java的基础知识:包括数据类型、变量的声明方式、运算符的的基础知识:包括数据类型、变量的声明方式、运算符的优先级、表达式的应用、数组的使用。

Java实验指导书_试验二stu

Java实验指导书_试验二stu

Java程序设计实验指导书(自编教材)课程代码:1969186课程名称:Java面向对象程序设计开课院(系)、实验室:C508适用专业:软件工程试验时间: 2012/3/26实验二简单数据类型和流程控制一、实验目的1.掌握Java语言的标识符和保留字,各基本数据类型变量以及有逻辑量意义数据的表示方法以及表示条件的表达式的类型。

2.掌握Java语言中具各种运算符表达式的基本知识。

3.熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。

4.熟练掌握使用if语句的嵌套及switch语句进行多分支结构程序设计的基本方法。

5.熟练掌握while、do-while和for三种语句组成循环结构的基本方法。

熟练掌握特殊流程控制语句如break,continue,标号语句。

6.熟练掌握一维数组和二维数组的使用7.把课堂上学到的理论用于实践,并验证理论的正确性,和发现新的问题二、实验内容与要求1、仔细读下面的JA V A语言源程序,自己给出程序的运行结果2、仔细读下面的JA V A语言源程序,自己给出程序的运行结果3、仔细读下面的JA V A语言源程序,自己给出程序的运行结果4、编写一个程序,要求将一个浮点数强制转化成整型后再输出。

5、请计算出3至1000范围内最大的10个素数,放入数组中,并计算出其累加和。

6、水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:371=27+343+1,371就是一个水仙花数。

三、思考题1.定义变量的作用是什么?2.Java运算符的优先级与结合性是怎样的?3.long l=121233;float f=100.2323;这两行代码在编译时有什么错误。

4.&和&&有什么区别?5.break,continue在流程控制中的作用。

四、实验报告1、实验完成后,检查是否达到试验目的。

2、编写实验报告(打印或手写均可),在下一次上实验课时提交。

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

华北电力大学实验报告实验名称Java程序面向对象设计(一)课程名称Java程序设计专业班级:学生姓名:学号:成绩:指导教师:张学斌实验日期:一、实验目的及要求1.掌握类的定义。

2.掌握成员变量和成员方法的定义。

3.掌握构造方法的定义和使用。

4.掌握类的多态性二、实验环境Windows2000/Windows XP,JDK 1.2~1.6三、试验内容和步骤要求按照实验内容,写出详细实验过程和步骤,必要时截图。

实验1 机动车1.1实验要求编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和User(主类)。

具体要求如下:Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。

定义了speedUp(int s)方法,体现机动车有加速功能。

定义了speedDown()方法,体现机动车有减速功能。

定义了setPower(int s),用于设置机动车的功率。

定义了getPower()方法,用于获取机动车的功率。

在主类User的mian()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。

1.2程序模板Vehicle.javapublic class Vehicle {【代码1】//声明double型变量speed,刻画速度【代码2】//声明int型变量power,刻画功率void speedUp(int s) {【代码3】 //将参数s的值与成员变量speed的和赋值给成员变量speed}void speedDown(int d) {【代码4】//将成员变量speed与参数d的差赋值给成员变量speed }void setPower(int p) {【代码5】 //将参数p的值赋值给成员变量power }int getPower() {【代码6】 //返回成员变量power的值}double getSpeed() {return speed;}}----------------------------------------------------------------------------------------------User.javapublic class User {public static void main(String args[]) {Vehicle car1,car2;【代码7】 //使用new 运算符和默认的构造方法创建对象car1【代码8】 //使用new 运算符和默认的构造方法创建对象car2car1.setPower(128);car2.setPower(76);【代码9】 //car1调用speedUp方法将自己的speed的值增加80【代码10】 //car2调用speedUp方法将自己的speed的值增加80 car1.speedDown(10);car2.speedDown(20);}}1.3 实验指导●创建一个对象时,成员变量被分配空间,这些内存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。

●空对象不能使用,即不能让一个空对象去调用方法产生行为。

假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时动态地分配实体的,Java的编译器对空对象不做检查。

因此,在编译时要避免使用空对象。

1.4实验改进(编写程序,并给出结果)1.改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200.2.改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0.3.增进一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变成0.1.5 实验结果实验2 家中的电视1.实验要求编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。

具体要求如下:●有三个源文件,其中TV.java中的TV类负责创建“电视”对象。

Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。

●在主类的main()方法中首先使用TV类创建一个对象haierTV ,然后使用Family类再创建一个对象zhangsanFamily,并将先前TV类的实例haierTV 的引用传递给zhangsanFamily对象的成员变量homeTV。

2.程序模板TV.javapublic class TV {int channel; //电视频道void setChannel(int m) {if(m>=1){channel=m;}}int getChannel(){return channel;}void showProgram(){switch(channel) {break;break;break;break;break;}}}----------------------------------------------------------------------------------------------Family.javapublic class Family {TV homeTV;void buyTV(TV tv) {【代码1】 //将参数tv赋值给homeTV }void remoteControl(int m) {homeTV.setChannel(m);}void seeTV() {homeTV.showProgram(); //homeTV调用showProgram()方法}}-----------------------------------------------------------------------------------------MainClass.javapublic class MainClass {public static void main(String args[]) {TV haierTV = new TV();【代码2】 //haierTV调用setChannel(int m),并向参数m传递5 Family zhangSanFamily = new Family();【代码3】//zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TVzhangSanFamily.seeTV();int m=2;zhangSanFamily.remoteControl(m);zhangSanFamily.seeTV();}}3.实验结果实验3 共饮同井水1.实验要求编写程序模拟两个村庄共用一口水井。

编写一个Village类,该类有一个静态的int型成员变量waterAmount,用于模拟井水的水量。

在主类Land的main()方法中创建两个村庄,一个村庄改变了waterAmount的值,另一个村庄查看waterAmount的值。

2.程序模板Village.javapublic class Village {static int waterAmount; //模拟水井的水量int peopleNumber; //村庄的人数String name; //村庄的名字Village(String s) {name = s;}static void setWaterAmount(int m) {if(m>0)waterAmount = m;}void drinkWater(int n){if( waterAmount-n>=0) {waterAmount = waterAmount-n;}elsewaterAmount = 0;}static int lookWaterAmount() {return waterAmount;}void setPeopleNumber(int n) {peopleNumber = n;}int getPeopleNumber() {return peopleNumber;}}-----------------------------------------------------------------------------Land.javapublic class Land {public static void main(String args[]) {【代码1】 //用类名调用setWaterAmount(int m),并向参数传值200 int leftWater =【代码2】 //用Village类的类名访问waterAmount Village zhaoZhuang,maJiaHeZhi;zhaoZhuang = new Village("赵庄");maJiaHeZhi = new Village("马家河子");zhaoZhuang.setPeopleNumber(80);maJiaHeZhi.setPeopleNumber(120);【代码3】//zhaoZhuang调用drinkWater(int n),并向参数传值50 leftWater = 【代码4】//maJiaHeZhi调用lookWaterAmount()方法 String name=;maJiaHeZhi.drinkWater(100);leftWater = 【代码5】//zhaoZhuang调用lookWaterAmount()方法 name=;int peopleNumber = zhaoZhuang.getPeopleNumber();peopleNumber = maJiaHeZhi.getPeopleNumber();}}3.实验指导●当java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例变量就不会被分配内存。

但是,类的类变量,在该类被加载到内存时,就分配了相应的内存变量。

如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存,所有对象共享类变量。

●当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,只有当该类创建对象后,类中的实例方法才分配入口地址。

当使用new运算符和构造方法创建对象时,首先分配成员变量给对象,同时实例方法必须分配入口地址,然后再执行构造方法中的语句,完成必要的初始化。

因而实例方法必须由对象调用执行。

相关文档
最新文档