Minggu, 07 Oktober 2018

program lelang

 Nama  : Hafidz Firman Asqalany
 NRP    : 05111740000195
 Kelas   : PBO A

Kali ini saya disuruh membuat program lelang. berikut saya tunjukkan source codenya :

1. Auction :

 /**    
  * A classto model an item an item (or set of items) in an auction: a lot.    
  *    
  * @author (Hafidz Firman Asqalany)    
  * @version (4.1.3)    
  */    
  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. Lot :

 /**    
  * A classto model an item an item (or set of items) in an auction: a lot.    
  *    
  * @author (Hafidz Firman Asqalany)    
  * @version (4.1.3)    
  */    
  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. Person :

 /**    
  * A classto model an item an item (or set of items) in an auction: a lot.    
  *    
  * @author (Hafidz Firman Asqalany)    
  * @version (4.1.3)    
  */    
  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;    
   }    
  }    

4. Bid :

 /**    
  * A classto model an item an item (or set of items) in an auction: a lot.    
  *    
  * @author (Hafidz Firman Asqalany)    
  * @version (4.1.3)    
  */    
  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;    
   }    
  }    

Dan ini merupakan hasil dari eksekusi program :



Tidak ada komentar:

Posting Komentar