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

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

15.02.2013, 12:04. Показов 5441. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru