Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #pragma warning (disable : 4996)
  5.  
  6. #define MAXTOURS 10 // Nombre maximum de tours
  7. #define MAXEPREUVES 16 // Nombre maximal d'epreuves
  8. #define MAXEQUIPE 32 // Nombre d'equipe maximale
  9. #define NBPATINEURSPAREQUIPES 3 // Nombre de patineurs par equipes
  10. #define NBEQUIPEPAREPREUVES 2 // Nombre d'equipes par epreuves
  11. #define LGMOT 30 // Nombre maximal de mot
  12. #define NUMDOSSARD 101 // Numero dossard
  13. #define NBCARMAX 80 // Nombre maximal de caracteres
  14. typedef struct {
  15.     unsigned int numeroTour;
  16.     float temps;
  17. } Mesure;
  18.  
  19. typedef struct {
  20.     char nom[LGMOT + 1];
  21.     unsigned int dossard;
  22.     Mesure temps[MAXTOURS];
  23.     unsigned int tourEffectuer;
  24. } Patineur;
  25.  
  26. typedef struct {
  27.     char pays[LGMOT + 1];
  28.     Patineur data[NBPATINEURSPAREQUIPES];
  29. } Equipe;
  30.  
  31. typedef struct {
  32.     unsigned int nbTour;
  33. } Course;
  34.  
  35. typedef struct {
  36.     Course numCourse[MAXEPREUVES];
  37. } Epreuve;
  38.  
  39. typedef struct {
  40.     Epreuve epreuves[MAXEPREUVES];
  41.     Equipe tableauEquipe[MAXEQUIPE];
  42. } Competition;
  43.  
  44. void inscrire_equipe(Competition* competition, int* cptEquipeInscrites, int* cptNbPatineurs) {
  45.     Equipe equipe;
  46.     char mot[LGMOT + 1];
  47.     scanf("%s", mot);
  48.     strcpy(equipe.pays, mot);
  49.  
  50.     //Dans une equipe, on inscrit les patineurs
  51.     for (int i = 0; i < NBPATINEURSPAREQUIPES; i++) {
  52.         Patineur p;
  53.         char mot[NBCARMAX + 1];
  54.         p.dossard = NUMDOSSARD + *cptNbPatineurs;
  55.         scanf("%s", mot);
  56.         strcpy(p.nom, mot);
  57.         equipe.data[i] = p;
  58.         printf("inscription dossard %d\n", p.dossard);
  59.         (*cptNbPatineurs)++;
  60.  
  61.     }
  62.  
  63.     //On enregistre l'equipe dans la competition
  64.     competition->tableauEquipe[*cptEquipeInscrites] = equipe;
  65.     (*cptEquipeInscrites)++;
  66. }
  67. void afficher_equipes(const Competition* competition, int* cptEquipeInscrites) {
  68.     int i = 0;
  69.     for (int i = 0; i < *cptEquipeInscrites; i++) {
  70.         printf("%s ", competition->tableauEquipe[i].pays);
  71.         for (int j = 0; j < NBPATINEURSPAREQUIPES; j++) {
  72.             printf("%s %d ", competition->tableauEquipe[i].data[j].nom, competition->tableauEquipe[i].data[j].dossard);
  73.         }
  74.         printf("\n");
  75.     }
  76. }
  77.  
  78. void enregistrer_temps(Competition* competition) {
  79.     int dossard = 0;
  80.     unsigned int tour = 0;
  81.     float temps = 0;
  82.     int indiceEquipe = 0;
  83.     int indicePatineur = 0;
  84.     int p = 0;
  85.     scanf("%d %d %f", &dossard, &tour, &temps);
  86.     int numInscrit = dossard - NUMDOSSARD + 1;
  87.     indiceEquipe = numInscrit / 3;
  88.     indicePatineur = numInscrit % 3;
  89.     competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer = tour;
  90.     competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[tour].numeroTour = tour;
  91.     competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[tour].temps = temps;
  92.    
  93. }
  94.  
  95. void afficher_temps(const Competition* competition) {
  96.     int dossard = 0;
  97.     int indiceEquipe = 0;
  98.     int indicePatineur = 0;
  99.     scanf("%d", &dossard);
  100.     int numInscrit = dossard - NUMDOSSARD + 1;
  101.     indiceEquipe = numInscrit / 3;
  102.     indicePatineur = numInscrit % 3;
  103.     int tourEffectuer = competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer;
  104.     for (int i = 0; i < tourEffectuer; i++) {
  105.         printf("%s ", competition->tableauEquipe[indiceEquipe].pays);
  106.         printf("%d ", competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[i+1].numeroTour);
  107.         printf("%s ", competition->tableauEquipe[indiceEquipe].data[indicePatineur].nom);
  108.         printf("%.1f ", competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[i+1].temps);
  109.         printf("\n");
  110.     }
  111. }
  112.  
  113.  
  114. int main() {
  115.     int* cptEquipesInscrites = 0;
  116.     int* cptNbPatineurs = 0;
  117.     Competition c;
  118.     Competition* competition = &c;
  119.     Course crs;
  120.     Course* course = &crs;
  121.     int indiceTour = 0;
  122.  
  123.     char mot[LGMOT + 1];
  124.     while (1) {
  125.         scanf("%s", mot);
  126.         // si la commande est "definir_parcours"
  127.         if (strcmp(mot, "inscrire_equipe") == 0) {
  128.             inscrire_equipe(&c, &cptEquipesInscrites, &cptNbPatineurs);
  129.         }
  130.         if (strcmp(mot, "afficher_equipes") == 0) {
  131.             afficher_equipes(&c, &cptEquipesInscrites);
  132.         }
  133.         if (strcmp(mot, "enregistrer_temps") == 0) {
  134.             enregistrer_temps(&c);
  135.         }
  136.         if (strcmp(mot, "afficher_temps") == 0) {
  137.             afficher_temps(&c);
  138.         }
  139.         if (strcmp(mot, "exit") == 0) {
  140.             exit(0);
  141.         }
  142.     }
  143.     return 0;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement