Veröffentlicht 22. November 200519 j 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
22. November 200519 j 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
22. November 200519 j 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
22. November 200519 j oder du machst nen getch() dann musst auf jedenfall einmal ne taste drücken *G*
22. November 200519 j 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.
22. November 200519 j 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
22. November 200519 j 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
22. November 200519 j 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 ???
22. November 200519 j 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.
23. November 200519 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.