begin process at 2012 02 11 02:03:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Exécution

 > 

Quitte sans raison


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Quitte sans raison

vendredi 1 septembre 2006 à 19:22:41 | Quitte sans raison

Kuni59

Membre Club
Bonjours je m'explique je debute en c# je suis entrain de suivre un cours pour apprendre les base donc tout se passe en console et j'ai un exercice ou je bloque et je ne sais pa pourquoi je vait vous ecrire l'enoncé:
Exercice 21: Calculatrice
(Menu:
------------------------------------
-|-- MENU-PRINCIPAL ---------|-
-|----------------------------------|-
-|- 1 - Modifier A et B                  -|-
-|- 2 - Additioner A et B               -|-
-|- 3 - Soustraire A et B                -|-
-|- 4 - Multiplier A et B                 -|-
-|- 5 - Diviser(troncature) A et B   -|-;
-|- 6 - Diviser(reste) A et B          -|-
-|- 7 - Quitter                                -|-
--------------------------------------
)
Cette calculatrice devra faire en sorte que:
-   A et B soit deux entiers
-   Chaque choix possible (sauf le 1 et le 7) soit traités et affichés dans des methodes différentes
-   La fonction Main() n'effectue aucune des taches du menu ni même ne l'affiche
-   L'affichage du menu est géré par une fonction qui renvoie un entier correspondant au choix de l'utilisateur
-   Avant d'afficher le menu, on efface la console.

voici mon code:
using System;

class MainEntryPoint
{
    static void Main()
    {
        Menu menu = new Menu();
        int choix = menu.AffichMenu();
        menu.choix(choix);
    }
    public void quit()
    {
        return;
    }
}
class Menu
{
    public int inta = 0;
    public int intb = 0;
    public int AffichMenu()
    {
       
       
        Console.WriteLine("A = " + inta + "       B = " + intb);
        Console.WriteLine("\n------------------------------------");
        Console.WriteLine("-|--------- MENU-PRINCIPAL ---------|-");
        Console.WriteLine("-|----------------------------------|-");
        Console.WriteLine("-|- 1 - Modifier A et B            -|-");
        Console.WriteLine("-|- 2 - Additioner A et B          -|-");
        Console.WriteLine("-|- 3 - Soustraire A et B          -|-");
        Console.WriteLine("-|- 4 - Multiplier A et B          -|-");
        Console.WriteLine("-|- 5 - Diviser(troncature) A et B -|-");
        Console.WriteLine("-|- 6 - Diviser(reste) A et B      -|-");
        Console.WriteLine("-|- 7 - Quitter                    -|-");
        Console.WriteLine("--------------------------------------");
        Console.Write("Votre choix: ");
        string choixS = Console.ReadLine();
        int choix = Convert.ToInt32(choixS);
        return choix;
    }
    public void choix(int choix)
    {

        switch (choix)
        {
            case 1:
                Console.Write("A = ");
                string intaS = Console.ReadLine();
                inta = Convert.ToInt32(intaS);
                Console.Write("B = ");
                string intbS = Console.ReadLine();
                intb = Convert.ToInt32(intbS);
                Console.Clear();
                AffichMenu();
                break;
            case 2:
                Addition();               
                Console.Clear();
                AffichMenu();
                break;
            case 3:
                Soustrac();
                Console.Clear();
                AffichMenu();
                break;
            case 4:
                Multip();
                Console.Clear();
                AffichMenu();
                break;
            case 5:
                Diviz();
                Console.Clear();
                AffichMenu();
                break;
            case 6:
                Modulo();
                Console.Clear();
                AffichMenu();
                break;
            case 7:
                MainEntryPoint princip = new MainEntryPoint();
                princip.quit();
                break;
            default:
                Console.WriteLine("Mauvais choix reesayez.");
                break;
        }
    }
    public void Addition()
    {
        int add = inta + intb;
        Console.Write("A + B = " + add);
        Console.Read();
        return;
    }
    public void Soustrac()
    {
        int sous = inta - intb;
        Console.WriteLine("A - B = " + sous);
        Console.Read();
        return;
    }
    public void Multip()
    {
        int mul = inta * intb;
        Console.WriteLine("A x B = " + mul);
        Console.Read();
        return;
    }
    public void Diviz()
    {
        int div = inta / intb;
        Console.WriteLine("A / B = " + div);
        Console.Read();
        return;
    }
    public void Modulo()
    {
        int div = inta / intb;
        int mod = inta % intb;
        Console.WriteLine("A / B = " + div + " reste: " + mod);
        Console.Read();
        return;
    }
}

maintenant mon problème est que seul les choix 1 et 7 fonctionnent les autres font quitter le programme quelqun aurait il une idée ??
merci d'avance.


samedi 2 septembre 2006 à 11:51:39 | Re : Quitte sans raison

Bidou

Administrateur CodeS-SourceS
Salut,
Ca vient du fait que dans le main tu fais ceci :

       Menu menu = new Menu();
        int choix = menu.AffichMenu();
        menu.choix(choix);

