602 電腦零件設計

第一題
class Part{
int cost;
Part(){}
int getCost(){
return cost;
}
}

class LCD extends Part{
LCD(int l){
switch(l){
case 10:
cost=2000;break;
case 15:
cost=2500;break;
case 17:
cost=3000;break;
}
}

}

class CPU extends Part{
CPU(double c){
if(c==1.66){
cost=6000;
}
else if(c==2.2){
cost=8000;
}
else if(c==2.4){
cost=11000;
}
}
}

class HD extends Part{
HD(String h){
if(h.equals("120G")){
cost=2400;
}
else{
cost=2800;
}
}
}

class NoteBook{
LCD l;
  CPU c;
  HD h;

  NoteBook(int i,double d,String s){
  l = new LCD(i);
  c = new CPU(d);
  h = new HD(s);
}

double unit(){
return l.getCost()+c.getCost()+h.getCost();
}

double getPrice(){
return unit()*2;
}

double getCost(){
return unit()*1.4;
}

}

class MiniNote extends NoteBook{
MiniNote(){super(10,1.66,"120G"); }
}

class Note15 extends NoteBook{
Note15(){super(15,2.2,"160G");}
}



public class JPA06_1{
    public static void main(String args[]){
        MiniNote mininote = new MiniNote();
        System.out.println("MiniNote cost:"+mininote.getCost()+", price:"+mininote.getPrice());
        Note15 note15 = new Note15();
        System.out.println("Note15 cost:"+note15.getCost()+", price:"+note15.getPrice());
    }
}

第二題
abstract class PCandMultiPC{
  int CPUcount=1;
  int HDcount=1;
  CPU c;
  HD h;
  PCandMultiPC(double d,String s,int x,int y){
  c = new CPU(d);
  h = new HD(s);
  CPUcount=x;
  HDcount=y;

}
PCandMultiPC(double d,String s){
  c = new CPU(d);
  h = new HD(s);
}
double unit(){
return c.getCost()*CPUcount+h.getCost()*HDcount;
}
abstract double getPrice();
abstract double getCost();
}

class PC extends PCandMultiPC{
PC(){super(2.4,"160G");}
double getCost(){
return unit()+500;
}
double getPrice(){
return unit()*1.8;
}

}

class MultiPC extends PCandMultiPC{
MultiPC(int c, int d){ super(2.4,"160G",c,d); }

double getCost(){
return unit()*1.2;
}
double getPrice(){
return unit()*1.8;
}
}
class JPA06_2 {
    public static void main(String args[]){
        PC pc = new PC();
        System.out.println("PC cost:"+pc.getCost()+", price:"+pc.getPrice());
        MultiPC multipc1 = new MultiPC(2, 4);
        System.out.println("MultiPC: 2CPU, 4HD, cost:"+multipc1.getCost()+", price:"+multipc1.getPrice());
        MultiPC multipc2 = new MultiPC(4, 8);
        System.out.println("MultiPC: 4CPU, 8HD, cost:"+multipc2.getCost()+", price:"+multipc2.getPrice());
    }
}

第三題
class AllPC{

AllPC(){}
boolean isExpensive(PCandMultiPC p,NoteBook n){
if(  p.getPrice() > n.getPrice()  ){
return true;
}
else{
return false;
}
}
}

class JPA06_3 {
    public static void main(String args[]) {
        PC pc = new PC();
        Note15 note15 = new Note15();
        AllPC compare=new AllPC();
        if(compare.isExpensive(pc,note15)){
        System.out.println("PC is more expensive than Note15");
        }
        else{
        System.out.println("Note15 is more expensive than PC");
        }
    }
}

第四題

import java.util.*;
class NoteBook extends AllPC{
LCD l;
  CPU c;
  HD h;
  NoteBook(int i,double d,String s){
  l = new LCD(i);
  c = new CPU(d);
  h = new HD(s);
}
double unit(){
return l.getCost()+c.getCost()+h.getCost();
}
double getPrice(){
return unit()*2;
}
double getCost(){
return unit()*1.4;
}
}

abstract class PCandMultiPC extends AllPC{
  int CPUcount=1;
  int HDcount=1;
  CPU c;
  HD h;
  PCandMultiPC(double d,String s,int x,int y){
  c = new CPU(d);
  h = new HD(s);
  CPUcount=x;
  HDcount=y;
}
PCandMultiPC(double d,String s){
  c = new CPU(d);
  h = new HD(s);
}
double unit(){
return c.getCost()*CPUcount+h.getCost()*HDcount;
}
abstract double getPrice();
abstract double getCost();
}

abstract class AllPC{

AllPC(){}


boolean isExpensive(PCandMultiPC p,NoteBook n){
if(  p.getPrice() > n.getPrice()  ){
return true;
}
else{
return false;
}
}
abstract double getPrice();
}

class Order{
LinkedList<AllPC> list =new LinkedList<AllPC>();
void in(AllPC c){
list.add(c);
}
double revenue(){
double total=0;
for(AllPC i:list){
total+=i.getPrice();
}
return total;
}
}

class JPD06_4 {
    public static void main(String args[]){
        Order ord = new Order();
        ord.in(new MiniNote());
        ord.in(new Note15());
        ord.in(new PC());
        System.out.println(ord.revenue());
    }

}

第五題


import java.util.*;
class NoteBook extends AllPC{
LCD l;
  CPU c;
  HD h;
  NoteBook(int i,double d,String s){
  l = new LCD(i);
  c = new CPU(d);
  h = new HD(s);
}
double unit(){
return l.getCost()+c.getCost()+h.getCost();
}
double getPrice(){
return unit()*2;
}
double getCost(){
return unit()*1.4;
}
}

abstract class PCandMultiPC extends AllPC{
  int CPUcount=1;
  int HDcount=1;
  CPU c;
  HD h;
  PCandMultiPC(double d,String s,int x,int y){
  c = new CPU(d);
  h = new HD(s);
  CPUcount=x;
  HDcount=y;
}
PCandMultiPC(double d,String s){
  c = new CPU(d);
  h = new HD(s);
}
double unit(){
return c.getCost()*CPUcount+h.getCost()*HDcount;
}
abstract double getPrice();
abstract double getCost();
}

abstract class AllPC{

AllPC(){}
boolean isExpensive(PCandMultiPC p,NoteBook n){
if(  p.getPrice() > n.getPrice()  ){
return true;
}
else{
return false;
}
}
abstract double getPrice();
abstract double getCost();
}


class Order{
LinkedList<AllPC> list =new LinkedList<AllPC>();
void in(AllPC c){
list.add(c);
}
double revenue(){
double total=0;
for(AllPC i:list){
total+=i.getPrice();

}
return total;
}
double costs(){
double total=0;
for(AllPC i:list){
total+=i.getCost();
}
return total;
}
double profit(){
return (revenue()-costs());
}

}


class JPA06_5 {
    public static void main(String args[]){
        Order ord = new Order();
            ord.in(new MiniNote());
            ord.in(new Note15());
            ord.in(new PC());
            if(ord.profit()>20000)
            {System.out.println("This order exceeds 20000:"+ord.profit());}

    }

}

沒有留言:

張貼留言