| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* Account.class.cpp :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: bchanot <bchanot@gmail.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2025/07/09 15:55:31 by bchanot #+# #+# */
- /* Updated: 2025/07/09 20:42:20 by bchanot ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "Account.class.hpp"
- #include <iostream>
- #include <iomanip>
- #include <ctime>
- Account::Account(int initial_deposit) : _amount(initial_deposit) {
- Account::_totalAmount += initial_deposit;
- Account::_displayTimestamp();
- this->_accountIndex = Account::_nbAccounts;
- Account::_nbAccounts += 1;
- std::cout << "index:" << this->_accountIndex << ";";
- std::cout << "amount:" << this->_amount << ";";
- std::cout << "created" << std::endl;
- return ;
- }
- Account::~Account(void) {
- Account::_displayTimestamp();
- std::cout << "index:" << this->_accountIndex << ";";
- std::cout << "amount:" << this->_amount << ";";
- std::cout << "closed" << std::endl;
- return ;
- }
- int Account::getNbAccounts( void ) {
- return Account::_nbAccounts;
- }
- int Account::getTotalAmount( void ) {
- return Account::_totalAmount;
- }
- int Account::getNbDeposits( void ) {
- return Account::_totalNbDeposits;
- }
- int Account::getNbWithdrawals( void ) {
- return Account::_totalNbWithdrawals;
- }
- void Account::displayAccountsInfos( void ) {
- Account::_displayTimestamp();
- std::cout << "accounts:" << Account::_nbAccounts << ";";
- std::cout << "total:" << Account::_totalAmount << ";";
- std::cout << "deposits:" << Account::_totalNbDeposits << ";";
- std::cout << "withdrawals:" << Account::_totalNbWithdrawals << ";";
- std::cout << std::endl;
- }
- void Account::makeDeposit( int deposit ) {
- Account::_displayTimestamp();
- std::cout << "index:" << this->_accountIndex << ";";
- std::cout << "p_amount:" << this->_amount << ";";
- this->_amount += deposit;
- Account::_totalAmount += deposit;
- this->_nbDeposits = Account::_totalNbDeposits += 1;
- std::cout << "deposit:" << deposit << ";";
- std::cout << "amount:" << this->_amount << ";";
- std::cout << "nb_deposits:" << this->_nbDeposits << ";";
- std::cout << std::endl;
- return ;
- }
- bool Account::makeWithdrawal( int withdrawal ) {
- Account::_displayTimestamp();
- std::cout << "index:" << this->_accountIndex << ";";
- std::cout << "p_amount:" << this->_amount << ";";
- if (this->_amount < withdrawal) {
- std::cout << "withdrawal:refused" << std::endl;
- return false;
- }
- this->_amount -= withdrawal;
- Account::_totalAmount -= withdrawal;
- this->_nbWithdrawals = Account::_totalNbWithdrawals += 1;
- std::cout << "withdrawal:" << withdrawal << ";";
- std::cout << "amount:" << this->_amount << ";";
- std::cout << "nb_withdrawals:" << this->_nbWithdrawals << ";";
- std::cout << std::endl;
- return true;
- }
- int Account::checkAmount( void ) const {
- return this->_amount;
- }
- void Account::displayStatus( void ) const {
- Account::_displayTimestamp();
- std::cout << "index:" << this->_accountIndex << ";";
- std::cout << "amount:" << this->_amount << ";";
- std::cout << "deposits:" << this->_nbDeposits << ";";
- std::cout << "withdrawals:" << this->_nbWithdrawals << ";";
- std::cout << std::endl;
- }
- void Account::_displayTimestamp( void ) {
- std::time_t now = std::time(nullptr);
- std::tm* tm_now = std::localtime(&now);
- std::cout << "[" << std::put_time(tm_now, "%Y%m%d_%H%M%S") << "] ";
- }
- int Account::_nbAccounts = 0;
- int Account::_totalAmount = 0;
- int Account::_totalNbDeposits = 0;
- int Account::_totalNbWithdrawals = 0;
|