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

Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
mish@kov
2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9
15.02.2013, 12:04     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" #1
Начал изучение С++, прочитал главу "Введение в классы и объекты" в книге Дейтелов "Как програмировать на С++", ничего не поняв прочитал её ещё раз. Приступил к заданиям после главы, несколько раз прочитав задание и приблизительно поняв что нужно сделать приступил. Задание звучит так:
"Создайте класс с именем Account, которым мог бы воспользоваться банк для представления банковских счетов своих клиентов. Ваш класс должен иметь один элемент данных типа int для представления банковского баланса. Класс должен предусматривать конструктор, принимающий начальный баланс, используемый для инициализации элемента данных. Конструктор должен подтверждать значение начального баланса и гарантировать, что оно больше или равно 0. Если нет, баланс должен устанавливаться равным 0, и конструктор должен выводить сообщение об ошибке, указывающее, что начальный баланс был недействителен. В классе должны быть предусмотрены три элемент-функции. Функция credit должна добавлять указанную сумму из текущего баланса. Функция debit должна снимать деньги со счета, предварительно убедившись, что указанная сумма не превосходит баланса счета. Если превосходит, баланс нужно оставить без изменений и функция должна вывести сообщение вроде «Запрошенная сумма превышает баланс счета". Функция getBalance должна возвращать текущий баланс. Напишите программу, которая создает два объекта класса Account и тестирует элемент-функции класса."
Вроде написал. Сразу оговорюсь что изучаю С++ на рабочем месте так как много свободного времени, но сюда нельзя устанавливать программы поэтому скомпилировать и запустить то что я написал не могу. Пользуюсь NotePad++ для написания файлов. По этой причине не могу узнать правильно ли я всё сделал. Подскажите. Вот код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Определение класса Account
//файл представляет собой открытый интерфейс не раскрывая реализации элемент функций
//класса которые определяются в Account.cpp
#include <string>
using std::string;
 
    //Определение класса Account
    class Account
        {
            public:
                Account (int balance); //конструктор инициализирующий Баланс
                void setCreditBalance (int balance); //функция устанавливает баланс после внесения денег на счёт
                int getCreditBalance (); //функция получает текущий баланс после внесения денег на счёт
                void setDebitBalance (int balance); //функция устанавливает баланс после снятия денег
                int getDebitBalance (); //функция получает текущий баланс после снятия денег
                void getBalance (int balance) //функция получает текущий баланс
                void displayMessage (); //вывести сообщение с текущим счётом
                
            private:
                int balance; //баланс для данного cчёта (Accounta)
        };
C++ (Qt)
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
//Определения элемент-функций Account.
//Файл содержит реализацию функций, прототипы которых объявлены в Account.h
#include <iostream>
using std::cout;
using srd::cin;
using std::endl;
 
#include "Account.h"// включить определение класса Account
 
