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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.