Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/140: Рейтинг темы: голосов - 140, средняя оценка - 4.62
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545

Подсчет стоимости разговора для разных мобильных операторов

03.01.2019, 17:32. Показов 27298. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
//Написать программу подсчета стоимости разговора для разных мобильных
//операторов.Пользователь вводит стоимость разговора и выбирает с какого на какой оператор
//он звонит.Вывести стоимость на экран.
 
#include "pch.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(0, "rus");
 
    int s, s1;
    cout << "ввести стоимость ";
    cin >> s;
    cout << "выбрать с какого оператора будет звонок\n" << endl;
    cout << "1. magafon ----> tele2\n";
    cout << "2. tele2 ----> megafon\n";
    cout << ">>> ";
    cin >> s1;
    return s1;
    
    
    
}
Сделать получилось только меню. Хочу спросить у вас, как сделать правильно подсчет стоимости и чтобы при выборе стоимости и с какого оператора на какой звоню выводило стоимость? Усложнять задание не нужно.Нужно использовать операторы ветвления: if, else и тд. Как это правильно реализовать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2019, 17:32
Ответы с готовыми решениями:

Подсчет стоимости межугородного телефоного разговора
int main(void) { setlocale(LC_ALL, &quot;Russian&quot;); int cod, dlit,c,S; c = 0; printf(&quot;Введите код города \n&quot;); ...

Написать программу подсчета стоимости разговора для разных мобильных операторов
Написать программу подсчета стоимости разговора для разных мобильных операторов. Пользователь вводит стоимость разговора и выбирает с...

Разработать приложение для вычисления стоимости междугородного телефонного разговора
условие : Разработать приложение в среде Delphi для вычисления стоимости междугородного телефонного разговора. Стоимость междугородного...

14
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
03.01.2019, 17:53
Наверное нужно сделать двухмерный массивчик, в котором будут указаны тарифы операторов. Для вашего случая примерно так:
C++
1
2
3
4
const double taxes[2][2] = {
    { 1.12, 2.31 },      // megafon->megafon, megafon->tele2
    { 3.62, 1.05 }       // tele2->megafon,   tele2->tele2
};
И соответственно выбирать из таблички нужные значения.
Табличка будет всегда квадратной. Количество строк/столбцов равно количеству операторов.

Ещё я бы посоветовал сделать двухуровневое меню: на первом уровне определяем с какого оператора звоним, на втором уровне определяем на какой оператор звоним. Иначе, для десятка операторов запыхаетесь меню писать.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
03.01.2019, 20:20  [ТС]
Вот так?

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
//Написать программу подсчета стоимости разговора для разных мобильных
//операторов.Пользователь вводит стоимость разговора и выбирает с какого на какой оператор
//он звонит.Вывести стоимость на экран.
 
#include "pch.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(0, "rus");
 
    int s, s1, o; // s ввод стоимости, s1 вывод стомости
    cout << "ввести стоимость ";
    cin >> s;
    cout << "выбор оператора: \n\n" << endl;
    cout << "1. megafon -> megafon\n" << endl;
    cout << "2. megafon -> tele2\n" << endl;
    cout << "3. tele2 -> megafon\n" << endl;
    cout << "4. tele2 -> tele2" << endl;
    cout << ">>>";
    cin >> o;
    const double taxes[2][2] = {
        {1.12, 2.31}, // megafon->megafon, megafon->tele2
        {3.62, 1.05} // tele2->megafon, tele2->tele2
    };
 
    s = (1.12*s);
    s = (2.31*s);
    s = (3.62*s);
    s = (1.05*s);
    cin >> s1;
 
    cout << "стоимость: " << s << endl;
 
}
вроде работает, но только смущает, что я ввожу два раза выбор оператора... например два раза 3 нажимаю и только тогда стоимость выводить

