0% ont trouvé ce document utile (0 vote)
50 vues3 pages

Langage C

Transféré par

Valisoa Sitraka
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
50 vues3 pages

Langage C

Transféré par

Valisoa Sitraka
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#include <stdio.

h>
#include <stdlib.h>
typedef struct {
char matricule[10];
char nom[50];
char prenom[50];
char dateNaissance[11];
float notes[5][3]; // 5 modules, 3 types de notes (cours, TD, TP)
float moyenneSemestre;
int aReussi; // 1 si la moyenne >= 10, 0 sinon
} Etudiant;

void saisirEtudiant(Etudiant *etudiant) {


printf("Matricule: ");
scanf("%s", etudiant->matricule);
printf("Nom: ");
scanf("%s", etudiant->nom);
printf("Prenom: ");
scanf("%s", etudiant->prenom);
printf("Date de naissance (JJ/MM/AAAA): ");
scanf("%s", etudiant->dateNaissance);
for (int i = 0; i < 5; i++) {
printf("Module %d - Note cours: ", i + 1);
scanf("%f", &etudiant->notes[i][0]);
printf("Module %d - Note TD: ", i + 1);
scanf("%f", &etudiant->notes[i][1]);
printf("Module %d - Note TP (entrez -1 si pas de TP): ", i + 1);
scanf("%f", &etudiant->notes[i][2]);
}
}

float calculerMoyenneModule(float notes[]) {


if (notes[2] != -1) { // Si le TP est inclus
return 0.4 * notes[0] + 0.4 * notes[1] + 0.2 * notes[2];
} else {
return 0.5 * notes[0] + 0.5 * notes[1];
}
}

void calculerMoyenneSemestre(Etudiant *etudiant, float coefficients[]) {


float somme = 0;
float sommeCoeffs = 0;
for (int i = 0; i < 5; i++) {
float moyenneModule = calculerMoyenneModule(etudiant->notes[i]);
somme += moyenneModule * coefficients[i];
sommeCoeffs += coefficients[i];
}
etudiant->moyenneSemestre = somme / sommeCoeffs;
etudiant->aReussi = (etudiant->moyenneSemestre >= 10);
}

void sauvegarderEtudiant(Etudiant etudiant, const char *nomFichier) {


FILE *fichier = fopen(nomFichier, "a"); // Mode ajout
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier.\n");
return;
}
fprintf(fichier, "%s;%s;%s;%s;%.2f\n",
etudiant.matricule, etudiant.nom, etudiant.prenom,
etudiant.dateNaissance, etudiant.moyenneSemestre);
fclose(fichier);
}

void rechercherEtudiant(const char *nomFichier, const char *matriculeRecherche) {


FILE *fichier = fopen(nomFichier, "r");
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier.\n");
return;
}

char ligne[256];
int trouve = 0;
while (fgets(ligne, sizeof(ligne), fichier)) {
char matricule[10], nom[50], prenom[50], dateNaissance[11];
float moyenne;
sscanf(ligne, "%[^;];%[^;];%[^;];%[^;];%f", matricule, nom, prenom,
dateNaissance, &moyenne);

if (strcmp(matricule, matriculeRecherche) == 0) {
printf("Etudiant trouve : %s %s, Moyenne : %.2f\n", nom, prenom,
moyenne);
trouve = 1;
break;
}
}

if (!trouve) {
printf("Etudiant non trouve.\n");
}

fclose(fichier);
}

#includevry <stdio.h>
#include <stdlib.h>
#include <string.h>

// Définition des structures et prototypes des fonctions ici...

int main() {
const char *nomFichier = "etudiants.txt"; // Nom du fichier de stockage
Etudiant etudiant;
float coefficients[5] = {3, 2, 4, 1, 3}; // Exemple de coefficients par module

int choix;
do {
printf("\n===== Gestion des Etudiants =====\n");
printf("1. Saisir un etudiant\n");
printf("2. Calculer la moyenne d'un etudiant\n");
printf("3. Sauvegarder un etudiant dans le fichier\n");
printf("4. Rechercher un étudiant par matricule\n");
printf("5. Quitter\n");
printf("Votre choix : ");
scanf("%d", &choix);

switch (choix) {
case 1:
printf("\n--- Saisie d'un etudiant ---\n");
saisirEtudiant(&etudiant);
break;

case 2:
printf("\n--- Calcul de la moyenne de l'etudiant ---\n");
calculerMoyenneSemestre(&etudiant, coefficients);
printf("Moyenne semestrielle : %.2f\n", etudiant.moyenneSemestre);
printf("Resultat : %s\n", etudiant.aReussi ? "Reussi" : "echoue");
break;

case 3:
printf("\n--- Sauvegarde de l'etudiant dans le fichier ---\n");
sauvegarderEtudiant(etudiant, nomFichier);
printf("Etudiant sauvegarde avec succes.\n");
break;

case 4:
printf("\n--- Recherche d'un etudiant par matricule ---\n");
char matriculeRecherche[10];
printf("Entrez le matricule a rechercher : ");
scanf("%s", matriculeRecherche);
rechercherEtudiant(nomFichier, matriculeRecherche);
break;

case 5:
printf("\nAu revoir !\n");
break;

default:
printf("\nChoix invalide. Veuillez réessayer.\n");
}
} while (choix != 5);

return 0;
}

Vous aimerez peut-être aussi