Ir ao conteúdo

Posts recomendados

Postado

Bom, tenho esse trabalho para entregar, mas não estou conseguindo adicionar um nome composto ex: na parte de cadastrar conta ele acaba lendo só o nome, ele não salva o nome todo ex: meu nome é Gilson Vieira Souza Filho, quando vou cadastrar e coloco meu nome todo, acaba pulando a parte do CPF, agora quando eu coloco só o Gilson ai funciona. Queria também que me ajudassem no case 9 que está vazio, nele eu preciso emitir extrato da conta,ele vai pedi o número da conta e a agencia e assim exibindo o extrato  mas não estou conseguindo fazer, sem conseguirem me ajudar em qualquer um dois dois tá ótimo.

#include <iostream>
#include <fstream>
#include <locale.h>
#include <string.h>

using namespace std;
string nome;
int menu();

// >>>>Classe Conta<<<<
class Conta{
private:
    int conta;
    int agencia;
    char nome[50];
    char CPF[14];
    float saldo;

public:
    //setters
    void setConta(int x){
        this->conta=x;
        return;
    }
    
    void setAgencia(int x){
        this->agencia=x;
        return;
    }
    
    void setNome(char *x){
        strcpy(this->nome,x);
        return;
    }
    
    void setCPF(char *x){
        strcpy(this->CPF, x);
        return;
    }
    
    void setSaldo(float x){
        this->saldo=x;
        return;
    }
    //.
    
    //getters
    int getConta(){
        return this->conta;
    }
    
    int getAgencia(){
        return this->agencia;
    }
    
    char* getNome(){
        return this->nome;
    }
    
    char* getCPF(){
        return this->CPF;
    }
    
    float getSaldo(){
        return this->saldo;
    }
    //.
    
    
};

//>>>>>>>>>><<<<<<<<<<<<<<<

const int n_contas = 10; //constante de numero máximo de contas para a classe Agencia:


// >>>>Classe Agência<<<<
class Agencia{
private:
    Conta Contas[n_contas];
    int qtd; //quantidade de contas criadas
public:
    Agencia(){
        qtd = 0; // Agencia começa com 0 contas
    }
    
    void setCadastro(Conta c){
        if(qtd == n_contas){
            cout << "Erro: Lista de cadastros cheia!\n";
            return;
        }
        this->Contas[this->qtd] = c;
        this->qtd++;
        return;
    }
    
    int ConsultarConta(int conta, int agencia){
        if(this->qtd==0){
            cout << "Erro: sistema de contas está vazio.\n";
            return -10;
        }
        int i = 0;
        do{
            if(Contas[i].getConta() == conta && Contas[i].getAgencia() == agencia){
                return i;
            }
            i++;
        }while(i<qtd);
        cout << "Erro: conta e/ou agência incorreta(s).\n";
        return -1;
    }
    
    void AlterarDados( int pos, char *nome, char *cpf){
        this->Contas[pos].setNome(nome);
        this->Contas[pos].setCPF(cpf);
        return;
    }
    
    char* getNome(int pos){
        return this->Contas[pos].getNome();
    }
    
    char* getCPF(int pos){
        return this->Contas[pos].getCPF();
    }
    
    float getSaldo(int pos){
        return this->Contas[pos].getSaldo();
    }
    
    int getConta(int pos){
        return this->Contas[pos].getConta();
    }
    
    int getAgencia(int pos){
        return this->Contas[pos].getAgencia();
    }
    
    int Saque(int pos,float saque){
        if(saque <= 0){
            cout << "Erro: valor de saque negativo ou igual a zero.\n";
            return -1;
        }
        this->Contas[pos].setSaldo((this->Contas[pos].getSaldo()-saque));
        cout << "Saque efetuado com sucesso!\n";
        return 0;
    }
    
    int Deposito(int pos, float dep){
        if(dep <= 0){
            cout << "Erro: valor de deposito negativo ou igual a zero.\n";
            return -1;
        }
        this->Contas[pos].setSaldo((this->Contas[pos].getSaldo() + dep));
        cout << "Deposito efetuado com sucesso!\n";
        return 0;
    }
    
    void ExcluirConta(int pos){
        if(pos < 0 || pos >= n_contas){
            cout << "Erro ao excluir conta.\n";
            return;
        }
        
        for(int i=pos;( i < this->qtd-1); i++){
            this->Contas[i] = this->Contas[i+1];
        }
            this->qtd-=1;
            cout << "Conta corrente excluída com sucesso.\n";
            return;
    }
    
    void MostrarTD(){ //MostrarTD mostra todas as contas e seus respectivos saldos
        if(this->qtd==0){
            cout << "Erro: sistema de contas está vazio.\n";
            return;
        }
        for(int i=0; i<qtd; i++){
            cout << "\n(Conta " << i+1 << ")\n";
            cout << "Número da Conta: " << this->Contas[i].getConta() << endl;
            cout << "Número da Agência: " << this->Contas[i].getAgencia() << endl;
            cout << "Nome do titular: " << this->Contas[i].getNome() << endl;
            cout << "CPF do titular: " << this->Contas[i].getCPF() << endl;
            cout << "Saldo atual: R$" << this->Contas[i].getSaldo() << endl;
        }
        return;
    }
    
    void Transferir(int pos1, int pos2, float valor){   //Transfere valores       (pos1= posição da conta de origem,; pos2= posição da conta de destino; valor = valor da transferência);
        if(valor <= 0){
            cout << "Erro: valor de transfência negativo ou igual a zero";
            return;
        }
        int vi= this->Contas[pos2].getSaldo();
        this->Contas[pos2].setSaldo(this->Contas[pos2].getSaldo()+valor);
        if(this->Contas[pos2].getSaldo() == vi+valor){
            this->Contas[pos1].setSaldo(this->Contas[pos1].getSaldo() - valor);
        }
        cout << "Transferencia efetuada com sucesso!\n";
        return;
    }
};


//>>>>>>>>>><<<<<<<<<<<<<<<

//============Função Principal============

