Gestion du prêt d'une bibliothèque en c++ [Résolu]

cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 5 août 2011 à 16:12 - Dernière réponse : cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention
- 9 août 2011 à 19:32
salut tout le monde j'ai un projet a noter au début de septembre c'est faire une application de gestion de bibliothèque(gestion de prêt) en c++ avec les classes et tout ça.
merci d'avance..
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention - 9 août 2011 à 19:32
3
Merci
Si tu relis mon post précédent, la réponse est dedans...
char* retour; => std::string retour;
npt->retour=new char[20]; => suppression.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question

Merci cptpingu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cptpingu
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 5 août 2011 à 16:14
0
Merci
si quelqu'un peut m'aider ou il a déja fait ce projet en c++,chui prét..mer6
Commenter la réponse de cs_imoum
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 5 août 2011 à 16:39
0
Merci
Salut à toi et non !!
Pour la 1001ème fois, ici on ne fait pas les devoirs des autres. Si tu ne sais pas coder, apprends, si tu sais alors fait-le et recontacte nous quand tu tombera sur un os.
Commenter la réponse de cs_LA_Tupac
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention - 5 août 2011 à 17:24
0
Merci
Bonjour imoum.

Je te rappelle le règlement de codes-sources: On ne fait pas les devoirs des étudiants !
Si tu as une question précise, sur un point concret qui te bloque, nous serons ravis de pouvoir t'aider. Mais avant, tu dois montrer ton code, montrer que tu as tout essayé pour résoudre ton problème. Il important de faire des efforts quand on pose une question.
Un membre ne te donnera jamais un code tout fait, mais te diras ce qui ne vas pas dans ton code. De plus, il ne fera pas le travail de reflexion ou d'apprentissage à ta place. Si ta question ne porte pas sur un point technique précis, il y a peu de chance que l'on réponde.

Tu exprimes très mal tes questions. C'est la raison pour laquelle tu n'as pas souvent de réponse. Je t'invite à lire ceci, qui t'aidera énormément:
http://www.gnurou.org/writing/smartquestionsfr

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 6 août 2011 à 16:18
0
Merci
b1 j'ai fai des essais mé j'ai trouvé beaucoup des problèmes
par exemple et j'utilise visual c++ 2010:
Erreur 15 error C2079: 'livre::l' utilise une struct de 'lvr' non défini c:\users\amine\downloads\compressed\cppfrance_gestion-bibliotheque___page_2\livre.h 5
mon erreur c'est là:
#include"structure.h"
class livre
{
public:
lvr l;
plvr llst;
public:
//livre();
livre(int,int,char* titre,char* retour);
~livre();
plvr lire();
void ecrire(plvr lst);
plvr rechercher(lvr,plvr);
void afficher(plvr);


};
alor que la sructure "lvr" est déja mentionné en "strucure.h"
Commenter la réponse de cs_imoum
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention - 6 août 2011 à 17:02
0
Merci
Si tu veux une réponse, il va falloir que tu fasses des efforts.

- Pas d'écritures sms. b1 => Bien, etc... Ecrire en sms est un énorme manque de respect !
- Un effort sur l'orthographe.
- Utilise la ponctuation (.,;?!:), sinon tes phrases seront presques illisibles.
- Utilise des balises de code quand tu en postes.
- Relis toi avant de poster (Tu fais des fautes de frappes).

Je t'invite à reposter ton post précédent proprement, en appliquant tous les conseils qui t'ont été donné.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 6 août 2011 à 18:29
0
Merci
En l'absence d'efforts je n'en fais pas non plus
Un lien en anglais : Lien MSDN
Commenter la réponse de cs_LA_Tupac
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 6 août 2011 à 22:16
0
Merci
ok je suis nouveau ici alors ça arrive les fautes.
lors du compilation il s'affiche le message suivant:
Erreur 15 error C2079: 'livre::l' utilise une struct de 'lvr' non défini.


#include"structure.h"
class livre
{
public:
lvr l;
plvr llst;
public:
//livre();
livre(int,int,char* titre,char* retour);
~livre();
plvr lire();
void ecrire(plvr lst);
plvr rechercher(lvr,plvr);
void afficher(plvr);


};
Commenter la réponse de cs_imoum
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 6 août 2011 à 23:19
0
Merci
ok je suis nouveau ici alors ça arrive les fautes.

