Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Quitte sans raison [ Système / Exécution ] (Kuni59)

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é 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 Newbie en C#, léger problème de sécurité avec VS2008.Net [ par Nixeus ] Bonjour à tous,Je suis débutant dans le monde .Net, et je viens de faire un petit programme en console, permettant d'envoyer des Mails par le biais d' chaine de caractere [ par krim43 ] bonjour,voila mon probleme:créer une fonction strbrk qui retire de str1 les caracteres contenus dans str2 et retourne le resultat.voila le code que j' WindowsForm et la console ? [ par vash_vador ] Bonjour, Je suis nouveau dans le développements en c# (environ 6mois de pratique), et j'ai un projet mais j'ai un petit problème a résoudre: Mon probl probleme heritage [ par djmanu78 ] bonjour tout le monde,j'ai quelques difficultées à trouver la solution à mon problème.je m'explique :j'ai creer une classe macollec qui regroupe dans


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.