int main(){
    setlocale(LC_ALL, "Portuguese");
    int retorno;
    Agencia A1;
    Conta c;
    int conta;
    int agencia;
    char nome[20];
    char CPF[14];
    float saldo;
    int pos; //posição da conta de uma pessoa
    
    
    do{
        system("cls");
        retorno = menu();    
        switch(retorno){
            case 1:
                system("cls");
                cout << "Cadastrar Conta Corrente:\n\n";
                cout << "Numero da Conta: ";
                cin >> conta;
                
                cout << "Numero da Agência: ";
                cin >> agencia;
                
                cout << "Digite seu nome: ";
                cin>> nome;
                
                cout << "CPF do titular ";
                cin >> CPF;
                
                cout << "Saldo inicial: R$ ";
                cin >> saldo;
                
                
                if(saldo < 0){
                    do{
                        cout << "\nErro: saldo inicial não pode ser negativo.\n";
                        cout << "Informe um saldo inicial valido: R$";
                        cin >> saldo;
                    }while(saldo<0);
                    
                }
                
                c.setConta(conta);
                c.setAgencia(agencia);
                c.setNome(nome);
                c.setCPF(CPF);
                c.setSaldo(saldo);

                A1.setCadastro(c);
                cout << "\nConta cadastrada com sucesso.\n";
                break;
                
            case 2:
                system("cls");
                cout << "Alterar dados de uma Conta Corrente \n\n";
                cout << "Informe Conta e Agência. \n";
                cout << "Conta: ";
                cin >> conta;
                cout << "Agencia: ";
                cin >> agencia;
                pos = A1.ConsultarConta(conta,agencia);
                if (pos > -1){
                    //cout << A1[pos].getNome;
                    cout <<"\nNome atual: " << A1.getNome(pos);
                    cout <<"\nCPF atual: " << A1.getCPF(pos) << endl;
                    cout << "Informe nome novo: ";
                    cin >> nome;
                    cout << "informe CPF novo: ";
                    cin >> CPF;
                    A1.AlterarDados(pos,nome,CPF);
                }
                break;
            
            case 3:
                system("cls");
                cout << "Excluir Conta Corrente\n\n";
                cout << "Informe Conta e Agência.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agência: ";
                cin >> agencia;
                pos = A1.ConsultarConta(conta,agencia);
                if(pos>-1){
                    A1.ExcluirConta(pos);
                }
                break;
                
            case 4:
                system("cls");
                cout << "Consultar Saldo\n\n";
                cout << "Informe Conta e Agência.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agencia: ";
                cin >> agencia;
                pos = A1.ConsultarConta(conta,agencia);
                if (pos > -1){
                    cout << "Dados da Conta Corrente\n\n";
                    cout << "\nNúmero da Conta: " << conta << endl;
                    cout << "Número da Agência: " << agencia << endl;
                    cout << "Nome: " << A1.getNome(pos)<<endl;
                    cout << "CPF: " << A1.getCPF(pos)<<endl;
                    cout << "Saldo: R$" << A1.getSaldo(pos)<<endl;
                }
                break;
                
            case 5:
                system("cls");
                cout << "Fazer Deposito\n\n";
                cout << "Informe número da Conta Corrente e Agência.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agência: ";
                cin >> agencia;
                pos = A1.ConsultarConta(conta,agencia);
                if(pos > -1){
                    float deposito;
                    cout << "Dados da Conta Corrente\n\n";
                    cout << "Número da Conta: " << conta << endl;
                    cout << "Número da Agência: " << agencia << endl;
                    cout << "Nome do titular: " << A1.getNome(pos) << endl;
                    cout << "CPF do titular: " << A1.getCPF(pos) << endl;
                    cout << "Saldo atual: R$" << A1.getSaldo(pos) << endl << endl;
                    cout << "Valor do depósito: R$";
                    cin >> deposito;
                    A1.Deposito(pos,deposito);
                    cout << "\n\nSaldo atual: R$" << A1.getSaldo(pos) << endl;
                }
                
                break;
                
            case 6:
                system("cls");
                cout << "Realizar Saque\n\n";
                cout << "Informe número da Conta Corrente e Agência.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agência: ";
                cin >> agencia;
                pos = A1.ConsultarConta(conta, agencia);
                
                if(pos > -1){
                    float saque;
                    cout << "Dados da Conta Corrente\n\n";
                    cout << "Número da Conta: " << conta << endl;
                    cout << "Número da Agência: " << agencia << endl;
                    cout << "Nome do titular: " << A1.getNome(pos) << endl;
                    cout << "CPF do titular: " << A1.getCPF(pos) << endl;
                    cout << "Saldo atual: R$" << A1.getSaldo(pos) << endl << endl;
                    cout << "Valor do saque: R$";
                    cin >> saque;
                    A1.Saque(pos,saque);
                    cout << "\n\nSaldo atual: R$" << A1.getSaldo(pos) << endl;
                }
                break;
            
            case 7:
                system("cls");
                int p1,p2;
                cout << "Transferir Valores\n\n";
                cout << "Informe dados da conta corrente de origem.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agência: ";
                cin >> agencia;
                p1 = A1.ConsultarConta(conta,agencia);
                if(p1 == -1){
                    break;
                }
                cout << "\nInforme dados da conta corrente de destino.\n";
                cout << "Número da Conta: ";
                cin >> conta;
                cout << "Número da Agência: ";
                cin >> agencia;
                p2 = A1.ConsultarConta(conta,agencia);
                if(p2 == -1){
                    break;
                }
                
                cout << "\n\nDados conta de origem";
                cout << "\nNúmero da Conta: " << A1.getConta(p1) << endl;
                cout << "Número da Agência: " << A1.getAgencia(p1)<< endl;
                cout << "Nome do titular: " << A1.getNome(p1) << endl;
                cout << "CPF do titular: " << A1.getCPF(p1) << endl;
                cout << "Saldo atual: R$" << A1.getSaldo(p1) << endl << endl;
                
                cout << "\n\nDados conta de destino";
                cout << "\nNúmero da Conta: " << A1.getConta(p2) << endl;
                cout << "Número da Agência: " << A1.getAgencia(p2) << endl;
                cout << "Nome do titular: " << A1.getNome(p2) << endl;
                cout << "CPF do titular: " << A1.getCPF(p2) << endl;
                cout << "Saldo atual: R$" << A1.getSaldo(p2) << endl << endl;
                
                float valor;
                cout << "Informe valor da transferência: R$";
                cin >> valor;
                A1.Transferir(p1,p2,valor);
                
                break;
            
            case 8:
                system("cls");
                cout << "Mostrar todas as contas e saldos\n\n";
                A1.MostrarTD();
                break;
            
            case 9:
                break;
                
            case 10:
                cout << "Saindo do menu...\n";
                cout << "Tchau, volte sempre! \n";
                break;
        }
        system("pause");
        
    }while(retorno!=10);
    

    return 0;
}
//===================================.


int menu(){
    setlocale(LC_ALL, "Portuguese");
    int op;
    cout << "***************************************\n";
    cout << "*     ARABANCO - SEMPRE COM voce  *\n";
    cout << "***************************************\n";
    cout << "\n\n\n";
    cout << "Menu de opções:\n";
    cout << "1 - Cadastrar Conta Corrente\n";
    cout << "2 - Alterar dados de uma Conta Corrente\n";
    cout << "3 - Excluir uma Conta Corrente\n";
    cout << "4 - Consultar Saldo\n";
    cout << "5 - Fazer Depósito\n";
    cout << "6 - Realizar Saque\n";
    cout << "7 - Transferir Valores\n";
    cout << "8 - Mostrar todas as contas e saldos\n";
    cout << "9 - Emitir extrato de conta\n";
    cout << "10 - Sair\n\n";
    cout << "Escolha um opção: ";
    cin >> op;
    return op;
    
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!