exe kaputt!

Hallo miteinander!
ich wollte ein einfaches programm schreiben.
Hier der Queltext:
Code:
#include <iostream>
#include <stdlib.h>
#include <process.h>
using namespace std;

int Verzeichniss(void);

int Info(void);
int Wieso_Inf(void);
int Informatik(void);
int Wieso_Ich(void);
int Programm(void);
int Kontakt(void);
int main()
{
 cout << "-------------------BEWERBUNG VON JOEL KLINGLER-----------------------" << endl;
 cout << "---------------------------------------------------------------------" << endl << endl;
 cout << "Ich habe ein kleines C++ Programm erstellt damit sie einen kleinen" << endl;
 cout << "Einblick in meine Kenntnisse haben." << endl << endl;
 cout << "Wie sie merken werden sind dies jedoch nur Grundkenntnisse und ich bin" << endl;
 cout << "noch weit vom proffessionellen programmieren entfernt." << endl << endl;
 cout << "Druecken sie nun ENTER um in den Naechsten Abschnitt zu gelangen." << endl << endl;
 system("pause");
 system("CLS");
 Verzeichniss();
 cout << " " << endl;
 system("pause");
}

int Verzeichniss()
{
              int Navigation;
              cout << "Was moechten sie tun?" << endl << endl;
              cout << "Name                 Beschreibung                                 Nummer" << endl;
              cout << "------------------------------------------------------------------------" << endl << endl;
              cout << "Ueber mich           Einige Informationen ueber mich.                [1]" << endl;
              cout << "Warum Informatiker?  Warum ich Informatiker erlernen moechte.        [2]" << endl;
              cout << "Warum ich?           Warum sollten sie mich nehmen?                  [3]" << endl;
              cout << "Wieso Informatik?    Wiso mich die Informatik interessiert.          [4]" << endl;
              cout << "Programmier Kent.    Mit was ich schon bekanntschaft gemacht habe    [5]" << endl;
              cout << "Kontakt              Wie sie mich erreichen.                         [6]" << endl << endl;
              cout << "Bitte geben sie nun eine Nummer ein: " << endl;
              cin >> Navigation;  
              system("CLS");    
              if(Navigation = 1)
              {
                            Info();
                            }
              if(Navigation = 2)
              {
                            Wieso_Inf();
                            }
               if(Navigation = 3)
               {
                             Wieso_Ich();
                             }
               if(Navigation = 4)
               {
                             Informatik();
                             }
               if(Navigation = 5)
               {
                             Programm();
                             }
               if(Navigation = 6)
               {
                             Kontakt();
                             }              
}


int Info()
{
    cout << "Information";
}

int Wieso_Inf()
{
    cout << "Wisoe ich?";
}

int Wieso_ich()
{
    cout << "Wiso ich?";
}

int Programm()
{
    cout << "Programmierkenntnisse";
}

int Informatik()
{
    cout << "Informatik";
}
int Kontakt()
{
    cout << "Kontakt";
}




-------------------------------------------------------------------------
Allerdings erscheint nach dem Kompillieren im Ordner eine exe datei nur für ca. 2 Sekunden und wenn ich sie dann anklicke stürzt esa ab!

Was kann ich da machen. (Bin nicht sehr gut. Eigentlich ein Noob.)

Danke für eure Hilfe.

MFG COMPI
 
Zuletzt bearbeitet von einem Moderator:
Ich nehme mal an du bekommst einen Fehler beim Kompilieren. Ich nämlich schon, weil du in Wieso_ich das i einmal klein und einmal groß schreibst.

mfg benediktibk
 
Ok problem Behoben.
obig gennanter Punkt war der auslösser.
-----------------------------
Allerdings kommt nun wenn ich beim Inhaltsverzeichniss zB. "1" eingebe:

InformationWisoe ich?Wiso ich?InformatikProgrammierkenntnisseKontakt

Dies bei jeder anderen Nummer auch.

Warum kommt bei 1 jetzt nicht einfach nur "Information" sondern alle anderen ausgaben die eigentlich für 2-6 gedacht waren auch?
liegt es daran das ich kein else hatte? Wenn ich nähmlich else bei einer if reintu kommt folgendes problem:
- Hab nun so umgeändert:
---------------------------------------------------------------------
if(Navigation = 1)
{
Info();
}
else
{
cout << "hey" << endl;
}
---------------------------------------------------------
Aber macht keinen Unterschied -.-
danke für die Hilfe.
 
Zuletzt bearbeitet:
Du brauchst bei den Funktionen kein int angeben. Das macht man nur wenn Sie etwas zurückgeben ( in dem Fall ein int). Mach am besten "void" hin. Bei "
int main()" fehlt dieses nämlich. Bei den ganzen IF Anweisungen machst du eine Zuweisung kein Verlgleich. Der sieht in C++ so aus

if( n == 5 )

Was mir ebenfalls unklar ist warum du so oft "system(xxxx)" benutzt?

So mehr hab ich grad nicht gefunden beim überfliegen.


Mfg Daruma
 
Anstatt:
if(Navigation = 1)
{
Info();
}
if(Navigation = 2)
{
Wieso_Inf();
}
if(Navigation = 3)
{
Wieso_Ich();
}
if(Navigation = 4)
{
Informatik();
}
if(Navigation = 5)
{
Programm();
}
if(Navigation = 6)
{
Kontakt();
}
das hier (glaube ich):
if(Navigation == 1)
{
Info();
}
if(Navigation == 2)
{
Wieso_Inf();
}
if(Navigation == 3)
{
Wieso_Ich();
}
if(Navigation == 4)
{
Informatik();
}
if(Navigation == 5)
{
Programm();
}
if(Navigation == 6)
{
Kontakt();
}
Das doppelte "=" damit auch ein Vergleich stattfindet.

Etwas eleganter wäre es außerdem, wenn du vor jedem if - außer dem ersten ein "else" + Leerzeile einfügst, damit er keinen unnötigen Vergleich durchführt.
Sonst vielleicht nochmal auf Flüchtigkeitsfehler in der Ausgabe prüfen, macht sich bestimmt besser bei einer Bewerbung.

Gruß!

PS: Ach und die "EXE" ist nicht kaputt, sondern es liegt eine fehlerhafte Programmierung vor. Nur so ;-)
 
Zuletzt bearbeitet:
@ Daruma.
meinst du system("pause") oder system("CLS")????
system("pause") damit nicht der ganze Text auf einma erscheint.
Giebts da andere möglichkeiten? break; geht ja nur mit switch.

Danke ich glaube mit == wird es gehen ;)

Danke für die Glückwunsche.

ich meinte nicht "exe kaputt" sondern dass sie halt nicht geht ;) Wusste nicht wie schreiben.

Danke für die Hilfe euch allen!!
 
Hey Compilerjunge123,
für einen Fall wie deinen ist eigentlich die Kontrollstruktur switch besser geeignet als if-else. Es funktioniert natürlich beides, aber switch ist etwas performanter und imho auch besser lesbar :)
Code:
switch(Eingabe) {
  case 1:
    Info();
    break;
  case 2:
    Wieso_Inf();
    break;
  case 3:
    Wieso_Ich();
    break;
  case 4:
    Informatik();
    break;
  case 5:
    Programm();
    break;
  case 6:
    Kontakt();
    break;
  default:
    cout << "Falsche Eingabe!";
}
 
Hintergrund: Switch-Statements können durch die auferlegten Beschränkungen vom Compiler in eine Sprungtabelle übersetzt werden kann, während für if else if Strukturen mehrere Vergleiche ausgeführt werden müssen, sofern der Optimierer im AST das nicht in ein Switch-Statement überführt. Ob moderne Compiler das können, weiß ich nicht.
 
