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

Создайте класс, имитирующий работу биллинговой системы сотового оператора (Не могу разобраться с ошибкой) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Связность http://www.cyberforum.ru/cpp-beginners/thread748668.html
Классическая задача из первого тома Сэджвика. Поясните пожалуйста условие. Непонятно вот что: Если мы вводим пару a-b, то следует ли считать, что у нас уже есть и пара b-a? Там сказано про транзитивность, а вот про коммутативность ни слова.
C++ Использование конструкторов и деструктора при проектировании пользовательского класса 1.Создать класс с именем TRAIN, содержащий следующие поля: ■ название пункта назначения; ■ номер поезда; ■ время отправления. 2. Написать программу, реализующую следующие методы определенные вне класса : ■ ввод с клавиатуры данных в массив, состоящий из восьми объектов класса TRAIN; записи должны быть размещены в алфавитном порядке по назва¬ниям пунктов назначения; ■ вывод на... http://www.cyberforum.ru/cpp-beginners/thread748658.html
Динамические структуры данных. Описать функцию, которая подсчитывает число вхождений элемента Е C++
Описать функцию, которая подсчитывает число вхождений элемента Е, значение которого введено с клавиатуры, в списке Q.
C++ Какие нюансы в вызове виртуальных функций из конструктора и из деструктора?
Данный вопрос взят с перечня вопросов на собеседование, смысл мне не совсем понятен, вот и решил его задать тут. Может кто понял суть самого вопроса и может на него ответить? Честно говоря не припомню каких либо нюансов по поводу вызова виртуальных функций в данной ситуации. К примеру есть следующий код: class A { public: A(){}; virtual ~A(){}; virtual void Show(){cout << "A()" <<...
C++ Алгоритм Дейкстры. Консольное приложение http://www.cyberforum.ru/cpp-beginners/thread748639.html
Помогите, помогите, помогите кто чем может, пожалуйста!.. срочно пипец вообще как нужна программа на плюсах, реализующая алгоритм Дейкстры именно в виде консольного приложения...сама никак не разберусь( нуб.
C++ Перевести из с++ в си Переведите из c++ в си пожалуйста #include <string> #include <sstream> #include <vector> #include <iostream> using namespace std; //Ввести строку. Вывести пословно вместе со счетчиком повторений этого слова. //----------------------------------------------------------------------------- int main() { подробнее

Показать сообщение отдельно
Наталья Щипачев
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 3
28.12.2012, 05:03     Создайте класс, имитирующий работу биллинговой системы сотового оператора (Не могу разобраться с ошибкой)
вот текст программы
Создайте класс, имитирующий работу биллинговой системы сотового оператора. Объектом
данного класса является лицевой счет абонента. Создайте 3 объекта класса. Полем класса
является баланс, на котором имеется изначальная сумма (стартовый баланс). Абонент может
расходовать деньги на SMS, голосовую связь и мобильный интернет. Реализуйте в классе методы
для уменьшения баланса (каждый из которых запрашивает, сколько и чего сделал абонент,
например, сколько он отправил СМС). Стоимость одного сообщения, одной минуты разговора и
одного мегабайта известны и заданы константно. В случае достижения нулевого баланса,
программа сообщает пользователю о невозможности предоставления услуги.

В C++ Builder 6

сама программа:
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
//Файл main.cpp
#include "personalaccount.h"
 
int main()
{
    PersonalAccount vasya(1000);
    PersonalAccount petya;
    PersonalAccount volodya(500);
    //Вася платит за 20 смс и 35 минут разговоров
    vasya.paySMS(20);
    vasya.paySpeak(35);
    //Но за 1000 минут разговоров он заплатить уже не может
    vasya.paySpeak(1000);
    //Петя вообще ничего не может оплатить, т. к. у него изначально 0
    petya.paySMS(20);
    return 0;
}//---------------------------------------------------------------------------
 
//Файл pesonalaccount.h
#ifndef PERSONALACCOUNT_H
#define PERSONALACCOUNT_H
 
#include <stdio.h>
 
class PersonalAccount
{
private:
    //тарифы в рублях за минуту
    static const float SPEAK_TARIF;
    static const float INTERNET_TARIF;
    static const float SMS_TARIF;
    //рублёвый баланс абонента
    float balance;
public:
    //создать счёт с такой-то суммой
    PersonalAccount(unsigned int balance): balance(balance) {}
    //создать пустой нулевой счёт
    PersonalAccount();
    //методы оплаты
    bool paySpeak(unsigned int minutes);
    bool paySMS(unsigned int sms);
    bool payInternet(unsigned int megabytes);
};
 
#endif // PERSONALACCOUNT_H
 
//Файл personalaccount.cpp
 
#include "personalaccount.h"
 
const float PersonalAccount::SPEAK_TARIF=1.0;
const float PersonalAccount::SMS_TARIF=0.5;
const float PersonalAccount::INTERNET_TARIF=1.5;
 
PersonalAccount::PersonalAccount()
{
    balance=0;
}
 
bool PersonalAccount::paySpeak(unsigned int minutes)
{
    //Если после выполнения услуги что-то останется на счету
    if ((balance-minutes*SPEAK_TARIF)>=0.0)
    {
        //то выполняем операцию
        balance=balance-minutes*SPEAK_TARIF;
        printf("Произведена оплата %d минут разговоров\n Остаток на счёте: %.2f \n", minutes, balance);
        return true;
    }
    //иначе
    else
    {
        //выводим сообщение об ошибке
        printf("На вашем счету недостаточно средств для оплаты %d минут переговоров\n", minutes);
        return false;
    }
}
 
bool PersonalAccount::paySMS(unsigned int sms)
{
    if ((balance-sms*SMS_TARIF)>0.0)
    {
        balance=balance-sms*SMS_TARIF;
        printf("Произведена оплата %d смс-сообщений разговоров\n Остаток на счёте: %.2f \n", sms, balance);
        return true;
    }
    else
    {
        printf("На вашем счету недостаточно средств для оплаты %d смс-сообщений\n", sms);
        return false;
    }
}
 
bool PersonalAccount::payInternet(unsigned int megabytes)
{
    if ((balance-megabytes*INTERNET_TARIF)>0.0)
    {
        balance=balance-megabytes*INTERNET_TARIF;
        printf("Произведена оплата %d мегабайт трафика\n Остаток на счёте: %.2f \n", megabytes, balance);
        return true;
    }
    else
    {
        printf("На вашем счету недостаточно средств для оплаты %d мегабайт трафика\n", megabytes);
        return false;
    }
}

Выдает ошибки после "personalaccount.h"
и
PersonalAccount vasya(1000);
PersonalAccount petya;
PersonalAccount volodya(500)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru