int peopleinvited(); //f1) Creating the email content //INPUT: Get names, food menu and venue information from data structures //OUTPUT: Create E-mail with venue information and names. //COMMENT: Creates the email content and sends it to the next function void emailreminder (void) //f2) Creating the reminder email //INPUT: Get names, food menu and venue information from data structures //OUTPUT: Create reminder e-mail with venue information and names and also final prefrences. //COMMENT: Creates the email content and sends the reminder //F3 Status of guests int viewGuest() // Inputs: surname and email address // Outputs: outputs the guests information/status of there invitee with the given surname // Comments: used to see whether individual guests are coming or not or arriving late late and with all their food and music prefrences int rsvp(); //f4) RSVP //INPUT: Gets RSVP information from file in F3 //OUTPUT: Increament the total count (y+1) //COMMENT: Records number of people comming int foodquery(); //f5) Food Query //INPUT: Checks food prefrence from file in F3 //OUTPUT: Increament the counter for vegaterian and non vegaterian //COMMENT: Checks the person is vegaterian and non vegaterian int guestquery(); //f6) Guest Query //INPUT: Check number of guests from file in F3 //OUTPUT: Increament the total count (y+g) //COMMENT: Check if person bringing guest //D1) typedef struct emailcon // Creates the email content { char name/number; // house name or number char roadname; // name of road/street char add // town or city name(s) char add2; // county int hour[3], minute[3]; // time of party int day[3], month[3], year[5]; // date of party char musicr3 // Comment for asking the guest any 3 music requests for DJ char menu; // Menu options listed (7 options) } //D2) typedef struct emailr // Records the email replies { int *rsvpy; // Counter for rsvp confirm int *mg; // Counter for number of multiple responces confirm int *rsvpn; // Counter for rsvp decline int *rsvpl; // Counter for rsvp late arrival int *rsvpv; // Counter for rsvp number vegiterian int *rsvpk; // Counter for rsvp number kosher int *rsvph; // Counter for rsvp rsvp number halal int *rsvpnl; // Counter for rsvp number no lactose int *rsvpng; // Counter for rsvp number no gluten int *rsvpnn; // Counter for rsvp number no nut char musictt1[], musictt2[], musictt3[]; // Music track title 1,2,3 char musicb1[], musicb2[], musicb3[]; // Music band 1,2,3 } //D3) typedef struct foodOpt int *y // Points to the location of the number of people who accepted the invite int *l // Points to the location of the number late arrival therefore no food required for them int *v // Points to the location of the number of who opted for Vegiterian food int *k // Points to the location of the number of who opted for kosher food int *h // Points to the location of the number of who opted for halal food int *nl // Points to the location of the number of who opted for no lactose food int *ng // Points to the location of the number of who opted for no gluten food int *nn // Points to the location of the number of who opted for no nut food //D4 typedef struct gfoodq { int *y // Points to the location of the number of people who accepted the invite int *l // Points to the location of the number of people who accepted the invite but late arrival int *mg // Points to the location of the number of couple who accepted (for multiple responce) } // D5 typedef struct name_address { char forename; char surename; char emailaddress; int numberinvites = peopleinvited(forename, surename, emailaddress); // increment after every invite } //D6) typedef struct acceptanceStatus { int accept = 0; // tick box initially set unticked int arrivinglate = 0 // tick box initially set unticked int accepted = confirmed(); // number of people accepted int acceptedArrivingLate = confirmed(); // number of people accepted but arriving late int declined = confirmed(); // number of people declined string dietaryrequirementslist[6][3]; // 1st row of 6 dietary requirements i.e.vegiterian, kosher, halal... // ...no lactose, no gluten, no nuts. and coloumns represents the... // ...total numberdishes required of that food prefrence. // 2nd for individual guest responce of 'yes' or 'n/a' for each food prefrence [row i.e food v coloumn i.e responce) }