2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9
1

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

15.02.2013, 12:04. Показов 3737. Ответов 3
Метки нет (Все метки)

Начал изучение С++, прочитал главу "Введение в классы и объекты" в книге Дейтелов "Как програмировать на С++", ничего не поняв прочитал её ещё раз. Приступил к заданиям после главы, несколько раз прочитав задание и приблизительно поняв что нужно сделать приступил. Задание звучит так:
"Создайте класс с именем 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
}
Скажите правильно я всё делаю. Или ещё пару раз прочитать главу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2013, 12:04
Ответы с готовыми решениями:

Не получается создать класс Account из книги Дейтелов
Задача: Создайте класс с именем Account, которым мог бы воспользоваться банк для представления...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

3
72 / 72 / 12
Регистрация: 22.01.2013
Сообщений: 231
15.02.2013, 12:48 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;
        }
}
1
8 / 8 / 2
Регистрация: 14.01.2013
Сообщений: 141
15.02.2013, 13:14 3
А зачем так много функций членов? В условии же сказано 3 функции.
0
2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9
15.02.2013, 13:28  [ТС] 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;
        }
}
наверно всё-таки лучше ещё раз прочитать)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2013, 13:28

Реализовать класс Account моделирующий операции с банковским счётом (по книге Дейтелов)
Начал изучать С++ по Дейтелам, застрял на одной задаче. Я считаю, что проблема в set-функции, но на...

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

Создать класс "книги"
Создать класс &quot;Книги&quot;,в полях которого предусмотреть название книг и их описание.По жанру разделить...

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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