0% ont trouvé ce document utile (0 vote)
26 vues10 pages

Algo

Transféré par

Abdesslam Zait
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues10 pages

Algo

Transféré par

Abdesslam Zait
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

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;

Vous aimerez peut-être aussi