diff --git a/C12.2.c b/C12.2.c index 6b3038e..cae8fe0 100644 --- a/C12.2.c +++ b/C12.2.c @@ -3,6 +3,7 @@ #include #define NameLength 16 +#define NameLengthScanf "%16s" /* 1 */ @@ -483,7 +484,7 @@ void freeListe(struct personnage* origin){ ///// Main pour les tests -int main(){ +int mainTests(){ struct personnage* liste = NULL; @@ -521,4 +522,66 @@ int main(){ freeListe(liste); + + return 0; +} + +int main(){ + + struct personnage* liste = NULL; + char c; + char p1[NameLength+1], p2[NameLength+1]; + char* newName; + int p3; + // Bon, j'ai mal lu le sujet, j'ai fait des matrices rectangulaires ... + + printf("Bienvenue sur l'interface pour regarder votre série préférée.\n"); + printf("'n $nom' pour ajouter un personnage;\n"); + printf("'p $père' déclare un nouvel enfant à son père;\n"); + printf("'m $mère' déclare un nouvel enfant à sa mère;\n"); + printf("'c' afficher l'état actuel;\n"); + printf("'e' demande d'une entrée de registre;\n"); + printf("'P $enfant' suppression d'un lien père-enfant;\n"); + printf("'M $enfant' suppression d'un lien mère-enfant;\n"); + printf("'o' trier la liste par ordre alphabétique;\n"); + printf("'v $nom' affiche le nom COMPLET d'un personnage;\n"); + printf("'a $nom' affiche les ancètres de génération donnée d'un personnage;\n"); + printf("'A $nom' affiche tous les ancètres d'un personnage;\n"); + printf("'d $nom' affiche les déscendants d'une génération donnée d'un personnage\n"); + printf("'D $nom' affiche les déscendants jusqu'à une génération donnée d'un personnage;\n"); + printf("'x' vérifie la cohérence du graphe généalogique.;\n"); + printf("'q' pour quitter\n"); + + while(1){ + printf("Commande ? "); + c = getchar(); + getchar();// On bouffe l'espace + + switch(c){ + case 'n': + scanf(NameLengthScanf, p1); + p1[NameLength] = '\0'; + newName = malloc((strlen(p1)+1)*sizeof(char)); + if(newName==NULL) + goto mallocErr; + + strcpy(newName, p1); + newUnrelatedM(&liste, newName, 1); + + printf("Le personnage %s a été créé.\n", newName); + + break; + case 'q': + goto fend; + + } + getchar(); + } + + + fend: freeListe(liste); + return 0; + + mallocErr: freeListe(liste); + return 1; }