Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours langage C » Applications langage c

Gestion des notes d'une classe application en langage C

Gestion des notes d'une classe application en langage C
Participez au vote ☆☆☆☆☆★★★★★
Page suivante pour Télécharger

Gestion des notes d'une classe application en langage C

Cet article propose en détaille une application en langage C sur la gestion des notes d'une classe.

On a utilisé la bibliothèque ncurses pour l'interface.

Et pour l'enregistrement des données on a utilise les fichiers.

Vous pourrez télécharger le fichier au format zip il contient le code sources complet.

Extrait du code source :

#include <string.h>

#include "etudiant.h"

#include "utilitaire.h"

#include "note.h"

void ajout_etudiant(etudiant e) {

   FILE* fichier = fopen("etudiants.smf", "a");

   e.nom = str_replace(e.nom, ' ', ':');

   e.prenom = str_replace(e.prenom, ' ', ':');

   fprintf(fichier, "%d %d %s %s %f\n", e.id, e.age, e.nom, e.prenom, e.moyenne);

   fclose(fichier);

}

int nbreEtudiant() {

   FILE* fichier;

   int i = 0;

   if ((fichier = fopen("etudiants.smf", "r")) != NULL) {

       etudiant e;

       e.nom = (char*) malloc(0);

       e.prenom = (char*) malloc(0);

       while (fscanf(fichier, "%d %d %s %s %f\n", &(e.id), &(e.age), e.nom, e.prenom, &(e.moyenne)) == 5)

           i++;

       fclose(fichier);

       free(e.nom);

       free(e.prenom);

   }

   return i;

}

etudiant lecture_etudiant(int position) {

   etudiant e;

   int i;

   FILE* fichier = fopen("etudiants.smf", "r");

   e.nom = (char*) malloc(0);

   e.prenom = (char*) malloc(0);

   for (i = 1; i <= position; i++) {

       fscanf(fichier, "%d %d %s %s %f\n", &(e.id), &(e.age), e.nom, e.prenom, &(e.moyenne));

   }

   e.nom = str_replace(e.nom, ':', ' ');

   e.prenom = str_replace(e.prenom, ':', ' ');

   fclose(fichier);

   return e;

}

void chargement_etudiant() {

   int i = 0;

   tailleEtudiant = nbreEtudiant();

   tEtudiant = (etudiant*) malloc(tailleEtudiant * sizeof (etudiant));

   for (i = 0; i < tailleEtudiant; i++)

       tEtudiant[i] = lecture_etudiant(i + 1);

}

void enregistrement_etudiant() {

   int i;

   remove("etudiants.smf");

   for (i = 0; i < tailleEtudiant; i++)

       ajout_etudiant(tEtudiant[i]);

}

void tAjoutEtudiant(etudiant e) {

   if (tailleEtudiant == 0)

       e.id = 1;

   else

       e.id = tEtudiant[tailleEtudiant - 1].id + 1;

   e.moyenne = -1;

   tEtudiant = (etudiant*) realloc(tEtudiant, (tailleEtudiant + 1) * sizeof (etudiant));

   tailleEtudiant++;

   tEtudiant[tailleEtudiant - 1] = e;

}

void suppression_etudiant(int id) {

   int i, j = 0;

   etudiant* tab = (etudiant*) malloc((tailleEtudiant - 1) * sizeof (etudiant));

   for (i = 0; i < tailleEtudiant; i++) {

       if (tEtudiant[i].id != id) {

           tab[j] = tEtudiant[i];

           j++;

       }

   }

   if (j != tailleEtudiant) {

       tailleEtudiant--;

       tEtudiant = tab;

   }

   free(tab);

/*

   i = 0;

   while (i < tailleNote) {

       if (tNote[i].id_etudiant == id) {

           suppression_note(tNote[i].id);

       } else

           i++;

   }

*/

}

void listeEtudiant() {

   etudiant e;

   int i;

   for (i = 0; i < tailleEtudiant; i++) {

       e = tEtudiant[i];

       printf("%d %d %s %s\n", e.id, e.age, e.nom, e.prenom);

   }

}

