Прога на C, C классами

Тема в разделе "C/C++/C#", создана пользователем -, 20 янв 2010.

  1. Гость

    Создать класс Payment(зарплата). В классе должны быть представлены поля: фамилия-имя-отчество, оклад, год поступления на работу, процент надбавки, подоходный налог, количество отработанных дней в месяце, количество рабочих дней в месяце, начисленная и удержанная суммы.
    Реализовать методы: вычисления начисленной суммы, вычисления удержанной суммы, вычисления суммы, выдаваемой на руки, вычисления стажа. Стаж вычисляется как полное количество лет, прошедших от года поступления на работу, до текущего года. Начисления представляют собой сумму, начисленную за отработанные дни, и надбавки, то есть доли от первой суммы. Удержания представляют собой отчисления в пенсионный фонд (1% от начисленной суммы) и подоходный налог. Подоходный налог составляет 13 % от начисленной суммы без отчислений в пенсионный фонд.

    Также прилагаю свои разработки

    Код (Text):
    #include <stdio.h>
    #include <conio.h>
    #include <iostream.h>
    class payment
    {
    private:
    char fio; //Фио
    float oklad; //оклад
    int year; //год поступления на работу
    float procent; //процент надбавки
    float nalog; //подоходный налог
    int rab_day_month; //кол-во отработанных дней
    float day_month; //кол-во рабочих дней
    float nach_summ; //начисленная сумма
    float yder_summ; //удержанная сумма
    float stag; //стаж (полное кол-во лет)
    float zp; //зарплата

    public:
    float vichisl_nach_summ();
    float vichisl_yder_summ();
    float vichisl_zp();float vichisl_stag();
    };

    float payment::vichisl_nach_summ()
    {return (oklad*rab_day_month);}

    float payment::vichisl_yder_summ()
    {return (nach_summ*0.01+nach_summ*0.13);}

    float payment::vichisl_zp()
    {return (rab_day_month*oklad-(rab_day_month*oklad*0.13));}

    float payment::vichisl_stag()
    {return (2009-year);}

    void main()
    {
    cout<<"Введите фамилию сотрудника - ";
    cin>>fio;
    cout<<"Введите оклад сотрудника - \n";
    cin>>oklad;
    cout<<"Введите год поступления сотрудника на работу - \n";
    cin>>year;
    cout<<"Введите процент надбавки - \n";
    cin>>procent;
    cout <<"Введите кол-во отработанных дней - \n";
    cin>>rab_day_month;
    cout<<"Начисленная сумма составляет: "<<payment.vichisl_nach_summ() <<"\n";
    cout<<"Удержанная сумма составляет: "<<payment.vichisl_yder_summ()<<"\n";
    cout<<"Сумма, выдаваемая на руки составляет: "<<payment.vichisl_zp()<<"\n";
    cout<<"Стаж составляет: "<<payment.vichisl_stag()<<"\n";
    getch();
    }
    Сначала в void выдается ошибка, что надо описать переменные(но я ведь их в самом начале описала), его требования выполняю и дальше уже другую ошибку выдает.......вообщем я уже не знаю, что с этой прогой не так.........вроде все правильно составляла ...ПОМОГИТЕ ПОЖАЛУЙСТА!!! ИСПРАВЬТЕ ОШИБКИ
     
  2. sg^_^milytia

    sg^_^milytia Гость

    1) после того как подгрузила хидеры, так как ты в дальнейшем будешь использовать вывод COUT нужно обозначить namespace

    Код (C++):
    #include <stdio.h>
    #include <conio.h>
    #include <iostream.h>

    using namespace std;
    2) после того как данные введены нужно присвоить их переменным класса и создать экземпляр класса соответственно
     
  3. ChexoV

    ChexoV Гость

    Код (Text):
    #include "stdafx.h"
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    #include <locale.h>
    using namespace std;
    class payment
    {
    public:
    char fio; //Фио
    float oklad; //оклад
    int year; //год поступления на работу
    float procent; //процент надбавки
    float nalog; //подоходный налог
    int rab_day_month; //кол-во отработанных дней
    float day_month; //кол-во рабочих дней
    float nach_summ; //начисленная сумма
    float yder_summ; //удержанная сумма
    float stag; //стаж (полное кол-во лет)
    float zp; //зарплата

    public:
    float vichisl_nach_summ();
    float vichisl_yder_summ();
    float vichisl_zp();float vichisl_stag();
    };

    float payment::vichisl_nach_summ()
    {return (oklad*rab_day_month);}

    float payment::vichisl_yder_summ()
    {return (nach_summ*0.01+nach_summ*0.13);}

    float payment::vichisl_zp()
    {return (rab_day_month*oklad-(rab_day_month*oklad*0.13));}

    float payment::vichisl_stag()
    {return (2009-year);}

    void main()
    {
    setlocale(LC_CTYPE,".1251");
    payment human;
    cout<<"Введите фамилию сотрудника - ";
    cin>>human.fio;
    fflush(stdin);
    cout<<"Введите оклад сотрудника - \n";
    cin>>human.oklad;
    cout<<"Введите год поступления сотрудника на работу - \n";
    cin>>human.year;
    cout<<"Введите процент надбавки - \n";
    cin>>human.procent;
    cout <<"Введите кол-во отработанных дней - \n";
    cin>>human.rab_day_month;
    cout<<"Начисленная сумма составляет: "<<human.vichisl_nach_summ() <<"\n";
    cout<<"Удержанная сумма составляет: "<<human.vichisl_yder_summ()<<"\n";
    cout<<"Сумма, выдаваемая на руки составляет: "<<human.vichisl_zp()<<"\n";
    cout<<"Стаж составляет: "<<human.vichisl_stag()<<"\n";
    getch();
    }
    1.Про using namespace std; верно сказали
    2. Объект класса тоже сначала надо создать.
    3.Свойства класса закрыты (т.е private),а значит мы находясь вне класса не можем к ним обращаться,поэтому надо сделать их public или set'ы )
    4. Ну и у меня был глюк с вводом,скорее всего у тя не будет но на всякий случай там стоит fflush(stdin);
     
Загрузка...

Поделиться этой страницей