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

Что необходимо изменить в программе? - C++

Восстановить пароль Регистрация
 
Denimen
0 / 0 / 0
Регистрация: 30.06.2012
Сообщений: 26
19.08.2012, 19:43     Что необходимо изменить в программе? #1
Подскажите пожалуйста что необходимо сделать чтобы высчитывался стаж, как связать два класса?
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include "stdafx.h"
#include "cstdlib"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
using namespace std;
struct date
{
    unsigned int god; // год
    unsigned int mesaz; //месяц
    unsigned int den; // день
};
class Payment
{
private:
    char family[30]; //фамилия имя отчество
    int oklad;// оклад
    int prozent_nad; // процент надбавки
    int nalog; //подоходный налог
    int otr_dni; //отработанные дни
    int rab_dni; //рабочие дни
    int nach_symma; //начисленная сумма
    int uder_symma; //удержанная сумма
    date ac;
public:
    void NewRabochiy(); // новая запись
    void NachSymma(); // вычисление начисленной суммы
    void UderSymma(); // вычисление удержанной суммы
    void KonechSymma(); // вычисление конечной сумма
    void Prosmotr(); // просмотр записи
};
class Date
{
private:
        date ac;
public:
    void Stag(); // вычисление стажа
};
void Payment::NewRabochiy()
{
    cout<<"Введите фамилию владельца : ";
    cin>>family;
    cout<<"Введите год поступления на работу ";
    cin>>ac.god;
    cout<<"Введите месяц поступления на работу ";
    cin>>ac.mesaz;
    cout<<"Введите число поступления на работу ";
    cin>>ac.den;
    cout<<"Запись добавлена"<<endl;
}
void Payment::NachSymma()
{
int k;
int n;
int h;
cout<<"Введите колличество отработанных дней : ";
cin>>otr_dni;
cout<<"Введите сумму которую необходимо выплотить за рабочий день : ";
cin>>k;
cout<<"Введите процент надбавки : ";
cin>>prozent_nad;
n=otr_dni*k;
h=(n*prozent_nad)/100;
nach_symma=h+n;
cout<<"Начисленная сумма равняется : "<<nach_symma;
}
void Payment::UderSymma()
{
    int k;
    cout<<"Удержанная сумма равна (13% подоходный налог и 1% в пенсионный фонд) : ";
    nalog=(nach_symma*13)/100;
    k=(nach_symma*1)/100;
    uder_symma=nalog+k;
    cout<<uder_symma;
}
void Payment::KonechSymma()
{
    cout<<"Конечная сумма выдаваемая на руки равна (начисленная сумма - удерженная сумма) : ";
    oklad=nach_symma-uder_symma;
    cout<<oklad;
}
void Payment::Prosmotr()
{
    cout<<"Фамилия имя отчество : "<<family<<endl;
    cout<<"Год поступления на работу "<<ac.god<<endl;
    cout<<"Месяц поступления на работу "<<ac.mesaz<<endl;
    cout<<"Число поступления на работу "<<ac.den<<endl;
    cout<<"Стаж : "<<" "<<endl;
    cout<<"Оклад : "<<oklad<<endl;
    cout<<"Процент надбавки : "<<prozent_nad<<endl;
    cout<<"Подоходный налог : "<<nalog<<endl;
    cout<<"Отработанные дни : "<<otr_dni<<endl;
    cout<<"Начисленная сумма : "<<nach_symma<<endl;
    cout<<"Удержанная сумма : "<<uder_symma<<endl;
}
void Date::Stag()
{ 
    unsigned int n;
    unsigned int h;
    unsigned int k;
    unsigned int g;
    unsigned int m;
    unsigned int l;
    cout<<"Введите текущий год : ";
    cin>>n;
    cout<<"Введите текущий месяц : ";
    cin>>h;
    cout<<"Введите текущее число : ";
    cin>>k;
    g= n - ac.god;
    m= h - ac.mesaz;
    l= k - ac.den;
    cout<<"Стаж равен :"<<g<<" года(лет) "<<m<<" месяца(месяцев) "<<l<<" дня(дней)."<<endl;
}
int main()
{
setlocale(LC_ALL,"");
Date aс;
Payment ac;
int m=0;
while(m!=7)
    {
    cout<<"1-Добавить новую запись"<<endl;
    cout<<"2-Вычислить начисленную сумму"<<endl;
    cout<<"3-Вычислить удержанную сумму"<<endl;
    cout<<"4-Вычислить конечную сумму"<<endl;
    cout<<"5-Вычислить стаж"<<endl;
    cout<<"6-Просмотреть запись"<<endl;
    cout<<"7-Выход"<<endl;
    cin>>m;
    switch (m)
        {
        case 1: 
            system("cls");
            ac.NewRabochiy();
            _getch();
            system("cls");
        break;
        case 2: 
            system("cls");
            ac.NachSymma();
            _getch();
            system("cls");
        break;
        case 3: 
            system("cls");
            ac.UderSymma();
            _getch();
            system("cls");
        break;
        case 4: 
            system("cls");
            ac.KonechSymma();
            _getch();
            system("cls");
        break;
        case 5: 
            system("cls");
            aс.Stag();
            _getch();
            system("cls");
        break;
        case 6: 
            system("cls");
            ac.Prosmotr();
            _getch();
            system("cls");
        break;
        case 7: 
        break;
        default: cout<<"Вводите зачения от 1 до 7";
            _getch();
            system("cls");
    }
  }
    return 0;
}
могу предполагать что в этой программе вообще всё не правильно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2012, 19:43     Что необходимо изменить в программе?
Посмотрите здесь:

C++ Необходимо изменить программу в C++
Необходимо изменить код программы. C++
Что изменить в программе? C++
C++ Что изменить в программе?
C++ необходимо исправить ошибку в программе
Необходимо написать комментарии к программе C++
необходимо изменить программу C++
C++ Работа с файлом. Необходимо изменить программу

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.08.2012, 21:07     Что необходимо изменить в программе? #2
Добавьте сначала в структуру date конструктор по умолчанию, а то при создании обекта Date записывается мусор в член date ac.
C++
1
2
3
4
5
6
7
8
struct date
{
    unsigned int god; // год
    unsigned int mesaz; //месяц
    unsigned int den; // день
    date(unsigned int g = 2000, unsigned int m = 1, unsigned int d = 1):
        god(g), mesaz(m), den(d) {}
};
Yandex
Объявления
19.08.2012, 21:07     Что необходимо изменить в программе?
Ответ Создать тему
Опции темы

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