Ich brauche mal eure hilfe bei meinem Programm
-
ich mache gerade aus lange weile für ein kumpel ein Programm,
so denn größten teil habe ich schon ich habe das programm mal
gestartet , ich habe irgend wo n worm drinnen den ich kann nicht
die menü punkte aus wählen b.z er nimmt die nicht an vll. seht
ihr denn fehler jaGruß: Rene, Jedtke
#include "include.h" #include "install.cpp" #include "update.cpp" #include "radio.cpp" char tr_eingabe() { char trimport; trimport = ' '; { switch(trimport) { case '1': { long a,b; anfang1: cout << "Bitte eine Zahl eingeben: "; cin >>a; cout << endl << endl; cout << "Bitte eine Zahl eingeben: "; cin >>b; cout << endl << endl; cout << a << "+" << b << "= " << a+b << endl; goto anfang1; break; } case '2': { long a,b; anfang2: cout << "Bitte eine Zahl eingeben: "; cin >>a; cout << endl << endl; cout << "Bitte eine Zahl eingeben: "; cin >>b; cout << endl << endl; cout << a << "-" << b << "= " << a-b << endl; goto anfang2; break; } case '3': { long a,b; anfang3: cout << "Bitte eine Zahl eingeben: "; cin >>a; cout << endl << endl; cout << "Bitte eine Zahl eingeben: "; cin >>b; cout << endl << endl; cout << a << "*" << b << "= " << a*b << endl; goto anfang3; break; } case '4': { long a,b; anfang4: cout << "Bitte eine Zahl eingeben: "; cin >>a; cout << endl << endl; cout << "Bitte eine Zahl eingeben: "; cin >>b; cout << endl << endl; cout << a << ":" << b << "= " << a/b << endl; goto anfang4; break; } default: { cin.sync (); cout << std::endl << "Falsche Eingabe: "; cin.get (); break; } } } return (trimport); } char benutzer_eingabe() { char b_eingabe; b_eingabe = ' '; { switch(b_eingabe) { case '1': { cout << "Fielen dank der Rechner wird geladen"; Sleep(300); cout << "."; Sleep(500); cout << "."; Sleep(700); cout << "."; tr_eingabe(); break; } case '2': { string ja; string nein; ja = "ja"; nein = "nein"; cout << "vielen dank das sie sich fuer das Spiel entschieden haben" << endl; cout << endl << endl; cout << "Wollen sie das Benoegtigte Programm starten ? (ja/nein) " << endl; cin>>ja; if (NULL, ja == "ja" && nein == "nein") { cout << "das Programm wird gestartet" << endl; } else { cout << "Bitte haben sie was gedult bis die Info.text Geladen ist" << endl; } break; } case '3': { cout << "Lade Programm"; Sleep(300); cout << "."; Sleep(600); cout << "."; break; } case '4': { cout << "vielen dank das sie sich fuer dieses Update entschieden haben" << endl; cout << endl << endl; cout << "Lade Programm"; Sleep(300); cout << "."; Sleep(600); cout << "."; break; } case '5': { cout << "Lade Programm"; Sleep(300); cout << "."; Sleep(600); cout << "."; break; } case '6': { string ja; string nein; ja = "ja"; nein = "nein"; cout << "vielen dank das sie sich fuer dieses Radio entschieden haben" << endl; cout << endl << endl; cout << "Wollen sie das Benoegtigte Programm starten ? (ja/nein) " << endl; cin>>ja; if (NULL, ja == "ja" && nein == "nein") { cout << "das Programm wird gestartet" << endl; } else { cout << "Bitte haben sie was gedult bis die Info.text Geladen ist" << endl; } break; } case '7': { cout << "vielen dank das sie sich fuer diesen Server entschieden haben" << endl; cout << endl << endl; cout << "Lade Programm"; Sleep(300); cout << "."; Sleep(600); cout << "."; break; } default: { cin.sync (); cout << std::endl << "Falsche Eingabe: "; cin.get (); break; } } } return (b_eingabe); } int main() { system("TITLE Mein Erstes Programm"); system("COLOR 7"); cout << "Willkommen Was Moechten sie Tuhen ???" << endl << endl << endl; anfang: cout << "-------------------------------------" << endl; cout << "1.Rechnen " << endl; cout << "2.Spiele installieren " << endl; cout << "3.Spiele Spielen " << endl; cout << "4.Spiele Updaten " << endl; cout << "5.Programme Starten " << endl; cout << "6.internet Radio Hoeren" << endl; cout << "7.Spiele server starten" << endl; { cout << endl << endl << "Bitte eine Zahl von 1 bis 7 Eingeben: "; benutzer_eingabe(); cin.sync (); Sleep(3000); goto anfang; } }
-
1. Wähle Threadtitel, die eine Aussagekraft besitzen.
2. Wieso nimmst du nicht einen Debugger? Du kennst dein Programm und kannst relativ leicht überprüfen, wo das tatsächliche Verhalten nicht dem erwarteten entspricht. Wir hingegen müssten uns zuerst in den Code einlesen und aufgrund deiner spärlichen Beschreibung erraten, was du wohl anders willst.
3. Meidegoto! Benutze stattdessen mehrere Funktionen.
4. Ich würde ein wenig auf die Einrückungen achten, sonst verlierst du schnell die Übersicht.
-
Bist du Legastheniker? Wenn ja, dann sei dir deine grauenhafte Rechtschreibung noch mal verziehen, wenn nicht, dann solltest du dringend noch mal die Grundschule besuchen.

