Voici mon code pour avis

Résolu
simonier Messages postés 3 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 19 novembre 2010 - 18 nov. 2010 à 20:09
simonier Messages postés 3 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 19 novembre 2010 - 19 nov. 2010 à 22:01
Bonjour à toutes et à tous.

Je suis un (grand) débutant en C# et j'ai réalisé un petit scrit sans prétention pour calculer des seuils de rentabilité. Je vous poste donc le code généré sous Visual C# Express 2010 afin que vous me donniez votre avis et que vous me fassiez remonter des idées d'amélioration de ce code.

Je vous remercie par avance de votre tolérance (je débute vraiment) et de l'aide que vous pourez m'apporter.

Bonne soirée.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SeuilDeRentabilite
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void BoutonCalculer_Click(object sender, EventArgs e)
        {
            if (ChargesExternes.Text "" && Prelevements.Text "" && ChargesSociales.Text == "" && ImpotsEtTaxes.Text == "" &&
                DotationAuxAmortissements.Text "" && ChargesFinancieres.Text "")
                MessageBox.Show("Veuillez entrer au moins une charge", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (TauxDeMarge.Text == "")
                MessageBox.Show("Veuillez entrer un objectif de taux de marge", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
                Calcul();
        }

        private void BoutonQuitter_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void Calcul()
        {
            if (ChargesExternes.Text == "")
                ChargesExternes.Text = "0";
            else if (Prelevements.Text == "")
                Prelevements.Text = "0";
            else if (ChargesSociales.Text == "")
                ChargesSociales.Text = "0";
            else if (ImpotsEtTaxes.Text == "")
                ImpotsEtTaxes.Text = "0";
            else if (DotationAuxAmortissements.Text == "")
                DotationAuxAmortissements.Text = "0";
            else if (ChargesFinancieres.Text == "")
                ChargesFinancieres.Text = "0";
            else if (Resultat.Text == "")
                Resultat.Text = "0";
            
            SeuilDeRentabiliteAvantPrelevements.Text = ((int.Parse(ChargesExternes.Text) + int.Parse(ChargesSociales.Text) +
                int.Parse(ImpotsEtTaxes.Text) + int.Parse(DotationAuxAmortissements.Text) +
                int.Parse(ChargesFinancieres.Text) + int.Parse(Resultat.Text) /
                (float.Parse(TauxDeMarge.Text) / 100))).ToString();

            SeuilDeRentabiliteApresPrelevements.Text = ((int.Parse(Prelevements.Text) + int.Parse(ChargesExternes.Text) +
                int.Parse(ChargesSociales.Text) + int.Parse(ImpotsEtTaxes.Text) +
                int.Parse(DotationAuxAmortissements.Text) + int.Parse(ChargesFinancieres.Text) +
                int.Parse(Resultat.Text) / (float.Parse(TauxDeMarge.Text) / 100))).ToString();
        }
    }
}

4 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
18 nov. 2010 à 23:47
Bonsoir Simonier

ton code se tient,
cependant il faudra que tu testes correctement toutes les valeurs saisies car les int.Parse() ne pardonnent pas.
ou alors tu peux encadrer l'appel à calcul
ex:
...
 else
try
{
  Calcul();
}
catch (Exception ex)
{
  MessageBox.Show("Veuillez reverifier les valeurs saisies!!", "Erreur de calcul", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}


Et aussi, je ne comprends pas bien la série de If .. else if dans la méthode Calcul().
ne vaudrait-il pas enlever les "else" et tester systématiquement toutes les zones ?

@Kohntark tu ne devais pas être bien reveillé, ou alors c'est moi qui dort déjà,
mais on est bien dans Accueil > Forum > C# > Windows > Autre >

Bob
C# is amazing, enjoy it!
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
19 nov. 2010 à 00:07
Salut,
@Robert33, rassure-toi, tout le monde a été bien réveillé. La question a été postée par erreur sur un autre forum. Je l'ai déplacée ici il y a quelques instants. J'espère que son auteur lira le message privé que je lui ai envoyé pour la retrouver.
0
simonier Messages postés 3 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 16:10
Bonjour tout le monde.

racpp, j'ai bien lu le message privé, merci beaucoup d'avoir placé mon thread sur le bon forum, désolé pour le dérangement.

Robert33, je vais testé l'encadrement d'appel à calcul, merci pour ton code, je vais m'en inspirer grandement. Pour la série de if et else if, j'avoue que je ne savais pas trop comment faire. Je vais essayer ce que tu me dis (tester systématiquement toutes les zones).

Merci encore pour vos réponses.

Cordialement.
0
simonier Messages postés 3 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 22:01
Le try fonctionne correctement. Je n'est pas encore trouvé de valeurs qui me renvoient une exception mais gràce à toi le problème sera géré et ne générera pas un plantage.

J'ai également fais comme tu m'a dis pour les if, je teste chaque valeur indépendament des autres.

Merci beaucoup pour votre aide, je sais que je peux compter sur des gens sympas qui m'accorderont un peu de leur temps pour me permettre de progresser, car je voudrais aller un peu plus loin avec ce super langage qu'est le C#, et par extension le framework .net.

Cordialement.
0
Rejoignez-nous