Wenn du das wirklich als Bewerbung schicken möchtest, würde ich ggf. noch einige der Rechtschreibfehler korrigieren (ich nehme an, du schickst den Code direkt mit?).
Hier mal auf die Schnelle das, was mir sofort ins Auge gesprungen ist.

Code:
int main() {
cout << "-------------------BEWERBUNG VON JOEL KLINGLER-----------------------" << endl; 
cout << "---------------------------------------------------------------------" << endl << endl;
cout << "Ich habe ein kleines C++ Programm erstellt[b],[/b] damit [B]S[/B]ie einen kleinen" << endl;
cout << "Einblick in meine Kenntnisse haben." << endl << endl;
cout << "Wie [B]S[/B]ie merken werden[B],[/B] sind dies jedoch nur Grundkenntnisse und ich bin" << endl;
cout << "noch weit vom pro[B]f[/B]essionellen [B]P[/B]rogrammieren entfernt." << endl << endl;
cout << "Druecken [B]S[/B]ie nun ENTER[B],[/B] um in den [b]n[/b]aechsten Abschnitt zu gelangen." << endl << endl;
system("pause");
system("CLS");
Verzeichniss();
cout << " " << endl;
system("pause");
}  int Verzeichniss() {
int Navigation;
cout << "Was moechten [B]S[/B]ie tun?" << endl << endl;
cout << "Name                 Beschreibung                                 Nummer" << endl;
cout << "------------------------------------------------------------------------" << endl << endl;
cout << "Ueber mich           Einige Informationen ueber mich.                [1]" << endl;
cout << "Warum Informatiker?  Warum ich Informatiker erlernen moechte.        [2]" << endl;
cout << "Warum ich?           Warum sollten [B]S[/B]ie mich nehmen?                  [3]" << endl;
cout << "Wieso Informatik?    Wi[B]e[/B]so mich die Informatik interessiert.          [4]" << endl;
cout << "Programmier[B]k[/B]ent.    Mit was ich schon [B]B[/B]ekanntschaft gemacht habe[b].[/b]    [5]" << endl;     
cout << "Kontakt              Wie [B]S[/B]ie mich erreichen.                         [6]" << endl << endl;
cout << "Bitte geben [B]S[/B]ie nun eine Nummer ein: " << endl;
cin >> Navigation;
system("CLS");
[...]
int Wieso_Inf() {
cout << "Wie[B]so[/B] ich?";
} 
int Wieso_ich()
{
cout << "Wi[B]e[/B]so ich?";
}

Zum Switch-Case wurde ja schon etwas gesagt, vielleicht kannst du dir das ja auch noch mal anschauen (ist definitiv nicht verkehrt zu wissen ;)).

PS: "Wieso ich Informatiker erlernen möchte" klingt für mich noch ein wenig schief, willst du nicht eigentlich die Informatik erlernen oder Informatiker werden? Das würde ich ebenfalls noch überarbeiten.
 
Zuletzt bearbeitet:
Ok... ich werde es mal mit dem Switch probieren. Danke für all die Tipps und die Rechtschreibung stimmt eh nicht. (war nur ein Entwurf) Und @DerW ich möchte Informatiker erlernen. :)

MFG Compi
 
[Off-Topic]
Man erlernt aber nicht Informartiker, genauso wie man nicht Bäcker oder Maurer erlernt. Man erlernt die Fähigkeiten und das Fachwissen eines Informatikers, Bäckers oder Maurers respektive die Informatik, das Backhandwerk und das Maurerhandwerk.
Du kannst aber die Absicht haben, ein Informatiker zu werden, so wie du Bäcker oder Maurer werden kannst.

Ich denke, darauf wollte der W hinaus.

Und bei Bewerbungen, gerade bei solchen die herausstechen und nicht in der Masse untergehen, sollte man auf die Rechtschreibung und Formulierungen achten, damit der gute Eindruck aufgrund von kreativer Bewerbungsform nicht gleich wieder neutralisiert wird.
[/Off-Topic]
 
Zurück
Oben