Tableau Compilateur_factures

[Résolu]
Signaler
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007
-
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007
-
Bonjours à tous , voici un programme que je doit faire en C# mode console :

____________________________________________________
Combien de factures avez-vous à entrer ? : xx

Date de cette facture:30-04-2002
Montant: 300$
Avez-vous terminer(o ou n) ? : n

Date de cette facture: 27-05-2003
Montant: 450$
Avez-vous terminer(o ou n) ? : o
...

Quelle année voulez-vous consulter ? : 2003
______________________________________________________
                  RESUMER DES FACTURES DE 2003

mois 1 :  x $
mois 2 :  x $
mois 3 :  x $
...
mois 12 : x $

TOTAL 2003 : xxx $
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Voici mon code:

/*PROGRAMME : Compiler_factures_impayés

** BUT : Compiler des factures ensuite l'utilisateur entre une année de référence

** ensuite l'ordinateur affiche le total des factures impayés pour chaque mois

** de cette année et le grand total de cette année.

** DATE : 16 février 2007

** AUTEUR : thabill748

*/

using

System;
using

System.IO;
namespace

compiler_facture{

///<summary>

/// Description résumée de Class1.

///</summary>

class
Class1{

   ///<summary>

   /// Point d'entrée principal de l'application.

   ///</summary>   [

STAThread]

   static
void Main(
string[] args)   {

      //Déclaration des variables

      string c_saisie =
"";

      string c_saisie1 =
"";

      int n_compteur = -1;

      int n_compteur1 = -1;

      int i = 0;

      int n_ann_ref = 0;

      int n_quant;

      string c_confirm =
"";

      Console.Write(
"\nCombien de facture avez-vous à entrer?: ");      c_saisie =

Console.ReadLine();      n_quant =

Convert.ToInt32(c_saisie);

      string[] annee =
new
string[n_quant];

      //string[] mois = new string[n_quant];

      string[] date =
new
string[n_quant];

      int[] montant =
new
int[n_quant];

      Console.WriteLine(
"\n\n#### Aplication de compilation de facture ####");

      while (c_confirm !=
"o")      {

            Console.Write(
"\n\nDate de facture(mm-jj-aaaa): ");            n_compteur = n_compteur + 1;

            c_saisie =

Console.ReadLine();

            Console.Write(
"Montant impayé : ");            n_compteur1 = n_compteur1 + 1;

            c_saisie1 =

Console.ReadLine();

            Console.Write(
"\nAvez-vous terminer ?(o ou n): ");            c_confirm =

Console.ReadLine();

            DateTime Currdate =
DateTime.Parse(c_saisie);            Currdate.Year.ToString();

           //Currdate.Month.ToString();            Currdate.ToShortDateString();

            for (i = n_compteur; i <= n_compteur; i++)            {

                  date[i] = Currdate.ToShortDateString();

                  annee[i] = Currdate.Year.ToString();

               // mois[i] = Currdate.Month.ToString();                  montant[i] =

Convert.ToInt32(c_saisie1);            }

      }

      Console.Write(
"\nEntrez l'année de référence : ");      c_saisie =

Console.ReadLine();      n_ann_ref =

Convert.ToInt32(c_saisie);

    }

  }

}

 

À venir jusqu'à date la saisie des information fonctionnent mais j'ai aucune idée comment faire pour faire le tri des factures selon l'année de référence que l'utilisateur va entré .....

a première idée je pense à quelque chose comme sa (ce n'est que des idées vague) :

while

(n_ann_ref == annee[i]) // il me génêre une erreur ....{

if(n_date[n_ann_ref]=
true) //ici aussi {

temp=temp+1;

}

/* for (i = 0; i < n_quant; i++)mois[1]=n_date[n_ann_ref]; */

 
Alors j'implore quelqun de m'aider SVP !!! Merci

6 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
Salut,

Quelles sont les erreurs au juste ?

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007

bon finalement après quelque heure de réflexion j'ai finit par trouvé comment alors voici le code du prog ; il marche correctement mais je suis sur que je peut optimiser le code soutout au moment d'additionné les montants des mois du l'année rechercher.

Jugé par vous-même :

/*PROGRAMME : Compiler_factures_impayés

** BUT : Compiler des factures ensuite l'utilisateur entre une année de référence

** ensuite l'ordinateur affiche le total des factures impayés pour chaque mois

** de cette année et le grand total de cette année.

** DATE : 16 février 2007

** AUTEUR : thabill748

*/

using

System;
using

System.IO;
namespace

compiler_facture{

///<summary>

/// Description résumée de Class1.

///</summary>

class
Class1{

///<summary>

/// Point d'entrée principal de l'application.

///</summary>[

STAThread]

static
void Main(
string[] args){

//Déclaration des variables

string c_saisie =
"";

string c_saisie1 =
"";

int n_compteur = -1;

int n_compteur1 = -1;

int i = 0;

string n_temp1 =
"";

string n_temp2 =
"";

int n_quant;

string c_confirm =
"";

int[] n_ann_ref =
new
int[1];

int[] montant_mois_rech =
new
int[12]; 

Console.Write(
"\nCombien de facture avez-vous à entrer?: ");c_saisie =
Console.ReadLine();n_quant Convert.ToInt32(c_saisie);n_quant n_quant + 10;

int[] annee =
new
int[n_quant];

int[] mois =
new
int[n_quant];

string[] date =
new
string[n_quant];

int[] montant =
new
int[n_quant];

Console.WriteLine(
"\n\n#### Aplication de compilation de facture ####");

Console.WriteLine(
"");

while (c_confirm !=
"o"){

Console.Write(
"\n\nDate de facture(mm-jj-aaaa): ");n_compteur = n_compteur + 1;

c_saisie =

Console.ReadLine();

Console.Write(
"Montant impayé : ");n_compteur1 = n_compteur1 + 1;

c_saisie1 =

Console.ReadLine();

Console.Write(
"\nAvez-vous terminer ?(o ou n): ");c_confirm =

Console.ReadLine();

DateTime Currdate =
DateTime.Parse(c_saisie);Currdate.Year.ToString();

Currdate.Month.ToString();

Currdate.ToShortDateString();

for (i = n_compteur; i <= n_compteur; i++){

date[i] = Currdate.ToShortDateString();

n_temp1 = Currdate.Year.ToString();

annee[i] =

Convert.ToInt32(n_temp1);n_temp2 = Currdate.Month.ToString();

mois[i] =

Convert.ToInt32(n_temp2);montant[i] =

Convert.ToInt32(c_saisie1);}

}

for (i = 0; i < 1; i++){

Console.Write(
"\nEntrez l'année de référence : ");c_saisie =

Console.ReadLine();n_ann_ref[i] =

Convert.ToInt32(c_saisie);}

 

for (i = 0; i <= n_compteur; i++){

if (n_ann_ref[0] == annee[i])
//Si l'année_référence = au année entrer {

DateTime Currannee_rech =
DateTime.Parse(date[i]);

string c_tempo = Currannee_rech.Month.ToString();

int n_mois_rech =
Convert.ToInt32(c_tempo);

if (n_mois_rech == 1){

montant_mois_rech[0] = montant_mois_rech[0] + montant[i];

}

else{

if (n_mois_rech == 2){

montant_mois_rech[1] = montant_mois_rech[1] + montant[i];

}

else{

if (n_mois_rech == 3){

montant_mois_rech[2] = montant_mois_rech[2] + montant[i];

}

else{

if (n_mois_rech == 4){

montant_mois_rech[3] = montant_mois_rech[3] + montant[i];

}

else{

if (n_mois_rech == 5){

montant_mois_rech[4] = montant_mois_rech[4] + montant[i];

}

else{

if (n_mois_rech == 6){

montant_mois_rech[5] = montant_mois_rech[5] + montant[i];

}

else{

if (n_mois_rech == 7){

montant_mois_rech[6] = montant_mois_rech[6] + montant[i];

}

else{

if (n_mois_rech == 8){

montant_mois_rech[7] = montant_mois_rech[7] + montant[i];

}

else{

if (n_mois_rech == 9){

montant_mois_rech[8] = montant_mois_rech[8] + montant[i];

}

else{

if (n_mois_rech == 10){

montant_mois_rech[9] = montant_mois_rech[9] + montant[i];

}

else{

if (n_mois_rech == 11){

montant_mois_rech[10] = montant_mois_rech[10] + montant[i];

}

else{

if (n_mois_rech == 12){

montant_mois_rech[11] = montant_mois_rech[11] + montant[i];

}

}

}

}

}

}

}

}

}

}

}

}

}

}

string[] nom_mois =
new
string[12];nom_mois[0] =

"janvier";nom_mois[1] =

"février";nom_mois[2] =

"mars";nom_mois[3] =

"avril";nom_mois[4] =

"mai";nom_mois[5] =

"juin";nom_mois[6] =

"juillet";nom_mois[7] =

"août";nom_mois[8] =

"septembre";nom_mois[9] =

"octobre";nom_mois[10] =

"novembre";nom_mois[11] =

"décembre";

for (i = 0; i <= 11; i++){

Console.WriteLine(
"mois{0:g}:{1:g}$",nom_mois[i], montant_mois_rech[i]);

}

}

}

}

/*Merci  à tous et toute */
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Salut,

j'ai pas tout regardé, ni testé, mais je vais te laisser quelques petites remarques pour t'aider.

- Deja, quand tu attends qu'un utilisateur saisisse un chiffre et qu'il saisit une lettre, cela va lever une exception que tu ne geres pas . Il faudrait donc que tu t'attendes à ce type de scenario en gérant les exceptions (try/catch). Mais peut etre que tu n'as pas encore appris cela. Magrè tout, je t'encourage a utiliser int.TryParse  plutot que Convert.ToInt32();

- Pas besoins d'initialiser tes strings à ""; ni les int a 0

- tes else{ if {} } peuvent etre remplacés par else if{ } (c'est quand meme beaucoup plus lisible) ; J'aurais meme plutot remplacé la séquence par un switch { case: }. Mais en relisant, je me dis : pourquoi enchainer les if, et ne pas plutot faire : montant_mois_rech[n_mois_rech - 1
] = montant_mois_rech[n_mois_rech - 1]
 + montant[i];

Voila pour ma lecture rapide

Mx
MVP C# 
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007

Error 1 Operator '==' cannot be applied to operands of type 'int' and 'string' 
Error 2 Cannot implicitly convert type 'bool' to 'string'
Error 3 Cannot implicitly convert type 'string' to 'bool' 

mais je ne suis pas totalement a l'aise avec les algo de type : if  x=true (true - false)
et je n'ai pas encore les connaissances sur les "bool"
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007

for



(i = 0; i <= n_compteur; i++){


if
(n_ann_ref[0] == annee[i]) {

temp = temp + 1;

}

}

bon voila ! jai finalement insérer l'année de référence dans un tableau afin de pouvoir le comparer avec les autre tableaux. Il ne me reste maintenant que faire additionner les montants des 12 mois de cette année selon les montants de facture et leur mois.
Messages postés
16
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
18 février 2007

Merci pour ce tuyau, je mis mets à la première heure demain matin !