fork download
  1. #define MAX_TRACK_NAME_LENGTH 50
  2. #define MAX_HORSE_NAME_LENGTH 50
  3. #define MAX_OWNER_NAME_LENGTH 50
  4. #define MAX_JOCKEY_NAME_LENGTH 50
  5. #define MAX_TRAINER_NAME_LENGTH 50
  6. #define MAX_SILKS_DESCRIPTION_LENGTH 100
  7. #define MAX_NOTES_LENGTH 200
  8. #define MAX_RACES 10
  9. #define MAX_HORSES 20
  10.  
  11. // Enumerations for various categorical data
  12. typedef enum
  13. {
  14. MALE,
  15. FEMALE,
  16. GELDING,
  17. UNKNOWN_GENDER
  18. } Gender;
  19.  
  20. typedef enum
  21. {
  22. MAIDEN_SPECIAL_WEIGHT,
  23. MAIDEN_CLAIMING,
  24. CLAIMING,
  25. ALLOWANCE_OPTIONAL_CLAIMING,
  26. ALLOWANCE,
  27. HANDICAP,
  28. STARTER_ALLOWANCE,
  29. STARTER_HANDICAP,
  30. CLAIMING_STAKES,
  31. STARTER_OPTIONAL_CLAIMING,
  32. MAIDEN_OPTIONAL_CLAIMING,
  33. MAIDEN_STAKES,
  34. INVITATIONAL,
  35. DERBY,
  36. TRIALS,
  37. FUTURITY,
  38. STAKES,
  39. UNKNOWN_RACE_TYPE
  40. } RaceType;
  41.  
  42. typedef enum
  43. {
  44. WIN,
  45. PLACE,
  46. SHOW,
  47. UNKNOWN_POSITION
  48. } FinishPosition;
  49.  
  50. // Supporting structures
  51. typedef struct
  52. {
  53. int month;
  54. int day;
  55. int year;
  56. } Date;
  57.  
  58. typedef struct
  59. {
  60. int hour;
  61. int minute;
  62. } Time;
  63.  
  64. typedef struct
  65. {
  66. Date date;
  67. Time time;
  68. } DateTime;
  69.  
  70. typedef struct
  71. {
  72. char name[MAX_OWNER_NAME_LENGTH];
  73. char silksDescription[MAX_SILKS_DESCRIPTION_LENGTH];
  74. } Owner;
  75.  
  76. typedef struct
  77. {
  78. char name[MAX_TRAINER_NAME_LENGTH];
  79. int starts;
  80. int wins;
  81. int places;
  82. int shows;
  83. } Trainer;
  84.  
  85. typedef struct
  86. {
  87. char name[MAX_JOCKEY_NAME_LENGTH];
  88. int starts;
  89. int wins;
  90. int places;
  91. int shows;
  92. } Jockey;
  93.  
  94. typedef struct
  95. {
  96. char name[MAX_HORSE_NAME_LENGTH];
  97. int age;
  98. Gender gender;
  99. float weightCarried;
  100. Time recordTime;
  101. int wins;
  102. int places;
  103. int shows;
  104. } TrackRecordHolder;
  105.  
  106. typedef struct
  107. {
  108. int raceNumber; // C
  109. DateTime raceDateTime; // A
  110. char trackName[MAX_TRACK_NAME_LENGTH]; // E
  111. char trackDiagram[MAX_NOTES_LENGTH]; // D - Assuming textual representation
  112. char wagersAvailable[MAX_NOTES_LENGTH]; // B
  113. char qrCode[MAX_NOTES_LENGTH]; // F - Assuming textual representation
  114. int raceRating; // G
  115. char notes[MAX_NOTES_LENGTH]; // H
  116. RaceType raceType; // I
  117. char raceCondition[MAX_NOTES_LENGTH]; // J
  118. float purse; // J
  119. TrackRecordHolder trackRecordHolder; // K
  120. } RaceDetails;
  121.  
  122. typedef struct
  123. {
  124. Date date;
  125. char trackName[MAX_TRACK_NAME_LENGTH];
  126. float distance; // in furlongs
  127. char surface[20]; // e.g., "Dirt", "Turf"
  128. FinishPosition finishPosition;
  129. int fieldSize;
  130. float finalOdds;
  131. Time raceTime;
  132. int speedFigure;
  133. char comments[MAX_NOTES_LENGTH];
  134. } PastPerformance;
  135.  
  136. typedef struct
  137. {
  138. int programNumber; // 1
  139. char saddleClothColor[20]; // 2
  140. float morningLineOdds; // 3
  141. float claimingPrice; // 4
  142. Owner owner; // 5
  143. char silks[MAX_SILKS_DESCRIPTION_LENGTH]; // 6
  144. Trainer trainer; // 7
  145. char horseName[MAX_HORSE_NAME_LENGTH]; // 8
  146. Gender gender; // 10
  147. int age; // 11
  148. float weight; // 12
  149. Jockey jockey; // 13
  150. int starts; // 14
  151. int wins; // 15
  152. int places; // 16
  153. int shows; // 17
  154. float earnings; // 18
  155. float earningsPerStart; // 19
  156. float averageSpeed; // 20
  157. PastPerformance pastPerformances[10]; // 21-40, assuming up to 10 past performances
  158. } HorseDetails;
  159.  
  160. int main()
  161. {
  162. RaceDetails myRaces[MAX_RACES];
  163. HorseDetails myHorses[MAX_HORSES];
  164.  
  165. // Example initialization (optional)
  166. myRaces[0].raceNumber = 1;
  167. myHorses[0].programNumber = 1;
  168.  
  169. return 0;
  170. }
  171.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty