西南大学2017年《面向对象程序设计》大作业参考答案Word文档格式.doc
《西南大学2017年《面向对象程序设计》大作业参考答案Word文档格式.doc》由会员分享,可在线阅读,更多相关《西南大学2017年《面向对象程序设计》大作业参考答案Word文档格式.doc(6页珍藏版)》请在冰豆网上搜索。
publicSquare(doubleedge){
this.edge=edge;
publicdoublegetArea(){
return(edge*edge);
//定义Circle类
classCircleimplementsShapes{
publicdoubleradius;
publicCircle(doubleradius){
this.radius=radius;
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));
圆形的面积是:
+m2.getArea());
}
问题:
编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;
在第二个文本框中输入第二个乘数;
当单击“=”按钮时,在第三个文本框中输出其乘积。
//import语句
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclass
MultiplyextendsJFrameimplementsActionListener{
//组件声明及创建
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。
abstractdoublegetPerimeter();
classSquareimplementsShapes{
//定义Square类
publicintx,y;
publicintwidth,height;
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类
publicdoubleradius;
return(radius*radius*Math.PI);
return(2*Math.PI*radius);
publicCircle(intx,inty,doubler){
this.radius=r;
publicclassTestShape{
Shapess1=newSquare(5,10,15,15);
Shapess2=newCircle(0,0,6.0);
System.out.println("
+s1.getArea());
正方形的周长是:
+s1.getPerimeter());
+s2.getArea());
圆形的周长是:
+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;
i<
arr.length-1;
i++){
intk=i;
for(intj=i+1;
j<
arr.length;
j++)
if(arr[j]<
arr[k])
k=j;
//用k记录最小值的下标
if(k>
i){//在外循环中实施交换
arr[i]=a