1《Java程序设计实验一》要求时间:2016年4月7日(周四)7、8节地点:WM2406实验课名称:Java程序设计实验项目名称:程序流程控制实验教师姓名:张少博实验室名称:计算中心机房实验目的与要求:根据要求完成2个题目。通过本次实验,掌握Java程序设计的基本语法和程序流程控制手段,Java程序运行方法,Java程序注释规范,Java类的定义和实现等。实验内容:【题目一】下面的程序,是一个可以存放对象的动态数组的程序框架,请阅读并完善程序。/********************************************************************Module:ObjectArray.javabr*Purpose:定义一个可以存放对象的动态数组br*@author**********************************************************************/publicclassObjectArray{/**对象数组初始大小*/publicfinalstaticintINIT_SIZE=5;/**对象数组满后,数组大小的增量*/publicfinalstaticintINCREASEMENT=3;/**对象数组*/privateObject[]data;/**对象数组中已存储的对象数量*/privateintsize;/**构造方法*/publicObjectArray(){2data=newObject[INIT_SIZE];size=0;}/**将对象加至数组尾部*@paramo要添加的对象引用*/publicvoidadd(Objecto){//完成该方法}/**返回第i个对象的引用*@parami数组下标为0对应第1个元素*@return返回第i个对象的引用,如果i不在合法范围则返回null。*/publicObjectget(inti){//完成该方法}/**删除第i个对象*@parami数组下标为0对应第1个元素*@return返回第i个对象的引用,如果i不在合法范围则返回null。*/publicObjectremove(inti){//完成该方法}/**返回当前数组中存储的对象个数*@return返回当前数组中存储的对象个数。*/publicintsize(){returnsize;}/**遍历对象数组并输出*/publicvoidtraverse(){for(inti=0;isize;i++){System.out.println(data[i]);}}publicstaticvoidmain(Stringargs[]){//加入测试代码3}}【题目二】仔细阅读下面程序,并完成以下内容:1)Sort类中已经实现了选择排序,请参照其再实现另外2种任选的排序算法;2)Point类实现了Sortable接口和其中的compare方法,因此可以利用Sort类中的静态排序算法进行本类对象的排序。请参考其代码,定义并实现2个可排序的类(也可以自己设计2个其他的类,不限于下面指定的):a)Student(学生)类,可用姓名(name,String类型)进行排序;b)Card(扑克牌)类,可用点数(point,假设只有1~10的扑克牌)和花色(suit:相同点数的牌从大到小依次为spade、heart、club、diamond,即黑桃、红心、梅花、方块)进行排序。3)在InterfaceTest.java的main方法中,对上面的程序进行测试。/************************************************************************Module:Sortable.javabr*Purpose:定义一个接口Sortablebr*@author****@seeSort***********************************************************************/publicinterfaceSortable{intcompare(Sortables);}/************************************************************************Module:Sort.javabr*Purpose:定义一个排序类Sort,其中有若干种排序算法br*@author****@seeSortable***********************************************************************/publicclassSort{/**静态方法,利用选择排序算法对数组a[]进行排序4*@parama[]进行排序的对象数组*/publicstaticvoidSelectSort(Sortablea[]){inti,j,k;Sortabletemp;for(i=0;ia.length-1;i++){k=i;for(j=i+1;ja.length;j++)if(a[k].compare(a[j])0)k=j;temp=a[i];a[i]=a[k];a[k]=temp;}}}/************************************************************************Module:Point.javabr*Purpose:定义一个可以排序的类Point,实现了Sortable接口br*@author****@seeSortable***********************************************************************/publicclassPointimplementsSortable{/**坐标值*/privateintx,y;/**Point类的构造方法*/Point(intx,inty){this.x=x;this.y=y;}/**实现Sortable接口中的Compare方法*@return返回2个点的比较结果。br*-如果2个点距离原点相等则返回0;br*-如果当前点距离原点更近,则返回一个负数;br*-否则返回一个正数。*/publicintcompare(Sortables){Pointp=(Point)s;longn1,n2;n1=x*x+y*y;n2=p.x*p.x+p.y*p.y;5return(int)(n1-n2);}/**覆盖父类的toString方法,便于直接输出Point的信息*/@OverridepublicStringtoString(){returnPoint:[+x+,+y+];}}/************************************************************************Module:SortInterfaceTest.javabr*Purpose:main方法中,对上述类进行测试br*@author**************************************************************************/publicclassSortInterfaceTest{publicstaticvoidmain(Stringargs[]){inti;//创建Point对象数组Pointp[]=newPoint[10];for(i=0;ip.length;i++)p[i]=newPoint((int)(Math.random()*10),(int)(Math.random()*10));System.out.println(对Point对象进行排序);Sort.SelectSort(p);//输出排序后的对象for(i=0;ip.length;i++)System.out.println(p[i]);}}