//конструктор
Account::Account (int balance)
{
 
    balance = 100;
    cout << "Your balance is 100 credits" << endl;
    {
        if (balance >= 0)
        cout << "Your balance is correct" << endl;
        
        if (balance < 0)
        balance = 0
        cout << "Error! Your balance was not valid, the balance is set to 0!" << endl;
    }
    
    //функция устанавливает баланс после внесения денег на счёт
    void Account::setCreditBalance (int balance)
    {
        balance = 100 + 100
        cout << "You have 100 credits to your balance is 200 credits" << endl;
    }
    
    //функция получает текущий баланс после внесения денег на счёт
    int Account::getCreditBalance ()
    {
        return balance;
    }
    
    //функция устанавливает баланс после снятия денег
    void Account::setDebitBalance (int balance)
    {
        if (balance >= 200);
        balance = 200 - 100
        cout << "Left on your account 100 credits" << endl;
        
        if (balance = 200 - 300)
        cout << "The requested amount exceeds the account balance" << endl;
    }
    
    //функция получает текущий баланс после снятия денег
    int Account::getDebitBalance ()
    {
        return balance;
    }
    
    // функция выводит сообщение с текущим балансом
    void Account::displayMessage ()
    cout << "Your account balance\n" << getBalance () << endl;
    
    //функция получает текущий баланс
    int Account::getBalance ()
    {
        return balance;
    }
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Демонстрация класса Account после определения интерфейса
#include <iostream>
using std::cout;
using std::endl;
 
#include "Account.h"
 
int main ()
{
    //создать два объекта Account
    Account account1 ("Welcome account1 your balance is 100 credits");
    Account account2 ("Welcome account2 your balance is 200 credits");
    
    //вывести исходное значения баланса
    account1.displayMessage();
    account2.displayMessage();
    
    system("PAUSE");
return 0
}
Скажите правильно я всё делаю. Или ещё пару раз прочитать главу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 12:04     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++"
Посмотрите здесь:

C++ Создать класс "точка" и производный класс "отрезок"
Задача из книги "Програмирование - принципы и практика использования C++" C++
C++ Книги по С++ (что читать после книги Дейтела "Как программировать на С++")
C++ Задача из книги Дейтела "Шахматная доска"
C++ Из класса "Дата" с полями день, месяц, год создать класс "Время" с дополнительными полями час, минута, секунда
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
15.02.2013, 12:48     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" #2
Меня вот что волнует, ваш конструктор принимает int а вы передаеты в него char*.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Account::Account (int _balance)
{
 
        if (balance >= 0)
        cout << "Your balance is correct" << endl;
        
        if (balance < 0){
        balance = 0
        cout << "Error! Your balance was not valid, the balance is set to 0!" << endl;
        }else{
              balance = _balance;
           cout << "Your balance is"<< balance <<"credits" << endl;
        }
}
C++
1
2
Account account1 (35);
    Account account2 (-5);
Добавлено через 15 минут
У меня здесь немножко опечатка) Вот так должно быть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Account::Account (int _balance)
{
 
        if (_balance >= 0)
        cout << "Your balance is correct" << endl;
        
        if (_balance < 0){
        balance = 0
        cout << "Error! Your balance was not valid, the balance is set to 0!" << endl;
        }else{
              balance = _balance;
           cout << "Your balance is"<< balance <<"credits" << endl;
        }
}
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
15.02.2013, 13:14     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" #3
А зачем так много функций членов? В условии же сказано 3 функции.
mish@kov
2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9
15.02.2013, 13:28  [ТС]     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" #4
Цитата Сообщение от mzarb Посмотреть сообщение
А зачем так много функций членов? В условии же сказано 3 функции.
я так понял что это подсказка.

Добавлено через 2 минуты
Цитата Сообщение от The_bolT Посмотреть сообщение
Меня вот что волнует, ваш конструктор принимает int а вы передаеты в него char*.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Account::Account (int _balance)
{
 
        if (balance >= 0)
        cout << "Your balance is correct" << endl;
        
        if (balance < 0){
        balance = 0
        cout << "Error! Your balance was not valid, the balance is set to 0!" << endl;
        }else{
              balance = _balance;
           cout << "Your balance is"<< balance <<"credits" << endl;
        }
}
C++
1
2
Account account1 (35);
    Account account2 (-5);
Добавлено через 15 минут
У меня здесь немножко опечатка) Вот так должно быть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Account::Account (int _balance)
{
 
        if (_balance >= 0)
        cout << "Your balance is correct" << endl;
        
        if (_balance < 0){
        balance = 0
        cout << "Error! Your balance was not valid, the balance is set to 0!" << endl;
        }else{
              balance = _balance;
           cout << "Your balance is"<< balance <<"credits" << endl;
        }
}
наверно всё-таки лучше ещё раз прочитать)
Yandex
Объявления
15.02.2013, 13:28     Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++"
Ответ Создать тему
Опции темы

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