Добавлено через 12 минут
Цитата Сообщение от L0M Посмотреть сообщение
Наверное нужно сделать двухмерный массивчик, в котором будут указаны тарифы операторов. Для вашего случая примерно так:
C++Выделить код
1
2
3
4
const double taxes[2][2] = {
* * { 1.12, 2.31 }, * * *// megafon->megafon, megafon->tele2
* * { 3.62, 1.05 } * * * // tele2->megafon, * tele2->tele2
};
И соответственно выбирать из таблички нужные значения.
Табличка будет всегда квадратной. Количество строк/столбцов равно количеству операторов.
Хотя я удалил эту табличку да и с ней у меня почему то при смене операторов стоимость не меняется... почему интересно
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
03.01.2019, 20:23
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Вот так?
В зависимости от того, что вы хотите написать.
Если хотели следовать моим советам, то не так.

Цитата Сообщение от L0M Посмотреть сообщение
И соответственно выбирать из таблички нужные значения.
В вашей версии табличка не нужна ни на одну букву алфавита. Даже на "Х".
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
ввожу два раза выбор оператора... например два раза 3 нажимаю и только тогда ...
См. строки 23 и 33.

И вообще я не очень понимаю, что вы считаете. Вы вводите стоимость (стр. 15-16), что-то с ней тщательно делаете в стр. 29-32, а потом выводите стоимость (стр. 35). Причём от выбора пользователя ничего не зависит.

Цитата Сообщение от Anonymous4722 Посмотреть сообщение
вроде работает
На калькуляторе не пробовали проверить результаты расчётов?
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
03.01.2019, 21:09  [ТС]
Цитата Сообщение от L0M Посмотреть сообщение
В зависимости от того, что вы хотите написать.
Если хотели следовать моим советам, то не так.
Чтобы задание соответствовало условию. И при выборе с какого оператора на какой выводило стоимость на экран.
Цитата Сообщение от L0M Посмотреть сообщение
В вашей версии табличка не нужна ни на одну букву алфавита. Даже на "Х".
Я это потом понял.
Цитата Сообщение от L0M Посмотреть сообщение
См. строки 23 и 33.
И вообще я не очень понимаю, что вы считаете. Вы вводите стоимость (стр. 15-16), что-то с ней тщательно делаете в стр. 29-32, а потом выводите стоимость (стр. 35). Причём от выбора пользователя ничего не зависит.
Я пытаюсь сделать так чтобы при вводе стоимости эта введенная стоимость умноажалась на тариф, на который я ее умножаю:
C++
1
s = (1.12*s);
и дальше результат этих сложений вывелся на экран.
Цитата Сообщение от L0M Посмотреть сообщение
На калькуляторе не пробовали проверить результаты расчётов?
Нет, потому что явно, что-то тут не так.

Добавлено через 31 минуту
Мне кажется лучше бы я делал через if else if else
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
03.01.2019, 21:10
Лучший ответ Сообщение было отмечено Anonymous4722 как решение

Решение

Anonymous4722, вы же вроде на Яве пишите? Подключите опыт. Тем более, что синтаксически языки достаточно похожи, а чего-то специфически плюсового я пока не наблюдаю.

На сколько я понимаю, вы осваиваете С++. Я могу написать эту программу за то время, которое потребуется мне на набор буковок исходного кода. Но только для вас от моего готового решения толку не будет. Поэтому разберитесь с логикой программы. Напишите на псевдокоде, если это вам поможет, или нарисуйте блок-схему. Каждый решает задачи по-своему.

Я вам дал две идеи: двухуровневое меню и таблица тарифов. Можно и без них обойтись, в лоб. Но я как-то привык делать достаточно аккуратный код. Поэтому и посоветовал.

Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Я пытаюсь сделать так чтобы при вводе стоимости эта введенная стоимость умноажалась на тариф, на который я ее умножаю:
Т.е. вы путь умножаете на скорость, что бы получить путь.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
03.01.2019, 22:39  [ТС]
Цитата Сообщение от L0M Посмотреть сообщение
Т.е. вы путь умножаете на скорость, что бы получить путь.
Нет не путь. Вы сами почитайте условия задачи. Там вводится стоимость, потом выбор оператора, а потом опять стоимость. Вот так вот.

