Accueil > Forum > > > > Passer de fonction void a des fonction qui prennent des pointeurs comme parametre
Passer de fonction void a des fonction qui prennent des pointeurs comme parametre
jeudi 12 janvier 2012 à 19:02:21 |
Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

m2z
|
Salut! j'ai du parvenir a réaliser un programme de gestion d'élèves les informations sont enregistré a travers un tableau de structure  alors il m'est demandé d'utiliser les pointeurs   dans ce programme juste donner moi des petits exemples ou explication sur comment faire et je ferrai de mon mieux pour y parvenir tout seul je suis vraiment dans une situation énervante parce-que le temps me presse  aider moi s'il vous plait et grand merci a vous tous
Code C/C++ : #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int NbrEleve;
struct Etudiant
{
char Nom[30];
char Prenom[30];
int Age;
float Note[5];
}Etd[120],Echange;
void Menu(void)
{
int i;
char *MENU_CHAMP[]={"1 : Lecture des elements","2 : Affichage des elements",
"3 : Ajout d'un element", "4 : Recherches des elements",
"5 : Modification des elements","6 : Suppression des elements",
"7 : Tri des element","Touche 0 : Sortir" };
for(i=0;i<8;i++)
{
printf("%s\n",MENU_CHAMP[i]);
}
}
//Ma fonction de saisie
void Saisie(void)
{
int i,j;
printf("Saisir le nombre d'eleves ? : ");
scanf("%d",&NbrEleve);
system("cls");
for(i=0;i<NbrEleve;i++)
{
printf("Saisir le nom de l'eleve[%d] ? : ",i+1);
scanf("%s",Etd[i].Nom);
printf("Saisir le prenom de l'eleve[%d] ? : ",i+1);
scanf("%s",Etd[i].Prenom);
printf("Saisir l'age de l'eleve[%d] ? : ",i+1);
scanf("%d",&Etd[i].Age);
printf("Saisir la note 1 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[0]);
printf("Saisir la note 2 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[1]);
printf("Saisir la note 3 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[2]);
printf("Saisir la note 4 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[3]);
system("cls");
}
printf("Saisie Complete");
getch();
}
//Ma fonction d'affichage
void Affichage(void)
{
int i,j;
//Calcul de moyenne pour chaque eleve
for(i=0;i<NbrEleve;i++)
{
Etd[i].Note[4]=0;
for(j=0;j<4;j++)
{
Etd[i].Note[4]+=Etd[i].Note[j];
}
Etd[i].Note[4]=Etd[i].Note[4]/4;
}
for(i=0;i<NbrEleve;i++)
{
printf("*********************************\n");
printf("%s\t",Etd[i].Nom);
printf("%s\t",Etd[i].Prenom);
printf("%d\t",Etd[i].Age);
printf("%.2f\t\n",Etd[i].Note[4]);
}
getch();
}
//Ma fonction d'ajout
void Ajout(void)
{
int NbAjout,i,j;
printf("Saisir le nombre d'eleves a ajouter ? : ");
scanf("%d",&NbAjout);
system("cls");
for(i=NbrEleve;i<NbrEleve+NbAjout;i++)
{
printf("Saisir le nom de l'eleve[%d] ? : ",i+1);
scanf("%s",Etd[i].Nom);
printf("Saisir le prenom de l'eleve[%d] ? : ",i+1);
scanf("%s",Etd[i].Prenom);
printf("Saisir l'age de l'eleve[%d] ? : ",i+1);
scanf("%d",&Etd[i].Age);
printf("Saisir la note 1 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[0]);
printf("Saisir la note 2 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[1]);
printf("Saisir la note 3 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[2]);
printf("Saisir la note 4 de l'eleve[%d] ? : ",i+1);
scanf("%f",&Etd[i].Note[3]);
system("cls");
}
NbrEleve+=NbAjout;
printf("Ajout terminer");
getch();
}
//Ma fonction de recherche
void Recherche(void)
{
char Name[30],Prename[30];
int i,ind;
printf("Saisir le Nom a chercher ?:\t");
scanf("%s",Name);
printf("Saisir le Prenom a chercher ?:\t");
scanf("%s",Prename);
ind=-1;
for(i=0;i<NbrEleve;i++)
{
if(!strcmp(Name,Etd[i].Nom) && !strcmp(Prename,Etd[i].Prenom))
{
ind=i+1;
break;
}
}
if(ind==-1)
{
printf("Resultat introuvable :( ");
}
else
{
printf("Resultat trouve :) %d",ind);
}
getch();
}
//Ma fonction de modification
void Modifie(void)
{
int j,ind;
printf("Saisir le numero de l'eleve a modifier ? :\t");
scanf("%d",&ind);
printf("*************VALEUR ACTUELLE***************\n");
printf("%s\t",Etd[ind-1].Nom);
printf("%s\t",Etd[ind-1].Prenom);
printf("%d\t",Etd[ind-1].Age);
printf("%.2f\t\n",Etd[ind-1].Note[4]);
printf("***************MODIFICATION****************\n");
printf("Saisir le nouveau nom de l'eleve[%d] ? : ",ind);
scanf("%s",Etd[ind-1].Nom);
printf("Saisir le nouveau prenom de l'eleve[%d] ? : ",ind);
scanf("%s",Etd[ind-1].Prenom);
printf("Saisir le nouveau age de l'eleve[%d] ? : ",ind);
scanf("%d",&Etd[ind-1].Age);
printf("Saisir la nouvelle note 1 de l'eleve[%d] ? : ",ind);
scanf("%f",&Etd[ind-1].Note[0]);
printf("Saisir la nouvelle note 2 de l'eleve[%d] ? : ",ind);
scanf("%f",&Etd[ind-1].Note[1]);
printf("Saisir la nouvelle note 3 de l'eleve[%d] ? : ",ind);
scanf("%f",&Etd[ind-1].Note[2]);
printf("Saisir la nouvelle note 4 de l'eleve[%d] ? : ",ind);
scanf("%f",&Etd[ind-1].Note[3]);
system("cls");
getch();
}
//Ma fonction de supression
void Suprime(void)
{
int i,ind;
char sup;
printf("Saisir le numero de l'eleve a Suprimer ? :\t");
scanf("%d",&ind);
printf("*************VALEUR ACTUELLE***************\n");
printf("%s\t",Etd[ind-1].Nom);
printf("%s\t",Etd[ind-1].Prenom);
printf("%d\t",Etd[ind-1].Age);
printf("%.2f\t\n",Etd[ind-1].Note[4]);
printf("\n Taper touche \" Y \" pour suprimer l'eleve de votre base de donnee\n");
sup=getch();
if(sup=='y')
{
for(i=ind-1;i<NbrEleve;i++)
{
Etd[i]=Etd[i+1];
}
NbrEleve--;
system("cls");
printf("Supression terminer\n");
}
else
{
system("cls");
printf("Supression Annulé\n");
}
getch();
}
//Ma fonction de Tri
void Tri(void)
{
int i,j;
char c;
printf("1 : Tri Par age\n2 : Tri par ordre alphabetique \n Votre Choix?:\t");
c=getch();
if(c=='1')
{
for(i=0;i<NbrEleve-1;i++)
{
for(j=i+1;j<NbrEleve;j++)
{
if(Etd[j].Age<Etd[i].Age)
{
Echange=Etd[i];
Etd[i]=Etd[j];
Etd[j]=Echange;
}
}
}
printf("\n\tTri par age terminer");
}
else if(c=='2')
{
for (i=0;i<NbrEleve-1;i++)
{
for (j=i+1;j<NbrEleve;j++)
{
if (strcmp(Etd[j].Nom,Etd[i].Nom)<0)
{
Echange=Etd[i];
Etd[i]=Etd[j];
Etd[j]=Echange;
}
}
}
printf("\n\tTri par ordre alphabetique terminer");
}
getch();
}
int main()
{
int choix;
do
{
system("cls");
Menu();
printf("\nSaisir Votre Choix ? : ");
scanf("%d",&choix);
switch (choix)
{
case 0:break;
case 1:system("cls");Saisie();break;
case 2:system("cls");Affichage();break;
case 3:system("cls");Ajout();break;
case 4:system("cls");Recherche();break;
case 5:system("cls");Modifie();break;
case 6:system("cls");Suprime();break;
case 7:system("cls");Tri();break;
default :system("cls");printf("Desole ce choix ne figure pas dans le menu!!!\n\a\a\a");getch();break;
}
}while(choix!=0);
return 0;
}
|
|
vendredi 13 janvier 2012 à 10:26:34 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

CptPingu
|
Bonjour.
Quelques exemples de fonctions:
Celle qui "retourne" quelquechose:
Code C/C++ :
int func(int a, int b)
{
return a + b;
}
int c = func(5, 6);
Ici les arguments ne sont pas modififé.
Celle qui modifie les arguments reçus:
Code C/C++ :
void func(int* a)
{
// code
*a = 50;
}
int c = 5;
func(&c);
// c vaut maintenant 50
Dans ton code, tu n'as qu'a passer ton tableau étudiant en argument.
Ex:
Code C/C++ :
struct Etudiant
{
char Nom[30];
char Prenom[30];
int Age;
float Note[5];
};
typedef struct Etudiant Etudiant;
void ajout(Etudiant* etudiants, int* nbEtudiant)
{
// code
}
void recherche(const Etudiant* etudiants, int nbEtudiant)
{
// code
}
int main(void)
{
Etudiant etudiants[120];
int nbEtudiant = 0;
ajout(etudiants, &nbEtudiant);
recherche(etudiants, nbEtudiant);
return 0;
}
Tu remarqueras, que l'on passe différement les arguments selon que l'on veut les modifier ou non.
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
vendredi 13 janvier 2012 à 12:23:48 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

m2z
|
Merci j'ai compris ce que vous avez écrit mais le problème c'est que mon cahier de charge demande des argument que j'ai pas bien assimiler et compris je vais essayer de vous mettre un image du Cahier de charge et merci infiniment pour votre aide
|
|
vendredi 13 janvier 2012 à 18:19:47 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

m2z
|
voila le Cahier de charge pour plus de clarification et merci

|
|
vendredi 13 janvier 2012 à 18:31:15 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

CptPingu
|
Ok. On ne donne pas des arguments fixes. Ce sont simplement des exemples. C'est à toi de concevoir ce qui te parait être des arguments appropriés. Tu seras sûrement noté sur le choix judicieux d'arguments.
Avec l'exemple que je t'ai donné précédemment, tu as tous les éléments en main pour réaliser ton projet. Je t'invite à coder, et à poster ce qui te bloque.
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
vendredi 13 janvier 2012 à 19:27:42 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

m2z
|
j'ai pas bien compris ce qu'il me faut faire afin que je puisse coder
|
|
vendredi 13 janvier 2012 à 19:29:44 |
Re : Passer de fonction void a des fonction qui prennent des pointeurs comme parametre

CptPingu
|
Il te faut réfléchir. Je ne peux pas t'en dire plus sans te faire tes devoirs. Ce que je ne ferais pas.
Comme déjà dit, tu as déjà tous les éléments en main. À toi de jouer !
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
Cette discussion est classée dans : printf, scanf, note, ind, etd
Répondre à ce message
Sujets en rapport avec ce message
supprimer un element d'une matrice [ par hoijir ]
salut ,voila mon petit programme, j'ai un probleme avec la suppression en case 5, est ce quelqu'un peut m'aider?#include#define dim 20 main(){int n,
Probleme avec l'affichage dans Strusture [ par m2z ]
Salut Les Amis [^^clinoeil1] j'ai trouvé un probleme dans mon programme de gestion d'eleves plus exactement lors de l'affichage ou le programme m'
Calculatrice [ par sarazin66 ]
Voila ma calculatrice , je cherche pleins de critique pour l'améliorer =D [^^langue3] voici ma source: [code=cpp][/code]#include #include #include
Probleme pour effectuer N traitements [ par le0duprogramme ]
Bonjour à tous , J'ai fait un algo qui effectue le prix d'un patient pour un séjour en fonction des prestations qu'il à choisit. Mon problème est de l
J'AI CREE UN CODE EN LANGAGE C MAIS SA MARCHE PAS J4AI BESOIN DE L4AIDE S.V.P [ par aboutir ]
Ce code c'est pour la gestion de candidature a un concoure aide moi svp #include #include struct condidat { int num,age; char nom[30]
Probléme à créer un tableaux à partir des structures [ par wissouramos ]
Bonjour à tous. J'ai un petit problème de syntax, après plusieurs recherche sur le net, je n'ai pu ni affirmer ou ni infirmer la validation de mon cod
comment manipuler printf et scanf apartir des structures [ par wissouramos ]
Bonjour,j'ai une grosse problème,et j'espère que je trouvera une solution grâce a vous: j'ai une structure par exemple: [color=red]typedef struct {
Débutant demande aide en C [ par juancho2786 ]
Bonjour tout le monde. Je voulais vous demandez si mon code était correcte? et comment faire pour aller à la ligne après chaque enregistrement? Merci
Probleme Char [ par romainbisson ]
Bonjour,j'ai crée des char qui recupere des valeurs tapé par l'utilisateur : char nom[5000]; char prenom[5000]; char adresse[5000]; char c
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
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
|