您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 西南大学2017年《面向对象程序设计》大作业参考答案
请按下面的要求编写程序。(1)定义一个接口Shapes,它至少包含一个可以计算面积的成员方法。(2)编写实现该Shapes接口的两个类:正方形类和圆形类。(3)编写一个具有泛型特点的类Map,要求该类可以在控制台窗口输出某种图形的面积,而且这个类的类型变量所对应的实际类型就是(2)编写的正方形类和圆形类。(4)利用具有泛型特点的类Map在控制台窗口分别输出给定边长的正方形的面积和给定半径的圆的面积。参考://定义接口inte**ceShapes{abstractdoublegetArea();}//定义Square类classSquareimplementsShapes{publicdoubleedge;publicSquare(doubleedge){this.edge=edge;}publicdoublegetArea(){return(edge*edge);}}//定义Circle类classCircleimplementsShapes{publicdoubleradius;publicCircle(doubleradius){this.radius=radius;}publicdoublegetArea(){return(radius*radius*Math.PI);}}classMap{//使用泛型T,T应当是Shapes的子类Tt;publicMap(Tt){this.t=t;}publicdoublegetArea(){returnt.getArea();}}//测试程序classTest{publicstaticvoidmain(String[]args){Mapm1=newMap(newSquare(15.0));System.out.println(正方形的面积是:+m1.getArea());Mapm2=newMap(newCircle(15.0));System.out.println(圆形的面积是:+m2.getArea());}}问题:编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文本框中输入第二个乘数;当单击“=”按钮时,在第三个文本框中输出其乘积。参考://import语句importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassMultiplyextendsJFrameimplementsActionListener{//组件声明及创建privateJButtonoperator=newJButton(*);privateJTextFieldinput1=newJTextField(5);privateJTextFieldinput2=newJTextField(5);privateJButtonequal=newJButton(=);privateJTextFieldresult=newJTextField(5);//添加组件publicMultiply(){Containerc=getContentPane();c.setLayout(newFlowLayout());c.add(input1);c.add(operator);c.add(input2);c.add(equal);c.add(result);equal.addActionListener(this);}//处理按钮动作事件publicvoidactionPerformed(ActionEvente){doubleoperand1=Double.valueOf(input1.getText()).doubleValue();doubleoperand2=Double.valueOf(input2.getText()).doubleValue();result.setText(String.valueOf(operand1*operand2));}//设置框架属性publicstaticvoidmain(Stringargs[]){Multiplyf=newMultiply();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(320,80);f.setVisible(true);}}题目:请设计一个软件包。要求该软件包至少拥有正方形类、圆类。要求每个类都具有构造方法、计算该图形的周长的成员方法和计算该图形的面积的成员方法。然后编写一个测试程序,分别创建这些类的实例对象,并输出这些实例对象的周长和面积。在创建这些实例对象时,构造方法的调用参数值分别是:正方形:左上定点的坐标为(5,10),边长为15。圆形:圆心的坐标为(0,0),圆心为15。参考:inte**ceShapes{abstractdoublegetArea();abstractdoublegetPerimeter();}//定义接口classSquareimplementsShapes{//定义Square类publicintx,y;publicintwidth,height;publicdoublegetArea(){return(width*height);}publicdoublegetPerimeter(){return(2*width+2*height);}publicSquare(intx,inty,intwidth,intheight){this.x=x;this.y=y;this.width=width;this.height=height;}}classCircleimplementsShapes{//定义Circle类publicintx,y;publicdoubleradius;publicdoublegetArea(){return(radius*radius*Math.PI);}publicdoublegetPerimeter(){return(2*Math.PI*radius);}publicCircle(intx,inty,doubler){this.x=x;this.y=y;this.radius=r;}}publicclassTestShape{//测试程序publicstaticvoidmain(String[]args){Shapess1=newSquare(5,10,15,15);Shapess2=newCircle(0,0,6.0);System.out.println(正方形的面积是:+s1.getArea());System.out.println(正方形的周长是:+s1.getPerimeter());System.out.println(圆形的面积是:+s2.getArea());System.out.println(圆形的周长是:+s2.getPerimeter());}}题目:编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件“score.txt”中。参考:importjava.io.DataOutputStream;importjava.io.FileOutputStream;importjava.io.IOException;publicclassTestSort{publicstaticintMAXSIZE=61;publicstaticvoidsortInt(int[]arr){//采用选择法对一维数组进行排序for(inti=0;iarr.length-1;i++){intk=i;for(intj=i+1;jarr.length;j++)if(arr[j]arr[k])k=j;//用k记录最小值的下标if(ki){//在外循环中实施交换arr[i]=arr[i]+arr[k];arr[k]=arr[i]-arr[k];arr[i]=arr[i]-arr[k];}}}publicstaticvoidmain(Stringargs[]){intscore[]=newint[MAXSIZE];try{for(inti=0;iMAXSIZE;i++)score[i]=(int)(Math.random()*100+0.5);sortInt(score);DataOutputStreamdout=newDataOutputStream(newFileOutputStream(score.txt));for(inti=0;iMAXSIZE;i++){dout.writeInt(score[i]);System.out.println(score[i]);}dout.close();//结果保存到文件}catch(IOExceptione){System.err.println(发生异常:+e);e.printStackTrace();}//try-catch结构处理异常}}
本文标题:西南大学2017年《面向对象程序设计》大作业参考答案
链接地址:https://www.777doc.com/doc-7139398 .html