Цитата Сообщение от L0M Посмотреть сообщение
На сколько я понимаю, вы осваиваете С++
Да, щас пока идет упор на Си++
Цитата Сообщение от L0M Посмотреть сообщение
Я могу написать эту программу за то время, которое потребуется мне на набор буковок исходного кода. Но только для вас от моего готового решения толку не будет.
А мне это не надо. Мне нужно просто помочь понять, как вычислить правильно и чтобы программа работала правильно.
Цитата Сообщение от L0M Посмотреть сообщение
вы же вроде на Яве пишите? Подключите опыт. Тем более, что синтаксически языки достаточно похожи
Да я писал раньше, но щас просто поступил кое куда учиться и там пока Си++ идет, а ява потом будет. И если честно у меня на яве кодить получалось лучше чем на си++ не знаю почему. Спасибо за помощь!
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
03.01.2019, 23:18
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Нет не путь.
Путь
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Вы сами почитайте условия задачи. Там вводится стоимость, потом выбор оператора, а потом опять стоимость. Вот так вот.
Вы сами почитайте условия задачи.
Включите логику и жизненный опыт.
Попросите прокомментировать условия задачи любую особу женского пола.
Ужаснитесь.
Уточните условия задачи.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
05.01.2019, 14:45  [ТС]
Цитата Сообщение от L0M Посмотреть сообщение
Вы сами почитайте условия задачи.
Включите логику и жизненный опыт.
Попросите прокомментировать условия задачи любую особу женского пола.
Ужаснитесь.
Уточните условия задачи.
Вот я так реализовал задачу:
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
//Написать программу подсчета стоимости разговора для разных мобильных
//операторов.Пользователь вводит стоимость разговора и выбирает с какого на какой оператор
//он звонит.Вывести стоимость на экран.
 
#include "pch.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(0, "rus");
 
    float s;
    int op;
    cout << "ввести стоимость разговора -->> ";
    cin >> s;
    cout << "выбрать оператора с какого на какой звонить: \n\n" << endl;
    cout << "1. megafon->megafon\n" << endl;
    cout << "2. megafon->tele2\n" << endl;
    cout << "3. tele2->megafon\n" << endl;
    cout << "4. tele2->megafon\n" << endl;
    cin >> op;
 
    if (op < 1 || op>4) {
        cout << "error" << endl;
        return 0;
    }
    else {
        switch (op) {
        case 1: {
            s = s * 2;
            cout << "стоимость = " << s;
            break;
 
            switch (op) {
            }case 2: {
                s = s * 3;
                cout << "стоимость = " << s;
                break;
 
                switch (op) {
                }case 3: {
                    s = s * 4;
                    cout << "стоимость = " << s;
                    break;
 
                    switch (op) {
                    }case 4: {
                        s = s * 1;
                        cout << "стоимость = " << s;
                        break;
                    }
                }
            }
            
            return 0;
        }
        }
    }
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.01.2019, 17:15
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Вот я так реализовал задачу:
реализация скажем так, не очень. прежде всего уточните условие.

вот как формулируются подобные задачи:

Пользователь вводит длительность разговора и выбирает направление звонка (megafon-megafon, megafon-tele2, tele2-tele2). Программа должна выводить стоимость разговора. Тарифы для всех операторов и разных направлений задаются с помощью констант.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
05.01.2019, 18:09  [ТС]
Я не знаю, как использовать из этих констант эти тарифы. Я уже делал и у меня считает не правильно.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.01.2019, 19:51
Anonymous4722, это очень просто. чтобы не рекламировать оператора обозначим: a - оператор 1, b - оператор 2
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
#include <iostream> 
using namespace std;
 
int main()
{ 
    int k;
    double time; // длительность разговора
    double const aa=1.09, bb=1.02, ab=1.27;  // тарифы  
    cout << "time="; 
    cin >> time;
    cout << "Make a choice: 1 - aa, 2 - bb, 3 - ab : ";    
    cin >> k;
    
    switch (k) 
    {
     case 1: 
     {
     cout <<"cost="<<time*aa<<"\n";
     break;
     }
     case 2: 
     {
     cout <<"cost="<<time*bb<<"\n";
     break;
     }
     case 3: 
     {
     cout <<"cost="<<time*ab<<"\n";
     break;
     }     
     default: 
     cout << "ENTER ERROR\n";
    }    
system("pause");
return 0;
}
можно ещё добавить цикл, чтобы программа считала несколько значений при разных данных, если нужно, сообщите
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,329
06.01.2019, 11:51
Yetty, длительность разговора вводится в минутах или секундах?
0
3 / 2 / 1
Регистрация: 30.06.2020
Сообщений: 14
04.07.2020, 17:20
#include <iostream>
using namespace std;
int main ()
{
int x,c;
cout << "vvedit chiny\n";
cin >> x;
cout << "vodafona -->kyivstar-->1\n";
cout << "kyivstara na vodafone-->2\n";
cin >> c;
enum telphoneop
{
vodafone=1,
kyivstar
};
switch (c)
{
case vodafone:
cout << "chinna z vodafona -->kyivstar-->" << (x * 2) << '\n';
break;
case kyivstar:
cout << "china z kyivstara na vodafone-->" << (x * 5) << '\n';
break;

default:
cout << "*_*";
}
}
0
0 / 0 / 0
Регистрация: 15.12.2020
Сообщений: 3
26.03.2021, 20:59
Задание 2. Написать программу подсчета стоимости разговора для разных мобильных операторов. Пользователь
вводит стоимость разговора и выбирает с какого на какой
оператор он звонит. Вывести стоимость на экран.

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
#include <iostream> 
using namespace std;
 
int main()
{
    int a, b;
    float p, p1, p2, p3;
    cout << "Enter 4 prices for call charges (1 2 3) (UAH.kop or UAH): ";
    cin >> p1 >> p2 >> p3;
    cout << "Stage #1.\n1. Operator 1;\n2. Operator 2;\n3. Operator 3;\nSelect the operator from which you will call: ";
    cin >> a;
    cout << "Stage #2.\n1. Operator 1;\n2. Operator 2;\n3. Operator 3;\nSelect the operator you will call: ";
    cin >> b;
    switch (a)
    {
    case 1:
        switch (b)
        {
        case 1:
            p = p1; 
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 2:
            p = p1 + p2;
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 3:
            p = p1 + p3;
            cout << "Call cost - " << p << " UAH / minute."; break;
        default: cout << "ERROR!";
            break;
        }
        break;
    case 2:
        switch (b)
        {
        case 1:
            p = p2 + p1;
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 2:
            p = p2;
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 3:
            p = p2 + p3;
            cout << "Call cost - " << p << " UAH / minute."; break;
        default: cout << "ERROR!";
            break;
        }
        break;
    case 3:
        switch (b)
        {
        case 1:
            p = p3 + p1;
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 2:
            p = p3 + p2;
            cout << "Call cost - " << p << " UAH / minute."; break;
        case 3:
            p = p3;
            cout << "Call cost - " << p << " UAH / minute."; break;
        default: cout << "ERROR!";
            break;
        }
        break;
        default: cout << "ERROR!"; break;
    }
    system("pause");
    cout << "\nCreated by 54\n"; // Это можно удалить или заменить. Просто "вотермарка" в коде)
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2021, 20:59
Помогаю со студенческими работами здесь

Определение стоимости разговора
Здравствуйте, помогите разобраться есть БД, которая состоит из 4 таблиц, одна из них называется Город в ней такие поля: код города,...

Вычисление стоимости телефонного разговора
Ребят, всем привет. C++. помогите пожалуйста написать программу, это задача на цикличность: Написать программу, которая вычисляет...

Вычисление стоимости телефонного разговора
Задание: Написать программу вычисления стоимости телефонного разговора. На форме предусмотреть: выбор города из списка...

Написать программу вычисления стоимости разговора
Написать программу вычисления стоимости разговора по телефону с учетом 20% скидки, предоставляемой по субботам и воскресеньям. Пользователь...

Программа расчёта стоимости телефонного разговора
Я написал программу,которая рассчитывает цену разговора по тарифу. И мне нужно сделать так что если количество внесенных денег...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru