IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Je bloque sur un problème de boucle avec dates comme référence !


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Je bloque sur un problème de boucle avec dates comme référence !
    Bonjour !

    Un ami m'a donné un exercice à faire : une simulation de ticket client à résoudre.

    Voici le ticket à résoudre :

    Ticket 15741 :

    Hello !

    On aurait besoin pour l'application "Cason" de calculer les points statuts des clients pour les X derniers mois (X = un param à la main de l'admin).
    Pour calculer les points statuts on se base sur les X derniers mois en base.

    Tu peux me faire ça pour quand ?

    Bises.

    /
    Voici le code qui m'a été envoyé sur lequel j'ai déjà travaillé :

    une classe TransactionClients
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace Gestion_Statut_Casino
    {
        class TransactionClient
        {
            public int points;
            public string date;
        }
    }
    Le main dans lequel je dois répondre à la problématique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    using System;
     
    namespace Gestion_Statut_Casino
    {
        class Program
        {
            static void Main(string[] args)
            {
                TransactionClient t1 = new TransactionClient();
                t1.points = 10;
                t1.date = "2020-02-19";
     
                TransactionClient t2 = new TransactionClient();
                t2.points = 30;
                t2.date = "2020-02-14";
     
                TransactionClient t3 = new TransactionClient();
                t3.points = 7;
                t3.date = "2020-01-26";
     
                TransactionClient t4 = new TransactionClient();
                t4.points = 18;
                t4.date = "2019-10-01";
     
                TransactionClient t5 = new TransactionClient();
                t5.points = 11;
                t5.date = "2019-09-19";
     
                TransactionClient[] bdd = { t1, t2, t3, t4, t5 };
     
                int[] pointsClients = new int[] { t1.points, t2.points, t3.points, t4.points, t5.points };
                Additionner_Points(pointsClients, pointsClients);
     
     
                static void Additionner_Points(int[] min, int[] max)
                {
                    int resultat = 0;
                    for (int i = min[0]; i < max.Length; i++)
                    {
                        resultat += i;
                    }
                    Console.WriteLine($"La somme des points est {resultat}");
                }
            }   
        }
    }
    Comme vous pouvez le voir, j'ai commencé par créer un tableau "pointsClients" pour accéder aux points et j'ai créer une boucle pour tenter d'additionner les points. Je sais que ça ne répond pas complètement au ticket, mais je voulais déjà commencer par additionner l'ensemble des points, mais rien que ça, je n'y arrive pas (ce que j'ai codé m'affiche "0" à la compilation), donc bon c'est assez frustrant...

    Vous aurez bien compris qu'il s'agit d'un exercice, donc peu nous importe la pertinence de la classe TransactionClient ou autre, le but étant de travailler sur une mise en situation réelle et répondre à un ticket client.

    J'ai pas mal réfléchi, mais je bloque. J'avoue ne pas voir comment mettre en lien concrètement les dates, les points clients, et permettre une saisie afin que "l'admin" puisse choisir le nombre de mois qui l’intéresse pour le calcul des points.

    En gros, si le client saisie 4, pour 4 mois, mon programme doit être capable de remonter les 4 derniers mois et d'additionner les points qui ont été cumulés sur cette période ! J'arrive à le concevoir du point de vue théorique mais une fois devant le clavier je bloque.

    Si vous pouviez m'aider, sans me donner la solution toute mâchée, je vous en serais très reconnaissant.

    Merci !

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Tout d'abord je ne partirai pas sur un tableau mais un objet List de TransactionClient. De cette manière tu peux parcourir ta liste en récupérant l'objet en cours et tu auras donc accès à toutes les propriétés de l'objet encours.

    Tu n'auras plus qu'à additionner à ce moment là. Tu pourras de la même manière exclure par date.

    Cependant je pense que la meilleure méthode serait de faire une requête sur ta liste : https://docs.microsoft.com/fr-fr/dot...e-linq-queries
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

Discussions similaires

  1. Problème de boucle avec Timer
    Par SandrillonC dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/04/2010, 12h40
  2. [XSLT] Problème de boucle avec for-each
    Par knack8 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/04/2009, 01h42
  3. Problème dans boucle avec matrice et vecteur
    Par lilyla dans le forum MATLAB
    Réponses: 9
    Dernier message: 26/11/2007, 19h45
  4. Problème de boucle avec for
    Par ions dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 20/11/2007, 08h58
  5. Problème de boucle avec un find
    Par mick77 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/06/2007, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo