KayDen Geschrieben 6. Oktober 2008 Geschrieben 6. Oktober 2008 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); } Zitieren
Crash2001 Geschrieben 6. Oktober 2008 Geschrieben 6. Oktober 2008 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. Zitieren
TDM Geschrieben 6. Oktober 2008 Geschrieben 6. Oktober 2008 Was ist, wenn ich das Programm 2009 laufen lasse? Zitieren
Crash2001 Geschrieben 6. Oktober 2008 Geschrieben 6. Oktober 2008 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. Zitieren
TDM Geschrieben 7. Oktober 2008 Geschrieben 7. Oktober 2008 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: Zitieren
KayDen Geschrieben 7. Oktober 2008 Autor Geschrieben 7. Oktober 2008 - 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. Zitieren
TDM Geschrieben 7. Oktober 2008 Geschrieben 7. Oktober 2008 - 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?! Zitieren
KayDen Geschrieben 7. Oktober 2008 Autor Geschrieben 7. Oktober 2008 also bei borland heisst das einfach nur anwendung kann sein das es das falsche ist habe hier als anhang mal nen screenshot gemacht. Zitieren
TDM Geschrieben 7. Oktober 2008 Geschrieben 7. Oktober 2008 hmm, das sieht sehr nach dialogbasierend aus... Probier mal "Batch-Datei". Zitieren
Klotzkopp Geschrieben 7. Oktober 2008 Geschrieben 7. Oktober 2008 Ich glaube, etwas weiter unten gibt es noch den "Konsolen-Experten". Zitieren
KayDen Geschrieben 7. Oktober 2008 Autor Geschrieben 7. Oktober 2008 jop hab es jetzt musste es mit den konsolen experte machen habe mich schon gewundert why daas net geht thx nochmal. Thread closed Zitieren
KayDen Geschrieben 8. Oktober 2008 Autor Geschrieben 8. Oktober 2008 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 Zitieren
TDM Geschrieben 8. Oktober 2008 Geschrieben 8. Oktober 2008 struct tm - C++ Reference mktime - C++ Reference time - C++ Reference difftime - C++ Reference :beagolisc Zitieren
Crash2001 Geschrieben 8. Oktober 2008 Geschrieben 8. Oktober 2008 Such dir ein Howto aus. Mal ehrlich. So was findet man in 2 Minuten bei google. Zitieren
KayDen Geschrieben 8. Oktober 2008 Autor Geschrieben 8. Oktober 2008 Danke (; Mal ehrlich. So was findet man in 2 Minuten bei google. ja vielleicht findest du das in 2minuten da aber ich habe da keins gefunden was funktioniert sry... Gruß Timo Zitieren
Empfohlene Beiträge
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.