etudiant* recherche_etudiant(char* nom, char* prenom) {

   int i, j = 0;

   char*nom1 = malloc(0), *prenom1 = malloc(0);

   etudiant* tab = (etudiant*) malloc(sizeof (etudiant));

   for (i = 0; i < tailleEtudiant; i++) {

       prenom1 = tEtudiant[i].prenom;

       nom1 = tEtudiant[i].nom;

       if (strcmp(prenom1, prenom) == 0 || strcmp(nom1, nom) == 0) {

           tab[j] = tEtudiant[i];

           j++;

           tab = realloc(tab, sizeof (etudiant) + 1);

       }

       i++;

   }

   return tab;

}

etudiant recupererEtudiant(int id) {

   int i;

   etudiant e;

   e.id = -1;

   for (i = 0; i < tailleEtudiant; i++) {

       if (tEtudiant[i].id == id)

           return tEtudiant[i];

   }

   return e;

}

void modification_etudiant(etudiant e) {

   int i;

   for (i = 0; i < tailleEtudiant; i++) {

       if (tEtudiant[i].id == e.id) {

           tEtudiant[i] = e;

           break;

       }

   }

}

void classement() {

   int i, j;

   etudiant e;

   for (i = 0; i < tailleEtudiant - 1; i++)

       for (j = i + 1; j < tailleEtudiant; j++) {

           if (tEtudiant[i].moyenne < tEtudiant[j].moyenne) {

              e = tEtudiant[i];

               tEtudiant[i] = tEtudiant[j];

               tEtudiant[j] = e;

           }

       }

}

void trier() {

   int i, j;

   etudiant e;

   for (i = 0; i < tailleEtudiant - 1; i++)

       for (j = i + 1; j < tailleEtudiant; j++) {

           if (tEtudiant[i].id > tEtudiant[j].id) {

               e = tEtudiant[i];

               tEtudiant[i] = tEtudiant[j];

               tEtudiant[j] = e;

           }

       }

}

int rang(int id) {

   int i;

   classement();

   for (i = 0; i < tailleEtudiant; i++)

       if (tEtudiant[i].id == id)

           return i + 1;

}

float moyenneSurMatiere(etudiant e, int m) {

   int nbreNote = 0, i;

   float somPoint = 0;

   for (i = 0; i < tailleNote; i++)

       if ((tNote[i].id_etudiant == e.id) && (tNote[i].id_matiere == m)) {

           nbreNote++;

           somPoint += tNote[i].note;

       }

   if (nbreNote == 0)

       return -1;

   else

       return somPoint / nbreNote;

}

Decouvrir ces documents

  • Application Excel sur la gestion de notes de frais

    Application Excel sur la gestion de notes de frais

  • Application Excel sur la gestion de relevé de notes des élèves

    Application Excel sur la gestion de relevé de notes des élèves

  • Application Excel sur la gestion des taches

    Application Excel sur la gestion des taches

  • Application en langage C sur la gestion de stock

    Application en langage C sur la gestion de stock

  • Application en langage C pour la gestion des absences

    Application en langage C pour la gestion des absences

  • Modèle Excel gestion des notes de frais

    Modèle Excel gestion des notes de frais

  • Application console de gestion cabinet médicale avec le langage C

    Application console de gestion cabinet médicale avec le langage C

  • Projet gestion des comptes bancaires en langage C

    Projet gestion des comptes bancaires en langage C

Articles connexes

  • Exercice Visual Basic : Mini application de gestion de petit commerce
  • Application Python : gestion des comptes
  • Tutoriel Word : comment insérer des notes de bas de page à la fin du document
  • Exercices java programmes - condition - moyenne d'une classe - Tables de vérité
  • TOP logiciels de gestion et planning d'horaire journalier et hebdomadaire
  • Exercice Algorithme : Les Tableaux - Le Tri - Les Fichiers
  • Exercice Algorithme : Les Tableaux (Partie 1)
  • Installer, configurer et utiliser l’application Outlook (OWA) sur Android et IOS 
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02