DaniX Geschrieben 22. November 2005 Geschrieben 22. November 2005 Hallo zusammen, Ich bin ne totale Anfängerin beim Programmieren und ich bräuchte mal irgendnen Tip zu folgender Aufgabe Ich soll ein Programm schreiben was so aussieht : A Mitgliederverwaltung B Jahresabschluss C Jubilaeen D Mahnungen E Menue verlassen Ihre Eingabe: x Ihre Eingabe ist leider nicht zulaessig. Bitte waehlen Sie: A Mitgliederverwaltung B Jahresabschluss C Jubilaeen D Mahnungen E Menue verlassen Ihre Eingabe: B Sie werden nun zum Jahresabschluss weitergeleitet Bitte waehlen Sie: A Mitgliederverwaltung B Jahresabschluss C Jubilaeen D Mahnungen E Menue verlassen Ihre Eingabe: e Sie verlassen jetzt das Menue. Auf Wiedersehen! Ich habe dazu bislang das geschrieben: main() { int c; printf(" Bitte waehlen Sie:\n\n"); printf("A Mitgliederverwaltung\n"); printf("B Jahresabschluss\n"); printf("C Jubilaeen\n"); printf("D Menue verlassen\n"); switch (c=getchar()) { case 'a': case 'A': printf("\nSie werden nun zu Mitgliederverwaltung weitergeleitet ...\n"); break; case 'b': case 'B': printf("\nSie werden nun zum Jahresabschluss weitergeleitet ...\n"); break; case 'c': case 'C': printf("\nSie werden nun zum Jubilaeen weitergeleitet ...\n"); break; case 'd': case 'D': printf("\nSie verlassen jetzt das Menue. Auf Wiedersehen!\n"); break; default: printf("\nIhre Eingabe ist leider nicht zulaessig. \07\n"); }} Jetzt habe ich dabei 2 Probleme. Erstmal beendet sich das Programm nach jeder Wahl, egal was man wählt und ich soll bei dem programm nach möglichkeit den Befehl scanf verwenden. Ich weiß aber weder wie ich den Befehl da einbringen kann noch wie ich es schaffe das sich das Programm nicht nach jeder Wahl beendet. Bin echt über jeden Tip Dankbar Zitieren
Guybrush Threepwood Geschrieben 22. November 2005 Geschrieben 22. November 2005 Naja im Moment fragst du ja noch keine Benutzereingabe ab. Das er trotzdem wartet wird wohl daran liegen das deine Entwicklungsumgebung dafür sorgt. Wenn du dein Programm einfach mal so (nicht aus deiner Entwicklungsumgebung raus) startest, dann sollte es direkt wieder zu gehen ohne das du etwas drücken musst. Mit scanf kannst du die Benutzereingabe abfragen wie du die verwendest findest du in der Dokumentation die bei deiner Entwicklungsumgebung dabei ist oder wenn du hier im Forum einfach mal danach suchst. Damit dein Programm sich nicht direkt wieder beendet kannst du eine Schleife um das Menü bauen. Dazu würde sich eine do while Schleife anbieten. Wenn dir das alles nichts sagt dann solltest du dir erstmal die Grundlagen von C aneignen. Dazu kannst du ja mal hier rein gucken: http://forum.fachinformatiker.de/showthread.php?t=70849&highlight=Tutorial Zitieren
jasso Geschrieben 22. November 2005 Geschrieben 22. November 2005 damit es sich am ende nicht einfach beendet kannst du ja auch noch einen fscan ganz am ende einbauen (evtl. mit der meldung "enter zum beenden") lg jasso Zitieren
Drake Geschrieben 22. November 2005 Geschrieben 22. November 2005 oder du machst nen getch() dann musst auf jedenfall einmal ne taste drücken *G* Zitieren
Guybrush Threepwood Geschrieben 22. November 2005 Geschrieben 22. November 2005 Leute erst lesen Es geht nicht darum am Ende zu auf eine Eingabe zu warten sondern darum das man solange im Menü wählen kann bis man Verlassen wählt. Zitieren
Drake Geschrieben 22. November 2005 Geschrieben 22. November 2005 Leute erst lesen Es geht nicht darum am Ende zu auf eine Eingabe zu warten sondern darum das man solange im Menü wählen kann bis man Verlassen wählt. dann soll er da ne schleife rum programmieren do .... while und nen neuen punkte aufnehmen E = Exit oder so Zitieren
UltimateRuppi Geschrieben 22. November 2005 Geschrieben 22. November 2005 Naja im Moment fragst du ja noch keine Benutzereingabe ab. Das er trotzdem wartet wird wohl daran liegen das deine Entwicklungsumgebung dafür sorgt. (...) na doch tut sie doch hier switch (c=getchar()) { nach dem switch wird das Programm sofort wieder beendet kannst vor dem ende der main-Funktion noch ein system("pause"); einfügen, dann wartet das programm auf einen Tastendruck (geht zumindest bei windows-systemen) oder halt wie der mächtige Pirat schon sagte eine schleife um den switch block bauen zur Frage mit dem scanf: char c; scanf("%c", &c); switch(c) { case 'a': (...) } hier wir dein zeichen von der konsole in die variable c eingelesen Zitieren
Guybrush Threepwood Geschrieben 22. November 2005 Geschrieben 22. November 2005 @UltimateRuppi Ja hab ich nicht gesehen Zitieren
DaniX Geschrieben 22. November 2005 Autor Geschrieben 22. November 2005 Okay vielen Dank für die vielen Antworten, aber irgendwie bringt mich das nicht weiter, ich habe grade erst meine 2. Informatikvorlesung hinter mir und kann mit euren Tips jetzt echt nicht viel Anfangen, könnte mir das vielleicht jemand etwas vereinfacht erklären ??? Zitieren
Guybrush Threepwood Geschrieben 22. November 2005 Geschrieben 22. November 2005 Hast du dir den Link dne ich gepostet habe überhaupt angeguckt? Da findest du mehrere Online Tutorials inden das alles ausführlich erklärt wird. Zitieren
Manfred.Becker Geschrieben 23. November 2005 Geschrieben 23. November 2005 Hallo DaniX, eigentlich hat es Drake bereits gesagt. Du solltest eine do-while-Schleife verwenden, um deine Eingabeaktion wiederholt ausführen zu können. Wahrscheinlich hilft dir zum jetzigen Zeitpunkt diese Info nicht viel weiter. Deshalb hier mein Ansatz für die Umsetzung: int main(int argc, char* argv[]) { int c; //do-while-Schleife do { printf(" Bitte waehlen Sie:\n\n"); printf("A Mitgliederverwaltung\n"); printf("B Jahresabschluss\n"); printf("C Jubilaeen\n"); printf("D Menue verlassen\n"); //c=getchar(); c=getch(); //liest ein Zeichen von der Konsole switch (c) { case 'a': case 'A': printf("\nSie werden nun zu Mitgliederverwaltung weitergeleitet ...\n"); break; case 'b': case 'B': printf("\nSie werden nun zum Jahresabschluss weitergeleitet ...\n"); break; case 'c': case 'C': printf("\nSie werden nun zum Jubilaeen weitergeleitet ...\n"); break; case 'd': case 'D': printf("\nSie verlassen jetzt das Menue. Auf Wiedersehen!\n"); break; default: printf("\nIhre Eingabe ist leider nicht zulaessig. \07\n"); } } while (c != 'd' && c != 'D'); //solange ausführen, bis Abbruch getch(); //wartet vor dem Beenden return 0; } [/PHP] Aber auch mein Rat: Lies ein paar Tutorials durch. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.