solimh 发表于 2011-8-26 15:39:56

java私塾初级教程--第三章课后作业答案

java私塾初级教程--第三章课后作业答案

java私塾跟我学系列-java篇 初级部分课后题答案,参考学习。。。。


package cn.javass.c3;
//1:写一个MyPoint类完全封装类,其中含有私有的int类型的x和y属性,分别用公有的getX、getY和setX、setY
//方法访问,定义一个toString方法用来显示这个对象的x、y的值。如显示(1,2),最后用main方法测试。
//2:在MyPoint类中增加equals()、toString()方法,根据命令行参数个数测试:若不传参数,则显示(0,0);
//若传一个参数,则打印(此参数值,0);若传两个参数,则打印(第一个参数值,第二个参数值)。
public class MyPoint {
   private int x;
   private int y;
   public int getX() {
      return x;
   }
   public int getY() {
      return y;
   }
   public void setX(int x) {
      this.x = x;
   }
   public void setY(int y) {
      this.y = y;
   }
   public String toString() {
      return "(" + x + "," + y + ")";
   }
   public boolean equals(Object obj) {
      return true;
   }
   public String toString(String[] args) {
      if (args.length == 0) {
         x = 0;
         y = 0;
      }
      if (args.length == 1) {
         x = Integer.parseInt(args);
         y = 0;
      }
      if (args.length == 2) {
         x = Integer.parseInt(args);
         y = Integer.parseInt(args);
      }
      return "(" + x + "," + y + ")";
   }
   public static void main(String[] args) {
      // TODO Auto-generated method stub
      MyPoint mp = new MyPoint();
      mp.setX(1);
      mp.setY(2);
      System.out.println(mp.getX());
      System.out.println(mp.getY());
      System.out.println(mp.toString());
      System.out.println(mp.toString(args));
   }
}

package cn.javass.c3;
//3:有一个序列,首两项为0,1,以后各项值为前两项值之和。写一个方法来实现求这个序列的和
public class OrderSum {
   /**
    * @param args
    */
   //方法一:使用for循环求序列的前n项和
   public int orderSum1(int a1,int a2,int n){
      int s=a1;
      int temp;
      for (int i=1;i<n;i++){
         s=s+a2;
         temp=a2;
         a2=a1+a2;
         a1=temp;
      }
      return s;
   }
   //方法二:使用递归求序列的前n项和
   public int orderSum2(int a1,int a2,int n){
      if (n==1){
         return a1;
      }else{
         return a1+orderSum2(a2,a1+a2,n-1);
      }
   }
   public static void main(String[] args) {
   
      OrderSum o=new OrderSum();
      System.out.println("s="+o.orderSum1(0, 1, 6));
      System.out.println("s="+o.orderSum2(0,1,6));
   }
package cn.javass.c3;
//4:请编写一个方法实现如下功能:将1至7的数字转换为星期日到星期六的字符串。
public class T4 {
   public String numberToString(int n) {
      String s = "";
      switch (n) {
      case 1:
         s = "Sunday";
         break;
      case 2:
         s = "Monday";
         break;
      case 3:
         s = "Tuesday";
         break;
      case 4:
         s = "Wednesday";
         break;
      case 5:
         s = "Thursday";
         break;
      case 6:
         s = "Friday";
         break;
      case 7:
         s = "Saturday";
      }
      return s;
   }

   public static void main(String[] args) {
      T4 t = new T4();
      int n = 4;
      String s = t.numberToString(n);
      System.out.println(n + ":" + s);
    }
}

package cn.javass.c3;
//5:请编写一个方法实现如下功能:有任意三个整数a,b,c,请输出其中最大的
public class T5 {
   
   public int getMax(int a, int b, int c) {
      int max = a > b   a : b;
      max = max > c   max : c;
      return max;
   }
   public static void main(String[] args) {
      T5 t = new T5();
      int max = t.getMax(7, 12, 8);
      System.out.println("The max is " + max);
   }
}

package cn.javass.c3;
//6:请编写一个方法实现如下功能:有任意三个整数a,b,c,请按从小到大的顺序输出
public class T6 {
   public void printOrder(int a, int b, int c) {
      int temp;
      if (a > b) {
         temp = a;
         a = b;
         b = temp;
      }
      if (a > c) {
         temp = a;
         a = c;
         c = temp;
      }
      if (b > c) {
         temp = b;
         b = c;
         c = temp;
      }
      System.out.println("====after Order===");
      System.out.println(a + "," + b + "," + c);
   public static void main(String[] args) {
      int a = 78;
      int b = 34;
      int c = 234;
      System.out.println("====before Order===");
      System.out.println(a + "," + b + "," + c);
      T6 t = new T6();
      t.printOrder(a, b, c);
}

package cn.javass.c3;
//7:请编写一个方法实现如下功能:用程序找出每位数的立方和等于该数值本身值的所有3位数。(水仙花数)
public class T7 {
   public void daffodilNumber() {
      for (int i = 100; i <= 999; i++) {
         int a = i / 100;
         int b = i % 100 / 10;
         int c = i % 10;
         if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
            System.out.println(i);
         }
      }
   }
   public static void main(String[] args) {
      T7 t = new T7();
      t.daffodilNumber();
}

package cn.javass.c3;
//8:请编写一个方法实现如下功能:计算1加到n(n>=2的整数)的总和。
public class T8 {
   public int getSum(int n) {
      int sum = 0;
      for (int i = 1; i <= n; i++) {
         sum += i;
      }
      return sum;
   }
   public static void main(String[] args) {
      T8 t = new T8();
      System.out.println("sum=" + t.getSum(100));
   }
}

package cn.javass.c3;
//9:请编写一个方法实现如下功能:得到一个整数的绝对值。
public class T9 {
   public int absolute(int n) {
      return n >= 0   n : -n;
   }
   public static void main(String[] args) {
      T9 t = new T9();
      int n = -90;
      System.out.println(n + "的绝对值是:" + t.absolute(n));
   }
}

页: [1]
查看完整版本: java私塾初级教程--第三章课后作业答案