Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 5
- #define TAILLE 30
- struct uniteEnseignement
- {
- char identifiant[10+1];
- char nom_unite[200+1];
- int nombre_credits;
- char nom_responsable[60+1];
- struct uniteEnseignement* prerequises[MAX];
- int nombreUePrerequises;
- struct uniteEnseignement* corequises[MAX];
- int nombreUeCorequises;
- };
- int menu();
- void encodageUnite(struct uniteEnseignement*);
- void afficherUnitesEncodees(struct uniteEnseignement[], int);
- void afficherIdUnite(struct uniteEnseignement);
- void afficherDetails(struct uniteEnseignement);
- void ajouterUePreRequise(struct uniteEnseignement*, struct uniteEnseignement*);
- void ajouterUeCoRequise(struct uniteEnseignement*, struct uniteEnseignement*);
- int main()
- {
- struct uniteEnseignement mesUnites[TAILLE];
- struct uniteEnseignement ue;
- int ueChoisie, ueRequisChoisie, choixMenu, nombreUnites = 0;
- do
- {
- switch(choixMenu = menu())
- {
- case 1:
- encodageUnite(&ue);
- mesUnites[nombreUnites] = ue;
- nombreUnites++;
- break;
- case 2:
- if (nombreUnites < 2)
- {
- printf("Vous n'avez pas assez d'UE pour cette action\n");
- } else
- {
- printf("Choisissez une unité à laquelle vous souhaitez affecter un prérequis\n");
- afficherUnitesEncodees(mesUnites, nombreUnites);
- scanf("%i%*c", &ueChoisie);
- printf("Choisissez le prérequis à affecter à cette unité\n");
- afficherUnitesEncodees(mesUnites, nombreUnites);
- scanf("%i%*c", &ueRequisChoisie);
- ajouterUePreRequise(&mesUnites[ueChoisie-1], &mesUnites[ueRequisChoisie-1]);
- }
- break;
- case 3:
- if (nombreUnites < 2)
- {
- printf("Vous n'avez pas assez d'UE pour cette action\n");
- } else
- {
- printf("Choisissez une unité à laquelle vous souhaitez affecter un corequis\n");
- afficherUnitesEncodees(mesUnites, nombreUnites);
- scanf("%i%*c", &ueChoisie);
- printf("Choisissez le corequis à affecter à cette unité\n");
- afficherUnitesEncodees(mesUnites, nombreUnites);
- scanf("%i%*c", &ueRequisChoisie);
- ajouterUeCoRequise(&mesUnites[ueChoisie-1], &mesUnites[ueRequisChoisie-1]);
- }
- break;
- case 4:
- if (nombreUnites < 1)
- {
- printf("Vous n'avez pas assez d'UE pour cette action\n");
- } else
- {
- printf("Pour quelle unite souhaitez-vous les détails?\n");
- afficherUnitesEncodees(mesUnites, nombreUnites);
- scanf("%i%*c", &ueChoisie);
- afficherDetails(mesUnites[ueChoisie-1]);
- }
- break;
- case 5:
- return EXIT_SUCCESS;
- }
- } while (choixMenu != 0);
- return EXIT_SUCCESS;
- }
- int menu()
- {
- int choix;
- printf("------------------------------------------\n");
- printf("Faites votre choix : \n");
- printf("1. Encoder une unité d'enseignement.\n");
- printf("2. Ajouter un prérequis.\n");
- printf("3. Ajouter un corequis\n");
- printf("4. Afficher les infos d'une UE\n");
- printf("5. Quitter\n");
- printf("------------------------------------------\n");
- scanf("%i%*c", &choix);
- return choix;
- }
- void encodageUnite(struct uniteEnseignement *unite)
- {
- printf("Identifiant (format : B1-Q1-UE1) : "); scanf("%10[^\n]%*c", unite->identifiant);
- printf("Nom de l'unité : "); scanf("%200[^\n]%*c", unite->nom_unite);
- printf("Nombre de crédits : "); scanf("%i%*c", &(unite->nombre_credits));
- printf("Nom du responsable : "); scanf("%60[^\n]%*c", unite->nom_responsable);
- }
- void afficherUnitesEncodees(struct uniteEnseignement mesUnites[], int nombreUnites)
- {
- int i;
- for(i=0; i<nombreUnites;i++)
- {
- printf("%i. ", i+1);
- afficherIdUnite(mesUnites[i]);
- }
- }
- void afficherIdUnite(struct uniteEnseignement unite)
- {
- printf("%s\n", unite.identifiant);
- }
- void afficherDetails(struct uniteEnseignement unite)
- {
- int i,j;
- printf("------------------------------------------\n");
- printf("Identifiant : %s\n", unite.identifiant);
- printf("Nom de l'unité : %s\n", unite.nom_unite);
- printf("Nombre de crédits : %i\n", unite.nombre_credits);
- printf("Nom du responsable : %s\n", unite.nom_responsable);
- if (unite.nombreUePrerequises > 0)
- {
- printf("Unités prérequises : ");
- for(i=0; i < unite.nombreUePrerequises; i++)
- {
- printf("%s |",unite.prerequises[i]->identifiant);
- }
- printf("\n");
- }
- if (unite.nombreUeCorequises > 0)
- {
- printf("Unités corequises :");
- for(j=0; j < unite.nombreUeCorequises; j++)
- {
- printf(" %s |",unite.corequises[j]->identifiant);
- }
- printf("\n");
- }
- }
- void ajouterUePreRequise(struct uniteEnseignement* ueBase, struct uniteEnseignement* ueRequise)
- {
- if (ueBase->nombreUePrerequises > 5)
- {
- printf("Cette UE possède déjà 5 prérequis");
- }
- else if (ueBase->identifiant[1] == 1)
- {
- printf("Impossible d'ajouter un prerequis à une UE du bloc1");
- }
- else
- {
- ueBase->prerequises[ueBase->nombreUePrerequises] = ueRequise;
- ueBase->nombreUePrerequises++;
- printf("Prérequis ajouté\n");
- }
- }
- void ajouterUeCoRequise(struct uniteEnseignement* ueBase, struct uniteEnseignement* ueRequise)
- {
- if (ueBase->nombreUeCorequises > 5)
- {
- printf("Cette UE possède déjà 5 corequis");
- }
- else
- {
- ueBase->corequises[ueBase->nombreUeCorequises] = ueRequise;
- ueBase->nombreUeCorequises++;
- printf("Corequis ajouté\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement