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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frank_Lampard_8
Сообщений: n/a
#1

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

17.10.2013, 10:59. Просмотров 422. Ответов 0
Метки нет (Все метки)

Класс, который хранит информацию о разговорах на междугородней АТС.
Создать класс 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++ Создайте класс, который содержит информацию об имени и адресе
C++ Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украины
Тема: Структуры. Условие: сделать массив структур, который содержит следующею информацию C++
C++ Создать класс, содержащий информацию о товарах
Вывести сведения об абонентах, воспользовавшихся междугородней связью C++
C++ Составить класс, который содержит информацию о наличии автобусов в автобусном парке
C++ Определить массив структур, каждый элемент которого хранит информацию об успеваемости учеников школы
Класс содержащий персональную информацию человека C++
C++ Создайте класс Student, который будет содержать информацию о студенте
<list> как добраться до значения Листа, который он хранит? C++

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

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

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