`python
import json
class Medicament:
def __init__(self, nom, quantite, prix):
self.nom = nom
self.quantite = quantite
self.prix = prix
def afficher_info(self):
return f"Nom: {self.nom}, Quantité: {self.quantite}, Prix: {self.prix}€"
class DepotPharmaceutique:
def __init__(self):
self.stock = {}
def ajouter_medicament(self, medicament):
if medicament.nom in self.stock:
self.stock[medicament.nom].quantite += medicament.quantite
else:
self.stock[medicament.nom] = medicament
def afficher_stock(self):
if not self.stock:
print("Le stock est vide.")
for medicament in self.stock.values():
print(medicament.afficher_info())
def vendre_medicament(self, nom, quantite):
if nom in self.stock and self.stock[nom].quantite >= quantite:
self.stock[nom].quantite -= quantite
print(f"{quantite} unit(s) de {nom} vendu(s).")
else:
print(f"Erreur: Stock insuffisant ou médicament non trouvé.")
def sauvegarder_stock(self, fichier):
with open(fichier, 'w') as f:
json.dump({k: v.__dict__ for k, v in self.stock.items()}, f)
print("Stock sauvegardé.")
def charger_stock(self, fichier):
try:
with open(fichier, 'r') as f:
data = json.load(f)
for nom, details in data.items():
self.ajouter_medicament(Medicament(nom, details['quantite'], details['prix']))
print("Stock chargé.")
except FileNotFoundError:
print("Aucun fichier de stock trouvé.")
def afficher_menu():
print("\nMenu:")
print("1. Ajouter un médicament")
print("2. Vendre un médicament")
print("3. Afficher le stock")
print("4. Sauvegarder le stock")
print("5. Charger le stock")
print("6. Quitter")
def main():
depot = DepotPharmaceutique()
while True:
afficher_menu()
choix = input("Choisissez une option: ")
if choix == "1":
nom = input("Nom du médicament: ")
quantite = int(input("Quantité: "))
prix = float(input("Prix: "))
depot.ajouter_medicament(Medicament(nom, quantite, prix))
print(f"{nom} ajouté au stock.")
elif choix == "2":
nom = input("Nom du médicament à vendre: ")
quantite = int(input("Quantité à vendre: "))
depot.vendre_medicament(nom, quantite)
elif choix == "3":
depot.afficher_stock()
elif choix == "4":
depot.sauvegarder_stock("stock.json")
elif choix == "5":
depot.charger_stock("stock.json")
elif choix == "6":
print("Quitter le programme.")
break
else:
print("Option invalide, veuillez réessayer.")
if __name__ == "__main__":
main()