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

Вызов функции 2 раза - C++

Восстановить пароль Регистрация
 
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
29.04.2012, 14:43     Вызов функции 2 раза #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
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <math.h>
 
class Time
{
        private:
    int hour,minute,second;
        public:
    friend class Bill;
};
 
class Bill
{
        private:
    char familiya_platelshika[50];
    char nomer_telefona[50];
    float tarif_za_minyty_razgovora;
    int skidka;
    char vremya_nachala_razgovora[10];
    char vremya_okonchaniya_razgovora[10];
    float summa_k_oplate;
        public:
    friend class Time;
    Time time;
    void Read();
    void PerevodVremeniIzCharVInt(char str[10]);
    float PerevodVremeniVMinytu();
    void Display();
};
 
void Bill::Read()
{
    while(true)
    {
        cout<<" Zapolnite sledyushie dannue:"<<endl;
        cout<<"Imya platelshika:             "; cin>>familiya_platelshika;
        cout<<"Nomer telefona:               "; cin>>nomer_telefona;
        cout<<"Tarif za minyty razgovora:    "; cin>>tarif_za_minyty_razgovora;
        cout<<"Skidka:                       "; cin>>skidka;
        cout<<"Vremya nachala razgovora:     "; cin>>vremya_nachala_razgovora;
        cout<<"Vremya okonchaniya razgovora: "; cin>>vremya_okonchaniya_razgovora;
        if(cin.peek()=='\n' && tarif_za_minyty_razgovora>0 && skidka>0)
        {
            cin.get();
            break;
        }
        else
        {
            clrscr();
            cout<<"Oshibka!!!\nZnacheniya vvedenu neverno.\nPovtorite vvod snova."<<endl<<endl;
            cin.clear();
            while(cin.get()!='\n') {  }
        }
    }
}
 
void Bill::PerevodVremeniIzCharVInt(char str[10])
{
    int i,hour,minute,second;
    char buf[10];
    hour=0;
    minute=0;
    second=0;
    for(int i=0,j=0,m=0;i<=strlen(str);i++)
    {
        if(str[i]==':'||!str[i])
        {
            switch(j)
            {
                case 0: hour=atoi(buf);   j++; m=0; break;
                case 1: minute=atoi(buf); j++; m=0; break;
                case 2: second=atoi(buf); j++; m=0; break;
            }
        }
        else
        {
            buf[m]=str[i];
            m++;
            buf[m]='\0';
        }
    }
    if((hour>=0 && hour<=23) && (minute>=0 && minute<=59) && (second>=0 && second<=59))
    {
        time.hour=hour;
        time.minute=minute;
        time.second=second;
    }
    else cout<<"Oshibka!!! Neverno vvedeno vremya."<<endl;
}
 
float Bill::PerevodVremeniVMinytu()
{
    return floor((time.hour*60.0+time.minute+(time.second/60.0))+0.5);
}
 
void Bill::Display()
{
    PerevodVremeniIzCharVInt(vremya_nachala_razgovora);
    cout<<PerevodVremeniVMinytu();
    PerevodVremeniIzCharVInt(vremya_okonchaniya_razgovora);
    cout<<endl<<PerevodVremeniVMinytu();
 
}
 
int main()
{
    Bill bill;
    bill.Read();
    bill.Display();
 
 
 
    getch();
    return 0;
}
Дело в том, что я хочу определить время в минутах, прошедшее с начала разговора до его конца.
Но вот в чем загвоздка: ввожу я время же в формуте чч:мм:сс, следовательно необходимо разбить его на числа, что я и сделал. Написал функцию перевода в минуты, но вот дальше ступор, т.к. время должно храниться в другом классе, а два поля в char описаны в другом классе.
Подскажите как дальше действовать, заранее всем благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 14:43     Вызов функции 2 раза
Посмотрите здесь:

C++ Вызов функции.
C++ Вызов функции в C++
C++ Вызов функции
Вызов функции в возврате значения функции C++
вызов функции C++
C++ Вызов функции
Рекурсия (вызов только 3 раза) C++
Вызов функции в параметре другой функции C++

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

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

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