Accueil > Forum > > > > Programme Moyenne
Programme Moyenne
lundi 20 décembre 2010 à 00:26:43 |
Programme Moyenne

kable78
|
Bonjour,
Je cherche à faire un programme qui permet le calcul d'une moyenne à partir d'un fichier.
Dans ce fichier doit figurer le nom de l'élève suivit de sa note.
J'ai commencer par une fonction saisie et création (fichier)
Je demande à l'utilisateur de saisir le nombre d'étudiants.(allocation dynamique).
En fonction de ça j'alloue de la mémoire.
Ensuite je demande la saisie du nom de l'élève et ensuite sa note.
Le problème survient lorsque je veux écrire dans le fichier ce que j'ai récupèré.
Mon programme s'exécute mais m'indique qu'il du cessé de fonctionner.
Voici mon code :
Code C/C++ : #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char * saisie(void); // prototype de la fonction saisie
void lecture(float); // prototype de la fonction afficher
saisie(); //appel de la fonction saisie
}
char * saisie (void) {
int nbretudiant=0, i=0;
char* nom;
char* note = NULL;
// On demande le nombre de notes à l'utilisateur
printf("Combien d'etudiants ? ");
scanf("%d", &nbretudiant);
FILE*f;
f=fopen("c:\\etudiants.txt","w+");
if (nbretudiant > 0) // Il faut qu'il ait au moins une note
{
nom = malloc(nbretudiant * sizeof(char)); // On alloue de la mémoire pour le tableau
note = malloc(nbretudiant * sizeof(char));
if (nom == NULL) // On vérifie si l'allocation a marché ou pas
{
exit(0); // On arrête tout
}
// On demande le nom des amis un à un
for (i = 0 ; i < nbretudiant ; i++)
{
printf("Nom de l'eleve numero %d ? \n", i + 1);
scanf("%s", &nom[i]);
printf("Note de l'eleve numero %d ? \n",i + 1);
scanf("%s", ¬e[i]);
}
// On affiche les âges stockés un à un
printf("\n\nVos etudiants ont les notes suivantes :\n");
for (i = 0 ; i < nbretudiant ; i++)
{
//fgets(f,"%s", &nom[i]);
//fgets(f,": %s",note[i]);
}
fclose(f);
// On libère la mémoire allouée avec malloc, on n'en a plus besoin
free(nom);
free(note);
}
return 0;
}
Code : Je voudrais que dans mon fichier txt le format ressemble à ça :
DUPOND 10.00
MARTIN 12.00
RICHARD 14.00
En effet, cela me permettrait ensuite de récupérer plus facilement les notes.
Si quelqu'un pouvait m'aider dans un premier temps pour écrire correctement dans ce fichier txt.
Merci par avance
|
|
lundi 20 décembre 2010 à 04:06:38 |
Re : Programme Moyenne
|
lundi 20 décembre 2010 à 10:38:35 |
Re : Programme Moyenne

kable78
|
Bonjour et merci pour cette réponse.
Est-ce que en passant par deux tableaux différents cela n'est plus simple à gérer pour moi.
Je t'avoue que j'ai un peu de mal avec les tableaux à deux dimensions.
Est-ce que avec le code ci-dessous et donc deux tableaux différents un pour les noms et l'autre pour les notes cela n'est pas plus simple à gérer.
Concernant mon malloc comment je peux alors lui allouer automatique 10 cases quelque soit la longueur du nom. Est-ce que le buffer dont tu parles sers à cela ?
Code C/C++ : #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char * saisie(void); // prototype de la fonction saisie
void lecture(float); // prototype de la fonction afficher
saisie(); //appel de la fonction saisie
}
char * saisie (void) {
int nbretudiant=0, i=0;
char nom [10+1];
char age [5+1];
// On demande le nombre de notes à l'utilisateur
printf("Combien d'etudiants ? ");
scanf("%d", &nbretudiant);
FILE*f;
f=fopen("c:\\etudiants.txt","w+");
if (nbretudiant > 0) // Il faut qu'il ait au moins une note
{
nom = malloc(nbretudiant * sizeof(char));
note = malloc(nbretudiant * sizeof(char));
if (nom == NULL) // On vérifie si l'allocation a marché ou pas
{
exit(0); // On arrête tout
}
// On demande le nom des amis un à un
for (i = 0 ; i < nbretudiant ; i++)
{
printf("Nom de l'eleve numero %d ? \n", i + 1);
scanf("%s", &nom[i]);
printf("Note de l'eleve numero %d ? \n",i + 1);
scanf("%s", ¬e[i]);
}
// On affiche les âges stockés un à un
printf("\n\nVos etudiants ont les notes suivantes :\n");
for (i = 0 ; i < nbretudiant ; i++)
{
//fgets(f,"%s", &nom[i]);
//fgets(f,": %s",note[i]);
}
fclose(f);
// On libère la mémoire allouée avec malloc, on n'en a plus besoin
free(nom);
free(note);
}
return 0;
}
|
|
lundi 20 décembre 2010 à 14:16:19 |
Re : Programme Moyenne

kable78
|
Bonjour j'ai reussi à avancer.
Voici mon programme :
Maintenant je voudrais faire en sorte que la note se trouve toujours à la position 11.
Code C/C++ : #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char saisie(void); // prototype de la fonction saisie
void lecture(float); // prototype de la fonction afficher
saisie(); //appel de la fonction saisie
}
char saisie (void) {
int nbretudiant=0, i=0;
char **nom;
char **note;
// On demande le nombre de notes à l'utilisateur
printf("Combien d'etudiants ? ");
scanf("%d", &nbretudiant);
nom = malloc(nbretudiant); //Ici un tableau du nombre d'etudiant
note = malloc(nbretudiant); //Pareil
for ( i = 0; i < nbretudiant; i++){
nom[i] = malloc(sizeof(char) * 100); //100 char possible pour le nom
note[i] = malloc(sizeof(char) * 10); //10 char possible pour la note
}
FILE*f;
f=fopen("c:\\etudiants.txt","w+");
// On demande le nom des amis un à un
for (i = 0 ; i < nbretudiant ; i++)
{
printf("Nom de l'eleve numero %d ? \n", i + 1);
scanf("%s", &nom[i][0]);
//printf("nom de l'elève %s",&nom[i]);
printf("Note de l'eleve numero %d ? \n",i + 1);
scanf("%s", ¬e[i][0]);
}
// On affiche les âges stockés un à un
printf("\n\nVos etudiants ont les notes suivantes :\n");
for (i = 0 ; i < nbretudiant ; i++)
{
fprintf(f,"%s %s\n", &nom[i][0], ¬e[i][0]);
}
fclose(f);
// On libère la mémoire allouée avec malloc, on n'en a plus besoin
free(nom);
free(note);
for ( i = 0; i < nbretudiant; i++){
free(nom[i]);
free(note[i]);
}
return 0;
}
Avez-vous une idée de comment je peux faire ça ?
|
|
lundi 20 décembre 2010 à 15:09:26 |
Re : Programme Moyenne
|
lundi 20 décembre 2010 à 15:10:52 |
Re : Programme Moyenne
|
lundi 20 décembre 2010 à 15:18:32 |
Re : Programme Moyenne
|
lundi 20 décembre 2010 à 16:11:32 |
Re : Programme Moyenne
|
mardi 21 décembre 2010 à 18:36:39 |
Re : Programme Moyenne

kable78
|
Bonjour,
Merci pour vos réponses.
Je m'en suis sorti.
Vous pouvez clôturé le sujet.
|
|
Cette discussion est classée dans : fichier, saisie, char, note, nbretudiant
Répondre à ce message
Sujets en rapport avec ce message
Debutant : ecrire et lire un fichier txt [ par manu ]
Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl
ecriture fichier txt turboC++ [ par idk ]
qqun connais une fonction, qui te place le cursor, (dans un fichier),CAD qui renvoie à la ligne suivante exemple char prenom="tom"char nom="bauq" Et d
écriture dans un fichier txt [ par jimtruand ]
bonjour,j'ai un fichier txt à traiter et à envoyer via ftp à un serveur. la partie ftp est ok.la partie fichier pt'problèmedans le fichier je dois mod
Ecriture/lecture dans un fichier [ par SneakGuy ]
Haaa... Merci, sa m'a aider... Enfin, j'ai encore plusieurs problemes...pour l'ecriture j'ai quelque chose qui ressemble a sa:char user[20];char pass[
ça concerne la lecture et l'ecriture sur un fichier et ... [ par wfish ]
voila mon pb :j'ai fais un ptit prog de traitement de fichier. il sert à mettre certaines infos prises dans un fichier et les mettre dans un autre !!1
liste chainée et lecture d'un fichier txt [ par whiteknight ]
Bonjour j'ai un probleme pour charger des données depuis un fichier texte, les données recupérées doivent etre stocké dans un liste chainée déclaré ai
PROBLEME pour retourner un char* a partir d'un fichier [ par kobee12 ]
Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang
PROBLEME pour retourner un char* apres recuperation d'une chaine(sscanf) d'un fichier [ par kobee12 ]
Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang
Lecture dans un fichier ... CHaud !! [ par ilyatout ]
Bonjour,VOilà g un gros problème, c'est idiot mais je n'y arrive pas.j'ai un fichier de la sorte :NOM : NICOLAS / MARTIN // 28je dois stocker NICOLAS
Petite question ayant attrait à la gestion de fichier. [ par meteore ]
Voila je suis en train de faire un petit logiciel pour le classement de mes cds.J'ai donc créer une fonction permettant d'ajouter un cd dans une boite
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|