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

Надо исправить код ) - C++

Восстановить пароль Регистрация
 
qwerty13
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 5
16.02.2014, 16:18     Надо исправить код ) #1
Реализовать класс 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:18     Надо исправить код )
Посмотрите здесь:

C++ Нужна помощь мож что то надо исправить.
народ помогите пож-та, надо аттестацию исправить))) C++
C++ надо исправить ошибку
программа которая переводит введенные числа в буквенную начертанию (надо немного исправить) C++
C++ Надо исправить программу, пожалуйста. Задание: заменить заданное слово в строке другим заданным словом
C++ Зацикливается. Надо исправить
C++ Надо исправить код! Распечатать анкетные данные студентов, успевающих на 4 и 5
C++ Почему выдает 0, и что надо исправить в вызове функции?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru