bonjour, je suis en 1ère année de bts, je dois un rendre noté, que j'ai commencé mais je n'y arrive pas, je vous laisse donc mon code que j'ai fait et mon énoncé. merci d'avance pour l'aide
dmNoel.pdf
ConsoleApplication1.rar
bonjour, je suis en 1ère année de bts, je dois un rendre noté, que j'ai commencé mais je n'y arrive pas, je vous laisse donc mon code que j'ai fait et mon énoncé. merci d'avance pour l'aide
dmNoel.pdf
ConsoleApplication1.rar
Bonjour,
J'ai regardé, tu as mis tant bien que mal des morceaux de l'énoncé dans des fichiers.
Il faudrait peut-être avoir une stratégie avec un début, un milieu, et un jour une fin.
Avant d'écrire du code, il te faut l'apprendre. Puis voir comment s'en servir. Tu as dû avoir des cours, tu peux aussi lire les tutoriaux.
Quand même quelques conseils, sur ce je que j'ai vu.
- Ça n'est pas une tradition, une commande doit se terminer par un point-virgule, il en manque beaucoup.
- Les lettres accentuées ne sont pas autorisées dans les noms de variables et de types.
Essaye par exemple au moins d'écrire une des fonctions demandée dans l'énoncé.
Salut,
D'abord, saches que nous ne sommes pas sur faitesmesdevoirs.com! On veut bien t'aider si tu as un problème d'incompréhension, voir un problème d'algorithmie, mais on ne te donnera pas le code tout fait : ce serait le pire service que nous pourrions te rendre.
Sinon, selon toi, à quoi pourrait servir, selon toi, un paramètre (représentant une chaine de caractères) nommé chLigne (nom très mal choisi, je te l'accorde) dans une fonction nommée AfficherEn-tête
Autre question similaire : à quoi pourraient servir les paramètres (représentant respectivement une chaine de caractères et un double) nommés respectivement MonArticle (nom moins mal choisi) et montant (nom particulièrement bien choisi) dans une fonction nommée AfficherArticle
En outre, à quoi correspondent, selon toi, les paramètres double *TabMontant et int nbarticle(noms pas si mal choisis) dans une fonction nommée CalculTotal, même si on ne transmet plus ce genre d'informations sous cette forme depuis près de vingt ans et qu'il semble "peu cohérent" de renvoyer un float alors que toutes les données reçues sont sous la forme de double
Enfin, la question qui tue : pourquoi nommer ta classe cEnregistrement et pas tout simplement Enregistrement on se fout pas mal que ce soit une classe ... D'ailleurs, pourquoi créer une classe si c'est pour mettre toutes les données dans l'accessibilité publique Autant créer une structure (à l'aide du mot clé struct), c'est d'autant moins d'effort
Et, pour te rassurer sur le fait que tu n'est peut être pas tout à fait le seul fautif, pourrais tu faire passer un message à ton prof(et je t'avouerai que j'ai fait un effort pour donner une version adoucie de ce que je voulais lui dire, sinon je l'aurais volontiers traité de vieux con rétrograde )Monsieur le professeur,
s'il est très courageux de votre part d'essayer d'apprendre à programmer à vos étudiants, il serait plus que temps que vous mettiez vos connaissances du C++ à jour : cela fait maintenant près de vingt ans que la classe std::string existe, et qu'il est très largement préférable de l'utiliser en lieu et place de ces horribles char *.
De même, cela fait tout ce temps qu'il est conseillé d'utiliser la classe std::vector ou ( depuis trois ans, ce qui fait un bail en informatique) la classe std::array pour les tableaux dont on connait effectivement le nombre d'éléments à la compilation en lieu et place des tableau "C style".
A moins, bien sur, que vous ne vouliez leur apprendre à programmer en C Mais, dans ce cas, vous seriez aimable de ne pas faire passer votre cours pour un cours de C++, car ce sont bel et bien deux langages totalement différents rendant toute confusion extrêmement dangereuse.
Notez enfin que vous devriez sérieusement veiller à la cohérence de votre énoncé : si toutes les données sont de type double, il semble peu cohérent de renvoyer un total sous la forme d'un float : bien que visiblement sans grande incidence dans votre exercice (après tout, la précision des montants n'excède normalement pas la deuxième décimale), cela pourrait avoir pour effet de faire perdre des données importante pour tout besoin nécessitant une précision plus importante.
Un compilateur ben réglé aurait d'ailleurs attiré votre attention sur ce fait au travers d'un avertissement, mais, peut-être estimez-vous savoir mieux que le compilateur ce qui peut poser problème Permettez moi d'émettre de très sérieux doute sur le sujet.
Pouvez vous en outre prendre note du fait que la notation polonaise a été abandonnée depuis bien longtemps déjà (du moins en C++), tant il a été prouvé qu'elle apportait vraiment rien --surtout lorsque l'on utilise les types adéquats :
- chNom pourrait très bien s'appeler nom (ou Nom, si vous préférez), on se doute très bien que c'est une chaine de caractères
- idem pour chLigne qui pourrait s'appeler ligne (ou Ligne)
- idem pour chMonArticle, qui, pour la cause, devrait s'appeler nomArticle (ou NomArticle, pour respecter vos conventions)
- tabMontant pourrait s'appeler montants (ou Montants) : le pluriel nous indiquerait clairement qu'il s'agit d'un tableau
- il en va de même pour tabEnregistrement qui devrait s'appeler enregistrements (notez encore une fois le pluriel)
- Enfin, on se fout pas mal que CEnregistrement soit une classe (une simple struct ferait d'ailleurs l'affaire, pour la cause). Nous pourrions la nommer Enregistrement sans que cela ne pose de problème
Notez enfin que l'idéal est de choisir une convention de nommage qui permette d'éviter les erreurs entre les types et les noms de variables / de fonctions. La convention de nommage de la STL n'est -- très clairement pas forcément la meilleure, mais une chose est sur : les noms de fonctions et de variables sont tout de suite beaucoup plus repérables quand ils sont écrits en lowerCamelCase (ou tout en minuscules) et les types définis par l'utilisateur sont tout de suite plus repérables lorsqu'ils sont écrits en HightCamelCase.
Au fait, saviez vous que la seule différence entre le mot clé class et le mot clé struct réside dans l'accessibilité appliqué par défaut (comprenez : avant que l'on ne croise le premier spécificateur d'accès) privée pour le mot clé class, publique pour le mot clé struct. Mais, en dehors de cela, il n'y a absolument rien que l'on puisse faire avec l'un que l'on ne puisse pas faire avec l'autre.
Enfin, bref : je ne saurais jamais insister assez sur l'absolue nécessité que vous auriez à mettre vos connaissances à jour, car, dans la situation présente, vous ne serez jamais en mesure de former vos étudiants à fournir du code correct et un minimum robuste.
Bien à vous,
DUNSKI Philippe
Expert C++, expert qualité du développement
auteur du livre Coder efficacement -- bonnes pratiques et erreurs à éviter en C++
On est pas la pour faire tes devoirs, si tu as raté les cours forme toi ici : Cours et tutoriels C++ et FAQ C++ et fait tes exercices toi même.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager