wstawianie klasy

0

Chciałbym wstawić klasy do tego programu

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
main() /rozpoczęcie funkcji main
{
clrscr();
int a,b,c; /określenie zmiennych liczbowych
float
u=0.19,
se=0.0976,
sr=0.015,
sc=0.0245,
kup=111.25,
zp=0.09,
zo=0.075,
wn,wb,ue,ur,uc,us,nz,so,ps,pn,po,sp; /określenie stalych i zmiennych potrzebnych do zwracania wynikow
char p; /okreslenie znaku

    cout<<"\n\t\t\t#################################\n";
    cout<<"\n\t\t\t#\t\Lista Wynagrodzen \t#\n";                /naflowek listy plac
    cout<<"\n\t\t\t#################################\n";

    while(1)                                                /tu wraca petla
    {
            cout<<"\n\tWybierz komu policzyc wynagrodzenie albo wcisnij q zeby zakonczyc\n";        /menu wyboru dzialu
            cout<<"\n\tA-administracja\t";
            cout<<"\n\tF-fizyczny\t";
            cout<<"\n\tK-ksiegowy\n\n\t";
            cin>>p;                        /wprowadzanie znaku aby wybrac dzial
    if(p=='q')                        /jesli znak rowna sie q to zakoncz program
    {
            break;
            }
                    switch(p)                /rozpoczecie funkcji switch dla znaku p
            {
    case'a':                                /obliczanie skladnikow listy plac dla adiministracji
            clrscr();
            cout<<"\n Podaj przepracowane godziny:";
            cin>>a;
            cout<<"\n Podaj premie:";
            cin>>b;
            cout<<"\n Podaj kary:";
            cin>>c;
                    wb=((a*9.15)+b)-c;
            cout<<"\n----------------------------------";
            cout<<"\n\t Ogolem przychod brutto:"<<setprecision(4)<<wb<<"zlote";
            cout<<"\n----------------------------------";
            cout<<"\n Skladki  ubezpieczen spolecznych: \n";
                    ue=wb*se;
            cout<<"\n a) Ubezpieczenie emerytalne:"<<setprecision(2)<<ue<<"zlotych\n";
                    ur=wb*sr;
            cout<<"\n b) Ubezpieczenie rentowe:"<<setprecision(2)<<ur<<"zlotych\n";
                    uc=wb*sc;
            cout<<"\n c) Ubezpieczenie chorobowe:"<<setprecision(2)<<uc<<"zlotych\n";
                    us=ue+ur+uc;
            cout<<"\n Razem skladki ubezpieczen spolecznych:"<<setprecision(2)<<us<<"zlotych\n\n";
            cout<<"\n Koszty uzyskania przychodów:"<<kup<<"zlotych\n";
                    ps=wb-us;
            cout<<"\n Podtsawa wymiaru skladki ubezpieczenia zdrowotnego:"<<setprecision(3)<<ps<<"zlotych\n";
                    pn=wb-us-kup;
            cout<<"\n Podstawa naliczenia podatku dochodowego:"<<setprecision(3)<<pn<<"zlotych\n";
                    po=pn*u;
            cout<<"\n Potracona zaliczka na podatek dochodowy:"<<setprecision(2)<<po<<"zlotych\n";
            cout<<"\n\n Składka ubezpieczenia zdrowotnego : \n";
                    sp=ps*zo;
            cout<<"\n a) potrącona:"<<setprecision(2)<<sp<<"zlotych\n\n";
                    so=ps*zo;
            cout<<"\n b) podlegająca odl;iczeniu od podatku:"<<setprecision(2)<<so<<"zlotych\n\n";
                    nz=po-so;
            cout<<"\n Należna zaliczka na podatek dochodowy: "<<setprecision(2)<<nz<<"zlotych\n\n";
                    wn=wb-us-sp-nz;

            cout<<"\n----------------------------------";
            cout<<"\n\tDo wyplaty:"<<setprecision(3)<<wn<<"zlotych\n";
            cout<<"\n----------------------------------";

    break;



    case'f':
            clrscr();
            cout<<"\n Podaj przepracowane godziny:";
                    cin>>a;
            cout<<"\n Podaj premie:";
                    cin>>b;
            cout<<"\n Podaj kary:";
                    cin>>c;
                    wb=((a*6)+b)-c;
            cout<<"\n----------------------------------";
            cout<<"\n\t Ogolem przychod brutto:"<<setprecision(4)<<wb<<"zlote";
            cout<<"\n----------------------------------";
            cout<<"\n Skladki  ubezpieczen spolecznych: \n";
                    ue=wb*se;
            cout<<"\n a) Ubezpieczenie emerytalne:"<<setprecision(2)<<ue<<"zlotych\n";
                    ur=wb*sr;
            cout<<"\n b) Ubezpieczenie rentowe:"<<setprecision(2)<<ur<<"zlotych\n";
                    uc=wb*sc;
            cout<<"\n c) Ubezpieczenie chorobowe:"<<setprecision(2)<<uc<<"zlotych\n";
                    us=ue+ur+uc;
            cout<<"\n Razem skladki ubezpieczen spolecznych:"<<setprecision(2)<<us<<"zlotych\n\n";
            cout<<"\n Koszty uzyskania przychodów:"<<kup<<"zlotych\n";
                    ps=wb-us;
            cout<<"\n Podtsawa wymiaru skladki ubezpieczenia zdrowotnego:"<<setprecision(3)<<ps<<"zlotych\n";
                    pn=wb-us-kup;
            cout<<"\n Podstawa naliczenia podatku dochodowego:"<<setprecision(3)<<pn<<"zlotych\n";
                    po=pn*u;
            cout<<"\n Potracona zaliczka na podatek dochodowy:"<<setprecision(2)<<po<<"zlotych\n";
            cout<<"\n\n Składka ubezpieczenia zdrowotnego : \n";
                    sp=ps*zo;
            cout<<"\n a) potrącona:"<<setprecision(2)<<sp<<"zlotych\n\n";
                    so=ps*zo;
            cout<<"\n b) podlegająca odl;iczeniu od podatku:"<<setprecision(2)<<so<<"zlotych\n\n";
                    nz=po-so;
            cout<<"\n Należna zaliczka na podatek dochodowy: "<<setprecision(2)<<nz<<"zlotych\n\n";
                    wn=wb-us-sp-nz;
            cout<<"\n----------------------------------";
            cout<<"\n\tDo wyplaty:"<<setprecision(3)<<wn<<"zlotych\n";
            cout<<"\n----------------------------------";

    break;


    case'k':
            clrscr();
            cout<<"\n Podaj przepracowane godziny:";
                    cin>>a;
            cout<<"\n Podaj premie:";
                    cin>>b;
            cout<<"\n Podaj kary:";
                    cin>>c;
                    wb=((a*7)+b)-c;
            cout<<"\n----------------------------------";
            cout<<"\n\t Ogolem przychod brutto:"<<setprecision(4)<<wb<<"zlote";
            cout<<"\n----------------------------------";
            cout<<"\n Skladki  ubezpieczen spolecznych: \n";
                    ue=wb*se;
            cout<<"\n a) Ubezpieczenie emerytalne:"<<setprecision(2)<<ue<<"zlotych\n";
                    ur=wb*sr;
            cout<<"\n b) Ubezpieczenie rentowe:"<<setprecision(2)<<ur<<"zlotych\n";
                    uc=wb*sc;
            cout<<"\n c) Ubezpieczenie chorobowe:"<<setprecision(2)<<uc<<"zlotych\n";
                    us=ue+ur+uc;
            cout<<"\n Razem skladki ubezpieczen spolecznych:"<<setprecision(2)<<us<<"zlotych\n\n";
            cout<<"\n Koszty uzyskania przychodów:"<<kup<<"zlotych\n";
                    ps=wb-us;
            cout<<"\n Podtsawa wymiaru skladki ubezpieczenia zdrowotnego:"<<setprecision(3)<<ps<<"zlotych\n";
                    pn=wb-us-kup;
            cout<<"\n Podstawa naliczenia podatku dochodowego:"<<setprecision(3)<<pn<<"zlotych\n";
                    po=pn*u;
            cout<<"\n Potracona zaliczka na podatek dochodowy:"<<setprecision(2)<<po<<"zlotych\n";
            cout<<"\n\n Składka ubezpieczenia zdrowotnego : \n";
                    sp=ps*zp;
            cout<<"\n a) potracona:"<<setprecision(2)<<sp<<"zlotych\n\n";
                    so=ps*zo;
            cout<<"\n b) podlegająca odl;iczeniu od podatku:"<<setprecision(2)<<so<<"zlotych\n\n";
                    nz=po-so;
            cout<<"\n Należna zaliczka na podatek dochodowy: "<<setprecision(2)<<nz<<"zlotych\n\n";
                    wn=wb-us-sp-nz;
            cout<<"\n----------------------------------";
            cout<<"\n\tDo wyplaty:"<<setprecision(3)<<wn<<"zlotych\n";
            cout<<"\n----------------------------------";

    break;


    default:
    {
    cout<<"\n Nie rozpoznano znaku operacji: "<<p<<"\n\n";                /zle wprowadzenie znaku
    continue;                                                        /powrot do menu
   
    break;
    }
    }
            cout<<"\n Do wyplaty: "<<wn<<"zlotych";
    clrscr();
    getch();                                                        /zakonczenie funkcji main
    clrscr();
    return 0;

}

0

Klas sie do kodu nie "wstawia". Należy zaprojektować ten program obiektowo.
Napisz sobie na kartce jakie obiekty w rzeczywistości biorą udział w rozwiązywaniu problemu który rozwiązuje twój program. Potem określ powiązania między tymi obiektami, a także odszukaj podobieństwa między obiektami. Wtedy możesz dopiero myśleć o "wstawieniu klas".

0

Może zacznij od wstawiania funkcji bo ten kod to taki troszkę... a co tam nie ważne, tak czy owak lepiej będzie jak zaczniesz pisać ten program od początku :)

0

@drupitek:
Mam nadzieję, że nie piszesz tego programu komercyjnie. Kod stoi na poziomie amatorskim i to słabym, tj. odpowiednim dla początkującego. I nie ma w tym nic złego jeśli jesteś początkującym -- każdy z nas pisał kiedyś takie sucharki, choć może nie każdy to pamięta lub nie każdy się do tego przyzna ;).

Dam Ci kilka luźnych rad. Będą brzmiały prosto, ale abyś je intuicyjnie wprowadzał, będziesz musiał po prostu kodować, kodować, kodować i to wszystko ciągle się ucząc (a także będziesz musiał się uczyć nie kodując).

  1. Bezsensowne komentarze. Komentarze powinny wyjaśniać intencje programisty, ew. mówić to, co nie mówi kod. Ale ten drugi przypadek zwykle oznacza, że z kodem jest coś nie tak. Bo kod powinien mówić sam za siebie. Przy "i++" nie pisz, że to "inkrementacja i". To OCZYWISTE. Tak samo oczywiste jest to, że "int main(void) {" to początek funkcji main. Komentarze przy tych linijkach nic nie dają!

  2. Wydzielanie funkcji. Ekstremalnie przydatna sprawa. Naucz się stosowania funkcji i stosuj je WSZĘDZIE. Będzie idealnie, gdy żadna funkcja nie będzie miała więcej niż np. 10 linijek, max paręnaście. Funkcja powinna wykonywać i ogólnie opisywać jedną czynność. Gdy jest ona skomplikowana, to rozbijamy ją na mniejsze kawałki: funkcje, które wywołujemy z większej funkcji. I tak dalej. Dzięki temu żadna funkcja nie musi mieć 50 linijek.

  3. Prawie najważniejsza zasada pisania kodu (ważniejsze jest jedynie zapewnienie poprawności działania kodu): DRY. Don't Repeat Yourself. Nie pisz kodu metodą kopiuj/wklej. Dwa kawałki kodu nie powinny wyglądać jak bliźniaki. Póki co naucz się zachowywać tę zasadę używając funkcji. Potem przejdziesz na obiekty, ale funkcje (w postaci metod) zawsze będą przydatne.

  4. Nazewnictwo. Nie nazywaj zmiennej a, tylko "przepracowaneGodziny" lub "przepracowane_godziny". Nie "c", tylko "ubezpieczenie_chorobowe" (trzymaj się jednej zasady w całym kodzie; albo oddzielajCzłonyTak, albo_rób_to_tak).

Zauważ proszę, że przed zabraniem się za klasy powinieneś zrozumieć podstawy programowania proceduralnego (w C++ używamy nie procedur, tylko funkcji, ale programowanie funkcyjne to zupełnie oddzielna sprawa). Na razie masz tylko funkcję (w praktyce: procedurę) main. W uproszczeniu, klasy składają się z małych funkcji zwanych metodami, które operują na zmiennych zwanych polami. Od funkcji nie uciekniesz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1