/* CMSCD1003 Referral Coursework 2000/01 - Liverpuddle Marathon */ /* Description...... Prepare files for processing Initialise best winning times to 86400 seconds Initialise disuqlified to zero Read race start time from file Store race start time in seconds Write report headings Read a competitor's details from file WHILE not at the end marker { calculate and store competitor's elapsed race time IF competitor took too long { Write disqualification message Increase number of disqualified competitors by 1 } ELSE IF competitor cheated { Write disqualification for cheating message Increase number of disqualified competitors by 1 } ELSE { IF age <= 29 set range = 0 ; ELSE IF age <= 39 set range = 1 ; ELSE set range = 2 ; SWITCH range OF { case 0 : if best over 20s time so far { store best over 20s time store best over 20s name store best over 20s age } case 1 : if best over 30s time so far { store best over 30s time store best over 30s name store best over 30s age } default : if best over 40s time so far { store best over 40s time store best over 40s name store best over 40s age } } } Read next competitor's details from file } Write disqualifications heading to file Write total disqualifications to file Write winners heading to file Write over 40s winner details to file Write over 30s winner details to file Write over 30s winner details to file Calculate average winning time Write average winning time to file Close the files } */ #include #include #define MAX_HOURS 6 #define MIN_HOURS 2 main () { /* Function prototypes */ long calculateSeconds (long, long, long) ; void displayTime (long, FILE*) ; /* Constant definitions */ const char zeds [11] = "ZZZZZZZZZZ" ; /* Variable definitions */ char winner_over_40s [11], winner_over_30s [11], winner_over_20s [11], name [11] ; long best_time_over_40s, best_time_over_30s, best_time_over_20s, winner_over_40s_age, winner_over_30s_age, winner_over_20s_age, hours, minutes, seconds, elapsed_seconds, race_start, average_winning_time, disqualified, age ; int range ; /* File definitions */ FILE *race_times = fopen ("times.dat", "r") ; FILE *results =fopen ("results.dat", "w") ; /* Main executable section */ } long calculateSeconds ( you fill in the args ) /* Return a time in seconds from a time in hh mm and ss */ /* Description...... Return the time in seconds */ { } void displayTime (long time, FILE* results) /* Convert a time in seconds and write as a formatted time to output file }*/ /* Description...... Calculate number of hours and the seconds left over Calculate number of minutes Calculate number of seconds Write time to output file as "hh:mm:ss." */ { long remainder, hh, mm, ss; }