0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 20
1

Реализовать метод Bill. Для представления использовать класс Time

14.11.2012, 22:06. Показов 3600. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, пожалуйста, помогите с задачей:

Реализовать метод Bill. Для представления использовать класс Time. реализовать методы извлечения и изменения полей. Время разговора, которое нужно оплатить, вычисляется в минутах. неполная минута считается полной"

Класс Bill - это разовый платеж за телефонный разговор. класс должен содержать поля:
- Фамилию абонента
- Номер телефона
- Тариф за минуту разговора
- Скидка(у процентах)
- Время начала разговора
- Время окончания разговора
- Сумма к оплате

Класс Time для работы с временем в формате "час:минута:секунда". Обязатеьными операциями есть: вычисление разницы между двумя моментами времени в секундах, сложение времени и заданного количества секунд, отнимание со времени заданного количества секунд, сравнение моментов времени, перевод в секунды, перевод в минуты(с округлением в целую)
-------
Никак не могла понять для чего нужны перегрузки и как их делать, одногруппники помогли, но, теперь не понимаю что писать в мейне, что именно выводить, выводить ли перегрузки и как это вообще делать, я понимаю,что в чужом коде трудно разобраться, но если не трудно, то жду ваших ответов.

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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
 
class Bill //основной класс
{  
    string family;      // фамилия плательщика
    int number;         // номер телефона
    double tarif;           // тариф за минуту разговора
    int skidka;         // скидка в процентах
    double summa;         // сумма к оплате
 
public: 
    class Time_           //вложенный класс
    {
        int hour0;          // время начала разговора(часы)
        int hour1;          // время окончания разговора(часы)
        int min0;             // время начала разговора(минуты)
        int min1;             // время начала разговора(минуты)
    public: 
        Time_();
        bool init (int h0, int m0, int h1, int m1) // функция инициализации объектов -инит для тайма
        {
            if ( (h0<0) || (h0>23) || (h1<0) || (h1>23) || (m1<0) || (m1>59) || (m0<0) || (m0>59)) return false;
            else 
            {
                hour0 = h0;       // время начала разговора 
                hour1 = h1;       // время окончания разговора
                min0 = m0;        // время начала разговора(минуты)
                min1 = m1;       // время начала разговора(минуты)
                return true;
            }
        }
        Time_ _init (Time_ & Temp);
 
        string toString()
        { 
            ostringstream B;
            B<< "Время начала :" <<hour0<<"ч "<<min0<<"мин "
                << "Время окончания :"<<hour1<<"ч "<<min1<<"мин "<<endl;
            return B.str();   
        }
        void read();
        void display();
        double sum (Bill L) ;
        int  dlina (Time_ L);
        double skidka (Bill L);
        friend istream& operator >> (istream &str, Time_ Temp);
        friend ostream& operator << (ostream &str, Time_ Temp);
        Time_ operator ++ ();
        Time_ operator ++ (int);
        Time_ operator -- ();
        Time_ operator -- (int);
        Time_ summation (int Min);
        Time_ vuchit (int Min);
    };
 
    Time_ vremya;
    Bill()
    { 
        family="Рожков";      // фамилия плательщика
        number=55-44-83;            // номер телефона
        tarif=5;            // тариф за минуту разговора
        skidka=3;           // скидка в процентах
        summa=358,9;         // сумма к оплате
        vremya.init (14,01,15,15);
    }
    bool Init(string f, int n, double t, int s, int h0, int m0,int h1,int m1)
    {   
        if(
            (n<0) || (t<=0) || (s<0) 
            )   
            return false;   // неправильные аргументы - не инициализировать поля     
        else                // аргументы правильные - инициализировать поля 
        { 
            family = f;     // фамилия плательщика
            number = n;     // номер телефона
            tarif = t;      // тариф за минуту разговора
            skidka = s;     // скидка в процентах
            vremya.init (h0,m0,h1,m1);
            return true; 
        } 
    }
 
    void Init(const Bill &T)
    {
        *this = T;
    }
 
    string toString()
    { 
        ostringstream B;
        B  <<"Фамилия плательщика: "<<family <<endl
            << "Номер телефона: "<< number<<endl
            << "Тариф(за мин):  "<< tarif<<endl
            << "Скидка(%): " << skidka <<"%"<<endl;
        return B.str();   
    }
 
 
    string toString() const
    {
        return toString();
    }
 
    friend istream& operator >> (istream &str, Bill Temp);
    friend ostream& operator << (ostream &str, Bill Temp);
    void Display();
};
 
istream& operator >> (istream &str, Bill Temp)
{ 
    string f;       // фамилия плательщика
    int n;          // номер телефона
    double t;           // тариф за минуту разговора
    int s;          // скидка в процентах
    double sum;
    int h0,m0,h1,m1;
    do{
        cout<<"Фамилия плательщика: "<<f <<endl
            << "Номер телефона: "<< n<<endl
            << "Тариф(за мин):  "<< t<<endl
            << "Скидка(%): " << s <<"%"<<endl;
    } while (!Temp.Init(f,n,t,s,h0,m0,h1,m1));
    return str;
}
 
Bill::Time_::Time_()
{
    hour0 = 0;
    min0 = 0;
    hour1=0;
    min1=0;
}
 
