• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Guest
  • Дата начала
G

Guest

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

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

Код:
#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 выдается ошибка, что надо описать переменные(но я ведь их в самом начале описала), его требования выполняю и дальше уже другую ошибку выдает.......вообщем я уже не знаю, что с этой прогой не так.........вроде все правильно составляла ...ПОМОГИТЕ ПОЖАЛУЙСТА!!! ИСПРАВЬТЕ ОШИБКИ
 
S

sg^_^milytia

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

C++:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

using namespace std;

2) после того как данные введены нужно присвоить их переменным класса и создать экземпляр класса соответственно
 
C

ChexoV

Код:
#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);
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!