Algo code :
Début
// Définir une base de données simple pour les produits
Déclarer Produits comme tableau de structures contenant :
- Nom (texte)
- Prix (nombre)
- Quantité (entier)
Initialiser Produits avec les valeurs suivantes :
[ "PLC", 200.5, 10 ],
[ "Varateur", 150.0, 5 ],
[ "Contacteur", 50.0, 0 ]
// Déclarer les travailleurs et horaires
Déclarer Travailleurs comme tableau de structures contenant :
- Nom (texte)
- Ventes_Réalisées (entier)
Initialiser Travailleurs avec 10 noms ("Travailleur1", ..., "Travailleur10") avec Ventes_Réalisées = 0
Déclarer Horaires comme tableau de 2 groupes de 5 travailleurs
Groupe1 <- ["Travailleur1", ..., "Travailleur5"]
Groupe2 <- ["Travailleur6", ..., "Travailleur10"]
// Initialiser les frais
Déclarer Loyer comme 1000.0 // Exemple : frais mensuels de loyer
Déclarer Salaire_Par_Travailleur comme 50.0 // Exemple : salaire journalier par travailleur
// Fonction principale
Tant que Vrai faire :
Afficher "Options :"
Afficher "1. Rechercher un produit"
Afficher "2. Enregistrer une vente"
Afficher "3. Afficher les horaires des travailleurs"
Afficher "4. Calculer les bénéfices nets"
Afficher "5. Quitter"
Lire Choix
Si Choix = 1 Alors
// Recherche de produit
Afficher "Entrez le nom du produit :"
Lire Nom_Recherche
Déclarer Trouvé comme Faux
Pour chaque Produit dans Produits faire :
Si Produit.Nom = Nom_Recherche Alors
Afficher "Produit trouvé :"
Afficher "Nom : ", Produit.Nom
Afficher "Prix : ", Produit.Prix, " USD"
Afficher "Quantité : ", Produit.Quantité
Si Produit.Quantité > 0 Alors
Afficher "Le produit est disponible."
Sinon
Afficher "Le produit est en rupture de stock."
Fin Si
Trouvé <- Vrai
Quitter la boucle
Fin Si
Fin Pour
Si Trouvé = Faux Alors
Afficher "Le produit n'existe pas dans le magasin."
Fin Si
Sinon si Choix = 2 Alors
// Enregistrer une vente
Afficher "Entrez le nom du produit vendu :"
Lire Nom_Produit
Afficher "Entrez la quantité vendue :"
Lire Quantite_Vendue
Afficher "Entrez le nom du travailleur :"
Lire Nom_Travailleur
Déclarer Produit_Trouvé comme Faux
Pour chaque Produit dans Produits faire :
Si Produit.Nom = Nom_Produit Alors
Produit_Trouvé <- Vrai
Si Produit.Quantité >= Quantite_Vendue Alors
Produit.Quantité <- Produit.Quantité - Quantite_Vendue
// Enregistrer la vente pour le travailleur
Pour chaque Travailleur dans Travailleurs faire :
Si Travailleur.Nom = Nom_Travailleur Alors
Travailleur.Ventes_Réalisées <- Travailleur.Ventes_Réalisées + Quantite_Vendue *
Produit.Prix
Fin Si
Fin Pour
Afficher "Vente enregistrée avec succès."
Sinon
Afficher "Stock insuffisant pour cette vente."
Fin Si
Fin Si
Fin Pour
Si Produit_Trouvé = Faux Alors
Afficher "Produit non trouvé."
Fin Si
Sinon si Choix = 3 Alors
// Afficher les horaires des travailleurs
Afficher "Groupe 1 (8h - 16h) : ", Groupe1
Afficher "Groupe 2 (16h - 24h) : ", Groupe2
// Rotation automatique
Groupe_Temp <- Groupe1
Groupe1 <- Groupe2
Groupe2 <- Groupe_Temp
Sinon si Choix = 4 Alors
// Calcul des bénéfices nets
Déclarer Ventes_Totales comme 0.0
Pour chaque Travailleur dans Travailleurs faire :
Ventes_Totales <- Ventes_Totales + Travailleur.Ventes_Réalisées
Fin Pour
Déclarer Frais_Salaires comme Salaire_Par_Travailleur * 10 // 10 travailleurs
Déclarer Frais_Totaux comme Frais_Salaires + Loyer
Déclarer Benefice_Net comme Ventes_Totales - Frais_Totaux
Afficher "Bénéfices nets : ", Benefice_Net, " USD"
Sinon si Choix = 5 Alors
Afficher "Fin du programme."
Quitter
Sinon
Afficher "Choix invalide."
Fin Si
Fin Tant que
Fin
C++ code :
#include <iostream>
#include <string>
#include <vector>
#include <algorithm> // Pour la fonction std::find
using namespace std;
// Structure pour représenter un produit
struct Produit {
string nom;
double prix;
int quantite;
};
// Structure pour représenter un travailleur
struct Travailleur {
string nom;
double ventesRealisees;
};
void afficherMenu() {
cout << "Options :" << endl;
cout << "1. Rechercher un produit" << endl;
cout << "2. Enregistrer une vente" << endl;
cout << "3. Afficher les horaires des travailleurs" << endl;
cout << "4. Calculer les bénéfices nets" << endl;
cout << "5. Quitter" << endl;
int main() {
// Définir la base de données simple pour les produits
vector<Produit> produits = {
{"PLC", 200.5, 10},
{"Varateur", 150.0, 5},
{"Contacteur", 50.0, 0}
};
// Définir les travailleurs
vector<Travailleur> travailleurs(10);
for (int i = 0; i < 10; ++i) {
travailleurs[i].nom = "Travailleur" + to_string(i + 1);
travailleurs[i].ventesRealisees = 0;
// Groupes de travailleurs
vector<string> groupe1 = {"Travailleur1", "Travailleur2", "Travailleur3", "Travailleur4",
"Travailleur5"};
vector<string> groupe2 = {"Travailleur6", "Travailleur7", "Travailleur8", "Travailleur9",
"Travailleur10"};
double loyer = 1000.0;
double salaireParTravailleur = 50.0;
bool continuer = true;
while (continuer) {
afficherMenu();
int choix;
cin >> choix;
if (choix == 1) { // Rechercher un produit
cout << "Entrez le nom du produit : ";
string nomRecherche;
cin >> nomRecherche;
bool trouve = false;
for (auto& produit : produits) {
if (produit.nom == nomRecherche) {
trouve = true;
cout << "Produit trouvé :" << endl;
cout << "Nom : " << produit.nom << endl;
cout << "Prix : " << produit.prix << " USD" << endl;
cout << "Quantité : " << produit.quantite << endl;
if (produit.quantite > 0) {
cout << "Le produit est disponible." << endl;
} else {
cout << "Le produit est en rupture de stock." << endl;
break;
if (!trouve) {
cout << "Le produit n'existe pas dans le magasin." << endl;
} else if (choix == 2) { // Enregistrer une vente
cout << "Entrez le nom du produit vendu : ";
string nomProduit;
cin >> nomProduit;
cout << "Entrez la quantité vendue : ";
int quantiteVendue;
cin >> quantiteVendue;
cout << "Entrez le nom du travailleur : ";
string nomTravailleur;
cin >> nomTravailleur;
bool produitTrouve = false;
for (auto& produit : produits) {
if (produit.nom == nomProduit) {
produitTrouve = true;
if (produit.quantite >= quantiteVendue) {
produit.quantite -= quantiteVendue;
for (auto& travailleur : travailleurs) {
if (travailleur.nom == nomTravailleur) {
travailleur.ventesRealisees += quantiteVendue * produit.prix;
break;
cout << "Vente enregistrée avec succès." << endl;
} else {
cout << "Stock insuffisant pour cette vente." << endl;
break;
}
if (!produitTrouve) {
cout << "Produit non trouvé." << endl;
} else if (choix == 3) { // Afficher les horaires
cout << "Groupe 1 (8h - 16h) : ";
for (auto& travailleur : groupe1) {
cout << travailleur << " ";
cout << endl;
cout << "Groupe 2 (16h - 24h) : ";
for (auto& travailleur : groupe2) {
cout << travailleur << " ";
cout << endl;
// Rotation automatique des groupes
swap(groupe1, groupe2);
} else if (choix == 4) { // Calculer les bénéfices nets
double ventesTotales = 0.0;
for (auto& travailleur : travailleurs) {
ventesTotales += travailleur.ventesRealisees;
double fraisSalaires = salaireParTravailleur * 10; // 10 travailleurs
double fraisTotaux = fraisSalaires + loyer;
double beneficeNet = ventesTotales - fraisTotaux;
cout << "Bénéfices nets : " << beneficeNet << " USD" << endl;
} else if (choix == 5) { // Quitter
cout << "Fin du programme." << endl;
continuer = false;
} else {
cout << "Choix invalide." << endl;
return 0;