From 36319a7b7f898f4547c0d1dff88715bf1c434c55 Mon Sep 17 00:00:00 2001 From: Lukian LEIZOUR Date: Thu, 30 Nov 2023 15:59:10 +0100 Subject: [PATCH] commit --- .gitignore | 2 - conf.c | 10 +- data/confs | 1 + dataBackup/relations | 3 + fileManager.c | 4 +- main.exe | Bin 0 -> 53437 bytes screenManager.c | 41 +++++- singleFile.c | 299 +++++++++++++++++++++++-------------------- 8 files changed, 207 insertions(+), 153 deletions(-) delete mode 100644 .gitignore create mode 100644 main.exe diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5f320dc..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -main.exe -singleFile.exe \ No newline at end of file diff --git a/conf.c b/conf.c index 5d023ac..9278f44 100644 --- a/conf.c +++ b/conf.c @@ -91,6 +91,7 @@ ptListener newListenerChain() { listenerChain -> prev = NULL; listenerChain -> next = (ptListener) malloc(sizeof(tListener)); listenerChain -> next -> prev = listenerChain; + listenerChain -> next -> next = NULL; listenerChain -> id = -1; return listenerChain; @@ -159,20 +160,15 @@ void addConfToConfList(ptConfList confList, ptConf conf, int grade) { void removeConfFromConfList(ptConfList confList, ptConf conf) { ptConfList px = confList; - while (px -> next != NULL && px -> conf != conf) { + while (px -> next != NULL && px -> next -> conf != conf) { px = px -> next; } - printConfList(confList -> next); - printf("%d\n", px -> conf -> id); - if (px -> next != NULL && px -> next -> conf == conf) { ptConfList tmp = px -> next -> next; free(px -> next); px -> next = tmp; } - - system("pause"); } void printConfList(ptConfList confList) { @@ -202,7 +198,7 @@ void addListenerToListenerList(ptListenerList listenerList, ptListener listener, void removeListenerFromListenerList(ptListenerList listenerList, ptListener listener) { ptListenerList px = listenerList; - while (px -> next != NULL && px -> listener != listener) { + while (px -> next != NULL && px -> next -> listener != listener) { px = px -> next; } diff --git a/data/confs b/data/confs index fbe43fa..fa10f60 100644 --- a/data/confs +++ b/data/confs @@ -1,3 +1,4 @@ +1,Rapport_du_GIEC,Jean_Jouzzel,15,11,2022 2,L_esprit_critique,Thomas_Durand,6,2,2023 3,La_resilience,Arthur_Keller,20,10,2022 4,American_lobbying,Salah_Oueslati,30,11,2023 diff --git a/dataBackup/relations b/dataBackup/relations index a8edff2..423a92f 100644 --- a/dataBackup/relations +++ b/dataBackup/relations @@ -1,2 +1,5 @@ 1:12;0,1;4 +2:12;0,1;4 +3:12;0,1;4 +4:12;0,1;4 9:20;5 diff --git a/fileManager.c b/fileManager.c index e6d6088..6c81bec 100644 --- a/fileManager.c +++ b/fileManager.c @@ -94,8 +94,10 @@ void saveRelations(ptConf confChain) { FILE *file = fopen("./data/relations", "w"); ptConf px = confChain; ptListenerList py; + printf("test"); while(px -> next != NULL){ - py = px -> listeners; + printf("test"); + py = px -> listeners -> next; if (py -> next != NULL) { fprintf(file, "%d:", px -> id); diff --git a/main.exe b/main.exe new file mode 100644 index 0000000000000000000000000000000000000000..b3053ca0f6d8d629ca07f5ceebfd462a2acf0a92 GIT binary patch literal 53437 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 next; + + printf("\n"); + while (px -> next != NULL) { + printf("%d : %s\n", px -> id, px -> title); + px = px -> next; + } + printf("\n"); + int id; printf("Id de la conference a supprimer : "); @@ -167,6 +178,7 @@ void menuConf(ptConf confChain, ptListener listenerChain) { removeConf(confChain, id); saveConf(confChain -> next); + saveRelations(confChain -> next); menuConf(confChain, listenerChain); break; } @@ -216,6 +228,8 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { system("cls"); drawMenu(options, 4); goToCoords(0, 12); + tasse(); + printf("\n"); printf("Que voulez-vous faire ? : "); int choice; scanf("%d", &choice); @@ -264,6 +278,15 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { case 3: { + ptListener px = listenerChain -> next; + + printf("\n"); + while (px -> next != NULL) { + printf("%d : %s\n", px -> id, px -> name); + px = px -> next; + } + printf("\n"); + int id; printf("Id de l'abonne a supprimer : "); @@ -271,6 +294,7 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { removeListener(listenerChain, id); saveListeners(listenerChain -> next); + saveRelations(confChain -> next); menuAbo(confChain, listenerChain); break; } @@ -308,6 +332,21 @@ void menu(ptConf confChain, ptListener listenerChain) case 3: { + ptConf px = confChain -> next; + ptListener py = listenerChain -> next; + + printf("\n"); + while (px -> next != NULL) { + printf("%d : %s\n", px -> id, px -> title); + px = px -> next; + } + printf("\n"); + while (py -> next != NULL) { + printf("%d : %s\n", py -> id, py -> name); + py = py -> next; + } + printf("\n"); + int confId, listenerId, grade; printf("Entrez l'ID de la conference : "); scanf("%d", &confId); @@ -317,7 +356,7 @@ void menu(ptConf confChain, ptListener listenerChain) scanf("%d", &grade); if (participateToConf(confChain, listenerChain, confId, listenerId, grade) != -1) { - saveRelations(confChain); + saveRelations(confChain -> next); } else { printf("La note doit etre comprise entre 0 et 5 et l'abonne ne doit pas avoir deja participe a la conference\n\n"); system("pause"); diff --git a/singleFile.c b/singleFile.c index 6483b3e..494561a 100644 --- a/singleFile.c +++ b/singleFile.c @@ -60,8 +60,10 @@ ptListener newListenerChain(); int addListener(ptListener listenerChain, int id, char name[], int age, int level); void removeListener(ptListener listenerChain, int id); void addConfToConfList(ptConfList confList, ptConf conf, int grade); +void removeConfFromConfList(ptConfList confList, ptConf conf); void printConfList(ptConfList confList); void addListenerToListenerList(ptListenerList listenerList, ptListener listener, int grade); +void removeListenerFromListenerList(ptListenerList listenerList, ptListener listener); void printListenerList(ptListenerList listenerList); int participateToConf(ptConf confChain, ptListener listenerChain, int confId, int listenerId, int grade); int confGradeAvg(ptConf conf); @@ -89,7 +91,9 @@ ptConf newConfChain() { ptConf confChain = (ptConf)malloc(sizeof(tConf)); - confChain->next = NULL; + confChain->next = (ptConf)malloc(sizeof(tConf)); + confChain->next->next = NULL; + confChain->id = -1; return confChain; } @@ -110,7 +114,9 @@ void addConf(ptConf confChain, int id, char title[], char speaker[], int day, in strcpy(px->title, title); strcpy(px->speaker, speaker); px->listeners = (ptListenerList)malloc(sizeof(tListenerList)); - px->listeners->next = NULL; + px->listeners->next = (ptListenerList)malloc(sizeof(tListenerList)); + px->listeners->listener = NULL; + px->listeners->next->next = NULL; px->next = (ptConf)malloc(sizeof(tConf)); px->next->next = NULL; } @@ -119,42 +125,24 @@ void removeConf(ptConf confChain, int id) { ptConf px = confChain; - if (px->next == NULL) + while (px->next != NULL && px->next->id != id) { - return; + px = px->next; } - else if (px->next->next == NULL) - { + if (px->next != NULL && px->next->id == id) + { + ptListenerList py = px->next->listeners->next; + + while (py->next != NULL) + { + removeConfFromConfList(py->listener->confs, px->next); + py = py->next; + } + + ptConf tmp = px->next->next; free(px->next); - px->next = NULL; - } - else if (px->id == id && px->next->next != NULL) - { - px->id = px->next->id; - strcpy(px->title, px->next->title); - strcpy(px->speaker, px->next->speaker); - px->day = px->next->day; - px->month = px->next->month; - px->year = px->next->year; - - ptConf tmp = px->next; - px->next = px->next->next; - free(tmp); - } - else - { - while (px->next != NULL && px->next->id != id) - { - px = px->next; - } - - if (px->next->id == id) - { - ptConf tmp = px->next; - px->next = px->next->next; - free(tmp); - } + px->next = tmp; } } @@ -181,7 +169,10 @@ ptListener newListenerChain() ptListener listenerChain = (ptListener)malloc(sizeof(tListener)); listenerChain->prev = NULL; - listenerChain->next = NULL; + listenerChain->next = (ptListener)malloc(sizeof(tListener)); + listenerChain->next->prev = listenerChain; + listenerChain->next->next = NULL; + listenerChain->id = -1; return listenerChain; } @@ -205,7 +196,9 @@ int addListener(ptListener listenerChain, int id, char name[], int age, int leve px->age = age; px->level = level; px->confs = (ptConfList)malloc(sizeof(tConfList)); - px->confs->next = NULL; + px->confs->next = (ptConfList)malloc(sizeof(tConfList)); + px->confs->conf = NULL; + px->confs->next->next = NULL; px->next = (ptListener)malloc(sizeof(tListener)); px->next->next = NULL; px->next->prev = px; @@ -215,41 +208,26 @@ int addListener(ptListener listenerChain, int id, char name[], int age, int leve void removeListener(ptListener listenerChain, int id) { ptListener px = listenerChain; - if (px->next == NULL) + + while (px->next != NULL && px->next->id != id) { - return; + px = px->next; } - else if (px->id == id && px->next->next == NULL) + + if (px->next != NULL && px->next->id == id) { + ptConfList py = px->next->confs->next; + + while (py->next != NULL) + { + removeListenerFromListenerList(py->conf->listeners, px->next); + py = py->next; + } + + ptListener tmp = px->next->next; free(px->next); - px->next = NULL; - } - else if (px->id == id) - { - px->id = px->next->id; - strcpy(px->name, px->next->name); - px->age = px->next->age; - px->level = px->next->level; - - ptListener tmp = px->next; - px->next = px->next->next; + px->next = tmp; px->next->prev = px; - free(tmp); - } - else - { - while (px->next != NULL && px->next->id != id) - { - px = px->next; - } - - if (px->next->id == id) - { - ptListener tmp = px->next; - px->next = px->next->next; - px->next->prev = px; - free(tmp); - } } } @@ -268,44 +246,20 @@ void addConfToConfList(ptConfList confList, ptConf conf, int grade) px->next->next = NULL; } -void removeConfFromConfList(ptConf confChain, ptConfList confList, ptConf conf) +void removeConfFromConfList(ptConfList confList, ptConf conf) { + ptConfList px = confList; - if (confList->next == NULL) + while (px->next != NULL && px->next->conf != conf) { - return; + px = px->next; } - else if (confList->next->next == NULL && confList->conf == conf) - { - free(confList->next); - confList->next = NULL; - } - else if (confList->conf == conf && confList->next->next != NULL) - { - confList->conf = confList->next->conf; - confList->grade = confList->next->grade; - ptConfList tmp = confList->next->next; - free(confList->next); - confList->next = tmp; - } - else - { - ptConfList px = confList; - while (px->next != NULL && px->next->conf != conf) - { - if (confChain == conf && px->conf == conf->next) { - px->conf - } - - px = px->next; - } - - if (px->next->conf == conf) { - ptConfList tmp = px->next->next; - free(px->next); - px->next = tmp; - } + if (px->next != NULL && px->next->conf == conf) + { + ptConfList tmp = px->next->next; + free(px->next); + px->next = tmp; } } @@ -313,7 +267,7 @@ void printConfList(ptConfList confList) { ptConfList px = confList; - printf(" Participation aux conferences : "); + printf("Participation aux conferences : "); while (px->next != NULL) { printf("%s(%d) ", px->conf->title, px->grade); @@ -337,11 +291,28 @@ void addListenerToListenerList(ptListenerList listenerList, ptListener listener, px->next->next = NULL; } +void removeListenerFromListenerList(ptListenerList listenerList, ptListener listener) +{ + ptListenerList px = listenerList; + + while (px->next != NULL && px->next->listener != listener) + { + px = px->next; + } + + if (px->next != NULL && px->next->listener == listener) + { + ptListenerList tmp = px->next->next; + free(px->next); + px->next = tmp; + } +} + void printListenerList(ptListenerList listenerList) { ptListenerList px = listenerList; - printf(" Participants : "); + printf("Participants : "); while (px->next != NULL) { printf("%s(%d) ", px->listener->name, px->grade); @@ -366,7 +337,7 @@ int participateToConf(ptConf confChain, ptListener listenerChain, int confId, in px = px->next; } - pz = px->listeners; + pz = px->listeners->next; while (pz->next != NULL) { if (pz->listener->id == listenerId) @@ -394,7 +365,7 @@ int participateToConf(ptConf confChain, ptListener listenerChain, int confId, in int confGradeAvg(ptConf conf) { - ptListenerList px = conf->listeners; + ptListenerList px = conf->listeners->next; int total = 0, nb = 0; while (px->next != NULL) @@ -416,7 +387,7 @@ int confGradeAvg(ptConf conf) int confParticipations(ptConf conf) { - ptListenerList px = conf->listeners; + ptListenerList px = conf->listeners->next; int nb = 0; while (px->next != NULL) @@ -545,9 +516,11 @@ void saveRelations(ptConf confChain) FILE *file = fopen("./data/relations", "w"); ptConf px = confChain; ptListenerList py; + printf("test"); while (px->next != NULL) { - py = px->listeners; + printf("test"); + py = px->listeners->next; if (py->next != NULL) { @@ -585,7 +558,6 @@ void drawMenu(char *options[], int lenght); void tasse(); void menuConf(ptConf confChain, ptListener listenerChain); void menuAbo(ptConf confChain, ptListener listenerChain); - void menu(ptConf confChain, ptListener listenerChain); void goToCoords(int x, int y) @@ -694,6 +666,8 @@ void menuConf(ptConf confChain, ptListener listenerChain) system("cls"); drawMenu(options, 5); goToCoords(0, 13); + tasse(); + printf("\n"); printf("Que voulez-vous faire ? : "); int choice; scanf("%d", &choice); @@ -702,21 +676,21 @@ void menuConf(ptConf confChain, ptListener listenerChain) { case 1: { - ptConf px = confChain; + ptConf px = confChain->next; while (px->next != NULL) { - printf(" Id : %d\n Titre : %s\n Conferencier : %s\n", px->id, px->title, px->speaker); - printf(" Date : %d/%d/%d\n", px->day, px->month, px->year); - printf(" Nombre de participants : %d\n", confParticipations(px)); + printf("Id : %d\nTitre : %s\nConferencier : %s\n", px->id, px->title, px->speaker); + printf("Date : %d/%d/%d\n", px->day, px->month, px->year); + printf("Nombre de participants : %d\n", confParticipations(px)); if (px->listeners->next != NULL) { - printListenerList(px->listeners); + printListenerList(px->listeners->next); } int avg; if ((avg = confGradeAvg(px) != -1)) { - printf(" Moyenne des notes : %d\n", confGradeAvg(px)); + printf("Moyenne des notes : %d\n", confGradeAvg(px)); } printf("\n"); px = px->next; @@ -733,32 +707,43 @@ void menuConf(ptConf confChain, ptListener listenerChain) char speaker[20]; id = findConfId(confChain); - printf(" Titre de la conference : "); + printf("Titre de la conference : "); scanf("%29s", &title); - printf(" Nom du conferencier : "); + printf("Nom du conferencier : "); scanf("%19s", &speaker); - printf(" Jour : "); + printf("Jour : "); scanf("%d", &day); - printf(" Mois : "); + printf("Mois : "); scanf("%d", &month); - printf(" Annee : "); + printf("Annee : "); scanf("%d", &year); addConf(confChain, id, title, speaker, day, month, year); - saveConf(confChain); + saveConf(confChain->next); menuConf(confChain, listenerChain); break; } case 3: { + ptConf px = confChain->next; + + printf("\n"); + while (px->next != NULL) + { + printf("%d : %s\n", px->id, px->title); + px = px->next; + } + printf("\n"); + int id; - printf(" Id de la conference a supprimer : "); + printf("Id de la conference a supprimer : "); scanf("%d", &id); removeConf(confChain, id); - saveConf(confChain); + saveConf(confChain->next); + saveRelations(confChain->next); menuConf(confChain, listenerChain); break; } @@ -766,11 +751,11 @@ void menuConf(ptConf confChain, ptListener listenerChain) case 4: { int day, month, year, time; - printf(" Jour : "); + printf("Jour : "); scanf("%d", &day); - printf(" Mois : "); + printf("Mois : "); scanf("%d", &month); - printf(" Annee : "); + printf("Annee : "); scanf("%d", &year); time = day + 31 * month + 365 * year; @@ -795,7 +780,7 @@ void menuConf(ptConf confChain, ptListener listenerChain) } } - saveConf(confChain); + saveConf(confChain->next); menuConf(confChain, listenerChain); } @@ -815,7 +800,9 @@ void menuAbo(ptConf confChain, ptListener listenerChain) system("cls"); drawMenu(options, 4); goToCoords(0, 12); - printf(" Que voulez-vous faire ? : "); + tasse(); + printf("\n"); + printf("Que voulez-vous faire ? : "); int choice; scanf("%d", &choice); @@ -823,14 +810,14 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { case 1: { - ptListener py = listenerChain; + ptListener py = listenerChain->next; while (py->next != NULL) { - printf(" Id : %d\n Nom: %s\n Age: %d\n Niveau: %d\n", py->id, py->name, py->age, py->level); + printf("Id : %d\nNom: %s\nAge: %d\nNiveau: %d\n", py->id, py->name, py->age, py->level); if (py->confs->next != NULL) { - printConfList(py->confs); + printConfList(py->confs->next); } printf("\n"); py = py->next; @@ -846,20 +833,20 @@ void menuAbo(ptConf confChain, ptListener listenerChain) char name[20]; id = findListenerId(listenerChain); - printf(" Nom : "); + printf("Nom : "); scanf("%19s", &name); - printf(" Age : "); + printf("Age : "); scanf("%d", &age); - printf(" Niveau : "); + printf("Niveau : "); scanf("%d", &level); if (addListener(listenerChain, id, name, age, level) != -1) { - saveListeners(listenerChain); + saveListeners(listenerChain->next); } else { - printf(" Le niveau de l'abonne doit etre compris entre 0 et 5.\n\n"); + printf("Le niveau de l'abonne doit etre compris entre 0 et 5.\n\n"); system("pause"); } menuAbo(confChain, listenerChain); @@ -868,13 +855,24 @@ void menuAbo(ptConf confChain, ptListener listenerChain) case 3: { + ptListener px = listenerChain->next; + + printf("\n"); + while (px->next != NULL) + { + printf("%d : %s\n", px->id, px->name); + px = px->next; + } + printf("\n"); + int id; - printf(" Id de l'abonne a supprimer : "); + printf("Id de l'abonne a supprimer : "); scanf("%d", &id); removeListener(listenerChain, id); - saveListeners(listenerChain); + saveListeners(listenerChain->next); + saveRelations(confChain->next); menuAbo(confChain, listenerChain); break; } @@ -896,7 +894,7 @@ void menu(ptConf confChain, ptListener listenerChain) goToCoords(0, 13); tasse(); printf("\n"); - printf(" Que voulez-vous faire ? : "); + printf("Que voulez-vous faire ? : "); int choice; scanf("%d", &choice); @@ -912,21 +910,38 @@ void menu(ptConf confChain, ptListener listenerChain) case 3: { + ptConf px = confChain->next; + ptListener py = listenerChain->next; + + printf("\n"); + while (px->next != NULL) + { + printf("%d : %s\n", px->id, px->title); + px = px->next; + } + printf("\n"); + while (py->next != NULL) + { + printf("%d : %s\n", py->id, py->name); + py = py->next; + } + printf("\n"); + int confId, listenerId, grade; - printf(" Entrez l'ID de la conference : "); + printf("Entrez l'ID de la conference : "); scanf("%d", &confId); - printf(" Entrez l'ID du participant : "); + printf("Entrez l'ID du participant : "); scanf("%d", &listenerId); - printf(" Entrez la note attribuee par le participant : "); + printf("Entrez la note attribuee par le participant : "); scanf("%d", &grade); if (participateToConf(confChain, listenerChain, confId, listenerId, grade) != -1) { - saveRelations(confChain); + saveRelations(confChain->next); } else { - printf(" La note doit etre comprise entre 0 et 5 et l'abonne ne doit pas avoir deja participe a la conference\n\n"); + printf("La note doit etre comprise entre 0 et 5 et l'abonne ne doit pas avoir deja participe a la conference\n\n"); system("pause"); } @@ -952,7 +967,7 @@ void menu(ptConf confChain, ptListener listenerChain) px = px->next; } - printf(" La conférence la mieux notee est : %s\n\n", confMax->title); + printf("La conférence la mieux notee est : %s\n\n", confMax->title); system("pause"); menu(confChain, listenerChain);