Github 備份:LINK
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 605_1 */ | |
//建立一個抽象屬性的方法 | |
abstract class MIS{ | |
private String name; | |
private int chi; | |
private int eng; | |
//建立建構子,初始化姓名、國文成績、英文成績 | |
public MIS(String s,int i,int j) | |
{name = s;chi = i;eng = j;} | |
//建立抽象方法,須在繼承的class中實作 | |
public abstract double averageElect(); | |
//建立平均計算方法 | |
public double averageAll() | |
{return averageElect()*0.6 + (double)((chi+eng)/2.0)*0.4;} | |
} | |
//繼承MIS | |
class IT extends MIS { | |
private int pl; | |
private int db; | |
private int ds; | |
//建構子初始化必修成績和選修成績 | |
IT(String s,int i,int j,int k,int l,int ii) | |
{ | |
super(s,i,j); | |
pl=k; | |
db=l; | |
ds=ii; | |
} | |
public double averageElect(){return (pl+db+ds)/3.0;} | |
} | |
//繼承MIS | |
class IM extends MIS{ | |
private int econ; | |
private int acct; | |
//建構子初始化必修成績和選修成績 | |
IM(String s,int i,int j,int k ,int l) | |
{ | |
super(s,i,j); | |
econ = k; | |
acct =l; | |
} | |
public double averageElect(){return (econ+acct)/2.0;} | |
} | |
public class JPA06_1 { | |
public static void main(String argv[]) { | |
//建立MIS物件IT和IM | |
MIS s1 = new IT("John", 88, 90, 76, 68, 84); | |
MIS s2 = new IM("Paul", 92, 80, 76, 68); | |
System.out.printf("John's elect score: %.2f all score %.2f\n", s1.averageElect(), s1.averageAll()); | |
System.out.printf("Paul's elect score: %.2f all score %.2f\n", s2.averageElect(), s2.averageAll()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 605_2 */ | |
abstract class MIS{ | |
private String name; | |
private int chi; | |
private int eng; | |
public MIS(String s,int i,int j) | |
{name = s;chi = i;eng = j;} | |
public abstract double averageElect(); | |
//更改主科成績取得方法 | |
public double averageMust(){return (double)((chi+eng)/2.0);} | |
public double averageAll() | |
{return averageElect()*0.6 + averageMust()*0.4;} | |
} | |
class IT extends MIS { | |
private int pl; | |
private int db; | |
private int ds; | |
IT(String s,int i,int j,int k,int l,int ii) | |
{ | |
super(s,i,j); | |
pl=k; | |
db=l; | |
ds=ii; | |
} | |
public double averageElect(){return (pl+db+ds)/3.0;} | |
} | |
class IM extends MIS{ | |
private int econ; | |
private int acct; | |
IM(String s,int i,int j,int k ,int l) | |
{ | |
super(s,i,j); | |
econ = k; | |
acct =l; | |
} | |
public double averageElect(){return (econ+acct)/2.0;} | |
} | |
//再繼承自IT | |
class ITM extends IT{ | |
private int acct; | |
//建構子初始化成績 | |
ITM(String s,int i,int j,int k,int l,int ii,int jj) | |
{ | |
super(s,i,j,k,l,ii); | |
acct=jj; | |
} | |
//實作MIS的方法,複寫IT的方法 | |
public double averageElect(){return (super.averageElect()+acct)/2.0;} | |
public double averageAll() {return (super.averageMust()*0.4 + super.averageElect()*0.4 + acct*0.2);} | |
} | |
public class JPA06_2 { | |
public static void main(String argv[]) { | |
//建立MIS物件ITM | |
MIS s3 = new ITM("Mary", 79, 88, 94, 92, 83, 69); | |
System.out.printf("Mary's elect score: %.2f all score %.2f\n", s3.averageElect(), s3.averageAll()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 605_3 */ | |
abstract class MIS{ | |
private String name; | |
private int chi; | |
private int eng; | |
//初始化人數為0 | |
private static int count =0; | |
//每建立一次MIS物件時會使count++ | |
public MIS(String s,int i,int j){ | |
name = s; | |
chi = i; | |
eng = j; | |
count++; | |
} | |
public abstract double averageElect(); | |
public double averageMust(){ | |
return (double)((chi+eng)/2.0); | |
} | |
public double averageAll(){ | |
return averageElect()*0.6 + averageMust()*0.4; | |
} | |
//設定取得count方法 | |
public static int getCount(){ | |
return count; | |
} | |
} | |
class IT extends MIS { | |
private int pl; | |
private int db; | |
private int ds; | |
IT(String s,int i,int j,int k,int l,int ii){ | |
super(s,i,j); | |
pl=k; | |
db=l; | |
ds=ii; | |
} | |
public double averageElect(){ | |
return (pl+db+ds)/3.0; | |
} | |
} | |
class IM extends MIS{ | |
private int econ; | |
private int acct; | |
IM(String s,int i,int j,int k ,int l){ | |
super(s,i,j); | |
econ = k; | |
acct =l; | |
} | |
public double averageElect(){ | |
return (econ+acct)/2.0; | |
} | |
} | |
class ITM extends IT{ | |
private int acct; | |
ITM(String s,int i,int j,int k,int l,int ii,int jj){ | |
super(s,i,j,k,l,ii); | |
acct=jj; | |
} | |
public double averageElect(){ | |
return (super.averageElect()+acct)/2.0; | |
} | |
public double averageAll() { | |
return (super.averageMust()*0.4 + super.averageElect()*0.4 + acct*0.2); | |
} | |
} | |
public class JPA06_3 { | |
public static void main(String argv[]) { | |
MIS s1 = new IT("John", 88, 90, 76, 68, 84); | |
MIS s2 = new IM("Paul", 92, 80, 76, 68); | |
MIS s3 = new ITM("Mary", 79, 88, 94, 92, 83, 69); | |
//System.out.printf("John's elect score: %.2f all score %.2f\n", s1.averageElect(), s1.averageAll()); | |
//System.out.printf("Paul's elect score: %.2f all score %.2f\n", s2.averageElect(), s2.averageAll()); | |
//System.out.printf("Mary's elect score: %.2f all score %.2f\n", s3.averageElect(), s3.averageAll()); | |
System.out.println("Total students: " + MIS.getCount()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 605_4 */ | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.Map; | |
abstract class MIS{ | |
private String name; | |
private int chi; | |
private int eng; | |
private static int count =0; | |
public MIS(String s,int i,int j){ | |
name = s; | |
chi = i; | |
eng = j; | |
count++; | |
} | |
public abstract double averageElect(); | |
public double averageMust(){ | |
return (double)((chi+eng)/2.0); | |
} | |
public double averageAll(){ | |
return averageElect()*0.6 + averageMust()*0.4; | |
} | |
public static int getCount(){ | |
return count; | |
} | |
} | |
class IT extends MIS { | |
private int pl; | |
private int db; | |
private int ds; | |
IT(String s,int i,int j,int k,int l,int ii){ | |
super(s,i,j); | |
pl=k; | |
db=l; | |
ds=ii; | |
} | |
public double averageElect(){ | |
return (pl+db+ds)/3.0; | |
} | |
} | |
class IM extends MIS{ | |
private int econ; | |
private int acct; | |
IM(String s,int i,int j,int k ,int l){ | |
super(s,i,j); | |
econ = k; | |
acct =l; | |
} | |
public double averageElect(){ | |
return (econ+acct)/2.0; | |
} | |
} | |
class ITM extends IT{ | |
private int acct; | |
ITM(String s,int i,int j,int k,int l,int ii,int jj){ | |
super(s,i,j,k,l,ii); | |
acct=jj; | |
} | |
public double averageElect(){ | |
return (super.averageElect()+acct)/2.0; | |
} | |
public double averageAll(){ | |
return (super.averageMust()*0.4 + super.averageElect()*0.4 + acct*0.2); | |
} | |
} | |
//建立MISClass方法 | |
class MISClass { | |
private HashMap stu; | |
//建構子初始化為HashMap | |
MISClass(){ | |
stu = new HashMap(); | |
} | |
//建立方法,將學生的key,value放到HashMap | |
public void put(String s,MIS mis){ | |
stu.put(s, mis); | |
} | |
public void list(){ | |
//取出Map值用 | |
Map.Entry entry = null; | |
MIS mis = null; | |
//透過Iterator將整份的Map(key,value)放入 | |
for(Iterator iterator = stu.entrySet().iterator();iterator.hasNext();){ | |
//判斷是否還有下一個 | |
entry = (Map.Entry)iterator.next(); | |
//取出MIS物件 | |
mis = (MIS)entry.getValue(); | |
System.out.printf("%s : %.2f \n",entry.getKey(),mis.averageAll()); | |
} | |
} | |
} | |
public class JPA06_4 { | |
public static void main(String argv[]) { | |
//建立MIS物件IT、IM、ITM | |
MIS s1 = new IT("John", 88, 90, 76, 68, 84); | |
MIS s2 = new IM("Paul", 92, 80, 76, 68); | |
MIS s3 = new ITM("Mary", 79, 88, 94, 92, 83, 69); | |
//System.out.printf("John's elect score: %.2f all score %.2f\n", s1.averageElect(), s1.averageAll()); | |
//System.out.printf("Paul's elect score: %.2f all score %.2f\n", s2.averageElect(), s2.averageAll()); | |
//System.out.printf("Mary's elect score: %.2f all score %.2f\n", s3.averageElect(), s3.averageAll()); | |
//建立MISClass物件 | |
MISClass c1 = new MISClass(); | |
//將產生好的物件放入Map中,key=名字,value=MIS物件 | |
c1.put("John", s1); | |
c1.put("Paul", s2); | |
c1.put("Mary", s3); | |
c1.list(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* TQC+ JAVA6 - 605_5 */ | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.Map; | |
abstract class MIS{ | |
private String name; | |
private int chi; | |
private int eng; | |
private static int count =0; | |
public MIS(String s,int i,int j){ | |
name = s; | |
chi = i; | |
eng = j; | |
count++; | |
} | |
public abstract double averageElect(); | |
public double averageMust(){ | |
return (double)((chi+eng)/2.0); | |
} | |
public double averageAll(){ | |
return averageElect()*0.6 + averageMust()*0.4; | |
} | |
public static int getCount(){ | |
return count; | |
} | |
} | |
class IT extends MIS { | |
private int pl; | |
private int db; | |
private int ds; | |
IT(String s,int i,int j,int k,int l,int ii){ | |
super(s,i,j); | |
pl=k; | |
db=l; | |
ds=ii; | |
} | |
public double averageElect(){ | |
return (pl+db+ds)/3.0; | |
} | |
} | |
class IM extends MIS{ | |
private int econ; | |
private int acct; | |
IM(String s,int i,int j,int k ,int l){ | |
super(s,i,j); | |
econ = k; | |
acct =l; | |
} | |
public double averageElect(){ | |
return (econ+acct)/2.0; | |
} | |
} | |
class ITM extends IT{ | |
private int acct; | |
ITM(String s,int i,int j,int k,int l,int ii,int jj){ | |
super(s,i,j,k,l,ii); | |
acct=jj; | |
} | |
public double averageElect(){ | |
return (super.averageElect()+acct)/2.0; | |
} | |
public double averageAll(){ | |
return (super.averageMust()*0.4 + super.averageElect()*0.4 + acct*0.2); | |
} | |
} | |
class MISClass { | |
private HashMap stu; | |
MISClass(){ | |
stu = new HashMap(); | |
} | |
public void put(String s,MIS mis){ | |
stu.put(s, mis); | |
} | |
public void list() throws Exception{ | |
Map.Entry entry = null; | |
MIS mis = null; | |
for(Iterator iterator = stu.entrySet().iterator();iterator.hasNext(); | |
System.out.printf("%s : %.2f \n",entry.getKey(),mis.averageAll())){ | |
entry = (Map.Entry)iterator.next(); | |
mis = (MIS)entry.getValue(); | |
//新增一個判斷方法 | |
if(mis.averageAll() >100)//如果平均大於100分,則丟出錯誤訊息 | |
throw new Exception("**"+entry.getKey()+":"+mis.averageAll()); | |
} | |
} | |
} | |
public class JPA06_5 { | |
public static void main(String argv[]) { | |
MISClass c1 = new MISClass(); | |
c1.put("Peter", new IM("Peter", 89, 980, 77, 69)); | |
//將try-catch加入,主要是在列印出成績時,檢查是否有錯誤 | |
try{ | |
c1.list(); | |
} catch(Exception e) { | |
System.out.println(e.getMessage()); | |
} | |
} | |
} |
TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK
本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~
沒有留言:
張貼留言