> Tous les forums > Forum Autres langages
 fonction pointeur et, tableau dynamique
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
loulou84
  Posté le 26/04/2010 @ 17:37 
Aller en bas de la page 
Petit astucien

Bonjour,

j'ai un petit projet a realisé et je rencontre des difficultés!

En effet je dois creer un repertoire pour une classe afin d'enregister nom, prenom,date, numero etudiant et autre...

Ce que j'ai fait c'est un menu qui appelle mes fonction par exemple

1 Etudiant

1 ajouter

2 supprimer

3 ajouter note

2 Note

1 moyenne des notes

2 graphe des notes

===> ma struture s'appelle struct eleve

==> mon tableau s'appelle tabeleve et je l'ai initialisé de la facon suivante: int* tabeleve = NULL;

===> POUR AJOUTER UN ELEVE ,j'ai crer ma fonction ajouteleve qui est la suivante:

int ajouteleve(int argc, _TCHAR* argv[]);

int ajouteleve()

{
int* tabeleve = NULL;

int nbr = 0, i = 0;
printf("\n\t\t\t\t AJOUT D'UN ELEVE \n\n");
printf("Combien d'eleve vous aller ajouter?");
scanf("%d",&nbr);
if (nbr >0)
{
struct eleve *tabeleve;
tabeleve = malloc(nbr * sizeof(int));
if (tabeleve == NULL)
{
exit(0);
}
for(i=0;i<nbr;i++)
{
printf("Rentrez son Nom (Caractére Max 15)");
scanf("%s",tabeleve[i].nom);
printf("Rentrez son Prenom (Caractére Max 15)");
scanf("%s",tabeleve[i].prenom);
printf("Rentrez sa date de naissance au format jj-mm-anne");
scanf("%s",tabeleve[i].date);
printf("Rentrez son Numero d'etudiant (Caractére Max 12)");
scanf("%s",tabeleve[i].num);
printf("Rentrez sa premiére note)");
scanf("%d",tabeleve[i].note1);
printf("Rentrez sa deuxieme note");
scanf("%d",tabeleve[i].note2);
printf("Rentrez sa troisieme note");
scanf("%d",tabeleve[i].note3);
}
}
return 0;
}

et j'ai appeler cette fonction a l'aide de mon switch

case 2:
system("cls");
ajouteleve(&tabeleve);
break;

Je sais ou est ma faute, elle reside dans l'appelle de ma fonction et de la valeur des variable que je donne quand je la déclare mais je ne trouve pas!!!

merci d'avance

Publicité
breizhbugs
 Posté le 26/04/2010 à 18:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Message original par loulou84

==> mon tableau s'appelle tabeleve et je l'ai initialisé de la facon suivante: int* tabeleve = NULL; // C'est pas un tableau d'entier!

===> POUR AJOUTER UN ELEVE ,j'ai crer ma fonction ajouteleve qui est la suivante:

int ajouteleve(int argc, _TCHAR* argv[]); // les arguments sont ceux du point d'entrées (la fonction main())!, je doute que ce soit normal

int ajouteleve()

{
int* tabeleve = NULL; //non

int nbr = 0, i = 0;
printf("\n\t\t\t\t AJOUT D'UN ELEVE \n\n");
printf("Combien d'eleve vous aller ajouter?");
scanf("%d",&nbr);
if (nbr >0)
{
struct eleve *tabeleve;
tabeleve = malloc(nbr * sizeof(int));
if (tabeleve == NULL)
{
exit(0);
}
for(i=0;i<nbr;i++)
{
printf("Rentrez son Nom (Caractére Max 15)");
scanf("%s",tabeleve[i].nom);
printf("Rentrez son Prenom (Caractére Max 15)");
scanf("%s",tabeleve[i].prenom);
printf("Rentrez sa date de naissance au format jj-mm-anne");
scanf("%s",tabeleve[i].date);
printf("Rentrez son Numero d'etudiant (Caractére Max 12)");
scanf("%s",tabeleve[i].num);


printf("Rentrez sa premiére note)");
scanf("%d",tabeleve[i].note1);
printf("Rentrez sa deuxieme note");
scanf("%d",tabeleve[i].note2);
printf("Rentrez sa troisieme note");
scanf("%d",tabeleve[i].note3);

// je pense que tabeleve[i].note doit etre une liste de note plutot...

}
}
return 0;
}

et j'ai appeler cette fonction a l'aide de mon switch

case 2:
system("cls");
ajouteleve(&tabeleve); //non, aucune fonction ajouteeleve(<argument>) n'existe!
break;

Je sais ou est ma faute, elle reside dans l'appelle de ma fonction et de la valeur des variable que je donne quand je la déclare mais je ne trouve pas!!!

Si tu nous disais de quelle faute il s'agit...

Bref mets nous tous le code source, pour t'aider cela nous sera plus facile...

loulou84
 Posté le 26/04/2010 à 18:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

struct eleve
{
char nom[15];
char prenom[15];
char date[10];
char num[12];
int note1;
int note2;
int note3;
};

void sauv(void)
{
}
void afficher(void)
{
}
void supprimer (void)
{
}
void choisir(void)
{
}
int ajouteleve();
int ajouteleve()
{
int nbr = 0, i = 0;
printf("\n\t\t\t\t AJOUT D'UN ELEVE \n\n");
printf("Combien d'eleve vous aller ajouter?");
scanf("%d",&nbr);
if (nbr >0)
{
struct eleve *tabeleve;
tabeleve = malloc(nbr * sizeof(int));
if (tabeleve == NULL)
{
exit(0);
}
for(i=0;i
{
printf("Rentrez son Nom (Caractére Max 15)");
scanf("%s",tabeleve[i].nom);
printf("Rentrez son Prenom (Caractére Max 15)");
scanf("%s",tabeleve[i].prenom);
printf("Rentrez sa date de naissance au format jj-mm-anne");
scanf("%s",tabeleve[i].date);
printf("Rentrez son Numero d'etudiant (Caractére Max 12)");
scanf("%s",tabeleve[i].num);
printf("Rentrez sa premiére note)");
scanf("%d",tabeleve[i].note1);
printf("Rentrez sa deuxieme note");
scanf("%d",tabeleve[i].note2);
printf("Rentrez sa troisieme note");
scanf("%d",tabeleve[i].note3);
}
}
return 0;
}
void anive(void)
{
}
void choixdevoirs(void)
{
}
void menu (void)
{
int n,m,p;
system("cls");
printf("\n\t1) Recherche d'un eleve.\n");
printf("\n\t2) Ajouter un eleve. \n");
printf("\n\t3) Etablir un graphque des notes du devoir.\n");
printf("\n\t4) Rappel des anniversaires de la semaine.\n");
printf("\n\t5) Sauvegarder & Quitter.\n");
scanf("%d",&n);

switch(n)
{
case 1:
system("cls");
printf("\n\t 1)Rechercher un eleve.\n");
printf("\n\t\t\t1) Le supprimer.\n");
printf("\n\t\t\t2) L'afficher.\n");
printf("\n\t\t\t3) Ajouter une note.\n");
printf("\n\t\t\t4) Menu.\n");
scanf("%d",&p);
switch(p)
{

case 1:
system("cls");
supprimer();
break;

case 2:
system("cls");
afficher();
break;

case 3:
system("cls");
printf("\n\t 3) Ajouter une note.\n");
printf("\n\t\t\t1) Choix du devoir.\n");
printf("\n\t\t\t2)Menu.\n");
scanf("%d",&m);

switch(m)
{
case 1:
system("cls");
choisir();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
case 4:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();
};
break;

case 2:
system("cls");
ajouteleve(&tabeleve);
break;

case 3:
system("cls");
printf("\n \t3)Etablir un graphique des notes du devoir.\n");
printf("\n\t\t\t1)Choix du devoir\n");
printf("\n\t\t\t2)Menu\n");
scanf("%d",&p);
switch(p)
{
case 1:
system("cls");
choixdevoirs();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
break;

case 4:
system("cls");
anive();
break;

case 5:
system("cls");
sauv();
break;

};


}

int _tmain(int argc, _TCHAR* argv[])
{
int n;
int* tabeleve = NULL;

printf("\n\t\t\tBonjour,\n");
printf("\nVoici le repertoire cree par Saignazite Bryan et Winkelmann Loic\n");
printf("\nQue voulez vous faire\n");
printf("\n\t Acceder au repertoire [1]\n");
printf("\n\t Quitter le repertoire [2]\n");
scanf("%d",&n);
switch(n)
{
case 1:
menu();
break;

case 2:
system("EXIT");
break;

default:
system("EXIT");
};
return 0;
}

voila le tout! si vous avez des questions! n'hesitez pas



Modifié par loulou84 le 26/04/2010 18:50
loulou84
 Posté le 26/04/2010 à 19:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

il me dit que void* ne peut etre convertie en void

je ne comprend pas mon erreur!!!

merci

loulou84
 Posté le 26/04/2010 à 19:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bon javais des erreur betes qui gacher tout!!

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int* tabeleve = NULL;

struct eleve
{
char nom[15];
char prenom[15];
char date[10];
char num[12];
int note1;
int note2;
int note3;
};

void sauv(void)
{
}
void afficher(void)
{
}
void supprimer (void)
{
}
void choisir(void)
{
}


void ajouteleve(struct eleve* tabeleve)
{
int nbr = 0, i = 0;
printf("\n\t\t\t\t AJOUT D'UN ELEVE \n\n");
printf("Combien d'eleve vous aller ajouter?");
scanf("%d",&nbr);
if (nbr >0)
{
struct eleve* tabeleve = malloc(nbr * sizeof(int));
if (tabeleve == NULL)
{
exit(0);
}
for(i=0;i<nbr;i++)
{
printf("Rentrez son Nom (Caractére Max 15)");
scanf("%s",tabeleve[i].nom);
printf("Rentrez son Prenom (Caractére Max 15)");
scanf("%s",tabeleve[i].prenom);
printf("Rentrez sa date de naissance au format jj-mm-anne");
scanf("%s",tabeleve[i].date);
printf("Rentrez son Numero d'etudiant (Caractére Max 12)");
scanf("%s",tabeleve[i].num);
printf("Rentrez sa premiére note)");
scanf("%d",tabeleve[i].note1);
printf("Rentrez sa deuxieme note");
scanf("%d",tabeleve[i].note2);
printf("Rentrez sa troisieme note");
scanf("%d",tabeleve[i].note3);
}
}

}
void anive(void)
{
}
void choixdevoirs(void)
{
}
void menu (void)
{
int n,m,p;
system("cls");
printf("\n\t1) Recherche d'un eleve.\n");
printf("\n\t2) Ajouter un eleve. \n");
printf("\n\t3) Etablir un graphque des notes du devoir.\n");
printf("\n\t4) Rappel des anniversaires de la semaine.\n");
printf("\n\t5) Sauvegarder & Quitter.\n");
scanf("%d",&n);

switch(n)
{
case 1:
system("cls");
printf("\n\t 1)Rechercher un eleve.\n");
printf("\n\t\t\t1) Le supprimer.\n");
printf("\n\t\t\t2) L'afficher.\n");
printf("\n\t\t\t3) Ajouter une note.\n");
printf("\n\t\t\t4) Menu.\n");
scanf("%d",&p);
switch(p)
{

case 1:
system("cls");
supprimer();
break;

case 2:
system("cls");
afficher();
break;

case 3:
system("cls");
printf("\n\t 3) Ajouter une note.\n");
printf("\n\t\t\t1) Choix du devoir.\n");
printf("\n\t\t\t2)Menu.\n");
scanf("%d",&m);

switch(m)
{
case 1:
system("cls");
choisir();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
case 4:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();
};
break;

case 2:
system("cls");
ajouteleve(tabeleve);
break;

case 3:
system("cls");
printf("\n \t3)Etablir un graphique des notes du devoir.\n");
printf("\n\t\t\t1)Choix du devoir\n");
printf("\n\t\t\t2)Menu\n");
scanf("%d",&p);
switch(p)
{
case 1:
system("cls");
choixdevoirs();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
break;

case 4:
system("cls");
anive();
break;

case 5:
system("cls");
sauv();
break;

};


}

int _tmain(int argc, _TCHAR* argv[])
{
int n;


printf("\n\t\t\tBonjour,\n");
printf("\nVoici le repertoire cree par Saignazite Bryan et Winkelmann Loic\n");
printf("\nQue voulez vous faire\n");
printf("\n\t Acceder au repertoire [1]\n");
printf("\n\t Quitter le repertoire [2]\n");
scanf("%d",&n);
switch(n)
{
case 1:
menu();
break;

case 2:
system("EXIT");
break;

default:
system("EXIT");
};
return 0;
}

Le compilo me sort une erreur de cast, impossilbe de convertir int* en eleve *

un peu d'aide svp

breizhbugs
 Posté le 26/04/2010 à 22:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
loulou84 a écrit :

Bon javais des erreur betes qui gacher tout!!

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

struct eleve
{
char nom[15];
char prenom[15];
char date[10];
char num[12];
int note1; // question: es tu sur qu'il n'y ait que 3 notes? c'est pas censée etre une liste?
int note2;
int note3;
};
int* tabeleve = NULL; // Non!
void sauv(void)
{
}
void afficher(void)
{
}
void supprimer (void)
{
}
void choisir(void)
{
}


void ajouteleve(struct eleve* parameleve) // modif pour pas confondre
{
int nbr = 0, i = 0;
printf("\n\t\t\t\t AJOUT D'UN ELEVE \n\n");
printf("Combien d'eleve vous aller ajouter?");
scanf("%d",&nbr);
if (nbr >0)
{
struct eleve* = malloc(nbr * sizeof(int)); //Non: parameleve = malloc(nbr*sizeof(eleve)) ou un truc du genre
if (parameleve== NULL)
{
exit(0);
}
for(i=0;i
{
printf("Rentrez son Nom (Caractére Max 15)");
scanf("%s",parameleve[i].nom);
printf("Rentrez son Prenom (Caractére Max 15)");
scanf("%s",parameleve[i].prenom);
printf("Rentrez sa date de naissance au format jj-mm-anne");
scanf("%s",parameleve[i].date);
printf("Rentrez son Numero d'etudiant (Caractére Max 12)");
scanf("%s",parameleve[i].num);
printf("Rentrez sa premiére note)");
scanf("%d",parameleve[i].note1);
printf("Rentrez sa deuxieme note");
scanf("%d",parameleve[i].note2);
printf("Rentrez sa troisieme note");
scanf("%d",parameleve[i].note3);
}
}

}
void anive(void)
{
}
void choixdevoirs(void)
{
}
void menu (void)
{
int n,m,p;
system("cls");
printf("\n\t1) Recherche d'un eleve.\n");
printf("\n\t2) Ajouter un eleve. \n");
printf("\n\t3) Etablir un graphque des notes du devoir.\n");
printf("\n\t4) Rappel des anniversaires de la semaine.\n");
printf("\n\t5) Sauvegarder & Quitter.\n");
scanf("%d",&n);

switch(n)
{
case 1:
system("cls");
printf("\n\t 1)Rechercher un eleve.\n");
printf("\n\t\t\t1) Le supprimer.\n");
printf("\n\t\t\t2) L'afficher.\n");
printf("\n\t\t\t3) Ajouter une note.\n");
printf("\n\t\t\t4) Menu.\n");
scanf("%d",&p);
switch(p)
{

case 1:
system("cls");
supprimer();
break;

case 2:
system("cls");
afficher();
break;

case 3:
system("cls");
printf("\n\t 3) Ajouter une note.\n");
printf("\n\t\t\t1) Choix du devoir.\n");
printf("\n\t\t\t2)Menu.\n");
scanf("%d",&m);

switch(m)
{
case 1:
system("cls");
choisir();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
case 4:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();
};
break;

case 2:
system("cls");
ajouteleve(tabeleve);
break;

case 3:
system("cls");
printf("\n \t3)Etablir un graphique des notes du devoir.\n");
printf("\n\t\t\t1)Choix du devoir\n");
printf("\n\t\t\t2)Menu\n");
scanf("%d",&p);
switch(p)
{
case 1:
system("cls");
choixdevoirs();
break;

case 2:
system("cls");
menu();
break;

default :
system("cls");
printf("\tMauvaise touche");
menu();

};
break;

case 4:
system("cls");
anive();
break;

case 5:
system("cls");
sauv();
break;

};


}

int _tmain(int argc, _TCHAR* argv[])
{
int n;


printf("\n\t\t\tBonjour,\n");
printf("\nVoici le repertoire cree par Saignazite Bryan et Winkelmann Loic\n");
printf("\nQue voulez vous faire\n");
printf("\n\t Acceder au repertoire [1]\n");
printf("\n\t Quitter le repertoire [2]\n");
scanf("%d",&n);
switch(n)
{
case 1:
menu();
break;

case 2:
system("EXIT");
break;

default:
system("EXIT");
};
return 0;
}

Le compilo me sort une erreur de cast, impossilbe de convertir int* en eleve *

un peu d'aide svp

Sinon, je pense que tu ne gères pas bien le nombre d'élève:

tu ne devrais pas utiliser un tableau, mais une liste je pense!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Fonction qui renvoie un tableau
tableau dynamique
tableau croisé dynamique access
Comment exclure 0 dans une fonction
Rafraichir un tableau en java
commande créer la fonction effacer image en VB10
extraction de valeurs sur un tableau a deux entrees
Site dynamique avec Dream et Wamp
C Problème pointeur et passage en référence.
symétrie d'un tableau 2D
Plus de sujets relatifs à fonction pointeur et, tableau dynamique
 > Tous les forums > Forum Autres langages