Visual Studio 2005 <windows.h> fehler



  • Ich verzweifle...

    Müssen von der Schule aus ein Programm schreiben zur Einkommensteuer berechnung.
    Nur wird mir die ganze zeit beim Debuggen dieser Fehler angezeigt:

    1>d:\awe programmieren völsgen\c++_2011-12\funktionen\estgrundtarif2011\estgrundtarif2011\ek_steuer.cpp(17) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory

    #include <iostream>
    #include <conio.h>
    #include <math.h>
    #include <limits>
    #include <windows.h>
    #include <stdlib.h>
    
    using namespace std;
    
    //deklaration der Funktion
    void EStG1(double steuer);
    void EStG2(double einkommen,double steuer);
    void EStG3(double einkommen, double steuer,double betrag);
    void EStG4(double einkommen,double steuer,double betrag);
    
    //main-Funktion
    void main()
    {
    
    // Variablen
    	double einkommen,steuer,betrag;
    	int wahl,neustart;
    	double ergebnis;
    
    //Bildschirm säubern
    	system("cls");
    
    do
    {
    	system("color 0A");
    
    // Begrüsungsbildschirm
    	cout<<"***********************************************"<<endl;
    	cout<<"°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"<<endl;
    	cout<<"_________________Einkommenssteuer______________"<<endl;
    	cout<<"°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°"<<endl;
    	cout<<"***********************************************"<<endl;
    
    	system("pause"); // hält das Programm an
    	system("cls");
    
    // Ergibt eine Auswahl der verschiedenen Formen
    	cout << "Bitte waehlen Sie Ihre Steuerklasse aus" << endl << endl;
    	cout << "[1] bis 7834 Euro (Grundfreibetrag):0" << endl;
    	cout << "[2] 7835 Euro bis 13139 Euro:(939,68*y+1400)*y" << endl;
    	cout << "[3] 13140 Euro bis 52551 Euro:(228,74*z+2397)*z+1007" << endl;
    	cout << "[4] 52552 Euro bis 250400 Euro:0,42*x-8064" << endl;
    	cout << "[5] 250401 Euro:0,45*x-15576"<< endl;
    	cout << "[6] Abbrechen" << endl << endl;
    	cout << " ";
    	cin >> wahl;
    	cout<<"'y' ist ein Zehntausendstel des 7834 Euro zu versteuernden Einkommens"<<endl;
    	cout<<"'z' ist ein Zehntausendstel des 13139 Euro zu versteuernden Einkommens"<<endl;
    	cout<<"'x' ist das auf einen vollen Euro-Betrag zu versteuernden Einkommens"<<endl;
    
    if (wahl==1)
    	{
    		steuer=0;
    		cout<<"Bei einem Betrag bis 7834€ besteht keine Einkommenssteuer:"<<ergebnis;
    	}
    if (wahl==2)
    	{
    		double ergebnis,einkommen,steuer;
    		void EStG1();
    		cout<<"Ihre Einkommenssteuer betraegt:"<<ergebnis;
    	}	
    if (wahl==3)
    	{
    		double ergebnis,einkommen,steuer;
    		void EStG2();
    		cout<<"Ihre Einkommenssteuer betraegt:"<<ergebnis;
    	}
    if (wahl==4)
    	{
    		double ergebnis,einkommen,steuer,betrag;
    		void EStG3();
    		cout<<"Ihre Einkommenssteuer betraegt:"<<ergebnis;
    	}
    if (wahl==5)
    	{
    		double ergebnis,einkommen,steuer,betrag;
    		void EStG4();
    		cout<<"Ihre Einkommenssteuer betraegt:"<<ergebnis;
    	}
    if (wahl == 6) // Abbrechen
    	{
    	system("cls");
    	cout << endl << "Das Programm wird jetzt abgebrochen ?" << endl;
    	return(0);
    	}
    while(answer !=2);
    	system ("cls");
    	cout<<"Auf wiedersehen!"<<endl;
    	getch();
    }
    //Funktion
    void EStG1()
    {
    	system("cls");
    	ergebnis=(939,68*0.7835+1400)*0,7835;
    	system("pause");
    }
    void EStG2()
    {
    	system("cls");
    	ergebnis=(228,74*1,3139+2397)*1,3139+1007;
    	system("pause");
    }
    void EStG3()
    {
    	system("cls");
    	cout<<"Geben Sie Ihr zu versteuerndes Einkommen ein:"<<end;
    	cin>>betrag;
    	ergebnis=0,42*betrag-8064;
    	system("pause");
    }
    void EStG4()
    {
    	system("cls");
    	cout<<"Geben Sie Ihr zu versteuerndes Einkommen ein:"<<end;
    	cin>>betrag;
    	ergebnis=0,45*betrag-15576;
    	system("pause");
    }
    }
    

    Ich weiß können auch andere Fehler vorliegen 😃
    bin noch nicht sehr bewandert verzeiht mir 😉 nur das ist grad mein Hauptaufreger.

    Zumal wenn ich ein anderes Programm abspiele wird der Fehler nicht angezeigt obwohl <windows.h> drin enthalten ist 😞

    Vielen danke schonmal im vorraus



  • Probier mal

    #include <Windows.h>
    


  • //main-Funktion
    void main()
    

    zu

    int main()
    

    Dein Programm enthält soviele Fehler, da kann es sein, dass andere Fehler dazu beitragen. Bei dir fehlen teilweiße Klammern, Variablendeklarationen und sonstiges. Mir werden dutzende Fehler angezeigt, wenn ich versuche dein Programm zu kompilieren. Geh es nochmal Fehler für Fehler durch, dann funktioniert es vielleicht auch.


  • Mod

    Hast du dir die Formeln aus dem Gesetz herausgesucht? Dann solltes du auch § 52 Abs. 41 EStG in Augenschein nehmen, da ich davon ausgehe, dass aktuelle Werte gefragt sind.



  • ok ich werd es nochmal durch gehen

    also

    #include <Windows.h>
    

    hat nicht geklappt

    und

    int main()
    

    hat auch nix verändert.

    Ja wie gesagt bin noch kein Profi ich werd nochmal drüber schauen.
    Aber danke schonmal für schnellen Antworten 😉



  • Ich sehe da nur zwei Möglichkeiten: entweder gibt es die Datei wirklich nicht oder bei den Einstellungen ist ein falscher include-Pfad angegeben. Ich weiß nicht genau, wie die Struktur in VS 2005 aussieht, aber vielleicht findest du's: geh zu "Tools" -> "Options" und erweitere "Projects and solutions". Dann geh zu "VC++ Directories" und schau mal nach, ob "$(WindowsSdkDir)\include" eingetragen ist. Klicke auch auf den "Check Entries"-Button. Wenn da alles ok ist, dann geh in dein Verzeichnis, wo die Datei liegen sollte. Das dürfte
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
    sein. Oder such einfach in C:\Program Files\Microsoft SDKs nach " windows.h " und gib danach den Pfad in VS 2005 an.



  • Hab es mir nicht so genau angesehen.
    Benötigst du windows.h in deinem Quelltext? Wenn nicht, weg damit.

    Hast du in VS2005 die richtigen Projekteinstellungen gewählt?

    Ich weiss nicht wie die Aufgabenstellung lautet? Bei so was denke ich an Einkommen eingeben und Programm dann rechnen lassen. Nicht das du das noch von Hand eingibst ob bis 7834 und was auch immer. Lass doch dein Programm die Auswertung mit Kommentare machen.

    Aber kann ja sein das die Aufgabe bei euch anders lautet 😕

    VS hat, wenn ich das hier richtig mitbekomme hin und wieder die Tücke, das nicht immer der aktuelle Code compiliert wird. Da hilft manchmal das Projekt neu zusammen zu stellen und dann das Ganze noch mal zu versuchen.

    Ich tippe auf letzteres da du ja schreibst anderer Quelltext mit dem selben Header funktioniert bei dir.

    MfG f.-th.



  • wenn ich mich recht erinnere war vs2005 die Version, wo in der Express kein Platform SDK dazu war.
    Das musste man extra installieren, daher fehlt deine windows.h.

    Ich persönlich würde dir einfach ein neueres Visual Studio (2008 oder 2010) empfehlen, da ist auch bei den Express Versionen das Platform SDK dabei.

    Alternativ siehe hier:
    http://www.c-plusplus.net/forum/143003-full

    Da gibt's auch einen Link zum Platform SDK.


Log in to reply