aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/structures des données/tme/tme3-5/exo1/main.c
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-05 16:28:33 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-05 16:28:33 +0200
commit85fbaa4d9381e435be129aa7bc4ea6a472acb2b2 (patch)
treea5d0149a7e70ec1ec24edd2fc0a6c2971e94130a /semestre 3/structures des données/tme/tme3-5/exo1/main.c
parent4c4b68ac62514cad87e023b877571d1952588d4e (diff)
Cours du 29 au 3 octobre
Diffstat (limited to 'semestre 3/structures des données/tme/tme3-5/exo1/main.c')
-rw-r--r--semestre 3/structures des données/tme/tme3-5/exo1/main.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/semestre 3/structures des données/tme/tme3-5/exo1/main.c b/semestre 3/structures des données/tme/tme3-5/exo1/main.c
new file mode 100644
index 0000000..f1e85c0
--- /dev/null
+++ b/semestre 3/structures des données/tme/tme3-5/exo1/main.c
@@ -0,0 +1,66 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "entreeSortieLC.h"
+#include "biblioLC.h"
+
+void menu(){
+ printf("Entrez l'action à effectuer :\n");
+ printf("0. Sortie du programme\n");
+ printf("1. Affichage\n");
+ printf("2. Insérer ouvrage\n");
+ printf("3. Afficher les doublons\n");
+}
+
+int main(int argc, char** argv){
+ if (argc != 3) {
+ printf("nombre d'argument invalide\n");
+ return 1;
+ }
+ char* file = argv[1];
+ int n = atoi(argv[2]);
+ Biblio* bib = charger_n_entrees(file, n);
+ if (!bib){
+ printf("erreur lors de la lecture du fichier");
+ return 2;
+ }
+ printf("tout va bien :D\n");
+ int rep;
+ do {
+ menu();
+ char s[2];
+ char* r = fgets(s, 2, stdin);
+ if (!r) {
+ printf("erreur lors de la lecture :(\n");
+ return 3;
+ }
+ s[1] = '\0';
+ rep = atoi(s);
+ printf("\n");
+ switch(rep){
+ case 1:
+ printf("Affichage : \n");
+ afficher_biblio(bib);
+ break;
+ case 2:
+ int num;
+ char titre[256];
+ char auteur[256];
+ printf("Veuillez ecrire le numero, le titre et l' auteur de l' ouvrage. \n");
+ /* On suppose que le titre et l’auteur ne contiennent pas d’espace*/
+ if (scanf("%d %s %s", &num, titre, auteur) == 3){
+ inserer_en_tete(bib, num, titre, auteur);
+ printf("Ajout fait.\n");
+ } else {
+ printf("Erreur format\n");
+ }
+ break;
+ case 3:
+ Biblio* db = rechercher_doublons(bib);
+ afficher_biblio(db);
+ break;
+ }
+ printf("\n");
+ } while (rep != 0);
+ printf ("Merci, et au revoir.\n");
+ return 0;
+}