Cześć i witaj.
Chciałbym przedstawić rozwiązanie naszego
wyzwania związanego z obliczaniem tygodniowego wynagrodzenia.
Zamierzam więc przedstawić tutaj niezłą demonstrację. Wyświetl bloki kodu i
zamknijmy nasz projekt, który obecnie mamy otwarty,
otwórzmy i utwórzmy nowy projekt dla tej
aplikacji.
Więc mam zamiar stworzyć aplikację konsolową, więc będę w c.
I mam zamiar nazwać to obliczone tygodniowe wynagrodzenie.
Więc zamierzam mieć swój główny. c, co
da mi ładny punkt wyjścia.
Ale jest kilka rzeczy, które zamierzam zrobić w tym rozwiązaniu, które mogą być nieco inne.
Ale wprowadzi cię w kilka koncepcji.
Porozmawiamy o nich, ale w tym programie będziemy używać wielu stałych,
głównie do naszej stawki wynagrodzenia i stawek podatkowych.
Więc zamierzam użyć czegoś, czego jeszcze nie widzieliśmy, co nazywa się definicją.
Jest to dyrektywa preprocesora do tworzenia stałych.
A więc sposób, w jaki wiemy, że jest to dyrektywa preprocesora, polega na tym, że mamy symbol funta.
Więc powiem tylko, że funt definiuje. To jest sposób na tworzenie stałych.
Mam zamiar utworzyć 5 stałych dla wszystkich naszych danych w
tym programie. Mamy stawkę 12. 00.
Tak więc sposób, w jaki działa definicja,
polega na użyciu słowa kluczowego zdefiniowanego po funcie, a następnie zwykle podajesz
nazwę, zwykle są to wielkie litery. To standardowa konwencja, a następnie spacja, a następnie wartość.
Żadne przypisanie nie równa się tutaj. Zasadniczo tworzy to stałą zmienną.
Więc utworzymy jedną stawkę płac, stawkę podatku dla 300.
Właściwie powiemy stawkę podatkową dla 150 lub 300 i mniej, a to
będzie stawka podatku 0. 15.
Zauważysz, że dane, które przypisujesz, mogą być liczbami całkowitymi
zmiennoprzecinkowymi, możesz nawet przypisać ciągi. Nie ma tu znaczenia rodzaj danych.
Stawka podatku dla 150
może wynosić 0. 20. i zazwyczaj definiuję poza głównym na górze pliku.
Nie zapomnij też dodać komentarzy u góry iw całym kodzie źródłowym.
Następnie utworzę ostatnią stawkę podatku dla reszty, która będzie
równa 0. 25.
Ostatnią rzeczą, jaką chcę zrobić, jest utworzenie stałej dla moich nadgodzin, po prostu
zadzwonię po nadgodziny i powiem 40. Będzie to po prostu
oznaczać, kiedy chcemy sprawdzić, czy jest więcej niż 40.
Posiadanie magicznych liczb w zmiennych nigdy nie jest dobrym
pomysłem, ponieważ teraz, jeśli coś się
zmieni, powiedzmy, że nadgodziny zmienią się na 45, muszę to zmienić tylko w jednym miejscu.
u góry, a mój program będzie działał dokładnie tak samo.
Gdybym nie miał tej stałej i używałbym
magicznej liczby w moich porównaniach lub moich zmiennych, musiałbym
ją zmieniać wszędzie tam, gdzie używam 40.
Nabierz więc nawyku używania stałych i nie używania czegoś, co nazywa się magicznymi liczbami.
Lubię też deklarować moje zmienne na samej górze pliku main.
To są zmienne lokalne naszej głównej funkcji.
Dlatego chcę umieścić komentarz deklarujący zmienne.
Zmienne, których potrzebuję, a które są lokalnie, utworzę liczbę całkowitą na
godziny, zainicjuję ją na 0.
Godziny zostaną wprowadzone przez użytkownika,
a następnie utworzę podwojenie, które będą wyświetlane jako dane wyjściowe,
głównie wynagrodzenie brutto, które ustawię na 0. 0, ponieważ jest podwójna.
A potem podatki, zamierzam też zainicjować 0. 0 kończące się średnikiem,
nie zapomnij o średnikach, a następnie o wypłacie netto.
Ponieważ są to moje 3 wyjścia, które chcę.
Więc mam zamiar utworzyć moje 3 wyjścia na górze wraz z godzinami pracy.
Pierwszą rzeczą, którą chcę zrobić, jest uzyskanie informacji wejściowych, więc zamierzam
powiedzieć użytkownikowi, aby coś wprowadził. Powiem enter,
powiedz, podaj liczbę godzin przepracowanych
w tym tygodniu, wstaw
dwukropek, małą spację i średnik.
Następnie użyję mojej funkcji scanf, aby uzyskać dane wejściowe.
Powiem tylko scanf. Chcę przeczytać liczbę całkowitą. Więc zamierzam powiedzieć procent d.
Zamierzam wstawić przecinek i mam zamiar zrobić godziny, a potem,
ponieważ nie jest to ciąg
ani znaki, muszę umieścić ampersand przed nim i zakończyć go średnikiem.
To się wczyta. W tym momencie
powinienem testować, pracować na małych fragmentach i ciągle testować.
jeśli będę dalej pisać kod, próbować skompilować, mógłbym mieć problem w dowolnym miejscu,
pracować na małych obszarach.
Ale wiem, że to działa. Więc zamierzam przejść dalej, aby zademonstrować, jak to zrobić.
Tak jak powiedziałem, pierwszą rzeczą, jaką zamierzam zrobić, jest obliczenie wynagrodzenia brutto.
W logice tutaj potrzebujemy instrukcji if.
Zasadniczo, jeśli liczba godzin jest większa niż 40, chcemy
mieć stawkę za nadgodziny.
Więc zamierzam powiedzieć, że jeśli liczba godzin jest mniejsza lub równa 40,
wszystko, co muszę zrobić,
to bardzo łatwo utworzyć obliczenia, ponieważ jest
to po prostu stawka czasu pracy.
Mamy więc słowo kluczowe if w linii
24 i mamy nasze godziny.
Robimy porównanie. Używamy operatora relacyjnego, mniej niż równa się. Jeśli nasze jest mniejsze lub
równe 4, nie będziemy używać nawiasu, ponieważ będziemy musieli użyć jednej instrukcji.
Powiemy tylko, że wynagrodzenie brutto. Ustawimy zmienną, która
będzie równa liczbie godzin pomnożonych przez naszą stałą, stawkę wynagrodzenia i
to wszystko.
Teraz, jeśli jest większe lub równe 40, chcemy
zrobić coś innego. Więc jeśli ten warunek ma
wartość fałsz, chcemy mieć inny i tutaj używamy else. Drugi będzie miał wiele wierszy
w swoim bloku, więc użyję nawiasu, zacznie się w
wierszu 27 z nawiasem początkowym 29 i zakończeniem.
Niedopasowanie nawiasów lub ich brak jest częstym błędem, który może znaleźć Twój kompilator.
Więc upewnij się, że pasujesz do tych nawiasów. IDE jest bardzo pomocne, ponieważ je podkreśla.
Jeśli masz wiele nawiasów, zawsze możesz przejść do innego.
Jeśli przejdziesz do suportu, podświetli się, informując, gdzie był wspornik początkowy.
Więc na tej taśmie, jeśli jest większa niż
40, najpierw chcę ustawić moje wynagrodzenie brutto równe 40-krotności stawki, ponieważ te
pierwsze 40 godzin będzie wynosić 12 dolarów za godzinę.
A potem wszystko będzie więcej.
Więc utworzę lokalną zmienną o nazwie wynagrodzenie
za nadgodziny i ustawię ją jako równą liczbie
godzin minus 40. Więc gdybym wpisał 40, to tutaj będzie 5.
a kiedy mam te godziny, chcę pomnożyć to z stawki, która
wynosi 12 dolarów za
godzinę, ale chcę dodać 1. 5 z tego, czyli 18
dolarów za
godzinę, kończę to średnikiem.
w tym momencie moje wynagrodzenie za nadgodziny wyniesie 5 razy 18,
90 dolarów, jeśli wpiszę 45 jako użytkownik.
a wtedy pierwsze 40 godzin będzie
równe 40
razy 12, czyli 570. gdybyśmy zrobili 40 razy 12 byłoby
480.
Teraz ostatnią rzeczą, jaką musimy zrobić, jest dodanie zapłaconego brutto do wynagrodzenia za nadgodziny.
Więc prawdopodobnie mógłbym użyć lepszej nazwy niż wynagrodzenie brutto, ponieważ nie mamy jeszcze naszej gratyfikacji.
ale zamierzam użyć miłego małego operatora, naszego
operatora przydziału plus równa się, który będzie
płacił nam za nadgodziny.
to znaczy, że wynagrodzenie brutto równa się wynagrodzeniu brutto plus wynagrodzenie za nadgodziny.
ale robimy to w notacji skróconej.
Więc teraz mamy nasze wynagrodzenie brutto i skończyliśmy za wynagrodzenie brutto.
Więc poszlibyśmy dalej i przetestowaliśmy to, wydrukowaliśmy wynagrodzenie brutto i upewniliśmy się, że jest poprawne.
ale ponieważ wiem, że to działa, przejdę do następnego kroku.
następnym krokiem jest obliczenie podatków.
Aby więc obliczyć podatki, pamiętaj, że musimy zrobić pewne rzeczy w
zależności od tego, ile zarabiasz. Więc będziemy musieli przyjrzeć się wynagrodzeniu brutto.
Więc jeśli pensja brutto jest mniejsza lub równa 300, zamierzamy coś zrobić.
jeśli płaca brutto 300 i 450 brutto
to coś zrobimy. a jeśli jest większy niż 450, zrobimy coś innego.
będziemy mieli tutaj mały zduplikowany kod.
na razie jest w porządku, ponieważ pokazujemy tylko stwierdzenia if.
możesz napisać to trochę czyściej.
ale zamierzam powiedzieć, że najpierw sprawdź pierwszy warunek, w którym płaca brutto
jest mniejsza lub równa 300. w takim przypadku
bardzo łatwo jest obliczyć podatki.
podatki będą po prostu stanowić wynagrodzenie brutto pomnożone przez stawkę
podatkową dla 300 osób.
stawka podatku dla 300,
pamiętaj, że cokolwiek od 300, inna jest opodatkowana w 15%, jak sądzę.
Więc to wszystko, co musimy zrobić, jeśli zarobiłeś mniej niż lub
równe 300.
Ponownie, inną rzeczą, którą powinieneś tutaj zauważyć, jest wcięcie.
ilekroć masz bloki kodu i chociaż mam tylko jedną instrukcję,
wstawię tam nawias.
a potem wskazuję swoje bloki, znacznie ułatwia to czytanie, nie zapominam
o wcięciach w nowych wierszach.
i zazwyczaj tutaj chcesz mieć spację, a nie karty, ale to już inna dyskusja.
teraz może to być też coś innego.
Więc w linii 34 zadaliśmy pytanie, czy
wynagrodzenie brutto jest mniejsze lub równe 300, zrób coś w linii 36.
używamy słowa kluczowego if, umieszczamy warunkowe wyrażenie logiczne w nawiasach.
ale co jeśli nie jest to 300 lub mniej, to chcemy
zrobić coś innego. W szczególności,
jeśli wynagrodzenie brutto jest
większe niż 300, więc tutaj używam operatora logicznego ampersand ampersand,
gdzie zadaję zasadniczo 2 pytania. jeśli płaca brutto jest większa
niż 300, a płaca brutto jest mniejsza niż 450, to chcę
zrobić coś innego.
Więc co to mówi, jeśli moja pensja brutto mieści się w przedziale od 300 do 450.
teraz, jeśli jest między 300 a
450, najpierw chcę obliczyć podatki,
tak jak wcześniej.
za pierwsze 300 chcę je pomnożyć przez stawkę podatku za 300.
ponieważ pierwsze 300 jest opodatkowane według tej stawki.
dla drugiej kwoty chcę ustawić
stawkę podatku w wysokości 150, czyli punkt 20%.
Więc najpierw muszę dowiedzieć
się, ile zarobiliśmy ponad 300, ale mogę to zrobić
w jednej linii. Mam zamiar policzyć
podatki plus równe, więc to znaczy, że podatki
to podatki, które są już 300-krotność stawki
300, podatki plus coś. a to, co chcę
dodać do tego pierwszego obliczonego podatku w linii 40, chcę
dodać dodatkową
kwotę i będzie to wynagrodzenie brutto pomniejszone o 300
i już ustaliłem, że nie przekraczam 450.
Czyli wynagrodzenie brutto minus 300-krotność stawki podatku
za 150.
Więc zobacz, co tam zrobiłem.
jeśli w linii 38 zarobiłem gdziekolwiek kwotę między 300 a
450, to chcę otrzymać podatki za pierwsze 300, czyli 300-krotność stawki podatkowej 300 i
dodać to do tego, ile skończyło się moje wynagrodzenie brutto 300-krotność
stawki podatku za 150.
więc teraz spełniliśmy 2 warunki, ostatnim warunkiem, który chcemy sprawdzić, jest to, czy uzyskaliśmy więcej niż 450.
Zasadniczo możemy mieć po prostu inny, jeśli wynagrodzenie brutto jest większe niż 450 lub
naprawdę jest po prostu inne.
ale dla jasności wstawię pozostałe, jeśli tam jest,
i powiem, że inaczej płaca brutto jest większa niż 450.
Naprawdę nie muszę tego robić, ponieważ mogę po prostu mieć inny bez warunku
„if”, ale chcę zademonstrować inny „if”.
w tym przypadku chcę obliczyć podatki za pierwsze 300, więc mogę
tutaj skopiować kod.
Chcę też obliczyć podatki dla 150, więc
zrobię plus równa się następnych 150,
czyli 300 do 450. Będzie to
więc 150-krotność stawki podatkowej 150.
Ostatnią rzeczą, jaką chcę zrobić, jest opodatkowanie pozostałej części według określonej stawki.
Więc tutaj mam zamiar powiedzieć podatki plus równe, znowu plus równe to podatki plus.
i tutaj mam zamiar powiedzieć, że
pensja brutto minus 450, ponieważ nie chcę
nakładać podatków na całe wynagrodzenie, tylko
to, co jest powyżej 450.
i chcę pomnożyć to przez stawkę podatku równą reszcie, która jest
naszą stałą zmienną, którą zdefiniowaliśmy powyżej.
i to wszystko. Skończyłem obliczać podatki.
i ponownie, przetestuj to po każdym kroku i upewnij się, że jest poprawne,
skompiluj i przetestuj.
ale zauważysz wcięcie. to jest łatwe do odczytania. Robię komentarze, wszystko to.
Ostatnią rzeczą, jaką chcę zrobić, jest obliczenie wynagrodzenia netto.
będzie to proste, ponieważ płaca netto będzie równa płacy
brutto minus podatki, bardzo
proste.
a następnie chcę wyświetlić mój wynik.
i pamiętaj, że wymagania były takie, aby
wyświetlić wynagrodzenie brutto, podatki i
wynagrodzenie netto.
Możemy więc użyć printf tutaj.
mam zamiar skopiować i wkleić to ze względu na efektywność, aby nie zajmować zbyt dużo czasu.
Czasami uczniowie wściekają się, kiedy kopiuję i wklejam, i mówią,
że nie powinno się kopiować i wklejać w programowaniu. Cóż, do pewnego stopnia to prawda.
Jeśli skopiujesz i wkleisz coś i w pełni rozumiesz ten kod, jest to bardziej wydajne.
Problem z kopiowaniem i wklejaniem polega na tym, że wielu programistów kopiuje i
wkleja, nie mają pojęcia, jak działa ten kod, a potem mają tylko nadzieję, że zadziała.
ale w tym przypadku wiem, jak działają wyciągi na wydruku i chcę tylko pokazać, co się tutaj dzieje.
Więc nie muszę czekać, tracić czasu na pisanie na klawiaturze.
Zatem w linii 54 wyświetlimy wynagrodzenie brutto.
to jest pływak. wiemy, jak wyświetlić wartość zmiennych.
a jedyną osobliwą rzeczą jest to, że formatuję wynik do dwóch miejsc po przecinku,
więc powinieneś zauważyć%. 2f, a następnie odwrotny
ukośnik n to znak nowego wiersza dla sekwencji sterującej ucieczką.
Więc formatuję wszystko do dwóch miejsc po przecinku, ponieważ kiedy wyświetlamy
pieniądze, mamy centy, a nie procent centów.
a potem wyświetliłem ten sam format podatków i płacę netto.
Całkiem fajnie tam.
i znowu to, co powinieneś zauważyć w tym programie, to wcięcie.
jest bardzo łatwy do odczytania. U góry używam stałych zmiennych.
Inicjalizuję moje zmienne. dlaczego je zgłaszam?
wszystko jest ładne i zadbane. Przekazuję komentarze. Piszę
kilka stwierdzeń if else.
Miejmy nadzieję, że wszystko było jasne. logika nie jest zbyt trudna do naśladowania,
ale kiedy masz ze sobą kod źródłowy, ponieważ możesz go
pobrać, aby móc dalej analizować. ale zobaczmy, co się dzieje, gdy budujemy i kompilujemy, na
przykład upewniając się, że wszystko jest w porządku.
Kiedy buduję, mówi, że mam nieużywane ostrzeżenie.
Wygląda jak tutaj.
Brakowało mi czegoś, czego oczekiwałem od średnika przed nawiasem, co nie ma sensu.
brakuje czegoś, co oczekiwało średnika przed nawiasem,
co nie ma sensu. Więc myślę, że to, czego mi tutaj brakuje, to…
cóż, nie mogę mieć innego. musi być inaczej, jeśli,
to nie ma sensu, zapomniałem jeśli. Więc inaczej, jeśli.
zobacz, co się dzieje, że miałem inny, a poniżej miałem inny, jeśli.
to nie ma sensu. nie możesz mieć innego, a potem innego, jeśli.
Zobaczmy teraz, co się tutaj stanie.
teraz mam 0 błędów i 0 ostrzeżeń.
uruchommy to
i mój skaner antywirusowy.
kiedy to uruchomię, pierwszą rzeczą, jaką zrobi, będzie podanie liczby godzin pracy w tym tygodniu.
Zamierzam wstawić coś wyższego niż 45, więc pokazuje to nadgodziny.
Powiem 45 lub 4 więcej niż 40. 45 i mówi, że zarobiłem 570
dolarów, co jest słuszne, ponieważ. wszystko do 40
dolarów kosztuje 12 dolarów za godzinę, czyli 400 i 80.
a następnie te 5 godzin to 18 dolarów za godzinę, czyli 90 plus 480 równa się 570.
Podatki w tym tygodniu wyniosły 105 dolarów, a płaca netto 465.
ładne liczby parzyste. możesz przejść przez te obliczenia, aby upewnić się, że są poprawne.
możesz spróbować uruchomić to wiele, wiele razy i zobaczyć różne dane wyjściowe.
uruchommy to z mniej niż
40. powiedzmy, że za 30
godzin w tym tygodniu nie dostanę wynagrodzenia za nadgodziny. będzie to po prostu strit 30
razy 12, co daje 360.
Za pierwsze 300 zapłacę podatek w wysokości 15%.
i to będzie 45 dolarów, a za 60
dolarów będę opodatkowany stawką 20%, a to
będzie 12 dolarów. Czyli 45 dodać 12, 57 to wygląda poprawnie.
a wynagrodzenie netto w tym tygodniu wynosi 303, 360 minus 57.
Wygląda więc na to, że działa całkiem nieźle.
będziesz chciał przetestować to bardziej przy zarobkach większych niż 450.
inną ważną rzeczą w testowaniu jest to, że chcesz przetestować wszystkie granice.
nie chcesz tylko jednego testu. wszystko działa poprawnie.
chcesz przedstawić dobre i złe przypadki.
Więc w tym przypadku, w tym przykładzie, mamy wiele różnych przypadków dla tego
programu, mamy przypadek, w którym zarabiasz więcej niż 40 godzin.
Więc masz wynagrodzenie za nadgodziny. mamy przypadek, w którym Twoje zarobki
wynoszą 300 lub mniej, przypadek, gdy Twoje zarobki wynoszą od 300 do 450 oraz przypadek,
w którym Twoje zarobki są większe niż 450.
Więc dla tego programu powinieneś
uruchomić przynajmniej 4 przypadki testowe lub prawdopodobnie 5 przypadków testowych,
to zależy, ponieważ naprawdę chcesz również obliczyć nadgodziny.
Prawdopodobnie możesz uciec z 4 sprawami,
ponieważ prawdopodobnie zarabiasz mniej niż 300 dolarów, mniej niż wynagrodzenie za nadgodziny.
Ale to, co naprawdę chcesz przetestować, to nadgodziny, a następnie 3 stawki podatkowe.
Mam nadzieję, że to było pomocne. Mam nadzieję, że w pełni rozumiesz to, co pokazałem.
Mam nadzieję, że rozumiesz wszystkie rzeczy związane z instrukcjami if oraz tym, jak sprawiam, że mój
kod jest czytelny i używam znaczących nazw. Dziękuję Ci.