Write, document (internally) and test a Java program to do the following: A char
ID: 3684410 • 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();
System.out.println("=================================================================");
for(int i=0; i<3; i++){
int number = r.nextInt(numberoftickets-i);
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+1)+" Prize $"+money+" Winner is : "+t.getTicketNo()+" "+t.getBuyerName()+" "+t.getPhoneNo());
}
System.out.println("================================================================= ");
System.out.println("Remaining customers list... ");
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 :
Suresh
Please enter Phone Number :
111111
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
2
Please enter Buyer Name :
Sekhar
Please enter Phone Number :
222222
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
3
Please enter Buyer Name :
Anshu
Please enter Phone Number :
333333
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
4
Please enter Buyer Name :
Revathi
Please enter Phone Number :
444444
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
5
Please enter Buyer Name :
Murapaka
Please enter Phone Number :
555555
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
6
Please enter Buyer Name :
Kella
Please enter Phone Number :
66666
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
7
Please enter Buyer Name :
Naresh
Please enter Phone Number :
7777777
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
8
Please enter Buyer Name :
Satish
Please enter Phone Number :
88888888
Please press q for All Ticket Sold or Press any character for continue...
1
Please enter Ticket Number:
9
Please enter Buyer Name :
Hello
Please enter Phone Number :
999999
Please press q for All Ticket Sold or Press any character for continue...
q
=================================================================
1 Prize $250 Winner is : 4 Revathi 444444
2 Prize $1000 Winner is : 1 Suresh 111111
3 Prize $500 Winner is : 2 Sekhar 222222
=================================================================
Remaining customers list...
3 Anshu 333333
5 Murapaka 555555
6 Kella 66666
7 Naresh 7777777
8 Satish 88888888
9 Hello 999999
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.