update: finishing the ex02
This commit is contained in:
parent
223b7ee66c
commit
99295d66a3
4 changed files with 202 additions and 80 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* ************************************************************************** */
|
||||
/* ************************************************************************* */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* Account.cpp :+: :+: :+: */
|
||||
|
|
@ -6,15 +6,21 @@
|
|||
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/10/23 16:11:46 by rparodi #+# #+# */
|
||||
/* Updated: 2024/10/25 14:11:27 by rparodi ### ########.fr */
|
||||
/* Updated: 2024/11/04 15:38:22 by rparodi ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "Account.hpp"
|
||||
#include <ctime>
|
||||
#include <iostream>
|
||||
#include <ostream>
|
||||
|
||||
static void _displayTimestamp( void )
|
||||
int Account::_nbAccounts = 0;
|
||||
int Account::_totalAmount = 0;
|
||||
int Account::_totalNbDeposits = 0;
|
||||
int Account::_totalNbWithdrawals = 0;
|
||||
|
||||
void Account::_displayTimestamp( void )
|
||||
{
|
||||
time_t raw_time = time(0);
|
||||
tm *time = localtime(&raw_time);
|
||||
|
|
@ -23,44 +29,101 @@ static void _displayTimestamp( void )
|
|||
}
|
||||
|
||||
/// [19920104_091532] index:0;amount:42;created
|
||||
Account::Account(int initial_deposit)
|
||||
Account::Account( int initial_deposit )
|
||||
{
|
||||
_nbAccounts += 1;
|
||||
_totalAmount = initial_deposit;
|
||||
_totalNbDeposits = 0;
|
||||
_totalNbWithdrawals = 0;
|
||||
_accountIndex = _nbAccounts;
|
||||
_amount = initial_deposit;
|
||||
_totalAmount += _amount;
|
||||
_nbDeposits = 0;
|
||||
_nbWithdrawals = 0;
|
||||
_displayTimestamp();
|
||||
std::cout << "index:" << _accountIndex << ";";
|
||||
std::cout << "amount:" << _totalAmount << ";";
|
||||
std::cout << "amount:" << _amount << ";";
|
||||
std::cout << "created" << std::endl;
|
||||
_nbAccounts++;
|
||||
}
|
||||
|
||||
// index:0;amount:47;closed
|
||||
Account::~Account()
|
||||
{
|
||||
_accountIndex--;
|
||||
_displayTimestamp();
|
||||
std::cout << "index:" << _accountIndex << ";";
|
||||
std::cout << "amount:" << _totalAmount << ";";
|
||||
std::cout << "amount:" << _amount << ";";
|
||||
std::cout << "closed" << std::endl;
|
||||
_nbAccounts--;
|
||||
}
|
||||
|
||||
// [19920104_091532] index:1;p_amount:54;deposit:765;amount:819;nb_deposits:1
|
||||
void Account::makeDeposit(int deposit)
|
||||
{
|
||||
_displayTimestamp();
|
||||
std::cout << "index:" << _accountIndex << ";";
|
||||
std::cout << "p_amount:" << _amount << ";";
|
||||
std::cout << "deposit:" << deposit << ";";
|
||||
_amount += deposit;
|
||||
_totalAmount += deposit;
|
||||
std::cout << "amount:" << _amount << ";";
|
||||
_totalNbDeposits++;
|
||||
_nbDeposits++;
|
||||
std::cout << "nb_deposits:" << _nbDeposits << std::endl;
|
||||
}
|
||||
|
||||
// [19920104_091532] index:1;p_amount:819;withdrawal:34;amount:785;nb_withdrawals:1
|
||||
bool Account::makeWithdrawal(int withdrawal)
|
||||
{
|
||||
_displayTimestamp();
|
||||
std::cout << "index:" << _accountIndex << ";";
|
||||
std::cout << "p_amount:" << _amount << ";";
|
||||
if (withdrawal > _amount)
|
||||
{
|
||||
std::cout << "withdrawal:refused" << std::endl;
|
||||
return false;
|
||||
}
|
||||
std::cout << "withdrawal:" << withdrawal << ";";
|
||||
_totalAmount -= withdrawal;
|
||||
_amount -= withdrawal;
|
||||
std::cout << "amount:" << _amount << ";";
|
||||
_totalNbWithdrawals++;
|
||||
_nbWithdrawals++;
|
||||
std::cout << "nb_withdrawals:" << _nbWithdrawals << std::endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
int Account::getNbAccounts()
|
||||
{
|
||||
return (1);
|
||||
return (_nbAccounts);
|
||||
}
|
||||
|
||||
int Account::getTotalAmount();
|
||||
int Account::getTotalAmount()
|
||||
{
|
||||
return (Account::_totalAmount);
|
||||
}
|
||||
|
||||
static int Account::getNbDeposits();
|
||||
int Account::getNbDeposits()
|
||||
{
|
||||
return (Account::_totalNbDeposits);
|
||||
}
|
||||
|
||||
static int Account::getNbWithdrawals();
|
||||
int Account::getNbWithdrawals()
|
||||
{
|
||||
return (Account::_totalNbWithdrawals);
|
||||
}
|
||||
|
||||
/// [19920104_091532] index:2;p_amount:957;deposit:564;amount:1521;nb_deposits:1
|
||||
static void Account::displayAccountsInfos()
|
||||
void Account::displayAccountsInfos() {
|
||||
_displayTimestamp();
|
||||
std::cout << "accounts:" << _nbAccounts
|
||||
<< ";total:" << _totalAmount
|
||||
<< ";deposits:" << _totalNbDeposits
|
||||
<< ";withdrawals:" << _totalNbWithdrawals
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
//[19920104_091532] index:0;amount:42;deposits:0;withdrawals:0
|
||||
void Account::displayStatus() const
|
||||
{
|
||||
_displayTimestamp();
|
||||
std::cout << "index:" << _accountIndex << ";";
|
||||
std::cout << "amount:" << _totalAmount << ";";
|
||||
std::cout << "deposit:" << _totalNbDeposits << ";";
|
||||
std::cout << "amount:" << _amount << ";";
|
||||
std::cout << "deposits:" << _nbDeposits << ";";
|
||||
std::cout << "withdrawals:" << _nbWithdrawals << std::endl;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue