Minggu, 07 Oktober 2018

PBO A Membuat Program Lelang

pada kesempatan ini saya belajar membuat program lelang menggunakan Bahasa Java dengan BlueJ. berikut saya lampirkan hasilnya:

1. Source Code Auction

 /**  
  * Write a description of class auction here.  
  *  
  * @author (Shawn Timothy Mulya P)  
  * @version (03.10)  
  */  
  import java.util.ArrayList;   
  import java.util.Iterator;   
  public class Auction   
  {   
   // The List of Lots in this auction.   
   private ArrayList<Lot> lots;   
   // The number that will be given to the next lot entered   
   // into this auction   
   private int nextLotNumber;   
   /**   
   * Create a new auction   
   */   
   public Auction()   
   {   
    lots = new ArrayList<Lot>();   
    nextLotNumber = 1;   
   }   
   /**   
   * Enter a new lot into the auction.   
   * @param description A description of the lot.   
   */   
   public void enterLot(String description)   
   {   
    lots.add(new Lot(nextLotNumber, description));   
    nextLotNumber++;   
   }   
   /***    
   * Show the full list of lots in this auction.   
   */   
   public void showLots()   
   {   
    for(Lot lot : lots){   
     System.out.println(lot.toString());   
    }   
   }   
   /**   
   * Bid for a lot.   
   * A message indicating whether the bid is succesful or not is printed.   
   * @param number The lot number being bid for.   
   * @param bidder The person bidding for the lot.   
   * param value The value of the bid.   
   */   
   public void bidFor(int lotNumber, Person bidder, long value)   
   {   
    Lot selectedLot = getLot(lotNumber);   
    if(selectedLot!=null){   
     boolean successful = selectedLot.bidFor(new Bid(bidder,value));   
     if (successful) {   
      System.out.println("The bid for lot number " + lotNumber +    
      " was successful.");   
     }   
     else {   
      //Report which bid is higher.   
      Bid highestBid = selectedLot.getHighestBid();   
      System.out.println("Lot number: " + lotNumber +    
      " already has a bid of: " + highestBid.getValue());   
     }   
    }   
   }   
   /**   
   * Return a list of the unsold lots.   
   */   
   public void close()   
   {   
    System.out.println("The auction is closed.");   
    for(Lot lot : lots) {   
     System.out.println(lot.getNumber() + ": " +lot.getDescription());   
     Bid bid = lot.getHighestBid();   
     if (bid==null){   
      System.out.println("(No Bids for this lot.)");   
     }   
     else {   
      System.out.println( "sold to " +    
      bid.getBidder().getName() + " for "    
      + bid.getValue());   
    }   
   }   
  }   
   /**    
   * Return the lot with the given number.    
   * Return null if a lot with this number does not exist.   
   * @param lotNumber The number of the lot to return.   
   */   
   public Lot getLot(int lotNumber)   
   {   
    if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {   
     // The number seems to be reasonable.   
     Lot selectedLot = lots.get(lotNumber - 1);   
     // Include a confidence check to be sure we have the right lot.   
     if(selectedLot.getNumber() != lotNumber) {   
      System.out.println("Internal error: lot number " +   
      selectedLot.getNumber() + " was returned instead of " +    
      lotNumber);   
      // Don't return invalid lot.   
      selectedLot = null;   
      }   
      return selectedLot;   
     }   
    else {   
     System.out.println("lot number: " + lotNumber + " does not exist.");   
     return null;   
     }   
    }   
   }   

2.Source Code Lot

 /**  
  * Write a description of class Lot here.  
  *  
  * @author (Shawn Timothy Mulya P)  
  * @version (03.10)  
  */  
 public class Lot   
  {   
   // A unique identifying number.   
   private final int number;   
   //A description of the lot.   
   private String description;   
   // The current highest bid for this lot.   
   private Bid highestBid;   
   /**   
   * Construct a Lot, setting its number and description.   
   * @param number The lot number.   
   * @param description A description of this lot.   
   */   
   public Lot(int number, String description)   
   {   
    this.number = number;   
    this.description = description;   
   }   
   /**   
   * Attempt to bid for this lot. A successful bid   
   * must have a value higher than any existing bid.   
   * @param bid A new bid.   
   * @return true if successful, false otherwise.   
   */   
   public boolean bidFor(Bid bid)   
   {   
    if((highestBid == null)||(bid.getValue() > highestBid.getValue()))   
    {   
     // This bid is the best so far   
     highestBid = bid;   
     return true;   
    }   
    else{   
     return false;   
    }   
   }   
   /**   
   * @return A string representation of this lot's details.   
   */   
   public String toString()   
   {   
    String details = number + ": " + description;   
    if(highestBid!=null) {   
     details+= " Bid: " +highestBid.getValue();   
    }   
    else {   
     details += " (No bid)";   
    }   
    return details;   
   }   
   /**   
   * @return The lot's number.   
   */   
   public int getNumber()   
   {   
    return number;   
   }   
   /**   
   * @return The lot's description.   
   */   
   public String getDescription()   
   {   
    return description;   
   }   
   /**   
   * @return The highest bid for this lot.   
   * This could be null if there is no current bid.   
   */   
   public Bid getHighestBid()   
   {   
    return highestBid;   
   }   
  }   

3. Source Code Bid

 /**  
  * Write a description of class bid here.  
  *  
  * @author (Shawn Timothy Mulya P)  
  * @version (03.10)  
  */  
 public class Bid   
  {   
   // The person making the bid   
   private final Person bidder;   
   // The value of the bid. This could be a large number so the long type has been used   
   private final long value;   
   /**   
   * Create a bid   
   * @param bidder Who is bidding for the lot.   
   * @param value The value of the bid.   
   */   
   public Bid(Person bidder, long value)   
   {   
    this.bidder = bidder;   
    this.value = value;   
   }   
   /**   
   *@return The bidder.   
   */   
   public Person getBidder()   
   {   
    return bidder;   
   }   
   /**   
   * @return The value of the bid.   
   */   
   public long getValue()   
   {   
    return value;   
   }   
  }   

4. Source Code Person

 /**  
  * Write a description of class person here.  
  *  
  * @author (Shawn Timothy Mulya P)  
  * @version (03.10)  
  */  
  public class Person   
  {   
   // The name of this person.   
   private final String name;   
   /**   
   * Create a new person with the given name.   
   * @param name The person's name.   
   */   
   public Person(String name)   
   {   
    this.name = name;   
   }   
   /**   
   * @return The Person's name*   
   */   
   public String getName()   
   {   
    return name;   
   }   
  }   


Hasil:


Tidak ada komentar:

Posting Komentar