Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben
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

Geschrieben
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

Geschrieben

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 ???

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...