2013年5月21日 星期二

物件導向期末小考5/21


class ex0423b{
        public static void main(String[] args){

 String stdRec="E9923017,Mary Wu,75,0.3,67,0.3,82,0.4";
 
                String[] token=stdRec.split("[,]");

 double fscore=0;

 int s1,s2,s3;
 double p1,p2,p3;
 s1=Integer.parseInt(token[2]);
 s2=Integer.parseInt(token[4]);
 s3=Integer.parseInt(token[6]);
 p1=Double.parseDouble(token[3]);
 p2=Double.parseDouble(token[5]);
 p3=Double.parseDouble(token[7]);
 fscore=s1*p2+s2*p2+s3*p3;

 System.out.println(" Name: "+ token[1]);
 System.out.println(" ID: "+ token[0]);
 System.out.println("     1st Score: "+ token[2]);
 System.out.println("     2nd Score: "+ token[4]);
 System.out.println("     3rd Score: "+ token[6]);
 System.out.println(" Final Score: "+ fscore); 
        }
}


class score{
 int[] sdata;
 int pvalue;

 score(int[] data){
  sdata=data;
  pvalue=60;
 }

 void setPvalue(int pp){
  this.pvalue=pp;
 }

 double getAvg(){ // Two decimal places
  int count=0,sum=0;
  for(int i:sdata) {
   sum+=i;
   count++;
  }
  return (int)((float)sum/count*100)/100.0;
 }

 int getPassNo(){
  int count=0;
  for(int i:sdata) if(i>=pvalue) count++;
  return count;
 }

}

class subScore extends score{ // inhertance super class score
// call super class constructor
 int[] sdata;
 subScore(int[] d){
  super(d);
  sdata=super.sdata;
 }
// create a method for sorting

 void sort(){
  int tmp;
  for(int i=0;i<sdata.length-1;i++){
   for(int j=i+1;j< sdata.length;j++){
    if(sdata[i] < sdata[j]){
     tmp=sdata[i];
     sdata[i]=sdata[j];
     sdata[j]=tmp;
    }
   }
  }
 }
 
 int getRank(int f){

  return sdata[f-1];
 }

 int getHigh(){

  return sdata[0];
 }
 
 int getLow(){

  return sdata[sdata.length-1];
 }
} 

class ex0430{
public static void main(String[] args) 
{
 int[] data1={75, 90, 83, 42, 66, 55, 93, 72, 88, 62, 35, 96, 81, 53, 91}; // ITMA 60
 int[] data2={78, 54, 63, 89, 79, 67, 95, 46, 93, 81, 99, 50, 70, 66, 90, 71, 88}; // ITMB 70

//
// instance an object by data1
 subScore d1 = new subScore(data1);
 d1.setPvalue(60);
 d1.sort();

// 
// instance an object by data2
 subScore d2 = new subScore(data2);
 d2.setPvalue(70);
 d2.sort();
//
 System.out.println(" Average of ITMA: "+d1.getAvg());
 System.out.println(" PassNo of ITMA: "+d1.getPassNo());
 System.out.println(" Highest score of ITMA: "+d1.getHigh());
 System.out.println(" Lowest score of ITMA: "+d1.getLow());
 System.out.println(" 3RD score of ITMA: "+d1.getRank(3));
 System.out.println(" 7th score of ITMA: "+d1.getRank(7));
 System.out.println(" ");
 System.out.println(" Average of ITMB: "+d2.getAvg());
 System.out.println(" PassNo of ITMB: "+d2.getPassNo());
 System.out.println(" Highest score of ITMB: "+d2.getHigh());
 System.out.println(" Lowest score of ITMB: "+d2.getLow());
 System.out.println(" 2nd score of ITMB: "+d2.getRank(2));
 System.out.println(" 5th score of ITMB: "+d2.getRank(5)); 
}
}

interface Ip1{
    int num=20;

    void show();
}

interface Ip2{
    int num=50;

    void show();
}

interface Ic extends Ip1, Ip2{
     void show(String ss);
}

public class ex0514 implements Ic{
      public void show(){
               show(" ");
       }
      public void show(String ss){
               System.out.println(ss+" num of Ip1 "+Ip1.num+" num of Ip2 "+Ip2.num);
       }

       public static void main(String[] argv){
 ex0514 obj=new ex0514();
 obj.show();
 obj.show(" Test ");
       }
}

abstract class Land{
        abstract double area();
 abstract double perimeter();
}

class Circle extends Land{
           double radius;

           Circle(double r){
       radius=r;
 }

 double area(){
                      return radius*radius*Math.PI;
 }

 double perimeter(){
                      return radius*2*Math.PI;
 }
}

class Square extends Land{
           double size;

           Square(double s){
       size=s;
 }

 double area(){
                      return size*size;
 }

 double perimeter(){
                      return size*4;
 }
}

class ex0514a{
 static public void main(String argv[]){
  Circle c = new Circle(5.6);    // generate a Circle object
                Square s = new Square(7.3);    // generate a Square object

                                // Output Circle's  area & perimeter (raduis is 5.6)
  System.out.println("Circle's area: "+c.area());
  System.out.println("Circle's perimeter: "+c.perimeter());
                                // Output Square's  area & perimeter (size is 7.3)
  System.out.println("Square's area: "+s.area());
  System.out.println("Square's perimeter: "+s.perimeter());
                }
}

