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

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

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

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

17.10.2013, 10:59. Просмотров 429. Ответов 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. Класс, который хранит информацию о разговорах на междугородней АТС
Посмотрите здесь:

Создайте класс Student, который будет содержать информацию о студенте - C++
Создайте класс Student, который будет содержать информацию о студенте. С помощью механизма наследования, реализуйте класс Aspirant...

<list> как добраться до значения Листа, который он хранит? - C++
class CardDeckFT(КарточнаяКолода52). Цель пишу колоду карт для дальнейшего использования в игре блэк джэк.... Проблема такова, что я...

Определить массив структур, каждый элемент которого хранит информацию об успеваемости учеников школы - C++
В программе определить массив структур. Каждый элемент массива хранит информацию об успеваемости учеников школы: Номер, Фамилия, Имя,...

Создать класс, одно из полей которого хранит порядковый номер объекта - C++
Создайте класс, одно из полей которого хранит &quot;порядковый номер&quot; объекта, то есть для первого созданного объхекта значение этого поля равно...

не линкуется класс с static членами - C++
не линкуется класс с static членами class A { public: static int get(){return aaa;} A(){}; ~A(){}; private: static int...

Вывести сведения об абонентах, воспользовавшихся междугородней связью - C++
Phone: Фамилия, Имя, Отчество, Адрес, Номер, Время внутри-городских разговоров, Время междугородних разговоров. Создать массив...

Метод списка swap, который меняет информацию двух узлов местами - C++
Добавьте в класс списков метод Swap(int i, int j), меняющую информацию звеньев списка с номерами i и j прошу,помогите,пожалуйста

Тема: Структуры. Условие: сделать массив структур, который содержит следующею информацию - C++
В радиоателье сохраняются квитанции о заданной в ремонт аппаратуре. Каждая квитанция содержит такую информацию: название группы...

Класс содержащий персональную информацию человека - C++
Реализовать класс, содержащий данные для хранения фамилии, возраста, профессии, домашнего адреса и телефона человека. Написать метод,...

Создать программу порождающую поток, который копирует файлы. Получить информацию о текущем процессе - C++
Создать программу порождающую поток, который копирует файлы. Получить информацию о текущем процессе. Добавлено через 3 часа 14 минут ...


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

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

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