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

static. Класс, который хранит информацию о разговорах на междугородней АТС - C++

Восстановить пароль Регистрация
 
Frank_Lampard_8
Сообщений: n/a
17.10.2013, 10:59     static. Класс, который хранит информацию о разговорах на междугородней АТС #1
Класс, который хранит информацию о разговорах на междугородней АТС.
Создать класс Phone.

Класс включает в себя следующие данные-элементы:
- код (char* prefix);
- название города (char* town);
- продолжительность разговора;
- тариф;
- номер телефона в этом городе;
- номер телефона абонента;
- дату разговора.
В состав класса также входит следующий метод:
- метод расчета суммарной стоимости разговора.
Вывести:
a) (дружественная функция) информацию по заданному коду;
b) (дружественная функция) информацию по заданному телефону абонента;
c) количество звонков каждого абонента (поле типа static).
______________________________________________________________________
вот код набросал, но есть проблема с пунктом с), помогите пожалуйста. Критику по коду также принимаю.
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
#include<iostream>
#include<conio.h>
#include<clocale>
 
int const n=3;
 
using namespace std;
 
class Phone
{
      char prefix[10]; // код
      char town[10]; // название города
      int time; //продолжительность разговора
      double tarif;
      int NumberTown; //номер телефона в этом городе
      int NumberAb; //номер телефона абонента
      char date[10]; //дату разговора
      static int SIZE;
public:
    Phone(char[10],char[10],int,double,int,int,char[10]);    
    // Phone:: Phone();
    ~Phone();
    double cost(); //метод расчета суммарной стоимости разговора
    void print();
    friend void InfKod(char[10],Phone);
    friend void InfNumberAb(int,Phone);
    static int getSIZE();
};
 
int Phone::SIZE;
 
inline Phone::Phone(char _prefix[10],char _town[10],int _time,double _tarif,int _NumberTown,int _NumberAb,char _date[10]) 
{
    strcpy(prefix,_prefix);
    strcpy(town,_town);
    time=_time;
    tarif=_tarif;
    NumberTown=_NumberTown;
    NumberAb=_NumberAb;
    strcpy(date,_date);
//  cout<<"[КОНСТРУКТОР]"<<endl;
}
inline Phone ::~Phone() 
{
//  cout<<"[ДЕСТРУКТОР]"<<endl;
}
 
inline double Phone::cost()
{
    return tarif*double(time)/60;
}
 
inline void Phone::print()
{
    cout<<"\nкод: "<<prefix<<endl;
    cout<<"название города : "<<town<<endl;
    cout<<"продолжительность разговора: "<<time<<" c."<<endl;
    cout<<"тариф: "<<tarif<<" руб."<<endl;
    cout<<"номер телефона в этом городе: "<<NumberTown<<endl;
    cout<<"номер телефона абонента: "<<NumberAb<<endl;
    cout<<"дату разговора: "<<date<<endl;
}
 
void InfKod(char kod[10],Phone ik)
{
    if(strcmp(kod,ik.prefix)==0)
        ik.print();
}
 
void InfNumberAb(int Number,Phone in)
{
    if(Number==in.NumberAb)
        in.print();
}
 
inline int Phone::getSIZE()
{
    return SIZE;
}
 
inline void MENU()
{
    cout<<"___________________________________________________"<<endl;
    cout<<"1. Просмотр данных."<<endl;
    cout<<"2. Расчета суммарной стоимости разговора."<<endl;
    cout<<"3. Вывод информации по заданному коду."<<endl;
    cout<<"4. Вывод информации по заданному телефону абонента."<<endl;
    cout<<"5. Количество звонков каждого абонента."<<endl;
    cout<<"0. Выход."<<endl;
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
    
    double cost=NULL;
    int x;
    Phone ATC[n]={  Phone("028","Gfhb;",60,5.5,9388809,9389999,"01.11.2012"),
                    Phone("017","Минск",60,0.5,2175464,3289233,"01.01.2000"),
                    Phone("0888","Лондон",60,2.5,9380909,9389999,"01.11.2010")};
    MENU();
    do
    {
        cout<<"___________________________________________________"<<endl;
        cout<<" - Введите число: ";
        cin>>x;
        switch(x)
        {
        case 0:
            cout<<"Выход из программы."<<endl;
            break;
        case 1:
            for(int i=0;i<n;i++)
            ATC[i].print();
            break;
        case 2:
            for(int i=0;i<n;i++)
                cost+=ATC[i].cost();
            cout<<"Суммарная стоимость разговора: "<<cost<<endl;
            break;
        case 3:
            char kod[10];
            cout<<"Введите код: ";
            cin>>kod;
            for(int i=0;i<n;i++)
                InfKod(kod,ATC[i]);
            break;
        case 4:
            int Number;
            cout<<"Введите телефон абонента: ";
            cin>>Number;
            for(int i=0;i<n;i++)
                InfNumberAb(Number,ATC[i]);
            break;
        case 5:
            
            
            break;
        default:
            cout<<"Введено неправильное число!!!"<<endl;
            break;
        }
    }while(x);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 10:59     static. Класс, который хранит информацию о разговорах на междугородней АТС
Посмотрите здесь:

не линкуется класс с static членами C++
C++ Метод списка swap, который меняет информацию двух узлов местами
C++ Создайте класс, который содержит информацию об имени и адресе
Класс, полиморфизм (Написать класс, который хранит в себе некий номер ''nip'', проверит его на правильность и вывести результат) C++
C++ Наследование. Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украниы
Тема: Структуры. Условие: сделать массив структур, который содержит следующею информацию C++
C++ Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
C++ Класс Quadrangle (четырехугольник). Класс хранит Декартовы координаты четырех углов четырехугольника

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

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

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