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

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

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

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

16.02.2014, 16:45. Просмотров 259. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 16:45     Найти ошибку в коде)
Посмотрите здесь:

Найти ошибку в коде - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; using namespace std; void main (void)...

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

Найти ошибку в коде - C++
Помогите пж. найти ошибку в коде,он почему то последний символ не считывает. #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...

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

Найти ошибку в коде. - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(0, &quot;&quot;); int c, b, a; //a - первое число; b - второе число;...

Найти ошибку в коде - C++
В книге Страуструпа есть задание. Сначала нужно создать пустой консольный проект в Visual Studio, затем включить туда файл исходного...

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

Найти ошибку в коде - C++
Код крашится, кто знает в чем дело? Может протестировать чем - то?

Найти ошибку в коде - C++
Ребят , есть массив , но сколько бы чисел я не вводил , ОТРИЦАТЕЛЬНЫХ нету . Как исправить ? #include &quot;stdafx.h&quot; #include...

Найти ошибку в коде - C++
программка не работает что не хватает выручайте плиз!! #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class student...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
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 - она сразу переносит на место ошибки (ну это так для удобства)
Ответ Создать тему
Опции темы

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