Hallo und herzlich willkommen.
Ich möchte Ihnen eine Lösung für
unsere Herausforderung bei der Berechnung des Wochenlohns bieten.
Also werde ich hier eine schöne Demonstration geben. Rufen Sie Codeblöcke auf
und schließen Sie unser derzeit geöffnetes Projekt.
Erstellen Sie ein neues Projekt für diese
Anwendung.
Also werde ich eine Konsolenanwendung erstellen, also werde ich in c sein.
Und ich werde diesen berechneten Wochenlohn nennen.
Also werde ich meine Hauptleitung haben. c-Datei, die
mir einen guten Ausgangspunkt geben wird.
Aber es gibt ein paar Dinge, die ich in dieser Lösung tun werde, die vielleicht etwas anders sind.
Aber es wird Ihnen ein paar Konzepte vorstellen.
Wir werden darüber sprechen, aber wir werden in diesem Programm viele
Konstanten verwenden, hauptsächlich für unseren Lohnsatz und unsere Steuersätze.
Ich werde also etwas verwenden, das wir noch nicht gesehen haben und das als "Definieren" bezeichnet wird.
Es ist eine Präprozessor-Direktive zum Erstellen von Konstanten.
Die Art und Weise, wie wir wissen, dass es sich um eine Vorprozessor-Direktive handelt, ist, dass wir das Pfund-Symbol haben.
Also werde ich nur Pfund definieren sagen. Auf diese Weise können Konstanten erstellt werden.
Ich werde 5 Konstanten für alle unsere Daten in diesem
Programm erstellen. Wir haben eine Vergütung von 12. 00.
Die Art und Weise, wie die Definition funktioniert, besteht
darin, das definierte Schlüsselwort zu verwenden, das nach dem Pfund folgt, und dann geben Sie normalerweise
einen Namen an, normalerweise sind es nur Großbuchstaben. Das ist Standardkonvention und dann ein Leerzeichen und dann der Wert.
Keine gleichwertige Zuordnung hier. Und dies schafft im Wesentlichen eine konstante Variable.
Also werden wir einen für den Lohnsatz und einen Steuersatz für 300 erstellen.
Eigentlich sagen wir Steuersatz für 150 oder für 300 und darunter und das wird
ein Steuersatz von 0 sein. 15.
Sie werden feststellen, dass die von Ihnen zugewiesenen Daten Gleitkomma-Ganzzahlen sein
können. Sie können sogar Zeichenfolgen zuweisen. Die Art der Daten spielt hier keine Rolle.
Der Steuersatz für 150
kann 0 sein. 20. und ich mache normalerweise die Definitionen außerhalb des Mains oben in der Datei.
Und vergessen Sie auch nicht, Ihre Kommentare oben und im gesamten Quellcode hinzuzufügen.
Und dann werde ich für den Rest einen letzten Steuersatz erstellen,
der 0 ist. 25.
Das Letzte, was ich tun möchte, ist, eine Konstante für meine Überstunden zu erstellen,
einfach Überstunden anzurufen und 40 zu sagen. Dies wird nur dann
angezeigt, wenn wir nach mehr als 40 suchen möchten.
Es ist nie eine gute Idee, magische Zahlen in Variablen zu
haben, denn wenn sich jetzt etwas ändert,
sagen wir, dass sich die Überstunden auf 45 ändern, muss ich sie nur an einer Stelle ändern.
ganz oben und mein Programm wird genauso funktionieren.
Wenn ich diese Konstante nicht hätte und in meinen
Vergleichen oder Variablen eine magische Zahl verwenden würde, müsste ich
sie überall dort ändern, wo ich 40 verwende.
Gewöhnen Sie sich also an, Konstanten zu verwenden und keine so genannten magischen Zahlen zu verwenden.
Ich deklariere meine Variablen auch gerne ganz oben im Hauptmenü.
Dies sind lokale Variablen für unsere Hauptfunktion.
Ich möchte also einen Kommentar einfügen, in dem Variablen deklariert werden.
Die Variablen, die ich brauche, sind lokal. Ich werde stundenlang eine Ganzzahl erstellen.
Ich werde diese auf 0 initialisieren.
Die Stunden werden vom Benutzer eingegeben, und
dann werde ich einige Doppel erstellen, die als Ausgabe angezeigt werden,
hauptsächlich den Bruttolohn, den ich auf 0 initialisiere. 0, weil es ein Doppel ist.
Und dann Steuern, ich werde auch die 0 initialisieren. 0 endet mit einem
Semikolon, vergessen Sie nicht die Semikolons und dann den Nettolohn.
Weil dies meine 3 Ausgänge sind, die ich will.
Also werde ich meine 3 Ausgänge oben zusammen mit meinen Eingangsstunden erstellen.
Als erstes möchte ich meine Eingabe erhalten, also werde ich
den Benutzer anweisen, etwas einzugeben. Ich sage "Enter".
Geben Sie bitte die Anzahl der Arbeitsstunden ein,
die diese Woche geleistet wurden. Geben Sie
einen Doppelpunkt, wenig Leerzeichen und ein Semikolon ein.
Dann werde ich meine scanf-Funktion verwenden, um die Eingabe zu erhalten.
Ich werde nur scanf sagen. Ich möchte eine ganze Zahl lesen. Also werde ich Prozent d sagen.
Ich werde ein Komma setzen und ich werde Stunden machen und
dann, weil es keine Zeichenfolge oder Zeichen
sind, muss ich das kaufmännische Und davor setzen und es mit einem Semikolon beenden.
Das wird einlesen. Und an diesem
Punkt sollte ich testen, kleine Stücke bearbeiten und ständig testen.
Wenn ich weiterhin Code schreibe und versuche zu kompilieren, könnte ich überall ein Problem haben
und in kleinen Bereichen arbeiten.
Aber ich weiß, dass das funktioniert. Also werde ich weitermachen, um zu demonstrieren, wie das geht.
Wie gesagt, das erste, was ich tun werde, ist, den Bruttolohn zu berechnen.
In der Logik hier benötigen wir eine if-Anweisung.
Wenn die Stunden größer als 40 sind, möchten wir
grundsätzlich eine Überstundenrate haben.
Ich werde also sagen, wenn die Stunden kleiner oder gleich 40
sind, muss ich meine
Berechnung nur sehr einfach erstellen, da es
sich nur um die Stundenzahl handelt.
Wir haben also unser if-Schlüsselwort in Zeile
24 und wir haben unsere Stunden.
Wir machen Vergleiche. Wir verwenden einen Vergleichsoperator, der kleiner als gleich ist. Wenn unsere kleiner oder gleich 4
ist, verwenden wir keine Klammer, da wir eine einzelne Anweisung verwenden müssen.
Wir werden nur Bruttolohn sagen. Wir werden eine
Variable festlegen, die dem Stunden-fachen unserer konstanten Lohnrate entspricht, und das
war's.
Wenn es jetzt größer oder gleich 40 ist, wollen
wir etwas anderes tun. Wenn diese Bedingung also als falsch ausgewertet
wird, möchten wir ein else haben, und hier verwenden wir das else. Das andere wird mehrere Zeilen in seinem
Block haben, also werde ich eine Klammer verwenden, es wird in
Zeile 27 mit der Startklammer 29 mit dem Ende beginnen.
Nicht übereinstimmende Klammern oder fehlende Klammern sind ein häufiger Fehler, den Ihr Compiler möglicherweise findet.
Stellen Sie also sicher, dass Sie mit diesen Klammern übereinstimmen. Die IDE ist sehr hilfreich, weil sie sie hervorhebt.
Wenn Sie mehrere Klammern haben, können Sie jederzeit zu einer anderen wechseln.
Wenn Sie zum Tretlager gehen, wird hervorgehoben, wo sich das Startlager befand.
Wenn es also auf diesem Band größer als
40 ist, möchte ich zuerst meinen Bruttolohn auf das 40-fache des Lohnsatzes einstellen,
da diese ersten 40 Stunden 12 Dollar pro Stunde betragen.
Und danach wird alles mehr.
Also werde ich eine lokale Variable
namens Überstundenvergütung erstellen und diese auf die Stunden
minus 40 setzen. Wenn ich also 40 eingeben würde, wären es hier 5.
und wenn ich diese Stunden habe, möchte ich diese mit dem Lohnsatz multiplizieren,
der 12 Dollar pro Stunde
beträgt, aber ich möchte 1 hinzufügen. 5 davon, das wären 18 Dollar pro
Stunde, dann beende
ich es mit einem Semikolon.
Zu diesem Zeitpunkt beträgt mein Überstundengehalt 5 mal 18, 90 Dollar,
wenn ich als Benutzer 45 eingetippt habe.
und dann werden die ersten 40 Stunden nur
40 mal 12
sein, was wir sagen 570. Wenn wir 40 mal 12 machen würden, wären
das 480.
Als letztes müssen wir das gezahlte Brutto zum Überstundengeld hinzufügen.
Ich hätte wahrscheinlich einen besseren Namen als den Bruttolohn verwenden können, weil wir noch keinen Gnadenlohn haben.
Aber ich werde einen netten kleinen
Operator verwenden, unseren Zuweisungsoperator plus gleich,
der unsere Überstundenvergütung übernimmt.
Dies bedeutet, dass der Bruttolohn dem Bruttolohn plus Überstundenlohn entspricht.
aber wir machen es in Kurzschreibweise.
Jetzt haben wir also unseren Bruttolohn und sind für den Bruttolohn fertig.
Also würden wir dies testen, den Bruttolohn ausdrucken und sicherstellen, dass er korrekt ist.
Da ich jedoch weiß, dass dies funktioniert, gehe ich zum nächsten Schritt über.
Der nächste Schritt ist die Berechnung der Steuern.
Denken Sie also daran, dass wir zur Berechnung der Steuern bestimmte Dinge tun müssen, je
nachdem, wie viel Geld Sie verdienen. Also müssen wir uns den Bruttolohn ansehen.
Wenn also der Bruttolohn 300 oder weniger beträgt, werden wir etwas unternehmen.
Wenn der Bruttolohn 300 und 450 brutto beträgt,
werden wir etwas unternehmen. und wenn es größer als 450 ist, werden wir etwas anderes tun.
Wir werden hier einen kleinen duplizierten Code haben.
Im Moment ist es okay, weil wir nur if-Anweisungen demonstrieren.
Sie könnten in der Lage sein, dies ein wenig sauberer zu schreiben.
Aber was ich tun werde, ist, zuerst die erste Bedingung zu überprüfen, wenn der
Bruttolohn 300 oder weniger beträgt. In diesem Fall ist es
sehr einfach, die Steuern zu berechnen.
Die Steuern werden nur das Bruttolohn-fache des Steuersatzes
für 300 sein.
Der Steuersatz für 300
ist alles von 300, ein anderer wird mit 15% besteuert, wie ich glaube.
Das ist alles, was wir tun müssen, wenn Sie weniger als oder gleich
300 gemacht haben.
Das andere, was Sie hier beachten sollten, ist die Einrückung.
Wenn Sie Codeblöcke haben und obwohl ich nur eine einzige Anweisung habe, werde ich
dort eine Klammer setzen.
und dann zeige ich meine Blöcke an, mache das Lesen viel einfacher, vergiss
das Einrücken in neue Zeilen nicht.
und normalerweise möchten Sie hier Platz im Gegensatz zu Tabulatoren haben, aber das ist eine andere Diskussion.
jetzt kann es auch etwas anderes sein.
Also haben wir in Zeile 34 die Frage
gestellt, ob der Bruttolohn kleiner oder gleich 300 ist. Tun Sie etwas in Zeile 36.
Wenn wir das Schlüsselwort if verwenden, setzen wir die Bedingung Boolescher Ausdruck in Klammern.
aber was ist, wenn es nicht 300 oder weniger ist, dann wollen
wir etwas anderes tun. Insbesondere wenn der
Bruttolohn größer als 300 ist
und ich hier ein kaufmännisches und kaufmännisches Und mit logischem Operator verwende,
stelle ich im Wesentlichen zwei Fragen. Wenn der Bruttolohn größer als
300 und der Bruttolohn kleiner als 450 ist, dann möchte ich
etwas anderes tun.
Das heißt also, wenn mein Bruttolohn irgendwo zwischen 300 und 450 liegt.
Wenn es jetzt zwischen 300 und 450
liegt, möchte ich zuerst meine
Steuern wie zuvor berechnen.
für die ersten 300 möchte ich es mit dem Steuersatz für 300 multiplizieren.
weil die ersten 300 mit diesem Satz besteuert werden.
für den anderen Betrag möchte
ich den Steuersatz bei 150 machen, was Punkt 20% entspricht.
Zuerst muss ich herausfinden, wie
viel wir über 300 verdient haben, aber ich kann dies tatsächlich
in einer Zeile tun. Ich werde die
Steuern plus gleich machen, das heißt also, Steuern sind
gleich Steuern, die bereits das 300-fache des Steuersatzes von
300 betragen, Steuern plus etwas. und was ich zu den
ersten Steuern in Zeile 40 hinzufügen möchte, die berechnet wurden, möchte ich
den zusätzlichen Betrag
hinzufügen, und es wäre der Bruttolohn minus 300, und ich habe
bereits festgestellt, dass ich nicht über 450 bin.
Also Bruttolohn minus 300 mal der Steuersatz
für 150.
Also sehen Sie, was ich dort gemacht habe.
Wenn ich in Zeile 38 irgendwo zwischen 300 und 450 Geld verdient
habe, möchte ich die Steuern für die ersten 300 erhalten, was dem 300-fachen des Steuersatzes
300 entspricht, und ich möchte hinzufügen, wie oder wie hoch mein Bruttolohn war
300-facher Steuersatz für 150.
Jetzt haben wir zwei Bedingungen erfüllt. Die letzte Bedingung, die wir überprüfen möchten, ist, ob wir mehr als 450 gemacht haben.
Im Grunde genommen können wir nur ein anderes haben, wenn der Bruttolohn größer als 450
ist oder wirklich nur ein anderes.
aber aus Gründen der Klarheit werde ich das andere setzen, wenn es
da drin ist, und ich werde sagen, dass das Bruttolohn mehr als 450 beträgt.
Ich muss das nicht wirklich tun, weil ich nur ein anderes ohne ein if haben kann,
aber ich möchte das andere if demonstrieren.
In diesem Fall möchte ich die Steuern für die ersten 300 berechnen, damit ich
hier den Code kopieren kann.
Ich möchte auch die Steuern für die 150 berechnen,
also mache ich ein Plus für die nächsten
150, also 300 bis 450. Das ist also
das 150-fache des Steuersatzes von 150.
Und als letztes möchte ich den Rest mit einem bestimmten Steuersatz besteuern.
Also hier werde ich sagen, Steuern plus gleich, wieder plus gleich ist Steuern Steuern plus.
und hier werde ich Bruttolohn minus 450
sagen, weil ich die Steuern nicht auf den
gesamten Lohn anwenden möchte, sondern nur
auf das, was über 450 liegt.
und ich möchte multiplizieren, dass der Steuersatz gleich der Ruhe ist, was unsere konstante
Variable ist, die wir oben definiert haben.
und das ist es. Ich bin mit der Berechnung der Steuern fertig.
und wieder würden Sie dies nach jedem Schritt testen und sicherstellen, dass es richtig kompiliert
und getestet wird.
aber Sie werden die Einrückung bemerken. das ist leicht zu lesen. Ich mache Kommentare, all das.
Als letztes möchte ich den Nettolohn berechnen.
Dies wird einfach sein, da der Nettolohn nur dem Bruttolohn
abzüglich der Steuern entspricht, sehr
einfach.
und dann möchte ich meine Ausgabe anzeigen.
und denken Sie daran, dass die Anforderungen darin
bestehen, den Bruttolohn, die Steuern und den
Nettolohn anzuzeigen.
Also können wir hier printf verwenden.
und ich werde dies nur aus Effizienzgründen kopieren und einfügen, damit wir nicht zu viel Zeit in Anspruch nehmen.
Manchmal werden Schüler wütend, wenn ich kopiere und einfüge, und sie
sagen, dass Sie beim Programmieren nicht kopieren und einfügen sollen. Nun, das stimmt bis zu einem gewissen Grad.
Wenn Sie etwas kopieren und einfügen und diesen Code vollständig verstehen, ist er effizienter.
Das Problem beim Kopieren und Einfügen ist, dass viele Entwickler kopieren und einfügen,
keine Ahnung haben, wie dieser Code funktioniert, und dann hoffen sie nur, dass er funktioniert.
Aber in diesem Fall weiß ich, wie die Ausdruckanweisungen funktionieren, und ich möchte Ihnen nur zeigen, was hier passiert.
Ich muss also nicht warten, bis ich die Tastatur eingegeben habe.
In Zeile 54 zeigen wir also den Bruttolohn an.
Es ist ein Schwimmer. Wir wissen, wie man den Wert von Variablen anzeigt.
und das einzige Besondere daran ist, dass ich die Ausgabe mit 2 Dezimalstellen formatiere. Sie
sollten also das% beachten. 2f und dann
ist der Backslash n ein Zeilenvorschub für eine Escape-Sequenz.
Ich formatiere also alles mit 2 Dezimalstellen, denn wenn wir Geld anzeigen,
haben wir Cent und keinen Prozentsatz von Cent.
und dann habe ich das gleiche Steuerformat und den Nettolohn angezeigt.
So schön schön dort.
und wieder, was Sie in diesem Programm beachten sollten, ist die Einrückung.
es ist sehr leicht zu lesen. Ich verwende oben konstante Variablen.
Ich initialisiere meine Variablen. warum erkläre ich sie?
Alles ist schön und ordentlich. Ich gebe Kommentare ab. Ich
schreibe eine Reihe von if else-Anweisungen.
Hoffentlich war alles klar. Die Logik ist nicht allzu schwer zu befolgen,
aber wenn Sie den Quellcode bei sich haben, können Sie ihn herunterladen,
um ihn genauer analysieren zu können. Aber mal sehen, was passiert, wenn wir bauen und kompilieren.
Stellen wir sicher, dass nichts falsch ist.
Wenn ich baue, heißt es, ich habe eine Warnung unbenutzt.
Es sieht so aus wie hier.
Ich habe etwas vermisst, das ein Semikolon vor einer Klammer erwartet, die keinen Sinn ergibt.
Ich habe etwas vermisst, das ein Semikolon vor einer
Klammer erwartet, die keinen Sinn ergibt. Ich denke, was mir hier fehlt, ist, dass
ich keinen anderen haben kann. es muss anders sein, wenn es
keinen Sinn ergibt, ich habe das wenn vergessen. Also sonst wenn.
Sehen Sie, was dort passiert, ich hatte ein anderes und darunter hatte ich ein anderes, wenn.
das macht keinen Sinn. Sie können kein anderes haben und dann ein anderes, wenn.
Nun wollen wir sehen, was hier passiert.
Jetzt bekomme ich 0 Fehler und 0 Warnungen.
Lassen Sie
uns dies und meinen Virenscanner ausführen.
Wenn ich das ausführe, wird als erstes gesagt, bitte geben Sie die Anzahl der Arbeitsstunden in dieser Woche ein.
Ich werde etwas höher als 45 einsetzen, damit es Überstunden zeigt.
Ich werde 45 oder 4 höher als 40 sagen. 45 und es heißt, ich habe 570
Dollar verdient, was richtig ist, weil. Alles für bis zu 40
Dollar kostet 12 Dollar pro Stunde, was auf 400 und 80 berechnet wird.
und dann sind die 5 Stunden 18 Dollar pro Stunde, was 90 plus 480 ist, ist 570.
Die Steuern in dieser Woche betrugen 105 Dollar und der Nettolohn 465.
schöne gerade Zahlen. Sie können diese Berechnungen durchgehen, um sicherzustellen, dass sie korrekt sind.
Sie können versuchen, dies viele, viele Male auszuführen und unterschiedliche Datenausgaben zu sehen.
Lassen Sie es uns mit etwas weniger
als 40 laufen. Sagen wir einfach 30
Stunden in dieser Woche, ich werde keine Überstundenvergütung bekommen. Es wird nur 30 mal 12
sein, was 360 ist.
Für die ersten 300 werde ich mit einem Steuersatz von 15% besteuert.
und das sind 45 Dollar und für die 60 Dollar
werde ich mit einem Steuersatz von 20% besteuert und
das sind 12 Dollar. Also 45 plus 12, 57 das sieht richtig aus.
und der Nettolohn in dieser Woche beträgt 303, 360 minus 57.
Es scheint also ziemlich gut zu funktionieren.
Sie sollten dies mehr mit einem Gewinn von mehr als 450 testen.
Die andere wichtige Sache beim Testen ist, dass Sie alle Grenzen testen möchten.
Sie möchten nicht nur einen Test bereitstellen. funktioniert alles.
Sie möchten gute und schlechte Fälle liefern.
In diesem Fall, diesem Beispiel, haben wir viele verschiedene Fälle für dieses Programm. Wir
haben einen Fall, in dem Sie mehr als 40 Stunden verdienen.
Sie müssen also Überstunden bezahlen. Wir haben einen Fall, in dem Ihr
Einkommen 300 oder weniger beträgt, einen Fall, in dem Ihr Einkommen 300 bis 450 beträgt, und einen
Fall, in dem Ihr Einkommen mehr als 450 beträgt.
Für dieses Programm sollten Sie also
mindestens 4 Testfälle oder wahrscheinlich 5 Testfälle ausführen. Dies hängt davon
ab, ob Sie die Überstunden auch wirklich berechnen möchten.
Sie könnten wahrscheinlich mit 4 Fällen
davonkommen, weil Sie wahrscheinlich weniger als 300 Dollar verdienen, weniger als Überstunden.
Aber was Sie wirklich testen möchten, sind Überstunden und dann die 3 Steuersätze.
Ich hoffe das war hilfreich. Ich hoffe, Sie verstehen vollständig, was ich demonstriert habe.
Ich hoffe, Sie verstehen alles mit den if-Anweisungen und wie ich meinen Code
lesbar mache und aussagekräftige Namen verwende. Vielen Dank.