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。

  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运算符和构造方法创建对象时,首先分配成员变量给对象,同时实例方法必须分配入口地址,然后再执行构造方法中的语句,完成必要的初始化。

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

相关文档
最新文档