void Bill::Time_::display()
{
    cout<< "Время начала :" <<hour0<<"ч "<<min0<<"мин "<<endl;
    cout<< "Время окончания :"<<hour1<<"ч "<<min1<<"мин "<<endl;
}
 
 
void Bill::Time_::read()
{
    Bill S;
    Bill::Time_ V;
    int h0,m0;
    int h1,m1;
    do
    { 
        cout << "Пожалуйста, введите время начала разговора в часах (хх): "; cin >> h0;
        cout << "Пожалуйста, введите время начала разговора в минутах (хх): "; cin >> m0;
        cout << "Пожалуйста, введите время окончания разговора в часах (хх): "; cin >> h1;
        cout << "Пожалуйста, введите время окончания разговора в минутах (хх): "; cin >> m1;
    } 
    while(!init(h0, m1,h1,m0));
    V.hour0=h0;
    V.hour1=h1;
    V.min0=m0;
    V.min1=m1;
    (*this)=V;
}
 
void Bill :: Display()
{ 
 
    cout<<"Фамилия плательщика: "<<family <<endl
        << "Номер телефона: "<< number<<endl
        << "Тариф(за мин):  "<< tarif<<endl
        << "Скидка(%): " << skidka <<"%"<<endl
        << "Время разговора:" ; vremya.display();
}
 
 
 
double Bill:: Time_ :: sum (Bill t) 
{ 
    return
        (t.vremya.hour1*60+t.vremya.min1-(t.vremya.hour0*60+t.vremya.min0))*(t.tarif-t.tarif*t.skidka/100);
}
 
int Bill:: Time_ :: dlina (Time_ t)
{ 
 
    return
        (t.hour1*60+t.min1-(t.hour0*60+t.min0));
}
 
double Bill:: Time_ :: skidka (Bill t)
{
    return
        (t.vremya.hour1*60+t.vremya.min1-(t.vremya.hour0*60+t.vremya.min0))*(t.tarif)-(t.vremya.hour1*60+t.vremya.min1-(t.vremya.hour0*60+t.vremya.min0))*(t.tarif-t.tarif*t.skidka/100);
}
 
istream& operator>> (istream &str, Bill::Time_ Temp)
{
    Temp.read();
}
 
ostream& operator<< (ostream &str, Bill::Time_ Temp)
{
    return str << Temp.toString();
}
 
Bill :: Time_ Bill :: Time_ :: operator++ ()
{
    return (*this) = (*this).summation(1); 
}
 
Bill :: Time_ Bill :: Time_ :: operator++ (int)
{
    Bill :: Time_ Temp;
    (*this) = (*this).summation(1); 
    return Temp._init(*this);
}
 
Bill :: Time_ Bill :: Time_ :: operator-- ()
{
    return (*this) = (*this).vuchit(1); 
}
 
Bill :: Time_ Bill :: Time_ :: operator-- (int)
{
    Bill :: Time_ Temp;
    (*this) = (*this).vuchit(1); 
    return Temp._init(*this);
}
 
Bill :: Time_ Bill :: Time_ :: summation (int Min)
{
    (*this).min1 += Min;
}
 
Bill :: Time_ Bill :: Time_ :: vuchit (int Min)
{
    (*this).min1 -= Min;
}
 
 
//family = f;       // фамилия плательщика
//          number = n;     // номер телефона
//          tarif = t;      // тариф за минуту разговора
//          skidka = s;     // скидка в процентах
 
//string f, int n, double t, int s, int h0, int m0,int h1,int m1
 
// -- Функция main --
int main()
{  
    setlocale(LC_ALL, "Russian");
    Bill P; 
    cout<<"РГЗ 1.  Выполнила студентка группы ДИНР-21 Рожкова Екатерина."<<endl<<endl;
    cout<<"--------------------Условие задания--------------------\n";
    cout<<"Реализовать класс Bill,\n" 
        <<"используя для представления класс Time."<<endl;
    cout<<endl<<"==============================================================="<<endl<<endl;
 
    system ("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2012, 22:06
Ответы с готовыми решениями:

Реализовать класс bill на си ++
Реализовать класс bill представляющий собой разовый платёж за телефонный разговор. Класс должен...

Реализовать класс ModelWindow, добавив поле для курсора, используя для представления поля класс Cursor
Реализовать класс ModelWindow, добавив поле для курсора. Используйте для представления поля класс...

Реализовать класс Goods используя для представления цены класс Money
Реализовать класс Goods (пункт 1 ), используя для представления цены класс Money с пункта 2...

Реализовать класс Triangle, опираясь на класс Angle для представления углов
Реализовать класс Triangle, опираясь на класс Angle для представления углов.Класс Triangle является...

0
14.11.2012, 22:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2012, 22:06
Помогаю со студенческими работами здесь

Реализовать класс Triangle ,опираясь на класс Angle для представления углов
Само условие задачи : реализовать класс Triangle ,опираясь на класс Angle для представления углов....

Реализовать класс Goods, используя для представления цены класс Money из задания 24
Реализовать класс Goods(задание 36),используя для представления цены класс Money из задания...

Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26 для представления углов
Реализовать класс Triangle (задание 25), опираясь на класс Angle из задания 26 для представления...

Реализовать класс Bill, представляющий собой разовый платеж за телефонный разговор
2. Реализовать класс Bill, представляющий собой разовый платеж за телефонный разговор. Класс должен...

Реализовать класс Bill, представляющий собой разовый платеж за телефонный разговор
Всем привет)) Помогите пожалуйста написать программу. Реализовать класс Bill, представляющий...

Какой класс использовать для представления времени
Мне нужно расписание сделать. Можно ,конечно, через дабл 13.30 , но как-то не по госту, наверное....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru