Please help me write a ccode with the scaffold below Scaffol

Please, help me write a c-code with the scaffold below:

Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold shown below. Please use functions if by all means possible]

NOTE: Drink is not included and program has to compile with Code:::Blocks

#include <stdio.h>

#include <string.h>

//Constants to be used.

//MAXSIZE is the maximum size of all strings

//MAXAUCTIONITEMS is the maximum number of items in the auction

//MAXRAFFLE is the maximum number of available raffle tickets

#define MAXSIZE 100

#define MAXAUCTIONITEMS 1000

#define MAXRAFFLE 1000

//Function prototypes - do not change these

void initRaffle(int raffles[MAXRAFFLE]);

void initAuction(float auction[2][MAXAUCTIONITEMS]);

void buyTickets(float * totalRevenue, int * ticketsSold, int numTickets, float price);

void buyRaffle(float * totalRevenue, int raffles[MAXRAFFLE], int availTickets, int numTickets, int person);

void bid(float auction[2][MAXAUCTIONITEMS], float bid, int auctionNumber, int person, int flag);

float awardAuction(float auction[2][MAXAUCTIONITEMS], int auctionNumber);

void awardRaffle(int raffles[MAXRAFFLE], int raffleNumber, int winner);

//Main function

int main() {

FILE * ifp;

char filename[MAXSIZE], event[MAXSIZE], item[MAXSIZE];

float presale, dayOf, totalRevenue = 0;

float auctions[2][MAXAUCTIONITEMS];

int raffles[MAXRAFFLE];

int numPresale, numAuctions, numRaffle, numPrizes, numEvents;

int i, ticketsSold = 0, auctionFlag = 1;

printf(\"Please enter the input file name.\ \");

scanf(\"%s\", filename);

ifp = fopen(filename, \"r\");

fscanf(ifp, \"%f%f%d\", &presale, &dayOf, &numPresale);

totalRevenue += numPresale * presale;

ticketsSold = numPresale;

fscanf(ifp, \"%d\", &numAuctions);

fscanf(ifp, \"%d%d\", &numRaffle, &numPrizes);

fscanf(ifp, \"%d\", &numEvents);

initRaffle(raffles);

initAuction(auctions);

for (i=0; i

fscanf(ifp, \"%s\", event);

if (strcmp(event, \"BUY\") == 0) {

fscanf(ifp, \"%s\", item);

if (strcmp(item, \"TICKET\") == 0) {

int numTickets;

fscanf(ifp, \"%d\", &numTickets);

buyTickets(&totalRevenue, &ticketsSold, numTickets, dayOf);

}

else if (strcmp(item, \"RAFFLE\") == 0){

int numTickets, person;

fscanf(ifp, \"%d%d\", &numTickets, &person);

buyRaffle(&totalRevenue, raffles, numRaffle, numTickets, person);

}

}

else if (strcmp(event, \"BIDITEM\") == 0) {

int itemNumber, person;

float amount;

fscanf(ifp, \"%d%d%f\", &itemNumber, &person, &amount);

bid(auctions, amount, itemNumber, person, auctionFlag);

}

else if (strcmp(event, \"CLOSEAUCTION\") == 0) {

printf(\"CLOSE AUCTION.\ \");

auctionFlag = 0;

}

else if (strcmp(event, \"AWARD\") == 0) {

fscanf(ifp, \"%s\", item);

if (strcmp(item, \"AUCTION\") == 0) {

int auctionNumber;

fscanf(ifp, \"%d\", &auctionNumber);

totalRevenue += awardAuction(auctions, auctionNumber);

}

else if (strcmp(item, \"RAFFLE\") == 0){

int raffleNumber, winner;

fscanf(ifp, \"%d%d\", &raffleNumber, &winner);

awardRaffle(raffles, raffleNumber, winner);

}

}

else {

printf(\"TOTALREVENUE is $%.2lf.\ \", totalRevenue);

}

}

fclose(ifp);

return 0;

}

// Pre-conditions: raffles is the collection of all possible raffle tickets

// Post-condition: Each raffle ticket should have a default owner number

// that indicates it has not been sold yet

//

// What to do in this function: Each index number represents a different

// ticket number for the Raffle. The value in the array at that index is

// the ticket\'s owner (an index that represents a person at the Fundraising

// Gala). Initialize all the values in the array to a integer that indicates

// the ticket has not been sold yet.

void initRaffle(int raffles[MAXRAFFLE]) {

}

// Pre-conditions: auction is the collection of all possible auction items

// Post-condition: Each auction should have a default price of 0 and a default

// bidder number that indicates it has not been bid on yet

//

// What to do in this function: Each index number represents a different

// auction item for the Raffle. Select one row of the two-dimensional

// array to be for bids; the other row will be for people (the current highest

// bidder). Initialize all bids to zero and initialize all people to a number

// that indicates the item has not been bid on yet

void initAuction(float auction[2][MAXAUCTIONITEMS]) {

}

// Pre-conditions: totalRevenue is a pointer to the total amount that the Gala has earned

// ticketsSold is a pointer to the current number of tickets sold

// numTickets is the number of tickets that the person would like to purchase

// price is the current cost of the tickets (the DayOf price)

// Post-condition: Sells numTickets to the current person at price and updates the number

// of tickets sold and the current total revenue

//

// What to do in this function: Calculate the cost of the tickets and add it to the total

// revenue. Print out the ticket numbers that were sold to the screen. Update the number

// of tickets that have been sold.

void buyTickets(float * totalRevenue, int * ticketsSold, int numTickets, float price) {

}

// Pre-conditions: totalRevenue is a pointer to the total amount that the Gala has earned

// raffles is an array of all possible raffle tickets

// availTickets is the number of raffle tickets available to be sold

// numTickets is the number of raffle tickets that the person would like to purchase

// person is the numerical identifier of the person attempting to buy tickets

// Post-condition: Sells numTickets to the current person if tickets are available, or sells as

// as many as are left, or sells none if no tickets are left. Updates totalRevenue

// if any tickets are sold. Each ticket sells for $2

//

// What to do in this function: The value stored in each index of raffles should be the number of the

// person that bought that ticket. For example if person 35 holds raffle tickets 11-15, then elements 11-15

// of raffles should all be equal to 35.

//

// Traverse to the next available ticket in the raffles array, if it exists. If it does not exist, print

// out that no tickets will be given to this person. If it does exist, check to see if there are enough

// tickets left for the person to get the full number they are looking for. If there are not enough for

// the full amount, give them all the tickets that are left. Print out which tickets they are given.

// Update totalRevenue with the number of tickets sold at $2 each.

void buyRaffle(float * totalRevenue, int raffles[MAXRAFFLE], int availTickets, int numTickets, int person) {

}

// Pre-conditions: auction is an 2D array that holds the current highest bid and the person with

// the highest bid

// bid is a new proposed bid

// auctionNumber is the numerical identifier for the item being bid on

// person is the numerical identifier of the person attempting to bid

// flag is a value that indicates whether or not bids are still being accepted

// Post-condition: Updates the auctions with a new high bid if present

// Will not accept new bids that are not higher than old bids

// Will not accept new bids if the auctions are closed

//

// What to do in this function: Check to see if the auctions are still open based on flag

//

// If bids are still being accepted, check to see if bid is higher than the current bid for

// the auction. If it is higher, update the auction with the new bid and the new person number

// Print out the result of either accepted or rejected

void bid(float auction[2][MAXAUCTIONITEMS], float bid, int auctionNumber, int person, int flag) {

}

// Pre-conditions: auction is an 2D array that holds the current highest bid and the person with

// the highest bid

// auctionNumber is the numerical identifier for the item being awarded

// Post-condition: Returns the value of the highest bid for the auction specified by auction number

//

// What to do in this function: Check to see if the auction identified by auctionNumber has any

// bids. If so, award the auction to the person with the highest bid. If not, print out that

// there have been no bids for this item. Return the appropriate value to be added to totalRevenue

float awardAuction(float auction[2][MAXAUCTIONITEMS], int auctionNumber) {

}

// Pre-conditions: raffles is an array of all possible raffle tickets

// winner is the winning ticket number

// raffleNumber is the current raffle being held

//

// Post-condition: prints out the numerical identifier of the person who

// holds the winning ticket number

void awardRaffle(int raffles[MAXRAFFLE], int raffleNumber, int winner) {

}

Input:

15 25 200
3
100 4
27
BUY TICKET 8
BUY RAFFLE 30 22
BIDITEM 0 2 5
BIDITEM 0 3 20
BUY TICKET 10
BUY RAFFLE 40 209
BUY TICKET 1
BIDITEM 1 17 50
BIDITEM 2 5 30
BUY RAFFLE 26 123
BUY TICKET 3
BIDITEM 1 16 65
BUY RAFFLE 19 211
BIDITEM 1 17 70
BIDITEM 2 200 45
BIDITEM 2 201 54
BUY RAFFLE 1 27
CLOSEAUCTION
BIDITEM 1 100 10000
AWARD RAFFLE 0 13
AWARD RAFFLE 1 98
AWARD RAFFLE 2 30
AWARD RAFFLE 3 85
AWARD AUCTION 0
AWARD AUCTION 1
AWARD AUCTION 2
TOTAL REVENUE

Output:

SOLD TICKETS 200 - 207
RAFFLE TICKETS 0 - 29 given to PERSON 22
BIDITEM 0 ACCEPTED for PERSON 2 at 5.00 DOLLARS
BIDITEM 0 ACCEPTED for PERSON 3 at 20.00 DOLLARS
SOLD TICKETS 208 - 217
RAFFLE TICKETS 30 - 69 given to PERSON 209
SOLD TICKETS 218 - 218
BIDITEM 1 ACCEPTED for PERSON 17 at 50.00 DOLLARS
BIDITEM 2 ACCEPTED for PERSON 5 at 30.00 DOLLARS
RAFFLE TICKETS 70 - 95 given to PERSON 123
SOLD TICKETS 219 - 221
BIDITEM 1 ACCEPTED for PERSON 16 at 65.00 DOLLARS
RAFFLE TICKETS 96 - 99 given to PERSON 211
BIDITEM 1 ACCEPTED for PERSON 17 at 70.00 DOLLARS
BIDITEM 2 ACCEPTED for PERSON 200 at 45.00 DOLLARS
BIDITEM 2 ACCEPTED for PERSON 201 at 54.00 DOLLARS
NO RAFFLE TICKETS given to PERSON 27
CLOSEAUCTION
BIDITEM 1 REJECTED for PERSON 100 at 10000.00 DOLLARS
RAFFLE 0 WON BY PERSON 22
RAFFLE 1 WON BY PERSON 211
RAFFLE 2 WON BY PERSON 209
RAFFLE 3 WON BY PERSON 123
AUCTION ITEM 0 WON BY PERSON 3 for $20.00
AUCTION ITEM 1 WON BY PERSON 17 for $70.00
AUCTION ITEM 2 WON BY PERSON 201 for $54.00
TOTALREVENUE is $3894.00

Solution

Answer:

Note: With provided time, I have completed all the functions except awardRaffle().

#include <stdio.h>

#include <string.h>

//Constants to be used.

//MAXSIZE is the maximum size of all strings

//MAXAUCTIONITEMS is the maximum number of items in the auction

//MAXRAFFLE is the maximum number of available raffle tickets

#define MAXSIZE 100

#define MAXAUCTIONITEMS 1000

#define MAXRAFFLE 1000

//Function prototypes - do not change these

void initRaffle(int raffles[MAXRAFFLE]);

void initAuction(float auction[2][MAXAUCTIONITEMS]);

void buyTickets(float * totalRevenue, int * ticketsSold, int numTickets, float price);

void buyRaffle(float * totalRevenue, int raffles[MAXRAFFLE], int availTickets, int numTickets, int person);

void bid(float auction[2][MAXAUCTIONITEMS], float bid, int auctionNumber, int person, int flag);

float awardAuction(float auction[2][MAXAUCTIONITEMS], int auctionNumber);

void awardRaffle(int raffles[MAXRAFFLE], int raffleNumber, int winner);

//Main function

int main() {

FILE * ifp;

char filename[MAXSIZE], event[MAXSIZE], item[MAXSIZE];

float presale, dayOf, totalRevenue = 0;

float auctions[2][MAXAUCTIONITEMS];

int raffles[MAXRAFFLE];

int numPresale, numAuctions, numRaffle, numPrizes, numEvents;

int i, ticketsSold = 0, auctionFlag = 1;

printf(\"Please enter the input file name.\ \");

scanf(\"%s\", filename);

ifp = fopen(filename, \"r\");

fscanf(ifp, \"%f%f%d\", &presale, &dayOf, &numPresale);

totalRevenue += numPresale * presale;

ticketsSold = numPresale;

fscanf(ifp, \"%d\", &numAuctions);

fscanf(ifp, \"%d%d\", &numRaffle, &numPrizes);

fscanf(ifp, \"%d\", &numEvents);

initRaffle(raffles);

initAuction(auctions);

for (i=0; i

fscanf(ifp, \"%s\", event);

if (strcmp(event, \"BUY\") == 0) {

fscanf(ifp, \"%s\", item);

if (strcmp(item, \"TICKET\") == 0) {

int numTickets;

fscanf(ifp, \"%d\", &numTickets);

buyTickets(&totalRevenue, &ticketsSold, numTickets, dayOf);

}

else if (strcmp(item, \"RAFFLE\") == 0){

int numTickets, person;

fscanf(ifp, \"%d%d\", &numTickets, &person);

buyRaffle(&totalRevenue, raffles, numRaffle, numTickets, person);

}

}

else if (strcmp(event, \"BIDITEM\") == 0) {

int itemNumber, person;

float amount;

fscanf(ifp, \"%d%d%f\", &itemNumber, &person, &amount);

bid(auctions, amount, itemNumber, person, auctionFlag);

}

else if (strcmp(event, \"CLOSEAUCTION\") == 0) {

printf(\"CLOSE AUCTION.\ \");

auctionFlag = 0;

}

else if (strcmp(event, \"AWARD\") == 0) {

fscanf(ifp, \"%s\", item);

if (strcmp(item, \"AUCTION\") == 0) {

int auctionNumber;

fscanf(ifp, \"%d\", &auctionNumber);

totalRevenue += awardAuction(auctions, auctionNumber);

}

else if (strcmp(item, \"RAFFLE\") == 0){

int raffleNumber, winner;

fscanf(ifp, \"%d%d\", &raffleNumber, &winner);

awardRaffle(raffles, raffleNumber, winner);

}

}

else {

printf(\"TOTALREVENUE is $%.2lf.\ \", totalRevenue);

}

}

fclose(ifp);

return 0;

}

// Pre-conditions: raffles is the collection of all possible raffle tickets

// Post-condition: Each raffle ticket should have a default owner number

// that indicates it has not been sold yet

//

// What to do in this function: Each index number represents a different

// ticket number for the Raffle. The value in the array at that index is

// the ticket\'s owner (an index that represents a person at the Fundraising

// Gala). Initialize all the values in the array to a integer that indicates

// the ticket has not been sold yet.

void initRaffle(int raffles[MAXRAFFLE])

{

     for(int kk=0;kk<MAXRAFFLE;kk++)

     {

          raffles[kk]=-1;

     }

}

// Pre-conditions: auction is the collection of all possible auction items

// Post-condition: Each auction should have a default price of 0 and a default

// bidder number that indicates it has not been bid on yet

//

// What to do in this function: Each index number represents a different

// auction item for the Raffle. Select one row of the two-dimensional

// array to be for bids; the other row will be for people (the current highest

// bidder). Initialize all bids to zero and initialize all people to a number

// that indicates the item has not been bid on yet

void initAuction(float auction[2][MAXAUCTIONITEMS])

{

     for(int aa=0;aa<MAXAUCTIONITEMS;aa++)

     {

          auction[0][aa]=0; //bid

          auction[1][aa]=-1; //initialize people

     }

}

// Pre-conditions: totalRevenue is a pointer to the total amount that the Gala has earned

// ticketsSold is a pointer to the current number of tickets sold

// numTickets is the number of tickets that the person would like to purchase

// price is the current cost of the tickets (the DayOf price)

// Post-condition: Sells numTickets to the current person at price and updates the number

// of tickets sold and the current total revenue

//

// What to do in this function: Calculate the cost of the tickets and add it to the total

// revenue. Print out the ticket numbers that were sold to the screen. Update the number

// of tickets that have been sold.

void buyTickets(float * totalRevenue, int * ticketsSold, int numTickets, float price)

{

     *totalRevenue += numTickets * price;

     printf(\"\ SOLD TICKET %d - %d\", ticketsSold, ticketsSold+mumTickets-1);

     *ticketsSold +=numTickets;

}

// Pre-conditions: totalRevenue is a pointer to the total amount that the Gala has earned

// raffles is an array of all possible raffle tickets

// availTickets is the number of raffle tickets available to be sold

// numTickets is the number of raffle tickets that the person would like to purchase

// person is the numerical identifier of the person attempting to buy tickets

// Post-condition: Sells numTickets to the current person if tickets are available, or sells as

// as many as are left, or sells none if no tickets are left. Updates totalRevenue

// if any tickets are sold. Each ticket sells for $2

//

// What to do in this function: The value stored in each index of raffles should be the number of the

// person that bought that ticket. For example if person 35 holds raffle tickets 11-15, then elements 11-15

// of raffles should all be equal to 35.

//

// Traverse to the next available ticket in the raffles array, if it exists. If it does not exist, print

// out that no tickets will be given to this person. If it does exist, check to see if there are enough

// tickets left for the person to get the full number they are looking for. If there are not enough for

// the full amount, give them all the tickets that are left. Print out which tickets they are given.

// Update totalRevenue with the number of tickets sold at $2 each.

void buyRaffle(float * totalRevenue, int raffles[MAXRAFFLE], int availTickets, int numTickets, int person)

{

     int st=0;

     int end=0;

     if(numTickets<availTickets)

     {

          for(int kk=0;kk<MAXRAFFLE;kk++)

          {

              if(raffles[kk]==-1)

              {

                   if(kk+numTickets-1<MAXRAFFLE)

                   {

                        for(st=kk;st<numTickets;st++)

                        {

                             raffles[st]=person;

                        }

                        printf(\"\ RAFFLE TICKETS %d - %d given to PERSON %d\", kk,(kk+numTickets-1), person);

                        *totalRevenue+= numTickets*2;

                        return;

                   }

                   else

                   {

                        st=kk;

                        while(st<MAXRAFFLE)

                        {

                             raffles[st]=person;

                             st++;

                        }

                        printf(\"\ RAFFLE TICKETS %d - %d given to PERSON %d\", kk,(MAXRAFFLE-kk-1), person);

                        *totalRevenue+= (MAXRAFFLE-kk-1)*2;

                        return;

                   }

              }

          }

     }

     printf(\"\ NO RAFFLE TICKETS given to PERSON %d\", person);

                  

}

// Pre-conditions: auction is an 2D array that holds the current highest bid and the person with

// the highest bid

// bid is a new proposed bid

// auctionNumber is the numerical identifier for the item being bid on

// person is the numerical identifier of the person attempting to bid

// flag is a value that indicates whether or not bids are still being accepted

// Post-condition: Updates the auctions with a new high bid if present

// Will not accept new bids that are not higher than old bids

// Will not accept new bids if the auctions are closed

//

// What to do in this function: Check to see if the auctions are still open based on flag

//

// If bids are still being accepted, check to see if bid is higher than the current bid for

// the auction. If it is higher, update the auction with the new bid and the new person number

// Print out the result of either accepted or rejected

void bid(float auction[2][MAXAUCTIONITEMS], float bid, int auctionNumber, int person, int flag)

{

     if(flag)

     {

          if(bid>auction[0][auctionNumber])

          {

              auction[0][auctionNumber]=bid;

              auction[1][auctionNumber]=person;

              printf(\"\ BIDITEM %d ACCEPTED for PERSON %d at %0.2f DOLLARS\",auctionNumber,person, bid);

          }

          else

          {

              printf(\"\ BIDITEM %d REJECTED for PERSON %d at %0.2f DOLLARS\",auctionNumber,person, bid);

          }

     }

     else

          printf(\"\ BIDITEM %d REJECTED for PERSON %d at %0.2f DOLLARS\",auctionNumber,person, bid);

}

// Pre-conditions: auction is an 2D array that holds the current highest bid and the person with

// the highest bid

// auctionNumber is the numerical identifier for the item being awarded

// Post-condition: Returns the value of the highest bid for the auction specified by auction number

//

// What to do in this function: Check to see if the auction identified by auctionNumber has any

// bids. If so, award the auction to the person with the highest bid. If not, print out that

// there have been no bids for this item. Return the appropriate value to be added to totalRevenue

float awardAuction(float auction[2][MAXAUCTIONITEMS], int auctionNumber)

{

     if(auction[0][auctionNumber]!=-1)

     {

          printf(\"\ AUCTION ITEM %d WON BY PERSON %d for $%0.2f\",auctionNumber, auction[1][auctionNumber],auction[0][auctionNumber]);

          return auction[0][auctionNumber];

     }

     printf(\"\ NO BIDS FOR AUCTION ITEM %d\", auctionNumber);

     return 0;

}

// Pre-conditions: raffles is an array of all possible raffle tickets

// winner is the winning ticket number

// raffleNumber is the current raffle being held

//

// Post-condition: prints out the numerical identifier of the person who

// holds the winning ticket number

void awardRaffle(int raffles[MAXRAFFLE], int raffleNumber, int winner)

{

    

}

Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold
Please, help me write a c-code with the scaffold below: Scaffold [DO NOT modify, i.e: adding structs. It has to be written with the exact codes in the scaffold

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site