Zum Inhalt springen

[C++] Geburtsjahr berechnen Hilfe


Empfohlene Beiträge

Geschrieben

hi,

ich habe von der berufsschule ein miniprog bekommen was wir mal testen sollten.es ist ein programm womit man mit hilfe des alters das geburtsjahr berechnet mein problem ist jetzt das wir in der schule mit den Turbo C++ arbeiten und ich bei mir auf der arbeit nur borland C++ Builder 5 benutzen darf und irgendiwe funktioniert das programm damit nicht ich programmiere wie uns gesagt wurde doch der compiler überspringt die abfragen an den benutzer er geht alle befehle durch zeigt keine fehler an und geht dann direkt zum ende des programms hier mein code bitte um hilfe danke im vorraus:

CODE:

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <stdio.h>

using namespace std;

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{ int main;

char Name[20]; //Speichert den Namen

int Alter; //Speichert das Alter

int GebJahr; //Speichert das Geburtsjahr

cout<<"Bitte geben Sie Ihren Vornamen ein:";

cin>>Name;

cout<<"Bitte geben Sie Ihr Alter ein:";

cin>>Alter;

//Aus den aktuellen Alter das

//Geburtsjahr berechnen

GebJahr = 2008-Alter;

cout<<"Ihr Name ist"<<Name<<"und Sie wurden"

<<GebJahr<<"geboren!"<<endl;

system("pause");

exit(0);

}

Geschrieben

Starte doch mal den Debug-Modus, in dem er Schritt für Schritt den Quelltext durch geht. Dann siehst du, wo er drüber springt, bzw ob er irgendwo vorher schon aussteigt.

Ich hätte da aber noch ein paar allgemeine Anmerkungen zu dem Programm.

  • Das Programm funktioniert nur, wenn man in dem Jahr bereits Geburtstag hatte. ;)
  • Du solltest auch Leerzeichen mit ausgeben.
  • Du solltest die Variablen auch mit sinnvollen Werten initialisieren und nicht nur deklarieren. Gewöhn dir das am besten direkt an. Ansonsten kann es sein, dass falls du mal eine Variable nicht belegst da Werte von was anderem in der Speicherstelle drin stehen und das zu seltsamen Fehlermeldungen führt. Also zb. int Alter = 0;
  • Was soll das TForm da? :confused: Soll das Programm in der Console laufen, oder benutzt du eine grafische Oberfläche?

btw:

Satzzeichen, sowie Gross- und Kleinschreibung steigern die Lesbarkeit eines Textes ungemein.

Geschrieben

Dann bist du ein Jahr früher geboren plötzlich, falls du in dem Jahr schon Geburtstag hattest. ;)

Das Jahr würde ich auch auslesen oder eingeben lassen und nicht fest einstellen.

Aber da es ja anscheinend nur ein kleines Programm zum lernen ist, ist das denke ich mal schon ok.

Geschrieben
Dann bist du ein Jahr früher geboren plötzlich, falls du in dem Jahr schon Geburtstag hattest. ;)

Das Jahr würde ich auch auslesen oder eingeben lassen und nicht fest einstellen.

Aber da es ja anscheinend nur ein kleines Programm zum lernen ist, ist das denke ich mal schon ok.

Darauf wollt ich hinaus. ;)

Hier noch Anmerkungen zu paar Sachen, die ich komisch find:

1. "#include <iostream>" (C++ - Standardheader haben keine .h Dateierweiterung)

2. "#include <stdio.h>" < Warum? Das ist C-Header - mischen macht den Code unübersichtlich

3. Wie Crash schon meinte, warum das ganze mit TForm?

4. "int main" < Was ist das? eine Variable oder soll das die eigentliche Main-Funktion sein?

5. Das mit dem aktuellen Jahr rausholen hab ich ja schon angemerkt...

6. In der Ausgabe fehlt ein Leerzeichen vor und nach dem Name bzw. dem Jahr.

7. "system("pause")" < Systembefehle sind eklig. Gar nicht erst angewöhnen.

8. "exit(0)" < Noch ekliger. Wenn du das einfach in einer Main verpackst (siehe 4.) wird das programm danach automatisch beendet.

Ich hab wieder mal viel zu meckern, tut mir leid. :hells:

Geschrieben

- Es Soll in einer Console laufen

- TFrom war schon vorher mit drin das steht beim öffnen eines neuen projekts automatisch da...

- und wie schon gesagt hat es genau so mit den Turbo C++ in der schule Funktioniert und mit Borland Builder C++ funktioniert es auf einmal nicht! werde mal den debug modus testen und gucken ob sich was tut.

Geschrieben

- TFrom war schon vorher mit drin das steht beim öffnen eines neuen projekts automatisch da...

Kann das sein, dass du keine Win32-Konsolenanwendung (oder wie auch immer das bei Borland heißt) ausgewählt hast, als du das Projekt erstellt hattest?!

Geschrieben

Hi,

da ja jetzt das programm läuft würde ich aber noch gerne wissen wie ich es einstelle das er nicht (2008-alter) benutzt um das Geburtsjahr zu berechnen sondern das er das aktuelle datum aus windows ausliehst und somit automatisch dsa aktuelle gatum minus das alter macht....

Gruß

KayDen

Geschrieben

Danke (;

Mal ehrlich. So was findet man in 2 Minuten bei google. :rolleyes:

ja vielleicht findest du das in 2minuten da aber ich habe da keins gefunden was funktioniert sry...

Gruß

Timo

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