Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9

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

15.02.2013, 12:04. Показов 5486. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2013, 12:04
Ответы с готовыми решениями:

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

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

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

3
73 / 73 / 12
Регистрация: 22.01.2013
Сообщений: 231
15.02.2013, 12:48
Меня вот что волнует, ваш конструктор принимает 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 функции.
0
2 / 2 / 0
Регистрация: 17.01.2013
Сообщений: 9
15.02.2013, 13:28  [ТС]
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2013, 13:28
Помогаю со студенческими работами здесь

Задача из книги Дейтелов
Столкнулся с решением следующей программы, в мысли приходит только примитивное и решения с огромным количеством строк. Как можно...

Создать класс Account
Реализовать класс Account, представляющий собой банковский счёт. В классе должны быть реализованы 4 поля: фамилия владельца, номер счета,...

Ошибка в примере из книги Дейтелов
Создал Windows Form проект в VS 2012, в файл Form1.cs переписал пример из книги Дейтелов &quot;C# в подлиннике&quot;. using System; using...

Задания из книги Дейтелов и Прата
У кого нибудь есть отдельно задания к этим книжкам? Очень нужно :umnik:

Нужны упражнения из книги Дейтелов
Всем привет! Пытаюсь своими силами изучить с++, пользуюсь книгой Дейтлов и компилятором VS Studio 2013 ...скиньте пожалуйста ответы к...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru