Zum Inhalt springen

Bräuchte Hilfe bei C Programm


DaniX

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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