exercices .pdf

File information


Original filename: exercices.pdf
Author: Fabian Phan

This PDF 1.7 document has been generated by Microsoft® Word 2016, and has been sent on pdf-archive.com on 13/10/2017 at 00:26, from IP address 82.212.x.x. The current document download page has been viewed 208 times.
File size: 346 KB (3 pages).
Privacy: public file


Download original PDF file


exercices.pdf (PDF, 346 KB)


Share on social networks



Link to this file download page



Document preview


EXERCICE STRUCTURES EXO 5
Scanf %10[^\n]%*c, ptr-> attr

EXERCICE POINTEURS ET STRUCTURES
#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 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);
printf("%s\n", mesUnites[i].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)
{
// refuser si possede déja 5 prerequis
// refuser si ca vient du bloc 1
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");
}
}


Document preview exercices.pdf - page 1/3

Document preview exercices.pdf - page 2/3
Document preview exercices.pdf - page 3/3

Related documents


exercices
crefcard v2 2
c programming complete jntu programs
data types and sizes 1 image marked
c cheat
introduzione corso arduino

Link to this page


Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..

Short link

Use the short link to share your document on Twitter or by text message (SMS)

HTML Code

Copy the following HTML code to share your document on a Website or Blog

QR Code

QR Code link to PDF file exercices.pdf