Bonjour
Je recherche un exemple d'un programme de gestion de stocks afin d'étudié le code .
merci
Version imprimable
Bonjour
Je recherche un exemple d'un programme de gestion de stocks afin d'étudié le code .
merci
C'est trop large comme demande, même github ou sourceforge ne te répondront pas.
Par contre, si tu veux, on peut t'aider à en concevoir un.
Bonjour leternel
Merci pour l'aide
d'abord par où commencer pour crée un programme de gestion de stock en C++ ?
j'ai crée une classe menu_principale mais je sais pas quoi dans private :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #ifndef MENU_PRINCIPALE_H_INCLUDED #define MENU_PRINCIPALE_H_INCLUDED // Interface principale du logiciel //Class Menu_Principale class Menu_principale { public : void cree_produit(); void crée_fournisseur(); void afficher_produit(); void afficher_fournisseur(); void charger(); void sauver(); void quitter(); private : }; #endif // MENU_PRINCIPALE_H_INCLUDED
C'est parce que tu ne considères pas le problème dans son intégralité.
Tu as décris ce qu'on dois pouvoir faire dans l'application.
C'est bien, mais ce sont essentiellement les fonctions utile pour le main.
Ce dont tu as besoin, c'est de réfléchir aux données manipulées.
Un stock est un ensemble relativement ordonné de choses.
Il te faut une classe pour ces choses.
Une fois cela fait, ton stock se résume à une map<identifiant, chose> ou à un vector<chose>, selon l'usage que tu souhaite en faire.
Ce stock en lui-même pourrait n'être qu'une variable locale dans le main, je en pense pas que tu aies besoin d'une classe dédiée.
Par contre, un typedef et les fonctions de chargement et sauvegarde seront utile.
PS: et tant que tu y es, c'est "menu principal"
Bonjour
Je crois que c'est un peu compliqué pour moi
personne pour m'aider svp
Bonjour,
nous ne sommes pas ici pour réaliser tes devoirs / travaux.
Si tu as envie de faire quelque chose, c'est que tu as une bonne idée de ce quelque chose.
Boileau disait "ce qui se conçoit bien s'énonce clairement".
Plus ton explication de ce que tu veux faire sera précise et complète, plus tu sauras comment le faire, ou quelle question nous poser.
Et de même, plus tes questions seront précises, plus on aura l'impression que tu as travaillé, et nous serons enclin à t'aider.
Pour le moment, comme Bousk te l'a dit, nous ne pouvons pas t'aider.
Je cherche un exemple à étudier uniquement
Le code n'importe pas, c'est la façon de penser.
Je n'ai pas de code à te donner, je n'ai pas ça sous la main.
Par contre, je veux bien réfléchir avec toi pour en écrire.
Mais pour ça, il faut nous dire précisément ce que tu appelle gestion de stocks.
merci de ton aide
que j'appelle gestion de stocks
c'est un menu dans lequel on a un stock et on rajoute des produits
comme un répertoire téléphonique
Donc, tu veux stocker une liste de nom, voire avec des quantités, de façon persistante (sauvegarde)?
Veux-tu avoir plus d'information sur les choses listées?
Bonjour
Oui c'est ça , mais je suis en nul pour écrire les class et les tableaux en C++
En ce cas, il faut matérialiser dans le code la notion de "chose", celle de "liste", et enfin, le flux d'activité.
Une chose, pour toi, c'est juste un nom, autant s'y limiter:typedef std::string chose;.
La liste fournit associe à chaque nom une quantité.
C'est le cas d'usage d'une map: typedef std::map<chose, int> stock;Maintenant, il n'y a plus qu'à combiner.
Les fonctionnalités de l'applications sont:
- lire un stock existant
- ajouter un (ou plusieurs) élément(s) dans le stock.
- retirer un (ou plusieurs) élément(s) du stock.
- savoir combien d'éléments d'un type existent.
- afficher le stock complet
- sauvegarder ce stock
et fonction complémentaire: proposer une interface utilisateur pour le faire correctement.
Tu as donc besoin d'autant de fonctions, plus toutes celles qui te seront utiles pour les coder.
Ca donnerait pour moi quatre fichiers.
main.cpp, avec la fonction main, qui contient l'interface (ligne de commande ou graphique)
stock.hpp, qui définit les en-têtes de toutes ces fonctions.
stock.cpp qui les implémente
stock_persistence.cpp, qui implémente les deux fonctions relatives aux fichiers (lecture et sauvegarde).
Je te propose de coder déjà cette structure, avec des commentaires en guise de code interne des fonctions, si tu ne sais pas encore qu'y mettre.
merci pour les conseils
il faut mettre alors appelle la librairie include <map>
Oui, en effet, ainsi que <string> et <iostream>.
Quand tu auras codé, reviens nous montrer, qu'on puisse te guider et te conseiller plus concrêtement
Bonjour
je sais pas utilisé la bibliothèque map
Bonjour, deux solutions possibles :
Suivre le lapin blanc, prendre la pillule rouge, se brancher, et demander à Trinity l'apprentissage du c++.
Ou bien faire quelques recherches sur ce site, ou cppreference ou tellement d'autre...
Serieusement, un bon tutorial fera l'affaire.
En fait, un std::map, c'est ce qu'on appelle un dictionnaire, ou un tableau associatif, (meme si tableau n'est pas un bon nom).
C'est un conteneur. Il contient des associations identifiant-valeur, avec la propriété que chaque identifiant est unique.
Ses fonctionnalités principales sont:
- associer une valeur à une clé (emplace, insert)
- obtenir la valeur associée à une clée (get/[]/find)
- retirer une clé
Dans ton cas, il faudra coder une fonction auxiliaire: l'augmentation de la valeur associé à une clé.
Mais cppreference.com ou cplusplus.com sont deux sites très utiles, qui se recouvrent très largement. (j'ai une préférence pour cppreference)
Bonjour
je viens d'acheter un dvd
et c'est beaucoup mieux :o)))
Si ca t'aide, tant mieux!
Tu peux aussi te servir des nombreux cours et tutoriels pour apprendre C++ disponible sur notre site.
Avec la FAQ C++, ils forment un bon moyen d'approfondir les connaissances.
Tout particulièrement par la compréhension des mécanismes du langage, et donc des bonnes manières de l'utiliser (RAII, par exemple)
bonjour
je laisse tomber c'est trop compliqué pour moi
je sais faire que ça en C++:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 //Petit programme qui permet d'entré un mot de passe , effacer l'ecran pour afficher un titre en C++ #include <iostream> #include <stdlib.h>//Pour utilise system("cls") qui permet d'effacer l'écran #include <string> using namespace std; //Fonction affichage void affichage(); int main() { string password("coucou"); string saisi(""); do { cout<<"Veuillez saisir le mot de passe : "; cin>>saisi; if(saisi == password) { system("cls");//Permet d'effacer l'écran affichage(); } else { cout<<"Erreur de mot de passe !!!!!"<<endl; } } while(saisi != password); return 0; } //création de la fonction affichage void affichage() { cout<<"\t ******************BIENVENU SUR LE SERVEUR******************"<<endl; cout<<endl; }
Ce n'est pas trop compliqué, c'est une question de pousser ton clavier, et prendre un crayon/gamin/canard.
Tu expliques avec des mots français ce que tu veux faire.
Quand il n'y a plus de questions, tu peux reprendre ton clavier.
Idéalement, je copie mon texte en commentaire, et chaque phrase devient une fonction.
Quel que soit le langage, il faudra décrire des choses, avec l'outil fourni par le langage:
des structures, des classes, ou des groupes de variables si aucun des deux n'existe, voire des tables dans une base de données (ou que sais-je encore).
Il faudra aussi décrire des comportements, c'est le rôle des fonctions.
Après, il y a le problème d'apprendre à utiliser le langage, mais c'est un détail par rapport à l'analyse du problème.
Et cette analyse, je te l'ai faite.
C'est clur que vouloir passer du hello world à l'ERP.. :aie:
Bonsoir
je suis entrain de crée un petit programme qui va gérer un catalogue avec des articles .
on pourra via un menu ajouter un article , sauvegarder et charger le catalogue et afficher le catalogue
J"ai écris une class pour le moment
est ce que je dois ajouter un tableau dynamique? si oui j'ai pas reussi à le crée .
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #ifndef STOCKAGES_H_INCLUDED #define STOCKAGES_H_INCLUDED #include <iostream> #include <string> class Stocks { public : Stocks(); void ajouteProduit(std::string produit,int quantite); private : std::string s_nom; int s_nombre; }; #endif // STOCKAGES_H_INCLUDED
Si tu n'y arrives pas, c'est que tu n'a pas encore assez décrit ton problème.
Trois noms, quatre verbes: j'en déduis trois classes potentielles, et quatre fonctions.
Pour commencer un article, qui est, dans ta situation, résumé à son nom.
Un catalogue, ou plus exactement un inventaire, est un Bidule (TM), qui donne des quantités à chaque produit. C'est un ensemble d'associations.
La technique usuelle, c'est d'utiliser une std::map.
Côté fonctions, tu auras besoin d'une fonction pour afficher un catalogue. Et pour ce faire, d'afficher un article
Pour sauvegarder et charger un catalogue dans un fichier, il faudra procéder en décomposant de la même manière.
En fait, tu pourrais même faire cela directement
Une fois capable d'avoir une situation, il faut pouvoir la modifier, c'est à dire ajouter et retirer un (ou plusieurs exemplaires d'un) article.
Pour le menu, tu verras plus tard.
Commence par un programme fixe, tel que, par exemple:
- charger un fichier,
- afficher,
- retirer une clé à molette,
- ajouter un bout de fer tordu,
- afficher,
- sauvegarder.
Puis ajoute des contrôles du genre "s'il y en a encore"
Ce problème est solvable sans créer de classe, en te servant des classes de la bibliothèque standard.
Je te laisse réfléchir à la nécessité d'une classe ou non.
Au passage, il n'y a quasiment jamais besoin d'avoir une classe dont le nom soit pluriel. Ici, Stocks est un Catalogue/Inventaire, et tu auras un Article.
Les pluriels sont généralement les noms de variables (membres ou non d'une classe) représentant des collections.
En fait, c'est celle-ci
PS: il y a eu récemment une discussion sur la même problématique.
Bonjour
je sais écrire ça :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <iostream> using namespace std; int main() { cout <<" Menu " << endl; cout <<"Charger un fichier " << endl; cout <<"Sauvegarder un fichier" << endl; cout <<"Afficher le stock " << endl; cout <<"Ajouter un produit" << endl; return 0; }
"çà" quoi?
Entre notre FAQ, nos cours, et un site de référence du langage (comme cppreference.com), tu devrais avoir largement assez d'informations.
Surtout que je t'ai mâché une partie du travail.
Quand on apprend, avant d'essayer de tout faire d'un coup, on cherche un petit bout, et on le résout.
Par exemple, fait un programme qui affiche l'article "une clé à molette" puis l'article "un bout de fer tordu".
Modifie ensuite le programme avec une std::map<std:string, int>, dans le quel tu mettras ce que tu veux, puis que tu affichera
Ca donnera quelque chose comme:
De là, tu devrais savoir comment coder le "programme fixe" de mon précédent message.Citation:
Envoyé par le futur programme
Comprend bien que je ne te donnerai pas de code dans que tu ne montreras pas ce que tu as fait, la Charte du Forum m'en empêche.
on declare avant ??? : std::map<std:string, int>
En ce cas, commence dans l'ordre.
Sais-tu faire un programme qui demande à l'utilisateur deux nombres entiers a et b, et affiche successivement:
la somme, la différence, le produit, et si b n'est pas nul, la division et le reste de a par b.
(arithmétique, variables, saisie)
Sais-tu faire un programme qui répète ce que saisit l'utilisateur (en utilisant std::getline, regarde notre faq.)?
(chaines, getline)
Sais-tu faire un programme qui ouvre un fichier, et affiche les trois premières lignes (façon head -n3)? les trois dernière (tail -n3)?
(fichiers)
As-tu lu notre faq sur les classes?
(conception et analyse)
Pour les trois premiers, je veux bien t'aider en corrigeant tes tentatives.
Si ta réponse est oui, montre nous quand même comment.
Je sais faire une addition ,soustraction et multiplication avec saisie de 2 nombres + affichages du résultat mais je suis nul en math pour la division et je sais pas que ce c'est arithmétique
Je sais crée un programme qui demande la saisie d'un PassWord et tant que c'est le bon PassWord on affiche un menu par exemple , avec effacement de l'écran .
Pour le troisième je sais presque faire ça .
Je voulais dire, "sais-tu faire un programme faisait..."
L'arithmétique, c'est justement les opérations mathématiques sur des nombres. (le mot vient du grec arithmos: "le nombre")
Je vais être un peu désagréable, mais c'est honnête.
Tu ne sais pas faire un programme qui attends un mot de passe. Tu as pu en écrire un.
La base de la programmation, ce n'est pas d'écrire du code en C++ (ou n'importe quel autre langage), mais de savoir comprendre un problème, et en formaliser la solution.
Un ordinateur est encore plus bête qu'un enfant de 10 ans: il faut tout lui dire, même dans quel ordre penser.
Écris-nous le programme de math que je t'ai proposé.
Ce n'est pas un vain exercice, c'est juste un programme plus simple.
En effet, il ne comprend ni classe, ni même de fonction, seulement un if, des entrées et sorties, et c'est tout.
Si tu n'y arrives pas du tout, ton problème de gestion de stocks est trop complexe pour ton niveau actuel.
ps: tant qu'on y est, donne nous aussi un lien vers ton sujet.
je sais écrire ça :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #include <iostream> #include <conio.h> using namespace std; void affichage(); int main() { //Creation d'une variable choix pour le menu int choix; //Creation du menu do { cout<<endl<<" ----------------------- MENU -----------------------"<<endl<<endl; cout<<"1. Afficher un message "<<endl; cout<<"2. Quitter "<<endl; cout<<"Choix :"; cin>>choix; cout<<endl; // switch(choix) { case 1 : affichage(); break; case 2 : break; } } while(choix != 2); cout<<"On est sorti du menu"<<endl; getch(); return 0; } void affichage() { cout<<"Bonjour "<<endl; }
Sans blague, tu ne va pas coder un peu pour nous montrer que tu sais coder?
Dommage, parce que nous ne ferons pas ton exercice...
Tu remarqueras d'ailleurs que je suis le seul à continuer la discussion.
voici une addition
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <iostream> using namespace std; int main() { int a =0, b =0; cout<<"saisir un premier nombre ; "<<endl; cin>> a; cout<<"saisir un deuxieme nombre ; "<<endl; cin>> b; int const resultat(a + b); cout<<a<<" + "<<b<<" = "<<resultat<<endl; return 0; }
Pas mal du tout.
Pour les cinq opérations, je pense que tu y arriveras aussi, passons au deuxième exercice.
Ici, il s'agit de savoir lire une chaine de caractère pouvant contenir des espaces.
L'objectif est que le programme puisse s'utiliser ainsi:
Il s'agira de s'arrêter à la première ligne vide de l'utilisateur.Citation:
Perroquet: Je vous écoute.
Vous: voici une première phrase.
Perroquet: voici une première phrase.
Vous: C'est bien!
Perroquet: C'est bien!
Vous:
Perroquet: Ah, ah! Vous ne dites plus rien, j'ai le dernier mot!
Bien que notre FAQ ligne à ligne parle de fichier, à cet endroit là, il suffit de le remplacer par cout.
Voici ce que j'ai fait :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <iostream> #include <string> using namespace std; int main() { string phrase1("Perroquet : Je vous ecoute."); string phrase2("Vous: voici une premiere phrase."); cout<<phrase1<<endl; cout<<phrase2<<endl; return 0; }
As-tu essayé ton programme, parce que ce n'est pas une bonne réponse.
Le code devrait par exemple ressembler à:
Personnellement, j'appelle ça coder par le commentaire.Code:
1
2
3
4
5
6
7
8
9
10
11 int main() { //afficher "Perroquet : Je vous écoute." do { //afficher "Vous: " //lire une ligne //si la ligne n'est pas vide //afficher "Perroquet: " puis la ligne } while (/*la ligne n'est pas vide*/); //afficher "Perroquet: Ah, ah! Vous ne dites plus rien, j'ai le dernier mot! " return 0; }
PS: Et il y a moyen, en étant astucieux, pour ne pas avoir de test dans la boucle.
j'arrive pas desoler
Tu as regardé le lien vers la faq "ligne à ligne" que j'ai donné plus tôt?
bonsoir
Oui j'ai regardé cela montre la gestion de fichiers