I would choose Bens structure for the guest info: struct GuestList{ int GuestID; // The guest's ID number char NameFamily; / Surname char NameFirst; // Firstname char AddrNumber; // Char, so house names can be used char AddrRoad; // First address line (ie, road) char AddrTown; // 2nd address line (ie, town) char AddrPostCode; // Postalcode int Veggie; // 1=Veggie, 0=Not int RSVPYesNo; // 1=Coming, 0=Not int RSVPStatus; // 1=RSVPed, 0=Awaiting Reply } Kapriels food choice function, as it gets to the point: Void FoodChoice(Gname/ID) /* Input Veggie/non-vegie*/ /*output ListV/ListNV*/ //Inputs if guest is veggie or not; Outputs both Veggie Guest List and Non-veggie Guestlist Lloyds RSVP function: void Process RSVP (guest) /*input: Guest, invite ID & reply*/ /*output: void */ /*Comment: Function will take the guest id and compare this to the reply and if true will print to guest list*/ Int Food(guest) I quite liked Mohds suggestion of a structure to state what type fo music people wanted: //Structure genre of music played-------------------------------------- typedef struct { char jz; //for jazz char alt; //alternative char rnb // for the R&B music char evrgreen //for old-skool song }genre_music;//--------------------------------------------------------- Another of Mohds: /*--------------------------------------------------------------------*/ funtion 3 (Comments status) /*inputs: import the data from the data array*/ /*outputs: received the data and produce the sentences*/ /*comments: will know special request from guest, either foods,music,etc*/ /*----------------------------------------------------------------------*/ Don't know why I didn't mention this one of Lloyds creation earlier: Void Read/Send( Guest); /*input: Guest list */ /*output : Void*/ /*comments: Function will take the guest details and print invites containing their details as well as a generic set of information */ Kapriel had a good idea here - finding out the cost (to the host) for each person: Void Price(Gname/ID) /* Input: AvPriceVeg, AvPriceNveg*/ /* Output: PriceListVeg, PriceListNveg, PriceListGen*/ //Inputs the average price per person for both meal and entertainment expenses; Outputs Price lists for Veggies, Nonvegies and for Everyone all together// And finally, a useful guest list courtesy of Ben: void PrintGuestList(); /*Input: From the Guest list */ /*Output: Void */ /*Comments: Prints out a list of the details for the guests in the party-owner format (eg, guestlist on door) */