1、java实训Java程序设计实训报告班 级: 3G软件开发2011-2班 学 号: 姓 名: 指导教师: 王捷 成 绩: 题目1:输入一个包含10个整数元素的数组,要求:最大元素的与第一个元素交换,最小元素与最后一个元素交换,并打印经过交换后的所有数组元素。解题思路:先分别找出来最大和最小值,然后和临时的交换值,在考虑如果最小值是第一个的数情况。程序代码:public class Test3 public static void main(String args) int max,min,temp1,temp2,i; int a=new int 10; System.out.println(请
2、输入十个数字); Scanner sc=new Scanner(System.in); for(i=0;i10;i+) ai=sc.nextInt(); max=0; min=0; for(i=0;iamax) max=i; if(aiamin) min=i; temp1 = a0; a0 = amax; amax = temp1; /首先交换a0和最大值amax if (min != 0) /如果最小值不是a0,执行下面 temp2 = amin; amin = a9; a9 = temp2; /交换amin和an-1 else /如果最小值是a0,执行下面 temp1= a9; a9 =
3、amax; System.out.println(交换后的数组是:); for (i = 0; i 10; i+) /输出数组 System.out.print(ai + ); 题目2:get方法和set方法定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法解题思路:这道题比较简单,按照题的要求就行。定义一个Animal类,输出它的名称和颜色。 程序代码:public class Animal private static String name; private static String color; public Anim
4、al(String name,String color) this.name=name; this.color=color; public String getName() return name; public void setName(String name) this.name = name; public String getColor() return color; public void setColor(String color) this.color = color; public static void main(String args) Animal animal=new
5、Animal(name,color); Scanner sc=new Scanner(System.in); System.out.println(请输入动物:); name=sc.next(); System.out.println(请输入颜色:); color=sc.next(); System.out.println(您选择的角色是: +animal.getName()+ 它的颜色是: +animal.getColor(); 题目3定义一个抽象的Role类,有姓名,年龄,性别等成员变量1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX
6、()方法对各变量进行读写。具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。2. 从Role类派生出一个Employee类,该类具有Role类的所有成员(构造方法除外),并扩展 salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个final sing()方法。3. Manager类继承Employee类,有一个final成员变量vehicle4. 在main()方法中制造Manager和Employee对象,
7、并测试这些对象的方法解题思路:按照所给的提示,写了三个类和一个测试类。核心程序代码: /两个构造方法 public Employee(String name) super(name); public Employee(String name,String sex,int age,int salary,String id) super(name,sex,age); this.salary=salary; this.id=id; /覆盖play()方法, public void play() System.out.println(员工号码:+id+, +工资:+salary); final voi
8、d sing() System.out.println(姓名:+name+, +性别:+sex+, +年龄:+age); 题目4品尝饮料,1、 建立一个Java抽象类Drink,应当:a、 声明一个抽象方法taste(),该方法负责输出饮料的味道;b、 声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:c、 声明静态工厂方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常。2、 建立Drink的具体子类:a、 分别
9、建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);b、 实现taste()方法,要求在控制台打印各自的味道特征。3、 建立异常类DrinkNotFoundExceptiona、 继承Exceptionb、 在Drink的方法getDrink(int drinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。c、 在使用getDrink方法的类中捕捉该异常。4、 建立Test测试类,测试以上内容的正确性a、 编写main方法,通过命令行传参的方式传入某种饮料的类型。b、 在main方法中
10、,调用Drink类的getDrink方法,获得相应的饮料对象。注意捕获DrinkNotFoundException。c、 然后调用该饮料对象的taste()方法,输出该饮料的味道。解题思路: 这道题是综合题,集中运用了所学的各种知识。抽象类的应用,继承的应用,构造方法的应用及自定义异常处理。程序代码:public abstract class Drink /抽象类public void drink() throws DrinkNotFoundException /抛出异常 ; String name; String fell; abstract void taste(); /抽象方法 publ
11、ic abstract class Drink /抽象类 public void drink() ; String name; String fell; abstract void taste(); /抽象方法 static void getDrink(int drinkType) throws DrinkNotFoundException /声明静态方法,抛出异常 / 创建Drink的子类public class Coffe extends Drink private String name=咖啡; private String fell=苦; public void taste() /调用
12、抽象方法taste(); System.out.println(name+ : +fell); public class Bear private String name=啤酒; private String fell=爽; public void taste() /调用抽象方法taste(); System.out.println(name+ : +fell); public class Milk extends Drink private String name=牛奶; private String fell=黏; public void taste() System.out.printl
13、n(name+ : +fell); public class DrinkNotFoundException extends Exception /自定义异常处理 public DrinkNotFoundException() super(对不起!没有您输入的饮料类型。);/出现异常抛出 import java.util.Scanner;public class Test /测试类 public static void main(String args) try Test m = new Test(); m.getDrink(); catch (DrinkNotFoundException e)
14、 System.out.println(e.getMessage(); private void getDrink() throws DrinkNotFoundException System.out.println(请输入你要的饮料名称:); System.out.println(1:咖啡 2:啤酒 3:牛奶); Scanner sc=new Scanner(System.in); int i=sc.nextInt(); switch(i) /运用switch语句, case 1: Coffe c = new Coffe(); c.taste(); break; case 2: Bear b
15、 = new Bear(); b.taste(); break; case 3: Milk m = new Milk(); m.taste(); break; default: throw new DrinkNotFoundException(); 题目5 定义一个含有十个元素的int型数组,找出最大元素和最小元素,并将最大元素和第一个元素交换位置,最小元素和最后一个元素交换位置,将结果输出在控制台。解题思路:这道题主要练习数组的应用程序代码: import java.util.Scanner;public class shu public static void main(String ar
16、gs) int a = new int 10;/定义数组 int t,t1; for(int i=0;i10;i+) /循环输入是个数,代表数组中的是个元素 Scanner sc = new Scanner(System.in); ai = sc.nextInt(); int max= a0; int min =a0; for(int i=0;imax) max=ai; if(aimin) min=ai; t=a0; /最大元素和第一个元素交换位置 a0=max; max=t; t1=a9;/最小元素和最后一个元素交换位置 a9=min; min=a9; for(int i=0;ia.leng
17、th;i+) System.out.print(ai+ ); 题目6、编写Java程序,模拟简单的计算器。定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。在main方法中创建Number类的对象,调用各个方法,并显示计算结果。解题思路:创建名为Number的类,声明两个整型变量n1,n2为私有。用构造方法给n1,n2赋予初始值。定义加、减、乘、除4个公有
18、成员方,并对2个变量执行运算。最后在main方法中,创建类的对象,对其实例化,编写输入语句,从键盘输出n1,n2的值,并打印出计算结果。程序代码:package p1;import java.util.Scanner;public class Number private int n1; private int n2; public Number(int n1,int n2) public Number() this.n1=n1; this.n2=n2; public int getAddition() return n1+n2; public int getSubtration() retu
19、rn n1-n2; public double getMultiplication() return n1*n2; public double getDivision() return n1/n2; public static void main(String args) Number n=new Number(); Scanner s=new Scanner(System.in); System.out.println(请输入n1:); n.n1=s.nextInt(); System.out.println(请输入n2:); n.n2=s.nextInt(); System.out.pri
20、ntln(和:+n.getAddition(); System.out.println(差:+n.getSubtration(); System.out.println(积:+n.getMultiplication(); System.out.println(商:+n.getDivision(); 实训总结:为期三周的实训结束了,暑假前的一周,和刚刚过去的两周。可以说实训是对上一个学期学习成果的检验,更是提高和巩固在实训前,尽管也上了一个学期的课程,并且也做了不少的实验,但是总感觉自己的欠缺系统的整理和归纳,很多东西都给混淆了。经过一个月的实训,所学的知识已经被梳理了一遍,很多东西都不在混淆了
21、,思路整理清了。 学习就是一个渐进的过程,在这个过程中,我们不断的积累,不断地将我们所学到的东西转化为我们自己的,那样才是学有所成。在实训开始特别是后两周的实训开始的时候,很多东西都给遗忘了,就连一些最基本的知识点也给混淆了。每次遇到问题,据必须去翻书,查找资料,才能理清思路。慢慢的,上一个学期学到的重要的知识点就都回忆起来了。而且,通过一些专题训练,我们能发现自己的不足,从而将其弥补过来。学习JAVA,觉对不要仅仅整天盯着语法细节,光看看是没有用的,而应该注重动手能力培养和编程思想的提高。就好比一篇优美的文章,绝对不仅仅是作者用了多么华丽的词藻和优美的句子,而是文章的思想、意义有多么耐人寻味
22、。可以多做练习,多练习那些经典的列子,同样的问题可以试着用多种方法去实现,这样编程思维得到了扩展,不至于变得很死板。经常练习是很重要的。在这为期四周的实训中遇到了许多的问题,也因此烦躁过,但是不能,必须要有耐心,因为只有耐心才能解决问题前一周的实训,是在期末考试结束后开始的,那个时候对于所学的知识,还没有遗忘,即便是这样的情况,在刚接到老师发给的题目的时候,还是有一种迷茫,不知所措的感觉,因为,无从下手!究其原因,还是对知识不熟练,不能够运用。记得,为难我的第一个问题就是如何从键盘上去输入内容,大概是在平时上课的时候,没有认真听课吧,以至于刚开始就遇到困难,最后是向别人请教了一下,才知道用的是
23、scanner,对于这个词真是有一种陌生的感觉,然后,开始查阅从图书馆借阅的资料,在电脑上面从简单的例子开始敲,模仿,慢慢熟悉它。这只是一个开始,再看题目的时候,仍然是一点思路都没有,看着别人都能多少写一点,这难道不是对自己的否定!可是作业总是要完成的,问别人又不可能短时间就给自己讲解,只能从网上搜了一下,看别人写的代码,总算是有一个大的轮廓,知道应该往哪方面用力了,继而开始一个一个词看,一行代码一行代码看,搞清楚为什么要这样写,目的是什么,这样写的依据又是什么,总之是,遇到不懂的地方,哪怕是马马虎虎,是是而非的清楚,也必须回归到课本,回归到资料,直到真正的弄清楚,能说出来概念性的原理!在看了
24、几个代码之后,开始自己着手试着写,这有让我体会到了什么叫眼高手低。开学后的两个周实训开始老师也布置了新的作业,给了新的题目。问题有出现了,经过两个月的空白,学的东西好像都还给老师了,又傻眼了,学习就是这样,没有很牢固的基础是不行的,不可以三天打鱼两天晒网,要自己踏踏实实认真的去解决问题。要一步一个脚印,认认真真,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。 本次我们分别完成了二十几个简单的应用了各种java知识的程序,这些程序进一步练习了我们所学的知识,真正做到了理论与实践相结合。在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。 所以学好java语言有很大的用处。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1