JAVA 课后实验二
- 格式:doc
- 大小:261.00 KB
- 文档页数:7
姓名学号:班级:说明:实验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语言与面向对象程序设计基础》课程实验报告二姓名:****学号:******************实验题1[实验要求]给以下程序添加输出语句,以显示各种参数值及其传递关系画出参数传递的内存图[实验程序]public class Ex2_1 {public static void main(String[] args){MyDate m1 = new MyDate(1, 9, 1966);MyDate m2 = m1.addDays(7);m2.print();}}源文件:MyDate.javapublic class MyDate {private int day = 1;private int month = 1;private int year = 2000;public void print(){System.out.println( day + "-" + month + "-" + year);}public MyDate(int day, int month, int year) {this.day = day;this.month = month;this.year = year;}public MyDate(MyDate date) {this.day = date.day;this.month = date.month;this.year = date.year;}public MyDate addDays(int date) {MyDate n= new MyDate(this);n.day = n.day + date;return n;}[运行结果][实验结论与收获]了解了什么是类、类基本格式,对象以及构造方法实验题2[实验要求]修改程序,使得在子类中可以对两个f分别进行赋值和显示操作记录调试过程、步骤、程序和运行结果[实验程序]class Parent{public int f;public void setF(int a){ f=a; }public int getF( ) { return f; }}public class Child extends Parent{public int f;public double d;public static void main(String [] args){Child c = new Child();c.f=100;c.setF(30);System.out.println(" Parent: " + c.getF());System.out.println(" Child: " + c.f);}}[运行结果][实验结论与收获]学会修改程序,分别对F进行赋值和显示操作实验题3[实验要求]完成程序,使用super创建重写的方法调试并记录结果[实验程序]public class Employee {public String name="zhang";public double salary=2000;public String getDetails() {return " Name:" + name + "\n" + " Salary:" + salary;}}public class Manager extends Employee {public String department="Office";public String getDetails() {return super.getDetails() + "\n" + " Department: " + department;}}public class Ex2_3{public static void main(String args[ ]) {Employee e = new Employee();Manager m = new Manager();System.out.println("Employee:"+"\n" +e.getDetails());System.out.println("Manager:"+"\n" +m.getDetails());}}[运行结果][实验结论与收获]学会super的创建使用方法实验题4[实验要求]修改并完成程序说明程序错在哪里,如何修改调试并记录结果[实验程序]class Parent {public void doSomething() { }}class Child extends Parent {public void doSomething() { }}public class Ex2_4 {public static void main(String args[]) { Parent p1 = new Parent();Parent p2 = new Child();p1.doSomething();p2.doSomething();}}[运行结果][实验结论与收获]错误出在private void doSomething() { }修改正确的public void doSomething() { } 调试语句public static void main(String args[]) {实验题5[实验要求]执行程序记录程序结果[实验程序]class Count {public static int counter;static {counter = 100;System.out.println("in static block!");}}public class Ex2_5 {public static void main(String[] args) {System.out.println("counter = "+ Count.counter);}}[运行结果][实验结论与收获]执行程序得到正确结果实验题6[实验要求]将程序1 Parent类和程序2 Child类存于同一包(目录)中,并调试程序,记录结果。
§2.2 Java程序设计结构§2.1.1实验目的、内容及性质1、掌握Java语言基础知识如变量、编程基本结构。
2、数组的使用实验性质:验证、必做实验学时:4学时§2.2.2问题及思考1、字符串和字符如何区别?常见的转义字符有那些?2、变量按作用域可以分为那几类?3、说明java 语言中的数据类型以及基本数据类型的默认值。
类型转换规则。
4、数组如何定义,如何初始化?基本数组的一些算法?如查找、排序等§2.2.3实验指导1、选择结构示例(1)if语句(2)switch结构2、循环结构示例(1)for语句(2)while语句3、数组示例§2.2.4实践编程编写以下程序1、显示星期几对应的英文字符串。
用week表示星期几,可用switch语句将week转换成对应英文字符串,week为整型数据由用户输入。
用户输入参考:import java.util.Scanner;public class StandardIO{public static void main(String[] args) {Scanner scan=new Scanner(System.in);String s=scan.next(); //输入一个字符串int x=scan.nextInt();//输入一个整形数字double d=scan.nextDouble();//输入一个double}}程序:import java.util.Scanner;public class Word1 {public static void main(String[] args) {Scanner scan =new Scanner(System.in);System.out.println("请输入一个数字:");int week=scan.nextInt();//输入一个整形数字switch (week){case 1: System.out.println("Monday");break;case 2: System.out.println("Tuesday");break;case 3: System.out.println("Wedensday");break;case 4: System.out.println("Thurday");break;case 5: System.out.println("Friday");break;case 6: System.out.println("Saturday");break;case 7: System.out.println("Sunday");break;}scan.close();}截图:2、计算输出Fibonacci前20序列。
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。
实验二熟悉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(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}(3)编译程序LX6_1.java。
Java2实用教程(第三版)实验指导与习题解答Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)1上机实践 1 初识JAVA ................................................................................................................. 4 实验 1 一个简单的应用程序.................................................................................................... 4 实验 2 一个简单的JAVA APPLET程序...................................................................................... 4 实验 3 联合编译 (5)上机实践 2 基本数据类型与控制语句 ........................................................................................ 6 实验1 输出希腊字母表 ............................................................................................................ 6 实验 2 回文数 . (7)实验 3 猜数字游戏.................................................................................................................... 9 上机实践 3 类与对象.................................................................................................................. 10 实验 1 三角形、梯形和圆形的类封装................................................................................... 10 实验2 实例成员与类成员 ...................................................................................................... 13 实验3 使用*****语句与IMPORT语句 ............................................................................ 15 上机实践4 继承与接口.............................................................................................................. 17 实验1 继承..............................................................................................................................17 实验 2 上转型对象.................................................................................................................. 20 实验3接口回调 (22)上机实践 5 字符串、时间与数字.............................................................................................. 24 实验 1 STRING类的常用方法.................................................................................................. 24 实验 2 比较日期的大小 ..........................................................................................................25 实验 3 处理大整数.................................................................................................................. 26 上机实践 6 组件及事件处理...................................................................................................... 27 实验1 算术测试......................................................................................................................27 实验 2 信号灯 (30)实验 3 布局与日历.................................................................................................................. 32 上机实践7 组件及事件处理2 ................................................................................................... 36 实验1 方程求根 . (36)实验 2 字体对话框.................................................................................................................. 39 实验 3 英语单词拼写训8 多线程 (46)实验 1 汉字打字练习 .............................................................................................................. 46 实验2 旋转的行星.................................................................................................................. 48 实验 3 双线程接力.................................................................................................................. 52 上机实践9 输入输出流.............................................................................................................. 55 实验1 学读汉字. (55)实验 2 统计英文单词字 .......................................................................................................... 58 实验2 读取ZIP文件 (62)2上机实践10 JAVA 中的网络编程 ............................................................................................ 63 实验1 读取服务器端文件 (63)实验 2 使用套接字读取服务器端对象................................................................................... 65 实验3 基于UDP的图像传输 ................................................................................................ 68 上机实践11 数据结构................................................................................................................ 72 实验 1 扫雷小游戏.................................................................................................................. 72 实验 2 排序与查验 3 使用*****排序 ...................................................................................................... 78 上机实践12 JAVA SWING .......................................................................................................80 实验 1 *****DPANE分层窗格 ............................................................................................ 80 实验2 使用表格显示日历 (81)实验 3 多文档界面(MDI) (84)3上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println(\你好,很高兴学习Java\【代码2】:System.out.println(\2.模板代码Hello.javapublic class Hello {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,很高兴学习Java\ A a=new A(); a.fA(); } } class A {void fA() {【代码2】//命令行窗口输出\ } }实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString(\这是一个Java Applet 程序\【代码2】:g.drawString(\我改变了字体\2.模板代码FirstApplet.javaimport java.applet.*;4import java.awt.*;public class FirstApplet extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red);g.setFont(new Font(\宋体\【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译1.答案:【代码1】:System.out.println(\你好,只需编译我\【代码2】:System.out.println(\【代码3】:System.out.println(\【代码4】:System.out.println(\ C\2.模板代码模板1:Hello.javapublic class MainClass {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,只需编译我\ A a=new A();a.fA(); B b=new B();b.fB(); } }模板2 :A.javapublic class A {void fA() {【代码2】//命令行窗口输出\ } }5。
本科学生实验报告(二)姓名学院计算机科学学院专业计算机科学与技术班级实验课程名称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技术》实验报告—实验(二)实验室: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、编写程序实现摄氏温度和华氏温度的转换。
2、利用if语句实现阶梯电费的问题:用电量240度以下(包含240度)每度电0.55元,用电量在240-540度之间,超出240度电的部分按0.70元计算,用电量超过540度电,超出540度电的部分按照0.95元计算。
(使用scanner方法输入电数)
3、利用switch语句实现判断某年的某个月份有几天的程序。
4、嵌套循环(for + while)实现1!+2!+3!+ ... 9!即阶乘之和
5、水仙花数是指其个位、十位和百位上三个数的立方之和等于这个数本身。
通过循环,判断100-999之间所有的数字,符合水仙花数条件的数字。
(例如:1^3 + 5^3 + 3^3 = 153)
6、编写程序输出1--200之间的所有素数。
7、尝试分别用三层循环、两层循环、一层循环编程实现“百钱买百鸡”问题。
母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只,现在有百钱欲买百鸡,有多少种买法?
三层循环:
二层循环:
一层循环:。