Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.65 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <assert.h>
  6. #include <math.h>
  7. #include <string.h>
  8. #pragma warning (disable :4996)
  9.  
  10. #define MinTours 2 // Nombre minimum de tours
  11. #define MaxTours 10 // Nombre maximum de tours
  12. #define minEpreuves 1 // Nombres minimum d'épreuves
  13. #define maxEpreuves 16 // Nombres maximum d'épreuves
  14. #define patEq 3 // Nombre de patineurs par équipes
  15. #define EqEpreuves 2 // Nombre d'équipes par épreuves
  16. #define MaxChaine 30 // Taille maximale d'une chaîne de caractère lue
  17. #define MaxEq 32 // Nombre Maximum d'équipes
  18.  
  19. typedef struct {
  20.     char nom[MaxChaine + 1];
  21.     unsigned int dossard;
  22. } Patineur;
  23.  
  24. typedef struct {
  25.     Patineur data[patEq];
  26.     char pays[MaxChaine+1];
  27. } Equipe;
  28.  
  29. void definition_parcours(int tour) {
  30.     scanf("%d", &tour);
  31.     assert(tour>=MinTours && tour<=MaxTours);
  32. }
  33.  
  34. void definition_nb_epreuves(int nbEp) {
  35.     scanf("%d", &nbEp);
  36.     assert(nbEp >= minEpreuves && nbEp <= maxEpreuves);
  37. }
  38.  
  39. void inscription_equipe(Equipe* eq) { // fonction d'inscription des équipes
  40.     static int numdos = 100;
  41.     scanf("%s", &eq->pays);
  42.     scanf("%s", &eq->data[0].nom);
  43.     scanf("%s", &eq->data[1].nom);
  44.     scanf("%s", &eq->data[2].nom);
  45.     for (int i = 0; i < patEq; i++) {
  46.         numdos++;
  47.         eq->data[i].dossard = numdos;
  48.         printf("inscription dossard %d\n", eq->data[i].dossard);
  49.     }
  50. }
  51.  
  52. void affichage_equipe(const Equipe* eq) {
  53.     printf("%s %s %d %s %d %s %d\n", eq->pays, eq->data[0].nom, eq->data[0].dossard, eq->data[1].nom, eq->data[1].dossard, eq->data[2].nom, eq->data[2].dossard);
  54. }
  55.  
  56. int main() {
  57.     Equipe eq[MaxEq];
  58.     char mot[MaxChaine+1];
  59.     int tour = 0;
  60.     int nbEp = 0;
  61.     int i = 0;
  62.     while (1) { // ou do {…} while(1);
  63.         //Lecture de la commande (mot)
  64.         scanf("%s", mot);
  65.         // si la commande est "definir_parcours"
  66.         if (strcmp(mot, "definir_parcours") == 0) {
  67.             // apppeler la fonction definition_parcours
  68.             definition_parcours(tour);
  69.         }
  70.         // si la commande est "definir_nombre_epreuves"
  71.         if (strcmp(mot, "definir_nombre_epreuves") == 0) {
  72.             // apppeler la fonction definition_parcours
  73.             definition_nb_epreuves(nbEp);
  74.         }
  75.         // si la commande est "inscrire_equipe"
  76.         if (strcmp(mot, "inscrire_equipe") == 0) {
  77.             //    appeler la fonction inscription_equipe …
  78.             inscription_equipe(&eq[i]);
  79.             i++;
  80.         }
  81.         // si la commande est "afficher_equipe"
  82.         if (strcmp(mot, "afficher_equipe") == 0) {
  83.             //    appeler la fonction affichage_equipe
  84.             for (int j = 0; j < EqEpreuves; j++) {
  85.                 affichage_equipe(&eq[j]);
  86.             }
  87.         }
  88.         // si la commande est "exit"
  89.         if (strcmp(mot, "exit")==0) {
  90.             exit(0); // sortie du programme principal
  91.         }
  92.     }
  93.     system("pause");
  94.     return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement