begin process at 2012 05 30 12:06:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

STRUCTURE EN C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

STRUCTURE EN C++

vendredi 9 avril 2010 à 07:39:52 | STRUCTURE EN C++

smar



VOICI MOT CODE EN C++
#include<stdio.h>
struct date
{int jour;
int mois;
int annee;
};
struct Etudiant
{ char nom[50];
char prenom[50];
int cin;
date d;
int niveau;
int groupe;
char spec[20];
float moy_gen;
};
void main()
{
struct Etudiant etud[20];
int i;
for(i=0;i<20;i++)
{
printf("donner les informations du premier étudiant n° %d: \n",i+1);
printf("donner le nom: ");
scanf("%s",etud[i].nom);
printf("donner le prenom: ");
scanf("%s",etud[i].prenom);
printf("donner le numéro cin: ");
scanf("%d",&etud[i].cin);
printf("donner la date de naissance: ");
scanf("%d %d %d",&etud[i].d.jour,&etud[i].d.mois,&etud[i].d.annee);
printf("donner le niveau: ");
scanf("%d",&etud[i].niveau);
printf("donner le groupe: ");
scanf("%d",&etud[i].groupe);
printf("donner la spécialité: ");
scanf("%s",etud[i].spec);
printf("donner le moyenne générale: ");
scanf("%f",&etud[i].moy_gen);


}
}


CHAQUE FOIS IL FAIT LA LECTURE DU MOYENNE GÉNÉRALE DU PREMIER ETUDIANT ET ENSUITE UN MESSAGE D'ERREUR S'AFFICHE
QUEL EST LE PROBLÈME ET MERCI D'AVANCE
vendredi 9 avril 2010 à 09:47:09 | Re : STRUCTURE EN C++

ghuysmans99

Membre Club
Voilà ton code une fois corrigé. Ce n'est pas du C++ !
Code C/C++ :
#include <stdio.h>

typedef struct _Date
{
	int jour;
	int mois;
	int annee;
} Date;

typedef struct _Etudiant
{
	char nom[26];
	char prenom[26];
	int cin;
	Date d;
	int niveau;
	int groupe;
	char spec[21];
	float moy_gen;
} Etudiant;

void DebugEtudiant(Etudiant* etud)
{
	printf(	"DebugEtudiant:\n-- Nom=%s\n-- Prenom=%s\n-- CIN=%d\n-- Danai=%d/%d/%d\n-- Niveau=%d\n-- Groupe=%d\n-- Spec=%s\n-- Moy=%f\n",
			etud->nom,etud->prenom,etud->cin,etud->d.jour,etud->d.jour,etud->d.annee,etud->niveau,
			etud->groupe,etud->spec,etud->moy_gen);
}

int main(int argc, char* argv[])
{
	Etudiant etud[20];
	int i;

	for(i=0;i<20;i++)
	{
		printf("Entrez les informations de l'etudiant #%d :\n",i+1);

		printf("-- Nom: ");
			scanf_s("%25s",etud[i].nom,25);
		printf("-- Prenom: ");
			scanf_s("%25s",etud[i].prenom,25);
		printf("-- Numero CIN: ");
			scanf_s("%d",&etud[i].cin,1);
		printf("-- Date de naissance: ");
			scanf_s("%d %d %d",&etud[i].d.jour,&etud[i].d.mois,&etud[i].d.annee,3);
			//TODO: vérifier la validité de la date.
		printf("-- Niveau: ");
			scanf_s("%d",&etud[i].niveau,1);
		printf("-- Groupe: ");
			scanf_s("%d",&etud[i].groupe,1);
		printf("-- Specialite: ");
			scanf_s("%20s",etud[i].spec,20);
		printf("-- Moyenne generale: ");
			scanf_s("%f",&etud[i].moy_gen,1);

		DebugEtudiant(&etud[i]);
		printf("\n");
	}

	return 0;
} 

---
VB.NET is good ... VB6 is better
samedi 10 avril 2010 à 10:30:10 | Re : STRUCTURE EN C++

uaip

Salut,
C'est bien joli de corriger le code à la demande, mais sans rien expliquer, ça ne va rien lui apprendre du tout (et il reviendra poser le même genre de question à chaque petit soucis).
En plus, scanf_s n'est pas standard, il ne fonctionne que sous Visual, je crois.


Cordialement, uaip.
samedi 10 avril 2010 à 11:11:29 | Re : STRUCTURE EN C++

ghuysmans99

Membre Club
@uaip: Ah je savais pas que cette fonction était spécifique à VS ...

J'ai modifié quelques éléments dans ton code :
  • La taille max du nom/prénom est passée à 25. (pre)nom
  • [26] dans le code car il faut compter le \0 final.

  • Les typedefs devant les définitions de structures : vu que c'est du C et non du C++, tu n'as pas le choix.

  • L'indentation : tu ne t'en sors déjà pas avec 43 lignes alors avec plus faut pas rêver. Plus ton code sera aéré et commenté (ce que je n'ai pas fait, mais demande si tu en as besoin) plus tu auras de facilité à y revenir.

  • La saisie sécurisée : dans un format scanf, tu dois placer la taille max entre le % et le caractère. Ceci t'évitera un dépassement de buffer et la corruption des données qui suivent dans la structure en mémoire :
    Code C/C++ :
    scanf("%25s",etud[i].nom);


  • Une fonction DebugEtudiant permettant d'afficher le contenu d'une structure pointée passée en paramètre.


Remplace la fonction main par ceci :
Code C/C++ :
int main(int argc, char* argv[])
{
	Etudiant etud[20];
	int i;

	for(i=0;i<20;i++)
	{
		printf("Entrez les informations de l'&#8218;tudiant nø%d :\n",i+1);

		printf("-- Nom: ");
			scanf("%25s",etud[i].nom);
		printf("-- Pr&#8218;nom: ");
			scanf("%25s",etud[i].prenom);
		printf("-- Num&#8218;ro CIN: ");
			scanf("%d",&etud[i].cin);
		printf("-- Date de naissance: ");
			scanf("%d %d %d",&etud[i].d.jour,&etud[i].d.mois,&etud[i].d.annee);
			//TODO: vérifier aussi la validité de la date mais tout faire dans une fonction séparée.
		printf("-- Niveau: ");
			scanf("%d",&etud[i].niveau);
		printf("-- Groupe: ");
			scanf("%d",&etud[i].groupe);
		printf("-- Sp&#8218;cialit&#8218;: ");
			scanf("%20s",etud[i].spec);
		printf("-- Moyenne g&#8218;n&#8218;rale: ");
			scanf("%f",&etud[i].moy_gen);

		DebugEtudiant(&etud[i]);
		printf("\n");
	}

	return 0;
} 

---
VB.NET is good ... VB6 is better
samedi 10 avril 2010 à 11:31:29 | Re : STRUCTURE EN C++

uaip

Outch.
Je ne pensais pas avoir autant d'influence
Bravo en tout cas pour l'explication.


Cordialement, uaip.


Cette discussion est classée dans : int, printf, scanf, donner, etud


Répondre à ce message

Sujets en rapport avec ce message

programme en C [ par graminach ] on a un pb pour la question 2b!le programme ne tourne pas en boucle et affiche meme en cas de valeur correcte erreurmerci d'avancehttp://www-ipst.u-st tri d'un tableau de struct [ par sdiri_med ] Salut à tous j'ai un petit problème de tri d'un tableau de structurede but d'extraire l'employer le plus âgé Pouvez-vous m'aider s.v.p a résoudre se scanf d'une structure imbriqée [ par sdiri_med ] Bonsoir, j'ai rencontré beaucoup des problèmes avec les structures je voudrai vous demander comment faire un appel d'une structure dans une autre pou tri d'un tableau de structure [ par sdiri_med ] bonjour pour tout le monde j'ai un petit problème de trie par age d'un tableau des employées voila mon code: [code] #include #include recherche comment faire fonctionner ce code via une interface graphique (pilotage port //) [ par cedpic ] voici le code que j ai creer qui marche tres bien en mode console mais je souhaiterais les piloter par une interface graphique en remplacent les bouto trier un tableau de stucture en c [ par peli20 ] [^^happy13]salut, j ai un petit probleme en c ,j espere que vous m aidiez.. bon, j essaie d elaborer un programme faisant la gestion des contact, le r Erreur [ par IMFM ] Bonjour, mon compilateur me donne ce message "type name expected" a chaque fois que je fais la compilation. je vais vous laisser mes codes. //Declarat probleme d'allocation d'une matrice [ par emomar ] salut à tous voila j'ai un probleme avec la fonction remplir voila le code si quelqu'un peut m'aider merci code : [code=cpp]#include #include int n gestion d'une bibliothèque [ par samanta26 ] slt, j'ai besoin d'aide SVP!![^^sad2] j'ai un mini projet de gestion d'une bibliothèque!! je dois implémenter un ensemble de fonctions :saise, tri, re Fonction recherche (listes chainées) [ par adri10 ] Bonjour à tous, Bon voilà j'ai un gros problème avec ma fonction recherche en liste chainées. Je pensais que mon programme était correct puisqu'en le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales