Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #pragma warning (disable : 4996)
- #define MAXTOURS 10 // Nombre maximum de tours
- #define MAXEPREUVES 16 // Nombre maximal d'epreuves
- #define MAXEQUIPE 32 // Nombre d'equipe maximale
- #define NBPATINEURSPAREQUIPES 3 // Nombre de patineurs par equipes
- #define NBEQUIPEPAREPREUVES 2 // Nombre d'equipes par epreuves
- #define LGMOT 30 // Nombre maximal de mot
- #define NUMDOSSARD 101 // Numero dossard
- #define NBCARMAX 80 // Nombre maximal de caracteres
- typedef struct {
- unsigned int numeroTour;
- float temps;
- } Mesure;
- typedef struct {
- char nom[LGMOT + 1];
- unsigned int dossard;
- Mesure temps[MAXTOURS];
- unsigned int tourEffectuer;
- } Patineur;
- typedef struct {
- char pays[LGMOT + 1];
- Patineur data[NBPATINEURSPAREQUIPES];
- } Equipe;
- typedef struct {
- unsigned int nbTour;
- } Course;
- typedef struct {
- Course numCourse[MAXEPREUVES];
- } Epreuve;
- typedef struct {
- Epreuve epreuves[MAXEPREUVES];
- Equipe tableauEquipe[MAXEQUIPE];
- } Competition;
- void inscrire_equipe(Competition* competition, int* cptEquipeInscrites, int* cptNbPatineurs) {
- Equipe equipe;
- char mot[LGMOT + 1];
- scanf("%s", mot);
- strcpy(equipe.pays, mot);
- //Dans une equipe, on inscrit les patineurs
- for (int i = 0; i < NBPATINEURSPAREQUIPES; i++) {
- Patineur p;
- char mot[NBCARMAX + 1];
- p.dossard = NUMDOSSARD + *cptNbPatineurs;
- scanf("%s", mot);
- strcpy(p.nom, mot);
- equipe.data[i] = p;
- printf("inscription dossard %d\n", p.dossard);
- (*cptNbPatineurs)++;
- }
- //On enregistre l'equipe dans la competition
- competition->tableauEquipe[*cptEquipeInscrites] = equipe;
- (*cptEquipeInscrites)++;
- }
- void afficher_equipes(const Competition* competition, int* cptEquipeInscrites) {
- int i = 0;
- for (int i = 0; i < *cptEquipeInscrites; i++) {
- printf("%s ", competition->tableauEquipe[i].pays);
- for (int j = 0; j < NBPATINEURSPAREQUIPES; j++) {
- printf("%s %d ", competition->tableauEquipe[i].data[j].nom, competition->tableauEquipe[i].data[j].dossard);
- }
- printf("\n");
- }
- }
- void enregistrer_temps(Competition* competition ) {
- int dossard = 0;
- int tour = 0;
- float temps = 0;
- int indiceEquipe = 0;
- int indicePatineur = 0;
- scanf("%d %d %f", &dossard, &tour, &temps);
- int numInscrit = dossard - NUMDOSSARD +1;
- indiceEquipe = numInscrit / 3;
- indicePatineur = numInscrit % 3;
- int o = 0;
- if (competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer < 1)
- competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer = o;
- int indiceTour = 0;
- indiceTour = competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer;
- competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[indiceTour].numeroTour = tour;
- competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps[indiceTour].temps = temps;
- competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer++;
- }
- void afficher_temps(const Competition* competition) {
- int dossard = 0;
- int indiceEquipe = 0;
- int indicePatineur = 0;
- scanf("%d", &dossard);
- int numInscrit = dossard - NUMDOSSARD + 1;
- indiceEquipe = numInscrit / 3;
- indicePatineur = numInscrit % 3;
- int tourEffectuer = competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer;
- for (int i = 0; i < tourEffectuer; i++) {
- printf("%s ", competition->tableauEquipe[indiceEquipe].pays);
- printf("%d ", competition->tableauEquipe[indiceEquipe].data[indicePatineur].tourEffectuer);
- printf("%s ", competition->tableauEquipe[indiceEquipe].data[indicePatineur].nom);
- printf("%.1f ",competition->tableauEquipe[indiceEquipe].data[indicePatineur].temps->temps);
- printf("\n");
- }
- }
- int main() {
- int* cptEquipesInscrites = 0;
- int* cptNbPatineurs = 0;
- Competition c;
- Competition* competition = &c;
- Course crs;
- Course* course = &crs;
- char mot[LGMOT + 1];
- while (1) {
- scanf("%s", mot);
- // si la commande est "definir_parcours"
- if (strcmp(mot, "inscrire_equipe") == 0) {
- inscrire_equipe(&c, &cptEquipesInscrites, &cptNbPatineurs);
- }
- if (strcmp(mot, "afficher_equipes") == 0) {
- afficher_equipes(&c, &cptEquipesInscrites);
- }
- if (strcmp(mot, "enregistrer_temps") == 0) {
- enregistrer_temps(&c);
- }
- if (strcmp(mot, "afficher_temps") == 0) {
- afficher_temps(&c);
- }
- if (strcmp(mot, "exit") == 0) {
- exit(0);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement