Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
qwerty13
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 5
#1

Найти ошибку в коде) - C++

16.02.2014, 16:45. Просмотров 267. Ответов 2
Метки нет (Все метки)

Помогите найти ошибку в коде и исправить.Реализовать класс Payment (зарплата). В классе должны быть представлены поля: фамилия-имя-отчество, оклад, дата, процент надбавки, подоходный налог, количество отработанных дней в месяце, начисленная и удержанные суммы. Реализовать методы: вычисления начисленной суммы, вычисления удержанной суммы, вычисления суммы, выдаваемой на руки, вычисления стажа. Использовать для представления полей начислений и удержаний класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char – для копеек. Дробная часть (копейки) при выводе на экран должна быть отделена от целой части запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операции сравнения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <locale.h>
using namespace std;
class payment
{
  char fio; 
  float oklad; 
  int year;
  float procent; 
  int rab_day_month; 
  float day_month; 
  float nach_summ; 
  float yder_summ; 
  float stag; 
  float zp; 
public:
  float vich_nach_summ();
  float vich_yder_summ();
  float vich_zp();
  float vich_stag();
};
 
class money
{
long roub;
unsigned int cop;
float Sum;
void splitUp()
      {
        roub = (int)Sum;
        cop = (int)((Sum - Sum) * 100);
      };
      public:
             void get()
             {
                  cin >> Sum;
                  splitUp();
             };
             void show()
             {
                  cout << roub << ",";
                  if (cop < 10)
                  {
                              cout << "0";
                  }
                  cout << cop;
                                
             };
             money operator+ (money arg)
             { 
                    money temp;
                    temp.Sum = this->Sum + arg.Sum;
                    temp.splitUp();
                    return temp;
             };
             money operator- (money arg)
             { 
                    money temp;
                    temp.Sum = this->Sum - arg.Sum;
                    temp.splitUp();
                    return temp;
             };
             float operator/ (money arg)
             { 
                    float temp;
                    temp = this->Sum / arg.Sum;
                    return temp;
             };
             money operator/ (float arg)
             { 
                    money temp;
                    temp.Sum = this->Sum / arg;
                    temp.splitUp();
                    return temp;
             };
             money operator* (float arg)
             { 
                    money temp;
                    temp.Sum = this->Sum * arg;
                    temp.splitUp();
                    return temp;
             };
              bool operator== (money arg)
             { return (this->Sum == arg.Sum); };
             bool operator!= (money arg)
             { return (this->Sum != arg.Sum); };
             bool operator> (money arg)
             { return (this->Sum > arg.Sum); };
             bool operator< (money arg)
             { return (this->Sum < arg.Sum); };
             bool operator>= (money arg)
             { return (this->Sum >= arg.Sum); };
             bool operator<= (money arg)
             { return (this->Sum <= arg.Sum); };
            
};
 
float payment::vich_nach_summ()
{return (oklad*rab_day_month);}
 
float payment::vich_yder_summ()
{return (nach_summ-vich_zp);}
 
float payment::vich_zp()
{return (rab_day_month*oklad-(rab_day_month*oklad*0.13));}
 
float payment::vich_stag()
{return (2014-year);}
 
 
void main()
{ 
  payment h;
  money q;
  cout<<"vvedite fio - "; 
  cin>>h.fio; 
  cout<<"vvedite oklad  - "; 
  cin>>h.oklad; 
  cout<<"god postupleniya na raboty - "; 
  cin>>h.year; 
  cout<<"vvedite procent nadbavki - "; 
  cin>>h.procent; 
  cout <<"vvedite kol-vo otrabotannix dney - "; 
  cin>>h.rab_day_month; 
  if(h.rab_day_month>31) {cout<<"ne korrektnoe chislo"<<endl;
    cout <<"vvedite kol-vo otrabotannix dney - "; 
    cin>>h.rab_day_month; }
  cout<<"Nachislennaya summa sostavl: "<<h.vich_nach_summ() <<endl; 
  cout<<"Uderzh summa sostavl: "<<h.vich_yder_summ()<<endl; 
  cout<<"Na ruki: "<<h.vich_zp()<<endl; 
  cout<<"Staj: "<<h.vich_stag()<<endl;
  getch();
    
  return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в коде) (C++):

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

найти ошибку в коде - C++
Ошибка в 13 строке invalid conversion from 'int' to 'char*' #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; char **s =...

Найти ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int m, n, **a, i, j, s; cout&lt;&lt;&quot;vvedite kol-vo...

Найти ошибку в коде - C++
Народ вот задача. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(){ int sra=0,b,q; int i=0,n,arr; ...

найти ошибку в коде: - C++
Помогите найти ошибку в коде: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;conio.h&gt; using namespace std; float y,y2,y3,y4; ...

Найти ошибку в коде - C++
У меня стоит задача, в массиве из 10 чисел, который задается двумя способами, выполнить два способа сортировки: выбором и распределением по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
16.02.2014, 17:21 #2
Вроде работает)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#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; 
  int rab_day_month; 
  float day_month; 
  float nach_summ; 
  float yder_summ; 
  float stag; 
  float zp; 
  float vich_nach_summ();
  float vich_yder_summ();
  float vich_zp();
  float vich_stag();
};
 
class money
{
long roub;
unsigned int cop;
float Sum;
void splitUp()
      {
        roub = (int)Sum;
        cop = (int)((Sum - Sum) * 100);
      };
      public:
             void get()
             {
                  cin >> Sum;
                  splitUp();
             };
             void show()
             {
                  cout << roub << ",";
                  if (cop < 10)
                  {
                              cout << "0";
                  }
                  cout << cop;
                                
             };
             money operator+ (money arg)
             { 
                    money temp;
                    temp.Sum = this->Sum + arg.Sum;
                    temp.splitUp();
                    return temp;
             };
             money operator- (money arg)
             { 
                    money temp;
                    temp.Sum = this->Sum - arg.Sum;
                    temp.splitUp();
                    return temp;
             };
             float operator/ (money arg)
             { 
                    float temp;
                    temp = this->Sum / arg.Sum;
                    return temp;
             };
             money operator/ (float arg)
             { 
                    money temp;
                    temp.Sum = this->Sum / arg;
                    temp.splitUp();
                    return temp;
             };
             money operator* (float arg)
             { 
                    money temp;
                    temp.Sum = this->Sum * arg;
                    temp.splitUp();
                    return temp;
             };
              bool operator== (money arg)
             { return (this->Sum == arg.Sum); };
             bool operator!= (money arg)
             { return (this->Sum != arg.Sum); };
             bool operator> (money arg)
             { return (this->Sum > arg.Sum); };
             bool operator< (money arg)
             { return (this->Sum < arg.Sum); };
             bool operator>= (money arg)
             { return (this->Sum >= arg.Sum); };
             bool operator<= (money arg)
             { return (this->Sum <= arg.Sum); };
            
};
 
float payment::vich_nach_summ()
{return (oklad*rab_day_month);}
 
float payment::vich_yder_summ()
{return nach_summ-vich_zp();}
 
float payment::vich_zp()
{return (rab_day_month*oklad-(rab_day_month*oklad*0.13));}
 
float payment::vich_stag()
{return (2014-year);}
 
 
int main()
{ 
  payment h;
  money q;
  cout<<"vvedite fio - "; 
  cin>>h.fio; 
  cout<<"vvedite oklad  - "; 
  cin>>h.oklad; 
  cout<<"god postupleniya na raboty - "; 
  cin>>h.year; 
  cout<<"vvedite procent nadbavki - "; 
  cin>>h.procent; 
  cout <<"vvedite kol-vo otrabotannix dney - "; 
  cin>>h.rab_day_month; 
  if(h.rab_day_month>31) {cout<<"ne korrektnoe chislo"<<endl;
    cout <<"vvedite kol-vo otrabotannix dney - "; 
    cin>>h.rab_day_month; }
  cout<<"Nachislennaya summa sostavl: "<<h.vich_nach_summ() <<endl; 
  cout<<"Uderzh summa sostavl: "<<h.vich_yder_summ()<<endl; 
  cout<<"Na ruki: "<<h.vich_zp()<<endl; 
  cout<<"Staj: "<<h.vich_stag()<<endl;
  getch();
 
  return 0;
}
1
stikkas
19 / 19 / 6
Регистрация: 26.01.2014
Сообщений: 56
16.02.2014, 17:57 #3
Цитата Сообщение от qwerty13 Посмотреть сообщение
{return (nach_summ-vich_zp);}
should be
nach_summ-vich_zp()
Цитата Сообщение от qwerty13 Посмотреть сообщение
void main()
should be int main()
Цитата Сообщение от qwerty13 Посмотреть сообщение
cin>>h.fio;
все подобные конструкции неверны
либо пишите методы доступа, либо переносите их в раздел public
по умолчанию у class доступ private, у struct - public
ну и дальше по теме много таких огрехов
компилятор все пишет.
Лучше пользоваться ide - она сразу переносит на место ошибки (ну это так для удобства)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2014, 17:57
Привет! Вот еще темы с ответами:

Найти ошибку в коде - C++
надо ввести равные стороны 3-ка #include &lt;iostream&gt; using namespace std; int main() { float side1 , side2 , side3; ...

Найти ошибку в коде - C++
Помогите пж. найти ошибку в коде. Проверка на ошибки в мат выражениях. Примеры без ошибок: 4+3+(234+3)+2 3+21 45 Примеры с...

Найти ошибку в коде - C++
Доброго времени суток. Не могу найти ошибку в коде. Задание проще простого, вычеслить функцию. Буду благодарен за любую помощь ...

найти ошибку в коде - C++
На вход подаем 4.039 На выходе нужно получить: 15.2525 Выводит неверное значение. Функция ниже в картиночке. Вот код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru