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

Разработать класс, инкапсулирующий банковский счет - C++

Восстановить пароль Регистрация
 
NaiRenD
Сообщений: n/a
14.03.2013, 09:43     Разработать класс, инкапсулирующий банковский счет #1
Разработать класс, инкапсулирующий банковский счет (номер счета, баланс, ФИО владельца, валюта счета). Реализовать методы снятия со счета и пополнение счета. Помогите пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 09:43     Разработать класс, инкапсулирующий банковский счет
Посмотрите здесь:

банковский счет C++
C++ Класс "Банковский счет"
Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля C++
Реализовать класс Account, представляющий собой банковский счет C++
Разработать класс и производный класс C++
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного
C++ Класс «Банковский счет»
C++ Класс, инкапсулирующий массив окружности

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.03.2013, 10:28     Разработать класс, инкапсулирующий банковский счет #2
Прошу пардону за спагетти в примере -- не стал разбивать на функции.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <string>
#include <iostream>
#include <stdexcept>
 
class Account {
 public:
  static const unsigned long int MAXIMUM_DEPOSIT;
  Account(int accountId, const std::string &ownerName,
    const std::string &currencyName, long int balance)
    : accountId(accountId), ownerName(ownerName),
    currencyName(currencyName), balance(balance) {}
  int getAccountId() const { return accountId; }
  const std::string &getOwnerName() const { return ownerName; }
  const std::string &getCurrencyName() const { return currencyName; }
  unsigned long int getBalance() const { return balance; }
  void withdraw(unsigned int amount) {
    if (balance < amount) {
      throw std::runtime_error("not enough equity on account");
    }
    balance -= amount;
  }
  void deposit(unsigned int amount) {
    if (balance + amount < balance) {
      throw std::overflow_error("adding amount to balance overflows maximum balance");
    }
    balance += amount;
  }
 private:
  int accountId;
  std::string ownerName;
  std::string currencyName;
  unsigned long int balance;
};
 
const unsigned long int Account::MAXIMUM_DEPOSIT = -1;
 
std::ostream &operator<<(std::ostream &stream, const Account &account) {
  return stream << "Accout{" <<
    "accountId=" << account.getAccountId() << "," <<
    "ownerName='" << account.getOwnerName() << "'," <<
    "currencyName='" << account.getCurrencyName() << "'," <<
    "balance=" << account.getBalance() << "}";
};
 
 
int main(int argc, char *argv[]) {
  
  Account a(1, "SOMEONE RICH", "USD", 50);
  
  std::cout << a.getOwnerName() << " has " << a.getBalance() << " " <<
    a.getCurrencyName() << " on account." << std::endl;
  
  // попытка положить на счет
  unsigned int amount = 1000;
  try {
    a.deposit(amount);
    std::cout << a.getOwnerName() << " deposited " << amount << " " <<
      a.getCurrencyName() << std::endl;
  } catch (std::exception &e) {
    std::cout << a.getOwnerName() << " could not deposit " << amount <<
      " " << a.getCurrencyName() << ": " << e.what() << std::endl;    
  }
  std::cout << a.getOwnerName() << " has " << a.getBalance() << " " <<
    a.getCurrencyName() << " on account." << std::endl;
 
  // попытка снять немного со счета
  amount = 100;
  try {
    a.withdraw(amount);
    std::cout << a.getOwnerName() << " withdrawn " << amount << " " <<
      a.getCurrencyName() << std::endl;
  } catch (std::exception &e) {
    std::cout << a.getOwnerName() << " could not withdraw " << amount <<
      " " << a.getCurrencyName() << ": " << e.what() << std::endl;    
  }
  std::cout << a.getOwnerName() << " has " << a.getBalance() << " " <<
    a.getCurrencyName() << " on account." << std::endl;
 
  // попытка снять слишком много со счета
  amount = 100000;
  try {
    a.withdraw(amount);
    std::cout << a.getOwnerName() << " withdrawn " << amount << " " <<
      a.getCurrencyName() << std::endl;
  } catch (std::exception &e) {
    std::cout << a.getOwnerName() << " could not withdraw " << amount <<
      " " << a.getCurrencyName() << ": " << e.what() << std::endl;    
  }
  std::cout << a.getOwnerName() << " has " << a.getBalance() << " " <<
    a.getCurrencyName() << " on account." << std::endl;
 
  return 0;
};
NaiRenD
Сообщений: n/a
14.03.2013, 11:14     Разработать класс, инкапсулирующий банковский счет #3
Спасибо, думал будет гораздо проще(
Yandex
Объявления
14.03.2013, 11:14     Разработать класс, инкапсулирующий банковский счет
Ответ Создать тему
Опции темы

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