begin process at 2012 05 29 15:05:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Passer de fonction void a des fonction qui prennent des pointeurs comme parametre


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

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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


Nos sponsors


Sondage...

Comparez les prix

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,484 sec (4)

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