une fois le choix effectué (ligne 3), le programme se termine, logique, il n'y pas plus d'instruction après.
L'idée c'est de faire une boucle, pour que le programme ne quitte pas.

De plus, ta class Menu ne sert à rien en tant qu'object, voilà ce que je te propose (rapidement fait) :

using System;

namespace

BasicCalculator
{
  
publicclassCalculator
  
{
     
privateint _a = 0;
     
privateint _b = 0;
     
privatestaticbool _stop = false;

     
publicstaticvoid Main()
      {
        
Calculator cal = newCalculator();

        
do
        
{
            try
           
{
               cal.DoChoice(cal.DisplayMenu());
            }
           
catch (ArgumentException argEx)
            {
              
Console.WriteLine(argEx.Message);
              
Console.WriteLine();
            }

         }
         
while (!_stop);
      }

      privateint DisplayMenu()
      {
        
Console.WriteLine(string.Format("A = {0} b = {1}", this._a, this._b));
        
Console.WriteLine();
        
Console.WriteLine("--------------------------------------");
        
Console.WriteLine("-|--------- MENU-PRINCIPAL ---------|-");
        
Console.WriteLine("-|----------------------------------|-");
        
Console.WriteLine("-|- 1 - Modifier A et B -|-");
        
Console.WriteLine("-|- 2 - Additioner A et B -|-");
        
Console.WriteLine("-|- 3 - Soustraire A et B -|-");
        
Console.WriteLine("-|- 4 - Multiplier A et B -|-");
        
Console.WriteLine("-|- 5 - Diviser(troncature) A et B -|-");
        
Console.WriteLine("-|- 6 - Diviser(reste) A et B -|-");
        
Console.WriteLine("-|- 7 - Quitter -|-");
        
Console.WriteLine("--------------------------------------");
        
Console.WriteLine();
        
Console.Write("Votre choix: ");
        
returnConvert.ToInt32(Console.ReadLine());
      }

     
privatevoid DoChoice(int choice)
      {
        
switch (choice)
         {
           
case 1: this.ChangeVariable(); break;
           
case 2: this.Add(); break;
           
//case 3: this.Substract(); break;
           
//case 4: this.Multiply(); break;
           
//case 5: this.Divide(); break;
           
//case 6: this.Modulo(); break;
           
case 7: _stop = true; break;
           
default: thrownewArgumentException("'choice' was not in a valid range");
         }
         
Console.Clear();
      }

      privatevoid ChangeVariable(
      {
        
Console.Write("A = ");
        
this._a = Convert.ToInt32(Console.ReadLine());
        
Console.Write("B = ");
        
this._b = Convert.ToInt32(Console.ReadLine());
      }

      
privatevoid Add()
      {
        
Console.WriteLine(this._a + this._b);
        
Console.WriteLine();
        
Console.WriteLine("Press any key to continue...");
        
Console.ReadLine();
      }
   }
}


VC# forever


Cette discussion est classée dans : menu, int, console, choix, writeline


Répondre à ce message

Sujets en rapport avec ce message

Soucis avec un switch [ par zigzou ] Voila je viens de commencer le C#, et je viens de tombé sur un problème... :(En effet je demande au user de rentré un nombre je fais mes cas et en fai Lister un tableau ! [ par jimmy69 ] Bonjour a tous ,Inutile de preciser que je debute en c# :-) !Je m'initie au c# depuis quelques heures maintenant et j'ai un p'tit souci au point de vu controle [ par Kbitnik ] Bonjour, je suis en ce moment en train de développer un projet en mode console pour mon diplome mais j'ai un peu de mal à faire quelque chose, je m'ex PROBLEME urgent sur une erreur etrange, du a un tableau de structure [ par masakoche ] l'erreur est la suivante : Accessibilité incohérente : le type de paramètre 'ConsoleApplication1.Class1.PERS[]' est moins accessible que la méthode 'C L'opérateur && ne peut pas etre appliqué aux opérandes de type 'int' et 'int' [ par Tupac59 ] if(cpt>lim)                {                    Console.WriteLine("Perdu !!! Vous avez utilisez vos "+lim+" c Console & Form [ par Onni ] Bonjour à tous. J'explique mon problème. Je débute en C# et j'ai fait un mini jeu de rôle sur une application console. Je souhaiterais intégrer la co Faire un losange en C# [ par jeanpierre691 ] Bonjour a tous Je viens de terminer un programme qui permet, selon le chiffre (de 1 - 13) que l'utilisateur rentre, de donner ou de dessiner (le mot combinaisons [ par nadjim ] bonjour à tous J'ai besoin de créer une fonction qui me sortent les combinaison d'un tableau de taille n. Je viens de faire quelques essais, et j'ai lecture page web [ par lonzo ] Bonjour à tous, je suis stagiaire en DUT informatique et il ne me reste plus beaucoup de temps, je vais essayer de remplir plus de 20000 formulaires a Object string Console WriteLine Convert [ par zargooo04 ] bonjours et merci d'etre la[^^langue3]; exemple en peut faire [code=cs]Console.WriteLine(valeur1,valeur2);[/code] mis quand la valeur1 et valeur2


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales