Ir para conteúdo
Fórum Script Brasil

RodrigoAraIF

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre RodrigoAraIF

RodrigoAraIF's Achievements

0

Reputação

  1. vou acabar por reescrever o código, realmente há muitos erros e vou estudar os modos de abertura também
  2. #include <iostream> #include <conio.h> #include <fstream> /// fluxo de dados de arquivos #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <locale.h> ///Para a função que aceita caracteres especiais #define M 100 ///define M como 100(mesmo q M=100) using namespace std; ///Criação da struct struct dados{ int numdaconta; int numdaagencia; char nomedotitular[30]; long long cpf; float saldoinicial; }; //Variáveis globais char arq[100]; char extrato[100]; int opcao; int contar=0;///variável para preencher a struct vetor dados p[M];///struct com vetor, M é o valor máximo de contas ofstream fout;///Objeto para escrever ifstream fin;///Objeto de leitura int conta, agencia;///Variáveis para comparar agência e conta corrente ///Função para cadastro int cadastro(dados p[]){ cout<< "Número da Conta: "; cin>> p[contar].numdaconta; fout<< "Numero da Conta: "<< p[contar].numdaconta<<endl; cout<< "Número da Agência: "; cin>> p[contar].numdaagencia; fout<< "Número da Agência: "<< p[contar].numdaagencia<<endl; cout<< "Nome do Titular: "; cin>> p[contar].nomedotitular; fout<< "Nome do Titular: "<< p[contar].nomedotitular<<endl; cout<< "CPF: "; cin>> p[contar].cpf; fout<< "CPF: "<<p[contar].cpf<<endl; cout<< "Saldo inicial: "; cin>> p[contar].saldoinicial; fout<< "Saldo inicial: "<<p[contar].saldoinicial<<endl; if(p[contar].saldoinicial>=0){ fout << p[contar].saldoinicial << endl; cout << "Conta cadrastada com sucessso!\n"; } else{ ///Pus a repetição pra repetir sempre q o saldo for menor q 0 while(p[contar].saldoinicial<0){ cout << "Digite novamente:\n"; cin >> p[contar].saldoinicial; } fout << p[contar].saldoinicial; } ///Fechando o arquivo fout.close(); contar++; return 0; } ///Função para verificar saldo int saldo(dados p[]){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Número da Conta: "<< p.numdaconta<<endl; cout<< "Número da Agência: "<< p.numdaagencia<<endl; cout<< "Nome do Titular: "<< p.nomedotitular<<endl; cout<< "CPF: "<<p.cpf<<endl; cout<< "Saldo: "<<p.saldoinicial; } else{ cout<< "\t*** Número da conta e agência são inválidos! ***\n"<< endl; } } return 0; } int main() { float soma,valordeposito=0, valorsaque=0,novosaldo,saldoatual,qtddeposito=0, qtdsaque=0;///Variáveis para depósito e saque /*char novonome[30];///Variável para novo nome long long novocpf;///Variável para novo cpf*/ setlocale(LC_ALL, "Portuguese");///Para aceitar caracteres especiais do{ ///Menu cout<<endl <<"\t*** Menu de Opções *** "; cout<< "\n----------------------------------------"; cout<< "\n1 - Cadastrar Conta Corrente |" << "\n2 - Alterar dados de uma Conta Corrente|" << "\n3 - Excluir Conta Corrente |" << "\n4 - Consultar Saldo |" << "\n5 - Fazer Depósito |" << "\n6 - Realizar Saque |" << "\n7 - Mostrar todas contas e saldos |" << "\n8 - Emitir extrato da conta |" << "\n9 - Sair |" << "\n----------------------------------------" << endl; ///O usuário irá escolher a opção cin>> opcao; if(opcao == 1){ cout<<"Login De Acesso: "; cin>>arq; strcat(arq, ".txt"); fout.open(arq); if(!fout){ cout<<"Erro ao escrever dados no arquivo"; return 0; } ///Se o arquivo abrir normalmente else{ cadastro(p); } system("pause"); system("CLS");///Para limpar a tela } if(opcao == 2){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Login de acesso: "; cin>> arq; strcat(arq,".txt"); fout.open(arq); if(!fout){ cout<< "Erro ao abrir o arquivo!"; return 0; } else{ fout<< "Número da Conta: "<< p.numdaconta<<endl; fout<< "Número da Agência: "<< p.numdaagencia<<endl; cout<< "Novo nome do Titular: "; cin>> p.nomedotitular; fout<< "Nome do Titular: " << p.nomedotitular<< endl; cout<< "Novo CPF: "; cin>>p.cpf; fout<< "CPF: "<< p.cpf<< endl; fout<< "Saldo inicial: "<<p.saldoinicial<<endl; } } fout.close(); } } ///Excluindo arquivo if(opcao == 3){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Login de acesso: "; cin>> arq; strcat(arq,".txt"); fout.open(arq); if(!fout){ cout<< "Erro ao abrir o arquivo!"; return 0; } else{ fout<< "Conta apagada com sucesso!"; fout.close(); cout<< "Conta apagada com sucesso!"; } } } } ///Opção 4 else if(opcao == 4){ saldo(p); } ///Opção 5 else if(opcao == 5){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Login de acesso: "; cin>> arq; strcat(arq,".txt"); fout.open(arq); if(!fout){ cout<< "Erro ao abrir o arquivo!"; return 0; } else{ cout<< "Número da Conta: "<< p.numdaconta<< endl; cout<< "Número da Agência: "<< p.numdaagencia<< endl; cout<< "Nome do Titular: "<< p.nomedotitular<< endl; saldoatual = p.saldoinicial + valordeposito;///Incluindo o valor do depósito cout<< "CPF: "<<p.cpf<< endl; if(saldoatual == 0){ cout<<"saldo: 0"<<endl;///quando a variável possui valor igual a 0, ///é impresso "nan" ao mandar imprimí-la } else{ cout<< "Saldo: "<<saldoatual<< endl; } cout<< "Quanto deseja depositar? "; cin>> valordeposito; if(valordeposito < 0){ cout<< endl<< "\t*** Valor inválido! (Tente Novamente) ***"; } else{ novosaldo= saldoatual;///Somando saldos } qtddeposito ++; cout<< "Depósito feito com sucesso!"; cout<< endl<<"Agora você tem: "<< novosaldo<< "$"<< endl; fout<< "Número da Conta: "<< p.numdaconta<< endl; fout<< "Número da Agência: "<< p.numdaagencia<< endl; fout<< "Nome do Titular: "<< p.nomedotitular<< endl; fout<< "CPF: "<<p.cpf<< endl; fout<< "Saldo: "<<novosaldo; } } else{ cout<< "\t*** Número da conta e agência são inválidos! ***\n"<< endl; } fout.close(); } } ///Opção 6 else if(opcao == 6){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ saldoatual = p.saldoinicial - valorsaque; if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Login de acesso: "; cin>> arq; strcat(arq,".txt"); fout.open(arq); if(!fout){ cout<< "Erro ao abrir o arquivo!"; return 0; } else{ cout<< "Número da Conta: "<< p.numdaconta<< endl; cout<< "Número da Agência: "<< p.numdaagencia<< endl; cout<< "Nome do Titular: "<< p.nomedotitular<< endl; cout<< "CPF: "<<p.cpf<< endl; cout<< "Saldo: "<<novosaldo<< endl; cout<< "Quanto deseja sacar? "; cin>> valorsaque; if(valorsaque < 0){ cout<< endl<< "\t*** Valor inválido! (Tente Novamente) ***"; } else{ qtdsaque ++; cout<< "Saque feito com sucesso!"; cout<< endl<<"Agora você tem: "<< saldoatual<< "$"<< endl; fout<< "Número da Conta: "<< p.numdaconta<< endl; fout<< "Número da Agência: "<< p.numdaagencia<< endl; fout<< "Nome do Titular: "<< p.nomedotitular<< endl; fout<< "CPF: "<<p.cpf<< endl; fout<< "Saldo: "<<novosaldo; } } } else{ cout<< "\t*** Numero da conta e agência são inválidos! ***\n"<< endl; } } fout.close(); } ///Opção 7 if(opcao == 7){ for(int i=0; i<contar; i++){ cout<< "Número da Conta: "; cout << p.numdaconta << endl; cout<< "Número da Agência: "; cout << p.numdaagencia << endl; cout<< "Nome do Titular: "; cout << p.nomedotitular << endl; cout<< "CPF: "; cout<< p.cpf << endl; cout<< "Saldo inicial: "; cout<< p.saldoinicial << endl; } if(contar == 0){ cout<< "\t*** Não há contas! ***\n"; } } ///Opção 8 if(opcao == 8){ cout<< "Número da conta: "; cin>> conta; cout<< "Número da agência: "; cin>> agencia; for(int i=0; i < contar; i++){ if(conta==p.numdaconta && agencia == p.numdaagencia){ cout<< "Login de acesso: "; cin>> arq; } else{ cout<< "\t*** Número da conta e agência são inválidos! ***\n"<< endl; } int resp;///Opções para a operação a seguir: cout<< "Digite 1 para salvar seu extrato." <<endl << "Digite 2 para visualizar o extrato." <<endl; cin>> resp; if(resp == 1){ cout<<"Digite novamente seu login de acesso: "<<endl; cin>>extrato; strcat(extrato, "extrato.txt"); fout.open(extrato); fout<< "Número da Conta: "<< p.numdaconta<<endl; fout<< "Número da Agência: "<< p.numdaagencia<<endl; fout<< "Nome do Titular: " << p.nomedotitular<< endl; fout<< "CPF: "<< p.cpf<< endl; fout<< "Saldo inicial: "<<p.saldoinicial<<endl; fout<< "Depósitos: "<<endl; for(int i=0; i<qtddeposito;i++){ fout<<valordeposito<<endl; } fout<<"Saques: "<<endl; for(int i=0; i<qtdsaque;i++){ fout<< valorsaque<<endl; } fout<< "Saldo Final: "<<endl; fout<< novosaldo<<endl; if(!fout){ cout<<"Erro ao escrever dados no arquivo"<<endl; return 0; } else{ cout<<"Extrato salvo com sucesso"<<endl; } } else if(resp == 2){ cout<< "Número da Conta: "<< p.numdaconta<<endl; cout<< "Número da Agência: "<< p.numdaagencia<<endl; cout<< "Nome do Titular: " << p.nomedotitular<< endl; cout<< "CPF: "<< p.cpf<< endl; cout<< "Saldo inicial: "<<p.saldoinicial<<endl; cout<< "Depósitos: "<<endl; for(int i=0; i<qtddeposito;i++){ cout<<valordeposito<<endl; } cout<<"Saques: "<<endl; for(int i=0; i<qtdsaque;i++){ cout<<valorsaque<<endl; } ///cout<< valorsaque<< "$"<<endl; cout<< "Saldo Final: "<<endl; cout<< novosaldo<<endl; } else{ cout<< "Opção Inválida!" <<endl; } fout.close(); system("pause"); } } if(opcao == 9){ cout<< "\t*** Obrigado e volte sempre ***"<< endl; return 0; } if(opcao >9){ cout<<"\t*** Opção Inválida! ***\n"; } } while(opcao != 9); return 0; } obrigado pela dica, é porque sou novo por aqui e estou desesperado por ajuda, pois tenho até terça para entregar o código funcionando
  3. Estou criando um sistema bancário em c++ (é um trabalho do meu curso, que exige que eu use essa linguagem) na última etapa, preciso que o programa mostre um extrato com todas as movimentações da conta, mas quando eu faço os depósitos na conta, ocorre um erro. por exemplo, o saldo inicial era 0 depositei 10 em seguida mais 20 no extrato aparece: depósitos feitos: 2 Valor dos depósitos: 20 20 ou seja, preciso de alguma forma imprimir o primeiro e segundo valor, e ele só está reconhecendo o segundo. alguém pode me ajudar?
×
×
  • Criar Novo...