myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C – Strukturierte, prozedurale Programmierung (https://mygully.com/showthread.php?t=3440322)

mallekralle 15.09.14 10:49

C – Strukturierte, prozedurale Programmierung
 
Hallo,

ich habe vor kurzem eine Ausbildung zur Fachinformatikerin Anwendungsentwicklung begonnen.
Da unser Klassenlehrer selbst kaum einen Durchblick hat und alles weniger gut erklärt bräuchte ich etwas Hilfe.

Ich hab folgende Aufgabe


Ich soll nun ein kleines Programm Schreiben in welchem man ein Kästchen hat, dort seinen Lohn eingeben kann und dieser anschließend wie auf dem Bild berechnet wird.

Ich finde nur leider keinen Anfang und ein Struktogramm müsste ich auch dazu erstellen.

Bitte sehr um Hilfe =).

LG
MalleKralle

Matze500 15.09.14 19:00

Darf ich fragen welche Sprache ihr nun verwenden sollt? In der Aufgabenstellung werden sowohl C als auch C++ verwendet was schon mal einen großen Unterschied macht. Dan würde ich noch gerne wissen welche Entwicklungsumgebung du nutzt.

Ansonsten wie folgt vorgehen:

1. Eingabe auf der Console realisieren
2. Steuerrechnung mit Dreisatz realisieren
3. Nettogehalt berechnen
4. Personalaufwand berechnen
5. Werte per Console ausgeben. (kann man auch zwischendurch machen wenn man möchte)

Das Programm fertig in C (geht auch besser sollte zum anschauen und verstehe so am besten sein):

Gruß Matze

mallekralle 15.09.14 22:11

Hallo,

erstmal danke für die schnelle Rückmeldung.

@Matze
ich werde mir das mal ansehen Danke!

@JoeIT
ich habe bisher noch nicht viel programmiert. Eher Java und HTML.
Mit C bzw. C++ kenne ich mich gar nicht aus.

Wir haben lediglich die Aufgabe als Blatt bekommen die wir nun bearbeiten sollen.
Eine Erklärung dazu gab es nicht, was mich ziemlich nervt. Als ob wir das schon können...

Vorab sollen wir ein Struktugramm erstellen und dies dann in dieses Programm umwandeln.
Mir fehlt der komplette Ansatz wie ich das machen soll.
Auch die Codesprache ist mir nicht vertraut.
Deswegen wollte ich mich an Euch wenden, da Ihr wesentlich erfahrener seit.

Ich denke mal mir würde es helfen das Programm einmal fertig zu sehen und ggf. eine kleine Erklärung dazu.
Möchte allerdings auch nicht das sich hier jemand zu viel Arbeit wegen mir macht :(

Delta538 16.09.14 17:09

Da du ja gesagt hast, du könntest java, habe ich einen kleinen Ausschnitt in Java erstellt.
Ich habe nicht alle Funktionen implementiert, da du ja auch noch was lernen sollst und ich auch nicht die Zeit oder Lust dazu hatte ;).

Der Quelltext ist jetzt nicht der schönste da ich alles in die Main-Method gestopft habe, da ich nicht wusste ob du dich mit Methoden/(Funnktionen) auskennst.

Das ganze solltest du jetzt eigentlich ohne Probleme in C übertragen können außer das Dinge wie die imports und Syntaktische kleinigkeiten wegfallen oder andersaussehen (Einlesen sieht in C anders aus Exceptions müssen raus usw.).

Code:


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Aufgabe
{
       
        public static void main(String[] args)
        {
                //Gehalt einlesen
                double brutto = 0;
                try
                {
                        System.out.println("Bruttogehalt eingeben: ");
                        String line = new BufferedReader(new InputStreamReader(System.in)).readLine(); //hier wird eingelesen
                        brutto = Double.parseDouble(line); //Daten in ein double parsen zum rechnen
                }
                catch(NumberFormatException|IOException nfio)
                {
                        throw new IllegalArgumentException(); //Bei Problemen des Readers oder beim parsen wird Exception geworden
                }
               
                //Bruttogehalt ausgeben
                System.out.println("Bruttogehalt\t\t: "+brutto+" EUR");
               
               
                //*************Lohnsteuer berechnen*************//ich mach hier einfach mal 25.4% Lohnsteuer da ich nicht weiß wie diese berechnet wird
                double ls = 2456*0.254;
                System.out.printf("Lonsteuer\t\t:  %.2f\n",ls);
       
               
                //****Kirchensteuer berechnen****
                double ks = ls*0.09;
                System.out.printf("Kirchensteuer\t\t:  %.2f \t\t %.2f\n", ks, brutto-(ls+ks));
               
               
               
               
                //******SOZIALVERSICHERUNGEN********
                //***RENTENVERSICHERUNG
                double rv = (brutto*0.193)/2; //  /2 da AG hälfte zahlt--> Wichtig für Personalaufwand hier aber nicht berücksichtigt
                System.out.printf("RENTENVERSICHERUNG\t\t:  %.2f \n", rv);
               
                //**hier kommen die restlichen versicherungen hin
               
               
                //******NETTO*****
                double netto = brutto-(ls+ks)-rv;
                System.out.printf("netto\t\t:  %.2f \n", netto);
               
                //Personalaufwand***
                //TODO  nicht implementiert
        }
       
}


mallekralle 17.09.14 09:19

Danke!

Ich werde mir das mal ansehen.

Hallo noch mal,

gibt es ein zu empfehlendes Buch für C/C++ ?
Muss mich da ersmal einlesen sonst klappt nichts.

spartan-b292 19.09.14 14:10

Damit kannst du am Anfang nicht viel falsch machen:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

mallekralle 19.09.14 14:20

Super. Vielen Dank! :)

Hallo ihr.

Also ich hab mal versucht das in C++ umzuwandeln.

Irgendwie funktioniert das nicht.
Die Formatierung klappt nicht mit der rechtsbündigen Ausgabe (wie auf dem Bild aus meinem ersten Post)
und wenn ich das Programm starte bleibt die Ausgabe nach
Solidaritätsbeitrag einfach stehen.
Zum Arbeiten verwende ich Visual Studio 2013

Es kommen folgende Fehler / Warnungen







Mein Programm:



spartan-b292 22.09.14 12:19

Warum fragst du eigentlich nach einem Buch für C und machst es dann in C++?

Zitat:

Die Formatierung klappt nicht mit der rechtsbündigen Ausgabe (wie auf dem Bild aus meinem ersten Post)
Schau dir mal setw() an.

Zitat:

Es kommen folgende Fehler / Warnungen
In deiner Ausgabe von VS steht ziemlich genau woher die Fehler kommen.

Delta538 22.09.14 18:02

Zitat:

Fehler 23 error C4700: Die nicht initialisierte lokale Variable "Sozialversicherungsabgabe_AG" wurde verwendet.
In C\C++ muss jede Variable vorher initialisiert werden mit einem Wert
Code:

double a;
a = a +1;

geht nicht da nicht sichergestellt ist welchen Wert a hat.
Also musst du vorher einen Wert setzten.
Code:

double a = 0;
a = a +1;

.

In Java wird dies nicht benötigt, da alle primitiven Datentypen automatisch auf einen Defaultwert gesetzt werden.

Bei der Formatierung kann ich dir nicht helfen, da ich mich noch nie mit C/C++ befasst habe.

SonOfBabel 24.09.14 22:30

Hallo,

noch ein Hinweis: du kannst einen Wert wie hier z.B. 'Steuergesamt' erst berechnen, wenn du alle Werte aus der Rechnung kennst. Verschiebe die Berechnung hinter die Eingaben von Bruttolohn und Lohnsteuer. Du kannst nicht Formeln definieren, die sich später 'automatisch' berechnen, wie in Excel.

Die letzte Ausgabezeile
Code:

cout << "Personalaufwand:"<<
endet recht abrupt ohne Berechnung und
Code:

endl;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.