tr_eingabe() definiert ein char, das wird mit einem Leerzeichen initialisiert und dann durch das switch gedreht. Wo hat man Gelegenheit, den Inhalt von trimport zu bestimmen?Ich bin so frei und kritisiere deinen Code mal etwas:
#include bindet immer nur Schnittstellen und keine Implementierungen ein. Diese sollten in getrennten Übersetzungseinheiten unabhängig vom Programm sein. Auf Deutsch: Include nur mit Header-Dateien, Definitionen in getrennten cpp-Dateien, wenn du nicht gerade Templates benutzt. Die ganzen Objektdateien linkst du dann zusammen.
Außerdem ist dein Code voll mit Wiederholungen. Ein Programm in ein gewaltiges switch zu packen ist ein unschöner Stil, zumindest, wenn man C++ machen will. Schreibe alle gemeinsamen Anweisungen vor das switch und minimiere die Länge der cases, das Programm ist dann 0.5 mal so lang.

-
Hi,
Ich denke, du solltest dir paar Tutorials durchlesen, die dir die Grundlagen erklären.
1. ) Inkludiere niemals cpp dateien.
2. ) Die auswahl funktioniert nicht, weil b_eingabe in dem function scope deklariert wird, und keine von deinen Menü nummern erhält.
int outputMenu(int choice) { switch ( choice ) // ... }3. ) Wenn man Programmiert, dann sollten die namen der variablen / funktionen IMMER! in Englisch sein.
4. ) Du brauchst nicht Sleep, sollte man Meiden.
5. ) goto sollte man auch meiden.
Wie gesagt, ein Tutorial für den Anfang wäre gut!
-
Dein Problem ist, dass gar keine Eingabe gelesen wird. In Zeile 84 wird die zugehörige Variable auf ' ' gesetzt und das war's dann.
Ansonsten noch ein paar Anmerkungen:
- include von cpp Dateien deutet darauf hin, dass du:
- Sinn der Trennung von Header und Implementierung nicht verstanden hast
- Einen Katastrophalen Designfehler hast
Was davon darf's denn sein?
2) Deine switch cases enthalten alle den gleichen Code bis auf eine Zeile. Warum machst du den gemeinsamen Teil nicht außerhalb vom switch und das was Unterschiedlich ist im switch?
3) Auch wenn ein erfahrener Programmierer manchmal sinnvolle Stellen für goto erkennen kann, ist das hier nicht der Fall. Faustregel für Anfänger: Goto ist böse, ganz böse. Und dein Programm ist ein Paradebeispiel warum es böse ist: Mit jeder anderen Kontrollstruktur wäre das Programm viel einfacher zu lesen.
4) Die ist schon klar, dass du da Endlosschleifen gebaut hast, aus denen es kein Endkommen gibt, oder? Oder hast du dich selbst durch die gotos verwirrt?
5) Wozu die ganzen sleeps? Um durch Langsamkeit Komplexität vorzugaukeln?
6) Hat das Null beiif (NULL, ja == "ja" && nein == "nein")einen tieferen Sinn?
7) Die ganzen system Befehle werden nur unter bestimmten Systemen funktionieren, eine gute Alternative um die gleichen Effekte zu erzeugen gibt es jedoch nicht.Nimm die viele Kritik nicht zu hart, ist nicht so gemeint, sondern nur als Ratschlag. In dem Programm gibt es auch vieles was für einen Anfänger wirklich gut ist und was man sonst hier im Forum viel schlimmer sieht.
-
1.also gengen Kritik habe ich garnix ist sogar erwünscht
2. Weswegen der code so unübersichtlich ist ist der Grund das ich einfach durchgeschrieben habe.
3.Die ganzen Sleeps habe ich um meinem Kumpel zu ärgern da er sowas auch mal mit mir gemacht hat.
4.das mit denn #include wurde mir so von einem guten freund damals erklärtdenn Fehler habe ich gefunden ich habe
cin>>b_eingabe;vergessen
Aber bitte Kritisiert weiter damit ich weiß was ich besser machen kann
gruß: Rene,jedtke
-
Rene,jedtke schrieb:
4.das mit denn #include wurde mir so von einem guten freund damals erklärt
Dateien mit der Endung .cpp (=Implementierungsdateien) inkludiert man aber grundsätzlich nicht. Diese werden kompiliert; Informationen, die du für mehrere Implementierungsdateien benötigst, kannst du in eigenen Headerdateien bekannt machen (z.B. durch Funktionsdeklaration).
Hmm... Hast du ein C++-Buch? Das wäre nämlich wichtig, dort sind auch solche Dinge erklärt. Dann kannst du deinen Freund mit der Zeit nämlich auch professionell nerven.

-
ja
einaml Andre Willms c++ Programmierung lernen und 3d Spiele Programmierung mit Direx 9 und c++ von david SCHERFGEN