Charity Ball Organizer
Many charities support good causes, but one of the difficulties each of them has is organizing their fundraising events. After nearly a semester of C programming, you've decided that you'd like to donate your skills to create a program that organizes the typical activities at a fund-raising gala. In particular, your program will help manage the following:
1) Ticket sales
2) Silent Auction
3) Raffle
4) Drink sales
Your program will log the number of tickets sold both in advance and at the event, a silent auction for donated items, a raffle for other donated items and the number of drinks sold.
Ticket Sales Details
You will sell tickets in advance and at the door. Prices for buying in advance and at the door will be given. Also, the total number of tickets sold in advance will be given. Each guest will have a unique number. If there are n tickets sold in advance, then these guests will be numbered 0 through n-1. As the event starts, requests to buy tickets at the door may be made and these guests will be numbered sequentially, starting at the lowest unassigned number. The maximum number of guests will be 1000.
Silent Auction Details
The silent auction will have upto 1000 items, each with a given "market" value. At any time, users can bid on any item, so long as the bid exceeds the previous bid by the minimum increase value, which will be given. At the point in time when the auction is closed, the items with at least one bid are given to the users who have placed the last counted bid on that item. Your program must always keep track of all of the best bids on items so that no matter when the auction closes, you'll have all the data for who has won all of the items. Any item without a bid goes to no one. The market value of the item will be used to calculate each user's net "loss" or "gain".
Raffle Details
There will be a given number for the total number of raffle tickets sold, that will be 100000 or fewer. Guests can buy raffle tickets for a set price (this will be given). There will be a number of prizes awarded from the raffle (not to exceed 100) after the raffle has finished. For each of these prizes you will be given its "market" value. For each raffle ticket, you'll have to keep track of which guest has it. The raffle tickets will be numbered starting at 0 through the number of tickets minus one. After the raffle finishes, you will be given the raffle numbers pulled for the winners of each prize. You will be guaranteed that these numbers correspond to numbers that were previously handed out during the raffle. You must determine who wins each prize.