Programme qui ne fonctionne pas

TESCHAN66 Messages postés 45 Date d'inscription samedi 1 juin 2024 Statut Membre Dernière intervention 14 février 2025 - Modifié le 6 déc. 2024 à 06:41
jordane45 Messages postés 38429 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2025 - 6 déc. 2024 à 06:43

bonjour,j'ai fait un programme ,je l'ai soumis à copilot,il me dit que mon code pour la gestion des comptes bancaires en C# montre une bonne compréhension des concepts de la programmation orientée objet.le problème c'est que quand je le compile avec jetbrains rider,il m'affiche une erreur : } attendue, voici le code :

public abstract class Compte {} 
public class CompteCourant : Compte {} 
public class CompteEpargneEntreprise : Compte {} 
public enum Mouvement { Credit, Debit } 
public class Operation { 
public Mouvement TypeDeMouvement { get; set; } 
public decimal Montant { get; set; }
 } 

public abstract class Compte {
 protected List<Operation> listeOperations;
 public string Proprietaire { get; set; } public virtual decimal Solde { get { decimal total = 0;
 foreach (Operation operation in listeOperations) {
 if (operation.TypeDeMouvement == Mouvement.Credit) total += operation.Montant; else total -= operation.Montant; } return total; } } } public abstract class Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public Compte() { listeOperations = new List<Operation>(); } } public abstract class Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public void Crediter(decimal montant) { Operation operation = new Operation { Montant = montant, TypeDeMouvement = Mouvement.Credit}; listeOperations.Add(operation); } public void Crediter(decimal montant, Compte compte) { Crediter(montant); compte.Debiter(montant); } public void Debiter(decimal montant) { Operation operation = new Operation { Montant = montant, TypeDeMouvement = Mouvement.Debit }; listeOperations.Add(operation); } public void Debiter(decimal montant, Compte compte) { Debiter(montant); compte.Crediter(montant); } } public abstract class Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public abstract void AfficherResume(); } public class CompteEpargneEntreprise : Compte { private double tauxAbondement; public CompteEpargneEntreprise(double taux) { tauxAbondement = taux; } } public class CompteEpargneEntreprise : Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public override decimal Solde { get { return base.Solde * (decimal)(1 + tauxAbondement); } } } public class CompteEpargneEntreprise : Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public override void AfficherResume() { Console.WriteLine("########################################################"); Console.WriteLine("Compte épargne entreprise de " + Proprietaire); Console.WriteLine("\tSolde : " + Solde); Console.WriteLine("\tTaux : " + tauxAbondement); Console.WriteLine("\n\nOpérations :"); foreach (Operation operation in listeOperations) { if (operation.TypeDeMouvement == Mouvement.Credit) Console.Write("\t+"); else Console.Write("\t-"); Console.WriteLine(operation.Montant); } Console.WriteLine("########################################################"); } } public class CompteCourant : Compte {} public class CompteCourant : Compte { private decimal decouvertAutorise; public CompteCourant(decimal decouvert) { decouvertAutorise = decouvert; } } public class CompteCourant : Compte { // [...] // [Code précédent enlevé pour plus de lisibilité] // [...] public override void AfficherResume() { Console.WriteLine("*******************************************"); Console.WriteLine("Compte courant de " + Proprietaire); Console.WriteLine("\tSolde : " + Solde); Console.WriteLine("\tDécouvert autorisé : " + decouvertAutorise); Console.WriteLine("\n\nOpérations :"); foreach (Operation operation in ListeOperations) { if (operation.TypeDeMouvement == Mouvement.Credit) Console.Write("\t+"); else Console.Write("\t-"); Console.WriteLine(operation.Montant); } Console.WriteLine("*******************************************"); } } CompteCourant compteNicolas = new CompteCourant(2000) { Proprietaire = "Nicolas" }; CompteEpargneEntreprise compteEpargneNicolas = new CompteEpargneEntreprise(0.02) { Proprietaire = "Nicolas" }; CompteCourant compteJeremie = new CompteCourant(500) { Proprietaire = "Jérémie" }; compteNicolas.Crediter(100); compteNicolas.Debiter(50); compteEpargneNicolas.Crediter(20, compteNicolas); compteEpargneNicolas.Crediter(100); compteEpargneNicolas.Debiter(20, compteNicolas); compteJeremie.Debiter(500); compteJeremie.Debiter(200, compteNicolas); Console.WriteLine("Solde compte courant de " + compteNicolas.Proprietaire + " : " + compteNicolas.Solde); Console.WriteLine("Solde compte épargne de " + compteEpargneNicolas.Proprietaire + " : " + compteEpargneNicolas.Solde); Console.WriteLine("Solde compte courant de " + compteJeremie.Proprietaire + " : " + compteJeremie.Solde); Console.WriteLine("\n"); Console.WriteLine("Résumé du compte de Nicolas"); compteNicolas.AfficherResume(); Console.WriteLine("\n"); Console.WriteLine("Résumé du compte épargne de Nicolas"); compteEpargneNicolas.AfficherResume(); Console.WriteLine("\n");

merci pour votre aide.cordialement

EDIT: AJOUT DES BALISES DE CODE

1 réponse

jordane45 Messages postés 38429 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2025 4 735
6 déc. 2024 à 06:43

Bonjour 

j'ai essayé d'éditer ton message pour  mettre les balises de code... mais vu que tu l'avais mal posté au départ, il manque un bon nombre de retour à la ligne ainsi que l'indentation...

merci de corriger ton code afin qu'il soit lisible sur le forum et précise également le numéro de ligne concerné par le message d'erreur qui doit t'être normalement indiqué..

message qui indique visiblement que tu as oublié une accolade fermente ou peut-être que tu en as mis une ouvrante en trop quelque part..


0