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

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

Войти
Регистрация
Восстановить пароль
 
serezhka1111
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 11
#1

Не получается создать класс Account из книги Дейтелов - C++

12.07.2015, 14:30. Просмотров 482. Ответов 2
Метки нет (Все метки)

Задача:

Создайте класс с именем Account, которым мог бы воспользоваться банк для представления банковских счетов своих клиентов. Ваш класс должен иметь один элемент данных типа int для представления банковского баланса.Класс должен предусматривать конструктор для инициализации элемента данных. Конструктор должен подтверждать значение начального баланса и гарантировать, что оно больше или равно 0. Если нет, баланс должен устанавливаться равным 0, и конструктор должен выводить сообщение об ошибке, указывающее,что начальный баланс недействителен. В классе должны быть предусмотрены три элемент-функции. Функция credit должна добавлять указанную сумму из текущего баланса. Функция debit должна снимать деньги со счета, предварительно убедившись, что указанная сумма не превосходит баланса счета. Если превосходит, баланс нужно оставить без изменений и функция должна вывести сообщение вроде "Запрошенная сумма превышает баланс счета". Функция getBalance должна возвращать текущий баланс. Напишите программу, которая создает два объекта класса Account и тестирует элемент-функции класса.

Файл Account.h

C++
1
2
3
4
5
6
7
8
9
10
class Account
{
public:
    Account(int);
    void setCreditBalance(int);
    void getDebit(int);
    int getBalance();
private:
    int bankBalance;
};
Файл Functions.cpp

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
#include <iostream>
using std::cout;
using std::endl;
 
#include "Account.h"
 
Account::Account(int balance)
     {
        setCreditBalance(balance);
     }
 
void Account::setCreditBalance(int balance)
{
    if (balance >= 0)
        bankBalance = balance;
    if (balance < 0)
    {
        bankBalance = 0;
        cout << "Current balance is not active" << endl;
    }
}
 
void Account::getDebit(int sum)
{
    if (sum <= bankBalance)
        bankBalance = bankBalance - sum;
    if (sum > bankBalance)
        cout << "Запрошенная сумма превышает баланс счета" << endl;
}
 
int Account::getBalance()
{
    return bankBalance;
}
Файл Account.cpp

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using std::cout;
using std::endl;
 
#include "Account.h"
 
int main()
{
    Account account1
}
Мне вот непонятно как инициализировать объекты типа int. В книжке пример со строкой, и там понятно:
GradeBook gradeBook("Мой текст"). А с intом тоже нужно в скобках задавать значение?

Кроме того, хотел бы узнать, правильно ли я пишу или нет, и что нужно отредактировать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2015, 14:30     Не получается создать класс Account из книги Дейтелов
Посмотрите здесь:

C++ Реализовать класс Account
C++ Создание класса (упражнение из книги Дейтелов)
C++ Реализовать класс Account
Реализовать класс Account, представляющий собой банковский счет C++
C++ Реализовать класс Account, что является банковским счетом
Создать класс Account. Задача из книги Дейтелов "Как програмировать на С++" C++
C++ Ошибка в программе из книги Дейтелов
Задача из книги Дейтелов Как программировать на C++ C++
C++ Нужны упражнения из книги Дейтелов
C++ Создать класс ListPayment (зарплата) что-то не получается дописать программу
Где взять решения задач из книги Дейтелов C++
C++ Реализовать класс Account моделирующий операции с банковским счётом (по книге Дейтелов)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146
12.07.2015, 15:00     Не получается создать класс Account из книги Дейтелов #2
serezhka1111, да, числа указываются так же в скобках. Из кода, немного необычно у Вас выглядит конструктор. Я, конечно, давно уже не читал книжки по С и, возможно, что то подзабыл, но я не помню таких ситуаций, когда параметр конструктора передается методу класса. Попробуйте непосредственно в конструкторе произвести всю инициализацию, которая вам нужна.
serezhka1111
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 11
12.07.2015, 17:04  [ТС]     Не получается создать класс Account из книги Дейтелов #3
C++
1
2
3
4
5
6
7
8
9
10
11
//Определение класса
class Account
{
public:
    Account(int);
    void Credit(int);//функция устанавливает баланс после внесения денег
    void Debit(int);//функция устанавливает баланс после снятия денег
    int getBalance();//функция получает текущий баланс
private:
    int balance;
};
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
//Определения элемент-функций класса Account
//Файл содержит реализацию функций, прототипы которых объявлены в Account.h
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
 
#include "Account.h"
 
Account::Account(int _balance)
     {
         if (_balance >= 0)
         {
             balance = _balance;
             cout << "Your balance is " << balance << " credits" << endl;
         }
             if (_balance < 0)
             {
                 balance = 0;
                 cout << "Error! Your balance is not correct!" << endl;
             }
     }
 
void Account::Credit(int _balance)
{
    balance = balance + _balance;
    cout << "You have " << _balance << " credits to your balance" << endl;
}
 
void Account::Debit(int _balance)
{
    if (_balance <= balance)
        balance = balance - _balance;
    if (_balance > balance)
        cout << "Запрошенная сумма превышает баланс счета" << endl;
}
 
int Account::getBalance()
{
    return balance;
}
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
//Тестирование класса Account
#include <iostream>
using std::cout;
using std::endl;
 
#include "Account.h"
#include <conio.h>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    Account account1(100);
 
 
    cout << "Account`s initial balance is: " << account1.getBalance() << endl;
 
    account1.Credit(50);
 
    cout << "Текущий баланс после добавления: " << account1.getBalance() << endl;
 
    account1.Debit(500);
 
    cout << "Текущий баланс после снятия: " << account1.getBalance() << endl;
    system("pause");
    return 0;
}
Вот, исправил.
Yandex
Объявления
12.07.2015, 17:04     Не получается создать класс Account из книги Дейтелов
Ответ Создать тему
Опции темы

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