1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "structuretest.h"
// sont contenus dans structuretest.h les signatures de l'ensemble des fonctions du programme présenté ici ainsi que les typede f struct donnés dans mon précédent message
Une_serie *creer_serie(char *nom_serie, char *pays_parution, int nb_parus) {
Une_serie *serie = (Une_serie *)malloc(sizeof(Une_serie));
assert(serie != NULL);
serie->titre=strdup(nom_serie);
serie->pays_parution=strdup(pays_parution);
strcpy(serie->pays_parution, pays_parution);
serie->nb_parus=nb_parus;
return serie;
}
Un_tome *creer_tome(char *titre, P_un_element_auteurs scenaristes,
P_un_element_auteurs dessinateurs, int no_serie) {
Un_tome *tome = (Un_tome *)malloc(sizeof(Un_tome));
assert(tome!= NULL);
tome->titre=strdup(titre);
tome->scenaristes=scenaristes;
tome->dessinateurs=dessinateurs;
tome->no_serie=no_serie;
return tome;
}
// //trim function ->
void trim(char *str) {
int pos = strlen(str) - 1;
while (pos > 0) {
char ch = str[pos];
if ((ch == ' ') || (ch == '\t') || (ch == '\n') || (ch == '\r')) {
str[pos] = 0;
} else {
break;
}
pos--;
}
}
//chercher serie
Une_serie *chercher_serie(P_un_element_series collectionSeries,char *titre) {
//assert(collectionSeries);
while(collectionSeries){
if(strcmp(collectionSeries->mot,titre)!=0){
collectionSeries=collectionSeries->suivant;
Une_serie *serie=(Une_serie *)malloc(sizeof(Une_serie));
assert(serie != NULL);
serie->titre=collectionSeries->mot;
return serie;
}
}
return NULL;
}
int main() {
char titre[MAXINPUT + 1];
int saisie;
P_un_element_series *collectionSeries=NULL;
//lire_collection(*collectionSeries,"collection.csv");
for(;;){
/*-----------------------------------------*/
printf("\n");
printf("Menu Utilisateur\n");
printf("1. Rechercher une serie.\n");
printf("2. Rechercher un tome.\n");
printf("3. Saisir un nouveau tome.\n");
printf("4. Saisir une nouvelle serie.\n");
printf("0. sortir.\n");
scanf("%d", &saisie);
fgets(titre, MAXINPUT, stdin);
switch (saisie) {
case 1:
printf("Recherche d'une serie : Donnez le titre d'une serie\n");
fgets(titre,MAXINPUT,stdin);
trim(titre);
Une_serie *serie=chercher_serie(*collectionSeries, titre);
if(serie){
afficher_serie(serie);
}
break;
/*-----------------------------------------*/
case 2:
printf("Recherche d'un tome:Donnez le titre d'un tome\n");
fgets(titre, MAXINPUT, stdin);
trim(titre);
Un_tome *tome=chercher_tome(*collectionSeries, titre);
if(tome!=NULL){
printf("Le tome est present dans la collection, il fait partie \n");
printf("de la serie: %s\n",tome->titre);
} else {
printf("Le tome n'a pas ete trouve dans la collection!\n");
}
break;
case 3:
printf("Saisir un nouveau tome: \n");
saisir_tome(collectionSeries);
break;
/*-----------------------------------------*/
case 4:
printf("Saisir une nouvelle serie: \n");
saisir_serie(collectionSeries);
break;
case 0:
exit(1);
break;
default: {
printf("Mauvaise saisie; reessayez!\n");
}
}
}
return 0;
} |
Partager