Vous êtes sur la page 1sur 2

1 #include <stdio.

h>
2 #include <stdlib.h>
3 #include <string.h>
4
5
6 struct Tache {
7 char description[100];
8 int priorite;
9 };
10
11
12 void ajouterTache(FILE *fichier1);
13 void afficherTaches(FILE *fichier1);
14 void supprimerTache(FILE *fichier1, const char *description);
15 void modifierPrioriteé(FILE*fichier1, const char*description);
16
17 int main() {
18 FILE *fichier1 = fopen("taches.txt", "a+");
19
20 if (fichier1 == NULL) {
21 perror("Erreur lors de l'ouverture du fichier");
22 exit("erreur");
23 }
24
25 int choix;
26 do {
27 printf("Options:\n");
28 printf("1. Ajouter une tache\n");
29 printf("2. Afficher les taches\n");
30 printf("3. Supprimer une tache\n");
31 printf("4. modifier la priorite d'une tache\n");
32 printf("5. Quitter\n");
33 printf("Choix: ");
34 scanf("%d", &choix);
35
36 switch (choix) {
37 case 1:
38 ajouterTache(fichier1);
39 break;
40 case 2:
41 afficherTaches(fichier1);
42 break;
43 case 3:
44 {
45 char description[100];
46 printf("Entrez la description de la tache a supprimer: ");
47 scanf("%s", description);
48 supprimerTache(fichier1, description);
49 }
50 break;
51
52 case 4:
53 {
54 char description[100];
55 printf("Entrez la description de la tache dont vous voulez modifier la priorite: ");
56 scanf("%s", description);
57 modifierPrioriteé(fichier1, description);
58
59 break;
60
61 case 5:
62 printf("Programme termine.\n");
63 break;
64
65 default:
66 printf(" réessayer.");
67 }
68 } while (choix != 5);
69
70 fclose(fichier1);
71
72 return 0;
73 }
74
75 void ajouterTache(FILE *fichier1) {
76 struct Tache nouvelleTache;
77
78 printf("Entrez la description de la tache: ");
79 scanf("%s", nouvelleTache.description);
80
81 printf("Entrez la priorite de la tache: ");
82 scanf("%d", &nouvelleTache.priorite);
83
84
85 fwrite(&nouvelleTache, sizeof(struct Tache), 1, fichier1);
86
87 printf("Tache ajoutee avec succes.\n");
88 }
89
90 void afficherTaches(FILE *fichier1) {
91 rewind(fichier1);
92
93 struct Tache tacheCourante;
94
95 printf("\nListe des taches:\n");
96 while (fread(&tacheCourante, sizeof(struct Tache), 1, fichier1) == 1) {
97 printf("Description: %s, Priorite: %d\n", tacheCourante.description, tacheCourante.priorite);
98 }
99 }
100
101 void supprimerTache(FILE *fichier1, const char *description) {
102 FILE *tempFile = fopen("temp.txt", "w");
103
104 if (tempFile == NULL) {
105 perror("Erreur lors de la creation du fichier temporaire");
106 exit("erreur");
107 }
108
109 struct Tache tacheCourante;
110
111 rewind(fichier1);
112
113 while (fread(&tacheCourante, sizeof(struct Tache), 1, fichier1) == 1) {
114 if (strcmp(tacheCourante.description, description) != 0) {
115
116 fwrite(&tacheCourante, sizeof(struct Tache), 1, tempFile);
117 }
118 }
119
120 fclose(fichier1);
121 fclose(tempFile);
122
123 remove("taches.txt");
124 rename("temp.txt", "taches.txt");
125 fichier1 = fopen("taches.txt", "a+");
126 printf("Tache supprimee avec succes.\n");
127 printf("priorite modifiee avec succes.\n");
128
129 }

Vous aimerez peut-être aussi