So this is initial design from our group.. In this code: x = number of people per invite (doubles as personal ID when combined with invID) t = text / numbers guest struct { int invID // unique field char surname[x][t] // allows for multiple name entries char forename[x][t] // see above char address // one address per invite, so no array needed char email // similar to above int attend[x][t] // 0 for no, 1 for yes, 2 for partial (see comments) char dietary[x][t] // can leave blank for normal, enter text otherwise char music[x][3][t] // music requests, 3 per person char comments[x][t] // for anything really, and dietary reqs. } /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;//--------------------------------------------------------- /Structure of any circumstances-------------------------------------- typedef struct { char info; //for the guess who cannot attend early int person; //person will attend with him }head_counts;//--------------------------------------------------------- Void circumstances(Gname/ID)------------------------------------------------- /* Input att_early/att_count*/ /*output ListN/ListC*/ //comments: for the spare food for those who are coming late. ----------------------------------------------------------------------------- And here we have a function to send out an automated reminder on the day before the party, in email format (pseudocode): reminder(guest structure) { get name and address info for each invite; mail-merge with premade message or whatnot; send via email (from the structure);