Commentaires

  1. Avatar de stanisla
    • |
    • permalink
    Citation Envoyé par Gugelhupf
    Bonjour,

    J'ai lu ce sujet il y a un certain moment déjà, mais j'ai hésité à dire ce que je pensais.
    Je n'ai pas vraiment de question à poser par rapport au langage lui-même mais son environnement, pour ce qui est de l'intégration des librairies (une tâche bien difficile en C++).
    Lorsqu'on utilise des langages comme Java on a des outils reconnus comme Maven (ps: Nuget pour C#, Composer pour PHP etc) qui facilitent l'intégration des librairies, en C++ il n'y a pas vraiment d'outil "reconnu", tout le monde n'en fait qu'à sa tête.
    Personnellement je suis sur qu'il y aurait plus de gens pour faire du C++ si ce dernier facilitait la tâche aux développeurs, donc pensent-ils un jour travailler sur un tel outil "standard" / multiplateforme / interopérable pour l'intégration des librairies ?

    Merci
    Enoncé
    Le supermarché XL souhaite gérer les clients, les commandes et les ventes. Il a identifié les
    différentes entités nécessaires et leurs caractéristiques. Ces entités sont les suivantes :
    - client : numéro, nom, prénom, date de naissance, genre (M, F) ;
    - article : référence, libellé, prix unitaire, quantité en stock et seuil critique ;
    - commande : numéro de la commande, numéro du client qui a passé cette commande, état
    (livrée, en cours), référence de l’article et quantité commandée ;
    - livraison : pour une livraison, on saisit le numéro de la commande, la quantité à livrer de
    l’article et le numéro du client.
    Chaque commande est faite par un seul client.
    Le magasin aimerait avoir une application lui permettant de :
    1. Enregistrer, rechercher, modifier et supprimer les clients de la XL, les articles, les
    commandes et les livraisons ;
    2. Donner la liste des articles achetés par un client donné ;
    3. Donner la liste des clients d’un article donné;
    4. Donner la liste des commandes d’un client en cours ;
    5. Faire des statistiques sur les ventes d’un article : quantité vendue, nombre de
    commandes ;
    6. Afficher les articles et leurs prix unitaires ;
    7. Afficher les articles à ravitailler (ie donc la quantité en stock est au seuil critique ; NB :
    les quantités commandées doivent être réduites du stock de l’article
    8. Calculer le capital de XL ;
    9. Donner le nom du meilleur client (client ayant acheté la plus grande quantité) par
    article.
    TAF :
    Il vous est demandé d’utiliser les fichiers pour stocker les données et pour apporter une
    solution au problème de XL avec un programme C++. Vous définirez donc : des classes
    nécessaires. Il est important de respecter le principe de la POO en faisant les fichiers .h pour
    chaque classe. Après avoir bien défini vos classes, vous devez écrire les fonctions ou les
    procédures pour répondre aux questions de 1 à 9
  2. Avatar de stanisla
    • |
    • permalink
    la solution pardon
    é
    Le supermarché XL souhaite gérer les clients, les commandes et les ventes. Il a identifié les
    différentes entités nécessaires et leurs caractéristiques. Ces entités sont les suivantes :
    - client : numéro, nom, prénom, date de naissance, genre (M, F) ;
    - article : référence, libellé, prix unitaire, quantité en stock et seuil critique ;
    - commande : numéro de la commande, numéro du client qui a passé cette commande, état
    (livrée, en cours), référence de l’article et quantité commandée ;
    - livraison : pour une livraison, on saisit le numéro de la commande, la quantité à livrer de
    l’article et le numéro du client.
    Chaque commande est faite par un seul client.
    Le magasin aimerait avoir une application lui permettant de :
    1. Enregistrer, rechercher, modifier et supprimer les clients de la XL, les articles, les
    commandes et les livraisons ;
    2. Donner la liste des articles achetés par un client donné ;
    3. Donner la liste des clients d’un article donné;
    4. Donner la liste des commandes d’un client en cours ;
    5. Faire des statistiques sur les ventes d’un article : quantité vendue, nombre de
    commandes ;
    6. Afficher les articles et leurs prix unitaires ;
    7. Afficher les articles à ravitailler (ie donc la quantité en stock est au seuil critique ; NB :
    les quantités commandées doivent être réduites du stock de l’article
    8. Calculer le capital de XL ;
    9. Donner le nom du meilleur client (client ayant acheté la plus grande quantité) par
    article.
    TAF :
    Il vous est demandé d’utiliser les fichiers pour stocker les données et pour apporter une
    solution au problème de XL avec un programme C++. Vous définirez donc : des classes
    nécessaires. Il est important de respecter le principe de la POO en faisant les fichiers .h pour
    chaque classe. Après avoir bien défini vos classes, vous devez écrire les fonctions ou les
    procédures pour répondre aux questions de 1 à 9
  3. Avatar de stanisla
    • |
    • permalink
    é
    Le supermarché XL souhaite gérer les clients, les commandes et les ventes. Il a identifié les
    différentes entités nécessaires et leurs caractéristiques. Ces entités sont les suivantes :
    - client : numéro, nom, prénom, date de naissance, genre (M, F) ;
    - article : référence, libellé, prix unitaire, quantité en stock et seuil critique ;
    - commande : numéro de la commande, numéro du client qui a passé cette commande, état
    (livrée, en cours), référence de l’article et quantité commandée ;
    - livraison : pour une livraison, on saisit le numéro de la commande, la quantité à livrer de
    l’article et le numéro du client.
    Chaque commande est faite par un seul client.
    Le magasin aimerait avoir une application lui permettant de :
    1. Enregistrer, rechercher, modifier et supprimer les clients de la XL, les articles, les
    commandes et les livraisons ;
    2. Donner la liste des articles achetés par un client donné ;
    3. Donner la liste des clients d’un article donné;
    4. Donner la liste des commandes d’un client en cours ;
    5. Faire des statistiques sur les ventes d’un article : quantité vendue, nombre de
    commandes ;
    6. Afficher les articles et leurs prix unitaires ;
    7. Afficher les articles à ravitailler (ie donc la quantité en stock est au seuil critique ; NB :
    les quantités commandées doivent être réduites du stock de l’article
    8. Calculer le capital de XL ;
    9. Donner le nom du meilleur client (client ayant acheté la plus grande quantité) par
    article.
    TAF :
    Il vous est demandé d’utiliser les fichiers pour stocker les données et pour apporter une
    solution au problème de XL avec un programme C++. Vous définirez donc : des classes
    nécessaires. Il est important de respecter le principe de la POO en faisant les fichiers .h pour
    chaque classe. Après avoir bien défini vos classes, vous devez écrire les fonctions ou les
    procédures pour répondre aux questions de 1 à 9
  4. Avatar de stanisla
    • |
    • permalink
    é
    Le supermarché XL souhaite gérer les clients, les commandes et les ventes. Il a identifié les
    différentes entités nécessaires et leurs caractéristiques. Ces entités sont les suivantes :
    - client : numéro, nom, prénom, date de naissance, genre (M, F) ;
    - article : référence, libellé, prix unitaire, quantité en stock et seuil critique ;
    - commande : numéro de la commande, numéro du client qui a passé cette commande, état
    (livrée, en cours), référence de l’article et quantité commandée ;
    - livraison : pour une livraison, on saisit le numéro de la commande, la quantité à livrer de
    l’article et le numéro du client.
    Chaque commande est faite par un seul client.
    Le magasin aimerait avoir une application lui permettant de :
    1. Enregistrer, rechercher, modifier et supprimer les clients de la XL, les articles, les
    commandes et les livraisons ;
    2. Donner la liste des articles achetés par un client donné ;
    3. Donner la liste des clients d’un article donné;
    4. Donner la liste des commandes d’un client en cours ;
    5. Faire des statistiques sur les ventes d’un article : quantité vendue, nombre de
    commandes ;
    6. Afficher les articles et leurs prix unitaires ;
    7. Afficher les articles à ravitailler (ie donc la quantité en stock est au seuil critique ; NB :
    les quantités commandées doivent être réduites du stock de l’article
    8. Calculer le capital de XL ;
    9. Donner le nom du meilleur client (client ayant acheté la plus grande quantité) par
    article.
    TAF :
    Il vous est demandé d’utiliser les fichiers pour stocker les données et pour apporter une
    solution au problème de XL avec un programme C++. Vous définirez donc : des classes
    nécessaires. Il est important de respecter le principe de la POO en faisant les fichiers .h pour
    chaque classe. Après avoir bien défini vos classes, vous devez écrire les fonctions ou les
    procédures pour répondre aux questions de 1 à 9
  5. Avatar de didi2016
    • |
    • permalink
    Salut à tous et toutes

    je suis débutant en language C .

    Je voudrais créer un programme de playlist .

    ouvrir une playlist

    associer un mp3

    lire le mp3 afficher

    rechercher un mp3 à partir du titre

    supprimer un mp3 de la liste

    parcourir séquentiellement les mp3 ajouté

    modifier les information d'un mp3 déjà affiché

    ces fonction peuvent etre sélectionné par un menu via interface homme machine en mode alphanumérique dont l'apparence sera la suivante:

    si vous pouvez m'aider je vous remercie beaucoup pour votre geste et vous avez un point dans votre Karma

    ^^
  6. Avatar de Aurelien.Regat-Barrel
    • |
    • permalink
    Bonjour,

    L'intégration des libs est un problème en effet, et s'il perdure, c'est qu'il est très complexe à résoudre. Et le comité n'a pas vocation à travailler là dessus : les outils sont en dehors de son scope. Il établit juste un standard, c.à.d un papier que divers industriels choisissent de respecter... ou pas, en fonction de leur contexte d'utilisation, de leurs ressources, etc... et ce sont autant d'environnements avec des contraintes très différentes qui "n'en font qu'à leur tête" pour de bonnes raisons en général.

    Par exemple, chez Java, Google/Android a recréé son propre écosystème, avec ses propres packages, son propre système de build plutôt que ce qui était établi dans la communauté Java. De même chaque environnement C++ a son propre système. Cela dit CMake est très populaire et relativement "standard". Et sous Windows tu peux utiliser MSBuild et Nuget pour tes applis C++ comme tu le fais avec C#.

    Il y a eu une tentative récente de proposer une solution unifiée pour le packaging - Biicode - mais elle a échoué. En tous cas ça montre la volonté de trouver une solution. Moi même j'aimerais bosser sur un tel projet. Je profite de l'occasion ici au meeting pour trouver un moyen pour les entreprises de collaborer au développement d'outils "officiels".

    En bref, tout cela tire son origine dans la longue histoire du langage et dans son succès aussi, et c'est pas au comité de donner la solution mais à la communauté de la développer !
  7. Avatar de Gugelhupf
    • |
    • permalink
    Bonjour,

    J'ai lu ce sujet il y a un certain moment déjà, mais j'ai hésité à dire ce que je pensais.
    Je n'ai pas vraiment de question à poser par rapport au langage lui-même mais son environnement, pour ce qui est de l'intégration des librairies (une tâche bien difficile en C++).
    Lorsqu'on utilise des langages comme Java on a des outils reconnus comme Maven (ps: Nuget pour C#, Composer pour PHP etc) qui facilitent l'intégration des librairies, en C++ il n'y a pas vraiment d'outil "reconnu", tout le monde n'en fait qu'à sa tête.
    Personnellement je suis sur qu'il y aurait plus de gens pour faire du C++ si ce dernier facilitait la tâche aux développeurs, donc pensent-ils un jour travailler sur un tel outil "standard" / multiplateforme / interopérable pour l'intégration des librairies ?

    Merci
  8. Avatar de Invité
    • |
    • permalink
    [QUOTE=Gugelhupf]@groharpon42,
    Merci pour les templates et lambdas mais je ne suis pas novice, cela va bientôt faire 8 ans que je côtoie ce langage donc voilà je le connais un minimum.
    [/QUOTE]

    Je n'ai jamais prétendu le contraire et je ne suis pas un novice non plus.
    Je voulais simplement dire que l'ensemble de la bibliothèque tourne autour de quelques concepts genre conteneur/itérateur/algorithme... + généricité, ceci depuis plus de 20 ans et sans avoir nécessité de refactoring tous les 6 mois.
    Personnellement, je trouve que c'est un signe de cohérence globale et de maturité.

    [QUOTE=Gugelhupf]
    je ne suis pas le seul à penser qu'il y a des incohérences dans la STL (tu peux voir sur les commentaires de [URL="http://stackoverflow.com/a/17654460/2389207"]ce lien[/URL]). Mais ce n'était là qu'un simple exemple.
    [/QUOTE]

    Je suis d'accord avec toi qu'il y a des incohérences ponctuelles, comme dans toutes les bibliothèques j'imagine.
    Cependant, ce n'est pas ce que tu disais dans ton post initial où tu qualifiais la bibliothèque elle-même d'incohérente et faisant preuve d'amateurisme dans sa conception (ou alors j'ai mal compris ton propos); et là je ne suis pas d'accord (cf ma remarque précédente).
    Quant à l'exemple du nom de fonction, si c'est çà le plus gros inconvénient de la STL...

    Cela dit, merci pour le lien. A noter qu'on y trouve un draft du livre "A tour of C++" ([url]https://isocpp.org/tour[/url]) que je trouve pas mal pour sa concision et ses petits conseils.
    Mis à jour 16/10/2015 à 18h43 par Invité
  9. Avatar de Gugelhupf
    • |
    • permalink
    @Traroth2
    Les livres c'est pas mal, mais sinon tu peux aller sur le site officiel du C++ : https://isocpp.org/ pour apprendre pas mal de choses sur les nouveautés du langage.
  10. Avatar de Traroth2
    • |
    • permalink
    Faudrait vraiment que je m'y remette. La dernière fois que j'ai fait du C++, ce langage ne proposait pas de traitement des exceptions. Ca doit dater de 1997, en gros.

    L'ennui, c'est que je n'arrive pas à trouver de version e-book de "Le langage C++" de Stroustrup, dans une édition récente (la plus récente est de 2013, je crois).
  11. Avatar de Traroth2
    • |
    • permalink
    Citation Envoyé par groharpon42
    Donc que deux méthodes qui ne font pas la même chose portent des noms différents, c'est incohérent...
    Autant, pour moi, je n'avais pas compris que c'était de l'humour.
    Tu es sûr d'avoir lu le commentaire ?
  12. Avatar de Gugelhupf
    • |
    • permalink
    @groharpon42,
    Merci pour les templates et lambdas mais je ne suis pas novice, cela va bientôt faire 8 ans que je côtoie ce langage donc voilà je le connais un minimum.

    Oui le nom ArrayList en Java est logique vu que c'est une implémentation de l'interface List qui utilise des tableaux.

    Non, il n'y avait pas d'humour concernant le nom des méthodes min() et lowest() et je ne suis pas le seul à penser qu'il y a des incohérences dans la STL (tu peux voir sur les commentaires de ce lien). Mais ce n'était là qu'un simple exemple.

    La devise du C++ c'est Write Once Compile Anywhere, donc même s'il n'y a aucun problème avec les IDE et Clang sous Linux, je trouve dommage de ne pas trouver cette stabilité ailleurs.
  13. Avatar de Invité
    • |
    • permalink
    [QUOTE=Gugelhupf]Moi en tant que développeur C++, plusieurs choses me dérangent :
    [LIST=1][*][B]La mise en place de l'environnement C++ sur sa machine[/B] (cf : l'IDE + compilateur). [/LIST][/QUOTE]

    Merci de préciser "sous Windows" parce que sous Linux/Unix il n'y a quasiment rien à faire pour que çà fonctionne.

    [QUOTE=Gugelhupf]
    [B]L'incohérence de la STL[/B].
    [/QUOTE]

    Absolument pas d'accord.
    Qualifier la STL d'incohérente parce que quelques noms ne te plaisent pas c'est vraiment n'importe quoi. C'est vrai que "ArrayList" en Java, c'est super logique...
    À ma connaissance, la STL "actuelle" date de 1994 et utilise massivement les templates, ce qui était plutôt novateur à l'époque. Depuis, elle a évolué sans grosse rupture de compatibilité et a même intégré les lambdas comme si de rien n'était. Elle n'est bien-sûr pas parfaite mais si elle était vraiment incohérente, je ne pense pas qu'elle aurait survécu jusqu'ici. Remarque Windows a survécu jusqu'ici... Oups un troll s'est échappé.

    [B]Edit :[/B]

    [QUOTE=Gugelhupf]
    mais il existe une troisième méthode min() qui n'est pas un synonyme de lowest() et qui sert à autre chose !!!
    [/QUOTE]

    Donc que deux méthodes qui ne font pas la même chose portent des noms différents, c'est incohérent...
    Autant, pour moi, je n'avais pas compris que c'était de l'humour.
    Mis à jour 15/10/2015 à 22h51 par Invité
  14. Avatar de Gugelhupf
    • |
    • permalink
    Moi en tant que développeur C++, plusieurs choses me dérangent :
    1. La mise en place de l'environnement C++ sur sa machine (cf : l'IDE + compilateur). Je me souviens qu'il y a 4-5 ans que code::blocks m'avait donné du fil à retordre, récemment j'ai installé Qt et des problèmes similaires voir pires sont apparues : installation en mode online interrompu pour des raisons des raisons différentes à essai (messages d'erreurs différents à chaque fois), installation en mode offline ne fonctionne qu'avec MinGW (portage de GCC sous Windows), donc adieu les installateurs Qt version Visual C++ alors que ça devrait fonctionner bon sang vu que juste avant j'ai installé 15Go de Visual Studio Community avec toutes ses cliques et ses claques (compilateurs etc), l'environnement Visual est détecté dans les options de l'IDE mais il y a une erreur non résolvable qui vous empêche de faire du C++ avec. J'ai même installé Clang pour m'amuser en ligne de commande, même ça ça ne fonctionne pas sous Windows ! Donc voilà je suis Windows et je suis limité à faire du C++ avec Visual Studio si j'utilise le compilateur de Visual et MinGW pour le reste (Code Once And Pain in the neck if Windows bravo !).
    2. L'incohérence de la STL. L'autre jour j'ai effectué des recherches pour connaitre les plages maximum et minimum d'une variable, c'est cool parce que C++11 apporte un bon moyen de le faire avec la classe std::numeric_limits<T> avec ses méthodes static, donc pour obtenir la plage max il faut utiliser max() rien de bien méchant jusque là, et pour obtenir la plage min il faut utiliser lowest() là on commence à sentir l'incohérence mais on tient le coup... mais il existe une troisième méthode min() qui n'est pas un synonyme de lowest() et qui sert à autre chose !!! Bref c'était un exemple de l'incohérence de la STL malgré l'évolution du langage avec C++11. Pour ma part ayant déjà passé plusieurs années avec différents langages je ressens de l'amateurisme dans la conception des API (ce que je dis là est grave j'en suis conscient), mais j'aurais attendu mieux de la part des concepteurs du langage C++ parce que chaque couche ajouté trainera dans le langage pour les 30 années à venir, et généralement avoir des API incohérents ne fera pas en sorte que les développeurs se plairont à utiliser ce langage.
  15. Avatar de Markand
    • |
    • permalink
    J'espère qu'un jour on aura un vrai support de l'unicode. Parce que char32_t c'est bien gentil, std::u32string aussi. Mais on a rien qui permet de tester si un caractère unicode est une lettre, un chiffre.