dataB.txt

A9528003M168.5
A9528005F170.5
A9528006M185.5
A9528011M174.0
A9528012F157.0
A9528013M164.0
A9528017M177.0
A9528025F178.0
A9528028M184.0
A9528031M181.0

import java.io.*;

class ex0521a{
 public static void main(String[] args) throws IOException
 {

      FileReader fr=new FileReader("dataB.txt");     // fileA: dataB.txt
  BufferedReader bfr= new BufferedReader(fr);

  FileWriter fw = new FileWriter("reportB.txt");                   // output file: reportB.txt
  BufferedWriter bfw = new BufferedWriter(fw);

  String id,str,gen,height;
  double dheight;

  while ((str=bfr.readLine())!=null) //    read a record from fileA
  {
   id=str.substring(0,8);
   gen=str.substring(8,9);
   height=str.substring(9);
   dheight=Double.parseDouble(height);
   if(dheight >= 175.0) {
    System.out.println(id+"  "+gen+"  "+height);
    bfw.write(id+"  "+gen+"  "+height);
    bfw.newLine();
   }

  }
  bfw.flush();
  fr.close();
  fw.close();
 }
}





dataA.txt

A9528003;Mary Chen;75;82;65
A9528005;Roney Liu;86;62;75
A9528006;CoCo Wu;43;62;45
A9528011;Billy Kuo;95;88;93
A9528012;Johny Hu;72;66;65
A9528013;Chung LU;53;42;35
A9528017;Beer Lee;77;66;88
A9528025;Cool Hung;43;62;45
A9528028;Fly Wang;93;82;98
A9528031;Woody Lai;82;76;67

import java.io.*;

class score{
 double[] sc;
 score(double[] data){
  sc=data;
 }
 double getHigh(){
  double high=0;
  for(double d:sc)
   if(d>high) high=d;
  return high;
 }
 int passNo(){
  int sum=0;
  for(double d:sc)
   if(d>=60)sum++;
  return sum;
 }
}

class ex0521b{
 public static void main(String[] args) throws IOException
 {

      FileReader fr=new FileReader("dataA.txt");     // fileA: dataA.txt ==> 學生成績資料檔
  BufferedReader bfr= new BufferedReader(fr);
 
 //    將學號、成績1, 成績2, 成績3 及三科平均分數(*)、姓名
                 //     且產生平均最高分及平均及格人數寫入 fileB: report.txt  
                 // 
 //    String sc="94"
                 //     int x=Integer.parseInt(sc);      ==>    x=94;
                 //
  FileWriter fw = new FileWriter("report.txt");                   // output file: report.txt
  BufferedWriter bfw = new BufferedWriter(fw);
        //
        //    read first record 內容為學生人數 (成績筆數)
        //

  String name,id,str;
  int recno=0,isc1,isc2,isc3=0;
  double avg;
  double[] sc=new double[10];
  char star='*';

  while ((str=bfr.readLine())!=null) //    read a record from fileA
  {
   String[] token=str.split("[;]");
   id=token[0];
   name=token[1];
   isc1=Integer.parseInt(token[2]);
   isc2=Integer.parseInt(token[3]);
   isc3=Integer.parseInt(token[4]);
   avg=(int)(((double)isc1+isc2+isc3)/3.0*10)/10.0;
   if(avg<60) star='*';
   else star=' ';
   System.out.println(id+"  "+isc1+"  "+isc2+"  "+isc3+"  "+avg+"  "+name+star);
   sc[recno]=avg;
   recno++;
   bfw.write(id+"  "+isc1+"  "+isc2+"  "+isc3+"  "+avg+"   "+name+star);
   bfw.newLine();

  }
  score obj=new score(sc);
  System.out.println("最高分:"+obj.getHigh()+" 及格人數:"+ obj.passNo());
  bfw.write("最高分:"+obj.getHigh()+"及格人數:"+obj.passNo());
  bfw.newLine();
  bfw.flush();
  fr.close();
  fw.close();
 }
}



class Parent{
 int i;
 Parent(int i){
  this.i=i;
 }
 void show(){
  System.out.println(" i: "+i);
 }
}
class Child extends Parent{
 Child(){
  super(10);
 }
 Child(int i){
  super(i);
 }
}
class t0430{
 public static void main(String[] args) 
 {
  Parent obj=new Parent(99);
  obj.show();

  Child obj1=new Child(66);
  obj1.show();

  Child obj2=new Child();
  obj2.show();
 }
}


class score{
 int[] data;
 score(int[] d){    // build a constructor & set integer arrary as parameter
  data=d;
 }
 void sort(){
  int tmp;
  for(int i=0;i<data.length-1;i++){
   for(int j=i+1;j< data.length;j++){
    if(data[i] < data[j]){
     tmp=data[i];
     data[i]=data[j];
     data[j]=tmp;
    }
   }
  }
 }
}

class t0430a{
 public static void main(String[] args) 
 {
  int[] data={78, 54, 63, 89, 79, 46, 93, 81, 99, 50, 70, 66};
  for(int ss:data) System.out.print(" "+ss);
  System.out.println(" ");

  // instance an object
  // call the method of sort
  score s = new score(data);
  s.sort();

  for(int ss:data) System.out.print(" "+ss);
 }
}

沒有留言:

張貼留言