2013年2月8日 星期五

TQC+ JAVA 610 員工薪資制度

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

/* TQC+ JAVA6 - 610_1 */
//建立抽象類別供子類別繼承
abstract class work{
String wno;
work(String s){
wno=s;
}
//建立一個每月收入抽象的方法
abstract double monthPay();
}
//建立一個SalaryWorker類別,繼承work,在此方法中有寫入紅利變數,但設定成0
class SalaryWorker extends work{
int mp;//年薪
int redp=0;//紅利
//建構子初始化員工編號、年薪
SalaryWorker(String s ,int i){
super(s);
mp=i;
}
double monthPay(){
return (mp/12.0+redp);
}
}
//建立一個HourlyWorker類別,繼承work
class HourlyWorker extends work{
int hr,hp;
//建構子初始化員工編號、工作時數、時薪
HourlyWorker(String s,int i1,int i2){
super(s);
hr=i2;
hp=i1;
}
double monthPay(){
return hr*hp;
}
}
//建立一個主管類別繼承SalaryWorker,該處將紅利的變數重新寫入
class Manager extends SalaryWorker{
Manager(String s,int i ,int i1){
super(s,i);
redp = i1;
}
}
public class JPA06_1 {
public static void main(String argv[]) {
//建立一個銷售員的物件
SalaryWorker sw1 = new SalaryWorker("96001",180000);
//取的該銷售員的月薪
System.out.println("SalaryWorker:" + sw1.monthPay());
//建立一個時薪人員的物件
HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
//取的該時薪人員的月薪
System.out.println("HourlyWorker:" + hw1.monthPay());
//建立一個主管的物件
Manager ma1 = new Manager("97001", 240000, 5000);
//取得該主管的月薪
System.out.println("Manager:" + ma1.monthPay());
}
}
/* TQC+ JAVA6 - 610_2 */
abstract class work{
String wno;
work(String s){
wno=s;
}
abstract double monthPay();
//建立一個比較薪水高低的方法
void ishight(work k){
if(monthPay()>k.monthPay())
System.out.println(wno+"較高");
else
System.out.println(k.wno+"較高");
}
//計算出每個人的應繳稅額
double monthTaxes(){
return monthPay()*0.15;
}
}
class SalaryWorker extends work{
int mp;
int redp=0;
SalaryWorker(String s ,int i){
super(s);
mp=i;
}
double monthPay(){
return (mp/12.0+redp);
}
}
class HourlyWorker extends work{
int hr,hp;
HourlyWorker(String s,int i1,int i2){
super(s);
hr=i2;
hp=i1;
}
double monthPay(){
return hr*hp;
}
}
class Manager extends SalaryWorker{
Manager(String s,int i ,int i1){
super(s,i);
redp = i1;
}
}
public class JPA06_2 {
public static void main(String argv[]) {
SalaryWorker sw1 = new SalaryWorker("96001",180000);
System.out.println("SalaryWorker:" + sw1.monthPay());
HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
System.out.println("HourlyWorker:" + hw1.monthPay());
Manager ma1 = new Manager("97001", 240000, 5000);
System.out.println("Manager:" + ma1.monthPay());
//比較(物件)sw1和(物件)hw1誰的薪水高
sw1.ishight(hw1);
//比較(物件)hw1和(物件)ma1誰的薪水高
hw1.ishight(ma1);
//取得每個人的應繳稅額
System.out.println("SalaryWorker稅額:" + sw1.monthTaxes());
System.out.println("HourlyWorker稅額:" + hw1.monthTaxes());
System.out.println("Manager稅額:" + ma1.monthTaxes());
}
}
/* TQC+ JAVA6 - 610_3 */
abstract class work{
String wno;
//新增員工人數變數
static int wt=0;
//新增總應繳稅額變數
static double tottax= 0.0;
work(String s){
wno=s;
wt++;
}
abstract double monthPay();
//建立取得平均應繳稅金額
static double getAverageTax(){
return ((double)tottax/wt);
}
void ishight(work k){
if(monthPay()>k.monthPay())
System.out.println(wno+"較高");
else
System.out.println(k.wno+"較高");
}
double monthTaxes(){
double sssss=monthPay()*0.15;
tottax = tottax+sssss;
return sssss;
}
}
class SalaryWorker extends work{
int mp;
int redp=0;
SalaryWorker(String s ,int i){
super(s);
mp=i;
}
double monthPay(){
return (mp/12.0+redp);
}
}
class HourlyWorker extends work{
int hr,hp;
HourlyWorker(String s,int i1,int i2){
super(s);
hr=i2;
hp=i1;
}
double monthPay(){
return hr*hp;
}
}
class Manager extends SalaryWorker{
Manager(String s,int i ,int i1){
super(s,i);
redp = i1;
}
}
public class JPA06_3 {
public static void main(String argv[]) {
SalaryWorker sw1 = new SalaryWorker("96001",180000);
HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
Manager ma1 = new Manager("97001", 240000, 5000);
System.out.println("SalaryWorker稅額:" + sw1.monthTaxes());
System.out.println("HourlyWorker稅額:" + hw1.monthTaxes());
System.out.println("Manager稅額:" + ma1.monthTaxes());
//計算出平均稅額
System.out.println("平均稅額:" + work.getAverageTax());
}
}
/* TQC+ JAVA6 - 610_4 */
import java.util.HashMap;
abstract class work{
String wno;
static int wt=0;
static double tottax= 0.0;
work(String s){
wno=s;
wt++;
}
abstract double monthPay();
static double getAverageTax(){
return ((double)tottax/wt);
}
void ishight(work k){
if(monthPay()>k.monthPay())
System.out.println(wno+"較高");
else
System.out.println(k.wno+"較高");
}
double monthTaxes(){
double sssss=monthPay()*0.15;
tottax = tottax+sssss;
return sssss;
}
}
class SalaryWorker extends work{
int mp;
int redp=0;
SalaryWorker(String s ,int i){
super(s);
mp=i;
}
double monthPay(){
return (mp/12.0+redp);
}
}
class HourlyWorker extends work{
int hr,hp;
HourlyWorker(String s,int i1,int i2){
super(s);
hr=i2;
hp=i1;
}
double monthPay(){
return hr*hp;
}
}
class Manager extends SalaryWorker{
Manager(String s,int i ,int i1){
super(s,i);
redp = i1;
}
}
//建立一個管理的類別
class Management{
HashMap worker;
//建構子初始化始化物件為HashMap
Management(){
worker=new HashMap();
}
//建立方法將物件放入HashMap中
void put(String s ,work ww){
worker.put(s, ww);
}
//建立方法取得扣除稅後的薪資
double afterTax(String s ){
work w = (work)worker.get(s);
return w.monthPay()-w.monthTaxes();
}
}
public class JPA06_4 {
public static void main(String argv[]) {
SalaryWorker sw1 = new SalaryWorker("96001",180000);
HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
Manager ma1 = new Manager("97001", 240000, 5000);
//建立一個管理的物件
Management m = new Management();
//將資料放素HashMap中
m.put("96001", sw1);
m.put("96002", hw1);
m.put("97001", ma1);
System.out.println("97001 的稅後薪資: " + m.afterTax("97001"));
}
}
/* TQC+ JAVA6 - 610_5 */
import java.util.HashMap;
import java.util.Iterator;
abstract class work{
String wno;
static int wt=0;
static double tottax= 0.0;
work(String s){
wno=s;
wt++;
}
abstract double monthPay();
static double getAverageTax(){
return ((double)tottax/wt);
}
void ishight(work k){
if(monthPay()>k.monthPay())
System.out.println(wno+"較高");
else
System.out.println(k.wno+"較高");
}
double monthTaxes(){
double sssss=monthPay()*0.15;
tottax = tottax+sssss;
return sssss;
}
}
class SalaryWorker extends work{
int mp;
int redp=0;
SalaryWorker(String s ,int i){
super(s);
mp=i;
}
double monthPay(){
return (mp/12.0+redp);
}
}
class HourlyWorker extends work{
int hr,hp;
HourlyWorker(String s,int i1,int i2){
super(s);
hr=i2;
hp=i1;
}
double monthPay(){
return hr*hp;
}
}
class Manager extends SalaryWorker{
Manager(String s,int i ,int i1){
super(s,i);
redp = i1;
}
}
class Management{
HashMap worker;
double total =0;
Management(){
worker=new HashMap();
}
void put(String s ,work ww){
worker.put(s, ww);
}
double totalSalary() throws limex{
for(Iterator iterator = worker.values().iterator();iterator.hasNext();){
work www =(work)iterator.next();
total = www.monthPay()+total;
if(total>50000)//當總月薪超過50000時,則會拋出錯誤訊息
throw new limex(total);
}
return total;
}
}
//新增一個exception的類別
class limex extends Exception{
double dd;
limex(double d){
dd=d;
}
double getAm(){
return dd;
}
}
public class JPA06_5 {
public static void main(String argv[]) {
SalaryWorker sw1 = new SalaryWorker("96001",180000);
HourlyWorker hw1 = new HourlyWorker("96002", 100, 160);
Manager ma1 = new Manager("97001", 240000, 5000);
Management m = new Management();
m.put("96001", sw1);
m.put("96002", hw1);
m.put("97001", ma1);
//抓取錯誤訊息
try {
m.totalSalary();
} catch (limex e) {
System.out.println("Total salary exceed limit:"+e.getAm());
}
}
}


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

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

沒有留言:

張貼留言