Tableau Compilateur_factures

Résolu
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007 - 16 févr. 2007 à 23:51
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007 - 18 févr. 2007 à 07:17
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

cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 févr. 2007 à 00:18
Salut,

Quelles sont les erreurs au juste ?

/*
coq
MVP Visual C#
CoqBlog
*/
3
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007
17 févr. 2007 à 06:26
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 */
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 févr. 2007 à 15:33
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# 
3
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007
17 févr. 2007 à 02:13
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"
0

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

Posez votre question
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007
17 févr. 2007 à 02:59
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.
0
xplicitnoize Messages postés 16 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 18 février 2007
18 févr. 2007 à 07:17
Merci pour ce tuyau, je mis mets à la première heure demain matin !
0
Rejoignez-nous