Java2程序设计实验报告
实验四 Java编程
班级 B08512 姓名 刘富民 学号 20084051219 日期2011.4.1 成绩评定
1.实验目的
1、 掌握Java语言中数组的定义及应用 2、 掌握Java语言中列表与映射实现类 3、 实现Java语言中数组、列表的排序
2.任务环境
JDK+记事本,MyEclipse开发环境
3.任务内容及步骤
1、 编程实现Box类,包含3个成员变量(整型)表示长、宽、高,成员方法至少包含计算体积。实现
java.util.Comparator接口新建比较器类BoxComparator来进行Box类的体积比较。新建TestBox类在main函数创建Box类型数组boxes,之后使用Arrays.sort方法实现按照体积从小到大排序。(参考上课示例)
另外,也可以实验下将Box对象存放在List中,使用java.util.Collections类的sort方法实现对List排序。(和数组一样,参考下API文档) public class Box{ int length; int width; int high; int volumn;
public void volumn() { this.volumn=this.length*this.high*this.width; }
Box(int l,int w,int h) { this.high=h; this.length=l; this.width=w; } }
import java.util.Comparator;
public class BoxComparator implements Comparator {
1
Java2程序设计实验报告
public int compare(Object o1,Object o2) { Box b1=(Box)o1; Box b2=(Box)o2; if(b1.volumn>b2.volumn) return 1; else if(b1.volumn import java.util.Comparator; import java.util.Arrays; public class TestBox { public static void main(String[] args) { Box box[]=new Box[5]; box[0]=new Box(2,2,4); box[1]=new Box(6,2,1); box[2]=new Box(2,5,3); box[3]=new Box(5,2,7); box[4]=new Box(2,2,4); box[0].volumn(); box[1].volumn(); box[2].volumn(); box[3].volumn(); box[4].volumn(); Arrays.sort(box,new BoxComparator()); System.out.println(\刘富民测试:\ System.out.print(\排序后:\ for(int i=0;i<5;i++) System.out.print(box[i].volumn+\ } } 运行结果: 2、 某次考试有若干学生参加(学生对象放在一个List中),每个学生有一个姓名属性、班级名称属性 (String)和考试成绩属性(int),考试结束后每个学生都获得了一个考试成绩。请打印出每个班级的总分和平均分。(假设这些学生属于两个班,每班分别有3名和4名学生,List可选用任一List实现类) 注:遍历List时迭代器next方法获取的或是List的get方法获取的Object类型对象可强制转化为学生类型。public class Student { String name; 2 Java2程序设计实验报告 String clas; int grade; public void setGrade(int g) { this.grade=g; } public void printf() { System.out.println(\姓名:\班级:\成绩:\ } Student(String n,String c,int g ) { this.name=n; this.clas=c; this.grade=g; } public String getClas() { return this.clas; } public int getGrade() { return this.grade; } } import java.util.Iterator; import java.util.List; import java.util.ArrayList; public class UserArrayList { public static void main(String args[]) { int GRADE1=0,GRADE2=0; List list=new ArrayList(); Student student[]=new Student[7]; student[0]=new Student(\小王\ list.add(student[0]); student[1]=new Student(\小章\ list.add(student[1]); student[2]=new Student(\小龙\ list.add(student[2]); student[3]=new Student(\刘富民\ list.add(student[3]); student[4]=new Student(\小二\ list.add(student[4]); 3 Java2程序设计实验报告 student[5]=new Student(\小一\list.add(student[5]); student[6]=new Student(\小三\list.add(student[6]); Iterator it=list.iterator(); while(it.hasNext()) { Student stu=(Student)it.next(); if(stu.getClas()==\ GRADE1=GRADE1+stu.getGrade(); else GRADE2=GRADE2+stu.getGrade(); } System.out.println(\刘富民测评:\ System.out.println(\总成绩:\平均分:\ System.out.println(\总成绩:\平均分:\; } } 运行结果: 3、 对于2提到的学生类,使用Hashtable建立以学号为键到学生对象的映射,并完成遍历输出每个学生 的姓名。 import java.util.Hashtable; import java.util.Map; import java.lang.*; public class UseHashTable { public static void main(String args[]) { Map m=new Hashtable(); Student student[]=new Student[7]; student[0]=new Student(\小王\ m.put(\ student[1]=new Student(\小章\ m.put(\ student[2]=new Student(\小龙\ m.put(\ student[3]=new Student(\刘富民\ m.put(\ student[4]=new Student(\小二\ m.put(\ student[5]=new Student(\小一\ m.put(\ 4 Java2程序设计实验报告 student[6]=new Student(\小三\ m.put(\ for(int i=0;i 运行结果: 4.实验总结 (1)初步了解了一个简单的Java程序的开发过程。 (2)掌握了面向对象编程的基础知识和类的使用及创建方法。 (3)通过本次试验,熟悉了Java的编程环境MyEclipse。 (4)掌握了虚类的应用以及类的继承和接口的应用。 5