Salut à tous et à toutes, quelqu'un pourrait me guider dans mon problème svp car je suis bloquée... ? Voici la consigne de mon formateur:
Je vous partage ce que je tente de réaliser ces dernières semaines car plus rien me vient à l'esprit pour améliorer ce code. Soyez indulgent quant à mon niveau s'il vous plait car je me suis déjà donné du mal pour un truc que je sais ne tourne pas.2 choses à faire :
1) La réduction de 150 du montant de la cotisation pour tous les membres du club "LESMEILLEURS"
2) La modification de la valeur 'club' d'un enregistrement dont le numéro est fourni au clavier par l'utilisateur. La nouvelle valeur 'club' sera également entrée au clavier par l'utilisateur.
Remarques :
le fichier original f1 est consituté d'enregistrement dont les informations sont organisées de la manière suivante:
1)une chaine de maximum 30 caractères représentant la valeur 'nom' toujours exprimée en caractères minuscules,
2)une chaine de maximum 40 caractères représentant la valeur 'nom' toujours exprimée en caractères majuscules,
3)une valeur de type int représentant la valeur "cotisation"
Par contre, je suis très ouverte aux critiques constructives qui visent à m'aider pour ne plus faire les mêmes erreurs et donc m'améliorer...
Je préviens d'avance s'il vous plait de ne pas venir me dire qu'il ne faut jamais utiliser une fonction blacklistée ou banni (ou tout ce que vous voulez) car c'est mon formateur qui me les impose et je suis donc obligée de les utiliser (donc il n'y aura hélas pas la fonction fgets à la place de gets même si c'est très con. Je n'y peux rien, c'est les études je dois passer par là...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <conio.h> //bilbio contenant la fonction getch() #include <stdio.h> #include <sdlib.h> #include <string.h> //strcmp() et strcpy() void init_fichier(FILE *); void modifienom (char *); void modifieclub (char *); struct membre { char nom [31], club[41]; int cotisation; } ; typedef struct membre MEMBRE; int main(int argc, char * argv[]) { FILE * f1; char adressefichiersurdisque [101]; printf("Entrer le nom et l'emplacement du fichier à créer : \n"); gets(adressefichiersurdisque); f1 = fopen(adressefichiersurdisque, "w+b"); if (f1 == NULL) { printf("Impossible de créer le fichier\n"); printf("Appuyer sur une touche pour quitter\n"); getch(); exit(1); } int_fichier(f1); //le fichier original est initialisé, je dois redéfinir cette fonction mais comment ? modifienom(f1); fclose(f1); system("PAUSE"); return 0; } void modifienom (FILE * f1) { MEMBRE temp; //création de la variable temporaire printf("Le nom va être modifiée\n"); fseek(f1,0,SEEK_SET); fread(&temp, sizeof(MEMBRE),1,f1); while (!feof(f1)) { if (strcmp (temp.com, "club") == 0 ) { strcpy(temp.com,"nom"); fseek(f1,-1 * sizeof(MEMBRE),SEEK_CUR); fwrite(&temp, sizeof(MEMBRE),1,f1); fseek(f1,0,SEEK_CUR); } fread (&temp, sizeof(MEMBRE),1,f1); } printf("Le nom a tété modifié\n"); } void modifiecotisation; MEMBRE tempcotisation; fseek (f1,0,SEEK_SET); printf("Réduction de 150 du montant de cotisation\n"); while fread (&tempscotisation, sizeof(MEMBRE), 1, f1, !feof(f1)) { if ( (strcmp(tempcotisation.club,"LESMEILLEURS")) ) { //je ne parviens pas à écrire un algorithme pour cette partie donc je sais pas quoi faire... } }
Partager