2013年2月8日 星期五

TQC+ JAVA 605 成績資訊系統

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

/* 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());
}
}
/* 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());
}
}
/* 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());
}
}
/* 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();
}
}
/* 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

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

沒有留言:

張貼留言