hauptmenue einrichten



  • moin moin!

    ich verzweifle gerade an einem projekt für die schule, wo fälle mit C darstellen soll. ich habe alle fertig, aber in jeweils einzelnen programmen, welche beim ablauf jeweils den gesammten bildschirm füllen.

    allerdings darf ich nur ein programm abgeben, wesshalb ich nun eine art hauptmenü brauche, von wo aus ich ein neues fenster öffnen kann, wo der angewählte fall dann aufläuft.
    wenn der fall dann durchgelaufen ist soll durch tippen von 0 z.b. wieder zum hauptmenü zurückgegangen werden, aber ich weiß ums verrecken nicht, wie man das anstellen soll.

    ich wär euch sehr dankbar, wenn ihr mir helfen könntet, dieses menü überschreitet meine grenzen 😮

    mfg, defacto



  • Moinsen !

    Teil dir doch das Programm auf, für jeden Fall eine separate
    Funktion:

    void fall_1()
    {
    //...
    }
    void fall_2()
    {
    //...
    }
    
    void fall_2()
    {
    //...
    }
    

    Und vielleicht noch eine Funktion zum Initialisieren der Grafik:

    void init_graphic()
    {
    //...
    }
    

    Dann kannst du das Hauptmenü in die Mainfunktion auslagern und jeder Funktion eine Zahl zuordnen und z.B. den Benutzer wählen lassen:

    #include <stdio.h> 
    
    void fall_1()
    {
    	puts("fall_1()");
    }
    
    void fall_2()
    {
    	puts("fall_2()");
    }
    
    void fall_3()
    {
    	puts("fall_3()");
    }
    
    int main () 
    { 
      int i = 0;
      init_graphic();
    
      printf("Waehlen Sie einen Fall[1-3]: " );
      scanf( "%d",  &i );
    
      switch (i)
      {
    	case 1:
    		fall_1();
    	break;
    
    	case 2:
    		fall_2();
    	break;
    
    	case 3:
    		fall_3();
    	break;
    
    	default:
    		printf("Unbekannt: %d", i );
    
      }
    
      return 0;
    }
    

    Gruß, p.



  • wow, danke für die schnelle antwort,funktioniert super!! 😃



  • #include <stdio.h> 
    
    void fall_1()
    {
    	puts("fall_1()");
    }
    
    void fall_2()
    {
    	puts("fall_2()");
    }
    
    void fall_3()
    {
    	puts("fall_3()");
    }
    
    void puffer_leeren()
    {
    	setvbuf(stdin,NULL,_IONBF,0);
        setvbuf(stdin,NULL,_IOFBF,BUFSIZ);
    }
    
    int main () 
    { 
      int i = 0;
    
      do
      {
    	  printf("Waehlen Sie einen Fall[1-3], beenden mit [0]: " );
          scanf( "%d",  &i );
          puffer_leeren();
    
    	  switch (i)
    	  {
    		case 0:
    	 	break;
    
    		case 1:
    			fall_1();
    		break;
    
    		case 2:
    			fall_2();
    		break;
    
    		case 3:
    			fall_3();
    		break;
    
    		default:
    			printf("Unbekannt: %d\n", i );
    
    	  }
      }while ( i );
    
      return 0;
    }
    

    😉 🙂



  • tausend dank, alles komplett! 😃
    hab mir noch nen

    case 0: return 0; break;
    

    reingebaut zum schließen. oh mann, auf diese lösung von dir wär ich nie gekommen xD

    danke nochmal, man sieht sich



  • defacto schrieb:

    tausend dank, alles komplett! 😃

    Oooch najanun 🙂

    defacto schrieb:

    hab mir noch nen

    case 0: return 0; break;
    

    reingebaut zum schließen.

    Das return 0; kannst du auch rauslassen 😉

    defacto schrieb:

    danke nochmal, man sieht sich

    -> 1001 😃

    Hau rein. 🙂


Anmelden zum Antworten