Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write, document (internally) and test a Java program to do the following: A char

ID: 3683050 • Letter: W

Question

Write, document (internally) and test a Java program to do the following:

A charitable organization is selling tickets on three prizes:

First Prize - $1000

Second Prize - $500

Third Prize - $250

For each ticket sold, the following information is recorded:

-ticket number (1-1000, inclusive)

-buyer's name

-buyer's telephone number

a) Define a class Ticket to represent this information.

b) Create a singly-linked list of Ticket objects. The information for each ticket is to be input. Output the contents of the list and the number of tickets that were sold.

c) Select the winner for each prize by generating three random numbers between 1 and the number of tickets sold, inclusive. Search the list for each winning number generated, output the name and telephone number of the winner (properly labelled with the prize that she/he won), and remove that ticket from the list.

d) Output the contents of the list after the three winners have been selected.

Explanation / Answer

Ticket.java


public class Ticket {
   private int ticketNo;
   private String buyerName;
   private String phoneNo;
   public Ticket(int ticketNo, String buyerName, String phoneNo){
       this.ticketNo = ticketNo;
       this.buyerName = buyerName;
       this.phoneNo = phoneNo;
   }
   public int getTicketNo() {
       return ticketNo;
   }
   public void setTicketNo(int ticketNo) {
       this.ticketNo = ticketNo;
   }
   public String getBuyerName() {
       return buyerName;
   }
   public void setBuyerName(String buyerName) {
       this.buyerName = buyerName;
   }
   public String getPhoneNo() {
       return phoneNo;
   }
   public void setPhoneNo(String phoneNo) {
       this.phoneNo = phoneNo;
   }
}

PrizeGame.java


import java.util.LinkedList;
import java.util.Random;

public class PrizeGame {

   /**
   * @param args
   */
   public static void main(String[] args) {
       // TODO Auto-generated method stub
       java.util.Scanner in = new java.util.Scanner(System.in);
       int ticketNo;
       String buyerName;
       String phoneNo;      
       LinkedList<Ticket> list = new LinkedList<Ticket>();
       int numberoftickets = 0;
       while(true){
       System.out.println("Please enter Ticket Number: ");
       ticketNo = in.nextInt();
       System.out.println("Please enter Buyer Name : ");
       buyerName = in.next();
       System.out.println("Please enter Phone Number : ");
       phoneNo = in.next();
       Ticket t = new Ticket(ticketNo, buyerName, phoneNo);
       list.add(t);
       numberoftickets++;
       System.out.println("Please press q for All Ticket Sold or Press any character for continue... ");
       char c = in.next().charAt(0);
       if(c == 'q'){
           break;
       }
       }
       int firstPrize = 1000;
       int secondPrize = 500;
       int thirdPrize = 250;
       int money;
       Random r = new Random();
       int Low = 1;
       int High = numberoftickets;
       for(int i=1; i<=3; i++){
       int number = r.nextInt(High-Low) + Low;
       Ticket t = list.get(number);
       list.remove(number);
       if(i == 1)
           money = firstPrize;
       else if(i == 2){
           money = secondPrize;
       }
       else{
           money = thirdPrize;
       }
       System.out.println(i+" Prize $"+money+" Winner is : "+t.getTicketNo()+" "+t.getBuyerName()+" "+t.getPhoneNo());
       }
       for(int i=0; i<list.size(); i++){
           Ticket t = list.get(i);
           System.out.println(t.getTicketNo()+" "+t.getBuyerName()+" "+t.getPhoneNo());
       }      
      
   }

}

Output:

Please enter Ticket Number:
1
Please enter Buyer Name :
fsdf
Please enter Phone Number :
2342
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
2
Please enter Buyer Name :
sdfsdf
Please enter Phone Number :
sdfsd
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
3
Please enter Buyer Name :
sdfsdf
Please enter Phone Number :
sdfsd
Please press q for All Ticket Sold or Press any character for continue...
2342
Please enter Ticket Number:
4
Please enter Buyer Name :
sdfsd
Please enter Phone Number :
fsdfsd
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
5
Please enter Buyer Name :
dsfsd
Please enter Phone Number :
sdfds
Please press q for All Ticket Sold or Press any character for continue...
4
Please enter Ticket Number:
6
Please enter Buyer Name :
fsdfsd
Please enter Phone Number :
sdfsd
Please press q for All Ticket Sold or Press any character for continue...
ff
Please enter Ticket Number:
7
Please enter Buyer Name :
dfsdf
Please enter Phone Number :
sdfsd
Please press q for All Ticket Sold or Press any character for continue...
45
Please enter Ticket Number:
8
Please enter Buyer Name :
dfsdf
Please enter Phone Number :
sdffs
Please press q for All Ticket Sold or Press any character for continue...
5
Please enter Ticket Number:
9
Please enter Buyer Name :
dffdg
Please enter Phone Number :
dffdsf
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
10
Please enter Buyer Name :
sdfsd
Please enter Phone Number :
sdfsdf
Please press q for All Ticket Sold or Press any character for continue...
q
1 Prize $1000 Winner is : 3 sdfsdf sdfsd
2 Prize $500 Winner is : 4 sdfsd fsdfsd
3 Prize $250 Winner is : 9 dffdg dffdsf
1 fsdf 2342
2 sdfsdf sdfsd
5 dsfsd sdfds
6 fsdfsd sdfsd
7 dfsdf sdfsd
8 dfsdf sdffs
10 sdfsd sdfsdf