Collection de type List for calcul total montant

Résolu
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   -  
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis entrain de faire une application Windows en C# ou je gère des employe (nom, montant des ventes, salaire...)
L'applicatio consite à enregistrer des salariés et à afficher le montant total des ventes TTC réalisées par les employés.

Mon problème est que je suis bloqué pour le calcul: on me dit une erreur pour mon for: L'opérateur + ne peut pas être appliqué aux opérandes de type float et libResHum.Employe


voici mon code de l'application

List<Employe> lesEmployes;

public SaisieEmploye()
{
lesEmployes = new List<Employe>();
InitializeComponent();
}

private void btnSalarie_Click(object sender, EventArgs e)
{
int age;
int montantSalaire;
int montantVentes;
string libErrer = "";
Employe unEmploye;

int.TryParse(txtAge.Text, out age);
if (age < Employe.AgeMin)
{
libErrer = "Le salarié doit avoir au minimum 16 ans";
}
int.TryParse(txtSalaire.Text, out montantSalaire);
int.TryParse(txtMontantVentes.Text, out montantVentes);

if (libErrer == "")
{
unEmploye = new Employe(txtNom.Text, age, montantSalaire, montantVentes);
lesEmployes.Add(unEmploye);
MessageBox.Show("Le salarié a été créé", "Message d'Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
MessageBox.Show(libErrer, "Message d'erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

private void btnMontantTotal_Click(object sender, EventArgs e)
{
float montantTotalTTCVentes;

for (int ind = 0; ind < lesEmployes.Count; ind ++)
{
montantTotalTTCVentes = montantTotalTTCVentes + lesEmployes[ind];
}
MessageBox.Show("Le montant total des ventes TTC est de " + montantTotalTTCVentes + " euros", "Message d'Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

Merci de votre aide
A voir également:

8 réponses

Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
Vous utilisez lesEmployes[ind] mais à quel "membre" du type Employe vous voulez accéder pour récupérer la valeur du montant total des ventes ttc ?
Pouvez remplacer la boucle par un foreach truc dans le genre :
foreach(Employe em in LesEmployes){
    montantTotalTTCVentes += em.montantVentes; // en admettant que montantVentes soit le membre qui contient la valeur recherchée
}
0
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention  
 
Je veu calculer le montant total des ventes de tout les employés
J'ai une bibliothèque de classe qui gère les employés avec une classe Employe et une classe TVA
0
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention  
 
C bon j'ai trouvé:
private void btnMontantTotal_Click(object sender, EventArgs e)
{
float montantTotalTTCVentes = 0;

foreach (Employe em in lesEmployes)
{
montantTotalTTCVentes = montantTotalTTCVentes + em.MontantVentesHT * (1+TVA.TauxNormal/100);
}
MessageBox.Show("Le montant total des ventes TTC est de " + montantTotalTTCVentes + " euros", "Message d'Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Merci de ton aide
0
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Oui en faisant la somme des ventes de chaque employé ?
 
    public partial class Form1 : Form 
    { 
        List<Employe> LesEmployes; 
        public Form1() 
        { 
            LesEmployes = new List<Employe>(); 
            InitializeComponent(); 
        } 

        private void button1_Click(object sender, EventArgs e) 
        { 
            // ajoute dans la liste 
            for (int i = 0; i < 10; i++) 
            { 
                Employe emp = new Employe(i); 
                LesEmployes.Add(emp); 
            } 
            // calcul la somme 
            double total = 0; 
            foreach (Employe emp in LesEmployes) 
            { 
                total += emp.val; 
            } 
            textBox1.Text = total.ToString(); 
        } 
    } 
    class Employe 
    { 
        private double x; 
        public double val 
        { 
            get { return x; } 
        } 
        public Employe(double xx) 
        { 
            x = xx; 
        } 
    }
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention  
 
Ce que j'ai fait c bon?
0
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Ça en a tout l'air, petite info en plus
Vous pouvez utiliser l'opérateur + devant le signe d'affectation = ce qui permet d'additionner directement à la valeur déjà contenu dans la variable
montantTotalTTCVentes = montantTotalTTCVentes + ...
peut se faire ainsi :
montantTotalTTCVentes += ...
0
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention  
 
Oui je sais mais je préfère sa

Sinon j'ai une autre question: Dans mon constructeur de ma classe Employe, j'ai une condition qui dit que si le salaire saisis et supérieur au salaireMax c'est le salaire max qui est attribué mais quand je débug je ne vois pas sa. Est ce que je doit rajouter un truc dans mon programme principal?

Voici mon constructeur:

public Employe(string unNom, int unAge, int unSalaireAnnuel, int unMontantVentesHT)
{
nom = unNom;
age = unAge;
salaireAnnuel = unSalaireAnnuel;
montantVentesHT = unMontantVentesHT;

if (unSalaireAnnuel > salaireMax)
{
unSalaireAnnuel = salaireMax;
}
}

static Employe()
{
ageMin = 16;
salaireMax = 150000;
}
0
tortue60 Messages postés 250 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé pour mon constructeur

public Employe(string unNom, int unAge, int unSalaireAnnuel, int unMontantVentesHT)
{
nom = unNom;
age = unAge;
salaireAnnuel = unSalaireAnnuel;
montantVentesHT = unMontantVentesHT;

if (salaireAnnuel > salaireMax)
{
salaireAnnuel = salaireMax;
}
}

C'est pas unSalaireAnnuel mais salaireAnnuel
0