1
I have a problem in my logic here, I need to create a sac() function, but it has the following requirements:
• Account needs to exist
• She needs to have balance greater than 0
• The sake cannot be greater than the amount in the account
How do I do that? I tried to but I’m having a hard time with this part.
My code:
<?php
class ContaNoBanco {
private $numConta;
public $tipoConta;
public $donoConta;
private $saldoConta;
private $statusConta;
private function abrirConta(){
if($this->statusConta) {
echo'Você ja tem uma conta aberta, de número: ' . $this->getNumConta();
}
else {
$this->statusConta = true;
}
switch ($this->tipoConta) {
case 0:
$this->setTipoConta('CC');
$this->setSaldoConta($this->saldoConta + 50);
case 1:
$this->setTipoConta('CP');
$this->setSaldoConta($this->saldoConta + 150);
break;
}
}
private function fecharConta(){
if($this->saldoConta === 0) {
$this->statusConta = false;
}
else if($this->statusConta < 0){
echo'Você tem R$' . $this->getSaldoConta() . ' débitos a pagar, se regularize antes de fechar sua conta!';
}
else{
echo'Você tem o saldo de R$' . $this->getSaldoConta() . ' saque o dinheiro antes de fechar sua conta!';
}
}
public function depositar() {
}
/*public function sacar(){
if($this->statusConta) {
if($this->saldoConta > 0){
if($this->setSaldoConta() > $this->saldoConta){
echo'Você não pode sacar mais do que ' . $this->getSaldoConta();
}
else {
$this->setSaldoConta($this->saldoConta - 50);
}
}
}
else{
echo'A conta está fechada!';
}
}*/
public function pagarMensal(){
}
function getNumConta() {
return $this->numConta;
}
function getTipoConta() {
return $this->tipoConta;
}
function getDonoConta() {
return $this->donoConta;
}
function getSaldoConta() {
return $this->saldoConta;
}
function getStatusConta() {
return $this->statusConta;
}
function setNumConta($numConta) {
$this->numConta = $numConta;
}
function setTipoConta($tipoConta) {
$this->tipoConta = $tipoConta;
}
function setDonoConta($donoConta) {
$this->donoConta = $donoConta;
}
function setSaldoConta($saldoConta) {
$this->saldoConta = $saldoConta;
}
function setStatusConta($statusConta) {
$this->statusConta = $statusConta;
}
}
EDITED
Code 100%
<?php
class ContaNoBanco {
//Atributos
public $numConta;
protected $tipoConta;
private $donoConta;
private $saldoConta;
private $statusConta;
//Métodos
public function abrirConta($t){
$this->setTipoConta($t);
$this->setStatusConta(true);
if($t == "CC"){
$this->setSaldoConta(50);
}
else if($t == "CP"){
$this->setSaldoConta(150);
}
}
public function fecharConta(){
if($this->getSaldoConta() === 0) {
$this->setStatusConta(false);
echo"<p>Conta de {$this->getDonoConta()} fechada com sucesso!</p>";
}
else if($this->getSaldoConta() < 0){
echo"Você tem R$' . $this->getSaldoConta() . ' débitos a pagar, se regularize antes de fechar sua conta!";
}
else {
echo"<p>Voce tem o saldo de R$" . $this->getSaldoConta() . "saque o dinheiro antes de fechar sua conta!<p/>";
}
}
public function depositar($v) {
if ($this->getStatusConta()){
$this->setSaldoConta($this->getSaldoConta() + $v);
echo"<p>Deposito de R$ $v na conta de " . $this->getDonoConta() . "</p>";
}
else {
echo"<p>Você não tem uma conta no banco!</p>";
}
}
public function sacar($v){
if($this->getStatusConta()) {
if($this->getSaldoConta() >= $v){
$this->setSaldoConta($this->getSaldoConta() - $v);
echo"<p>Saque de R$$v autorizado na conta de " . $this->getDonoConta() . "</p>";
}
else {
echo"<p>Saldo insuficiente!</p>";
}
}
else{
echo"Essa conta não existe!";
}
}
public function pagarMensal(){
if($this->getStatusConta() === false) {
echo"Conta não existe!";
}
if($this->getTipoConta() == "CC") {
$v = 12;
}
else if ($this->getTipoConta() == "CP"){
$v = 20;
}
if ($this->getStatusConta()){
$this->setSaldoConta($this->getSaldoConta() - $v);
echo"<p>Mensalidade de $v debitada na conta de " .$this->getDonoConta() . "</p>";
}
else {
echo'<p>Problemas com a conta!</p>';
}
}
//Métodos Especiais
function __construct(){
$this->setSaldoConta(0);
$this->setStatusConta(false);
echo'<p>Conta criada com sucesso!</p>';
}
function getNumConta() {
return $this->numConta;
}
function getTipoConta() {
return $this->tipoConta;
}
function getDonoConta() {
return $this->donoConta;
}
function getSaldoConta() {
return $this->saldoConta;
}
function getStatusConta() {
return $this->statusConta;
}
function setNumConta($numConta) {
$this->numConta = $numConta;
}
function setTipoConta($tipoConta) {
$this->tipoConta = $tipoConta;
}
function setDonoConta($donoConta) {
$this->donoConta = $donoConta;
}
function setSaldoConta($saldoConta) {
$this->saldoConta = $saldoConta;
}
function setStatusConta($statusConta) {
$this->statusConta = $statusConta;
}
}
And what’s the problem, what the doubt?
– Maniero
I’m sorry. I just don’t know how to check, when it’s time to draw, to block if it’s bigger than the balance.
– Lucas de Carvalho
What is this?
$this->setSaldoConta($this->saldoConta - 50);
Can you only draw 50? You can’t draw an arbitrary amount?– Maniero
That’s when I open the account. I just forgot +=. It’s just that when I open, the CC already starts with 50 and the CP with 100. Instead of + there is +=
– Lucas de Carvalho