Ca ne justifie certainement pas les fautes de frappes ni le langage sms ...
Ton soucis est dans la définition de l'objet "lvr".
Montre-nous plutôt ou est définie cet objet. (peut-être dans structure.h" ?).
Commenter la réponse de cs_LA_Tupac
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 7 août 2011 à 00:00
0
Merci
effectivement Tupac.l'objet "lvr" est une structure définie dans"structure.h" mais le probleme c'est qui est coloré en rouge.



...
struct lvr{
int cote ;
int par;
char* retour;
lvr* nxt;
} ;
typedef class lvr lvr;
typedef class lvr* plvr;
...
Commenter la réponse de cs_imoum
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention - 7 août 2011 à 13:16
0
Merci
typedef class lvr lvr;

Inutile. En C++, une "class" est une "struct", c'est exactement la même chose (à part la visibilité par défaut).

typedef class lvr* plvr; 

Mauvaise idée. On évite de cacher un pointeur dans un type. Mieux vaut écrire lvr* que plvr.

Je te conseil de retirer de ton code tout ce que tu as mis en rouge.

Si tu veux faire une liste chaînée, pas besoin de la recoder. Il existe déjà le std::list.
En revanche, si tu n'as pas le droit d'utiliser un std::list parce que ton exercice scolaire consiste à coder une liste chaînée, alors c'est la bonne voie.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 7 août 2011 à 14:49
0
Merci
La même ... je virerai le rouge inutile.
A savoir que ce code compile nickel sur gcc.
A force on va m'attaquer en diffamation mais je persiste: Microsoft c'est de la $}§#!.

légende: $}§#! = bonne qualité
Commenter la réponse de cs_LA_Tupac
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 7 août 2011 à 15:41
0
Merci
non "plvr" est utile.en fait voila une partie de mon projet;
plvr lire_fich(ifstream &f2,plvr ptr)//une fonction de la classe livre
{
 plvr npt ;
 npt = new lvr;

 npt->retour=new char[20];

 f2>>npt->cote;

 f2>>npt->par;

 f2>>npt->retour;

 npt->nxt=NULL;

 if (ptr==NULL)
     {return npt ;}

 else
  {
    plvr temp=ptr ;
    while(temp->nxt != NULL)
    {temp=temp->nxt;}

    temp->nxt=npt;
    return ptr ;
  }
}

alors c'est quoi le problème??
Commenter la réponse de cs_imoum
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 7 août 2011 à 16:05
0
Merci
j'ai un erreur: error C2027: utilisation du type non défini 'lvr' c:\users\amine\documents\visual studio 2010\projects\biblio\livre.cpp
le meme erreur pour la ligne 5,6,7,8,9 dans la classe précedente.
Commenter la réponse de cs_imoum
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 7 août 2011 à 16:36
0
Merci
Je regrette mais tu n'as pas lu CptPingu !
*lvr suffit et ça permet de savoir ce que tu manipule (pointeur ou variable).
Le dernier bout de code est il dans un fichier cpp à part du main?
Si oui, as-tu ajouté le #include <structure.h> ?
Commenter la réponse de cs_LA_Tupac
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscription 21 septembre 2018 Dernière intervention - 7 août 2011 à 21:37
0
Merci
non "plvr" est utile

Non seulement il n'est pas utile, mais en plus c'est une mauvaise pratique. utilise lvr* à la place.
Si tu n'écoute pas les conseils que l'on te donne, ça va être dur de t'aider.


plvr npt ;
npt = new
npt->retour=new char[20];

Devrait être:
lvr* npt = lvr;

npt->retour = ""; // Avec npt->retour qui devrait être un std::string et non un char[20] !!!




f2>>npt->cote;
f2>>npt->par;
f2>>npt->retour;

Tu peux directement écrire:
 f2 >> npt->cote >> npt->par >> npt->retour;


npt->nxt=NULL;

Devrait être:
npt->nxt = 0;

Evite NULL en c++, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/null-en-cpp


if (ptr==NULL)
{return npt ;}
else
plvr temp=ptr ;
while(temp->nxt != NULL)
{temp=temp->nxt;}

temp->nxt=npt;
return ptr ;
}

Pas besoin de else, quand tu as un return ! Le return fait sortir de la fonction.
  if (ptr == 0)
    return npt;

  lvr* temp = ptr;
  while (temp->nxt != 0)
    temp = temp->nxt;

  temp->nxt = npt;
  return ptr;
}


Ceci:
plvr lire_fich(ifstream &f2,plvr ptr)


Devrait être:
lvr* lire_fich(std::ifstream& f2, lvr* ptr)

Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace

alors c'est quoi le problème??

Regarde si tu as bien ajouté: #include "structure.h"
(D'ailleurs, en C++ un header porte l'extension .hh ou .hpp mais pas .h)

Enfin, pourquoi ne pas tout simplement utiliser un std::list ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
cs_imoum 34 Messages postés mardi 2 août 2011Date d'inscription 24 avril 2012 Dernière intervention - 9 août 2011 à 18:38
0
Merci
merci pour les conseils mais j'ai d'autre erruers en fait:

error C2227: la partie gauche de '->retour' doit pointer vers un type class/struct/union/générique c:\users\amine\documents\visual studio 2010\projects\bibliothèque\livre.cpp
//une partie de la classe "livre"
//l'erreur se trouve a la 2ième ligne  
lvr* lire_fich(std::ifstream &f2,lvr* ptr)//une fonction de la class livre
{
 lvr* npt = new lvr;
 npt->retour=new char[20];

 f2>>npt->cote;

 f2>>npt->par;

 f2>>npt->retour;

 npt->nxt=0;

//la structure"livre"
struct lvr{
    int cote ;
    int par;
    char* retour;
    lvr* nxt;
    lvr* plvr;
} ;
Commenter la réponse de cs_imoum

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.