Ir ao conteúdo
  • Cadastre-se

Buzina Lopes

Membro Pleno
  • Posts

    26
  • Cadastrado em

  • Última visita

Tudo que Buzina Lopes postou

  1. entendi, é que eu fiquei bugado na hora de setar usando o get. Achei bom, mas nunca tinha visto antes, muito obrigado a ajuda foi boa
  2. @RafaelCLP rapaz funcionou, mas agora fiquei bugadao teria como explicar esse get dentro do set por favor?
  3. @devair1010 eu não entendi porque o meu jeito está errado, poderia explicar de novo por favor? e muito obrigado pela ajuda
  4. #include<iostream> #include<string.h> #include<fstream> #include<cstdio> using namespace std; /*2 Descrição O objetivo deste trabalho é desenvolver um sistema de gerência bancário. Esse sistema deverá ser capaz de cadastrar novos clientes e fazer operações de crédito rotineiras para cada cliente. Também deverá ser disponibilizada uma opção para a exclusão de clientes do sistema. A representação de um cliente poderá ser através das classes já implementadas em sala de aula. Além disso, deverá ser implementada uma lista de clientes. Essa lista deverá ser salva em um arquivo chamado clientes.txt toda vez que for feita uma alteração no banco de dados de clientes (por exemplo, adicionar ou remover um novo cliente). Cada cliente deverá ser identificado por um número de conta único, dentro de sua própria agência. Diferentes agências deverão possuir números diferentes. Poderá ocorrer de duas contas possuírem números iguais porém com agências diferentes. Para este trabalho, considere que uma pessoa possui apenas uma conta dentre todas as agências. O programa deverá permitir a adição de novas agências ao sistema, que deverão estar listadas em um arquivo chamado agencias.txt. Cada agência é definida por um número único e um endereco. Não é possível haver agência sem endereço! 3 Funcionalidades O sistema deverá apresentar as seguintes funcionalidades mínimas: • Cadastrar e excluir novos clientes. • Cadastrar novas agências. • Pesquisar por clientes, utilizando o nome ou Conta c/ Agência. • Listar total de fundos por agência • Saques, depósitos, e transferências entre contas*/ class Cliente { private: string Nome; int Idade; public: void Cadastrar() { cout << "Digite o nome do cliente: " << endl; cin.ignore(); getline(cin, Nome); cout << "Digite a idade do cliente: " << endl; cin >> Idade; } void SetNome(string Nome) { this->Nome = Nome; } void SetIdade(int Idade) { this->Idade = Idade; } string GetNome() { return Nome; } int GetIdade() { return Idade; } void RemoveCliente() { delete &Nome; delete &Idade; } friend ostream& operator<<(ostream& os, const Cliente& c) { // escrever cada membro os << "\n" << c.Nome << "\n"; os << c.Idade; return os; } }; class Agencia: public Cliente { private: int IdAgencia; string NomAgen; string Endereco; int NumContaCli; fstream Agencia; public: void CadastrarAgencia() { cout << "Nome da Agencia: " << endl; cin.ignore(); getline(cin, NomAgen); cout << "Digite o Endereco: " << endl; getline(cin, Endereco); while(Endereco.size() == 0) { cout << "A agencia precisa de um endereco, entre com um: " << endl; getline(cin, Endereco); } cout << "Digite a Identificacao da Agencia: " << endl; cin >> IdAgencia; Agencia.open("Agencia.txt"); Agencia << IdAgencia << endl; Agencia << Endereco << endl; Agencia.close(); } void Cadastrar() { Cliente::Cadastrar(); cout << "Digite a identificacao do cliente: " << endl; cin >> NumContaCli; } void SetNumConta(int Id) { this->NumContaCli=Id; } void ListarAgencia() { string Linha; Agencia.open("Agencia.txt"); while(!Agencia.eof()) { getline(Agencia, Linha); cout << Linha << endl; cout << endl; } Agencia.close(); } void Removecliente() { Cliente::RemoveCliente(); delete &NumContaCli; } int GetNumConta() { return NumContaCli; } }; int main() { int Escolha; int NConta; string Name, Nome; int Idade, Id; cout << "Digite 1 para Cadastrar Cliente: " << endl; cout << "Digite 2 para Excluir Cliente: " << endl; cout << "Digite 3 procurar cliente pelo Nome ou Número da conta: " << endl; cout << "Digite 4 para cadastrar uma agencia:" << endl; cout << "Digite a escolha:" << endl; cin >> Escolha; Cliente c; Agencia Age; while(true) { if(Escolha == 1) { Age.Cadastrar(); // app = append (adiciona ao final do arquivo) ofstream ofs("arquivo.txt", fstream::app); // seta o nome e a idade c.SetNome(Nome); c.SetIdade(Idade); // escrever cada membro ofs <<c; ofs.close(); fflush(stdin); cout << "O que deseja fazer agora?" << endl; cin >> Escolha; } else if(Escolha == 2) { cout << "Digite a identificacao do cliente: " << endl; fflush(stdin); cin >> NConta; if(NConta == Age.GetNumConta()) { Age.Removecliente(); } break; cout << "O que deseja fazer agora?" << endl; cin >> Escolha; } else if(Escolha == 3) { cout << "Digite o Nome: " << endl; cin.ignore(); getline(cin, Name); cout << "Digite o Numero da conta: " << endl; cin >> NConta; cout << "\n"; break; cout << "O que deseja fazer agora?" << endl; fflush(stdin); cin >> Escolha; } else if(Escolha == 4) { int NumAgencia; cout << "Deseja cadastrar quantas agencias: " << endl; cin >> NumAgencia; Age.CadastrarAgencia(); break; } } } Se alguém me puder ajudar a como passar os dados continuamente seria de grande ajuda!
  5. #include <iostream> using namespace std; /*Classe Conta Bancária: Implemente uma classe para representar uma conta bancária. • Propriedades: – Número da conta bancária – Número da agência – Pessoa, utilizando a classe Pessoa acima – Saldo, representando o saldo atual • Métodos: – int sacar(int valor): saca uma determinada quantidade da conta do cliente. Retorna a quantidade que foi sacada caso seja bem sucedido ou 0 caso não seja possível – void depositar(int valor): deposita uma determinada quantidade na conta do cliente.*/ class Pessoa { private: string nome; long long int cpf; int rg; int DataDeNascimento; string Endereco; public: bool VerificaCpf(long long int cpf); void Cadastrar() { cout << "Digite o nome:" << endl; getline(cin, nome); cin.ignore(); cout << "Digite o cpf:" << endl; cin >> cpf; while(VerificaCpf(cpf) == false) { cout << "Cpf invalido, tente novamente" << endl; cin >> cpf; } cout << "Digite o Rg:" << endl; cin >> rg; cout << "Digite a data de nascimento" << endl; cin >> DataDeNascimento; cout << "Digite o endereco:" << endl; cin.ignore(); getline(cin, Endereco); } }; //Verifica se o Cpf é válido bool Pessoa::VerificaCpf(long long int cpf) { int SomaCpf, SomaCpf2, resto1, resto2; long int num11; int num10, num9, num8, num7, num6, num5, num4, num3, num2, num1; num11 = ((cpf / 10000000000) % 10); num10 = ((cpf / 1000000000) % 10); num9 = ((cpf / 100000000) % 10); num8 = ((cpf / 10000000) % 10); num7 = ((cpf / 1000000) % 10); num6 = ((cpf / 100000) % 10); num5 = ((cpf / 10000) % 10); num4 = ((cpf / 1000) % 10); num3 = ((cpf / 100) % 10); num2 = ((cpf / 10) % 10); num1 = cpf % 10; SomaCpf = ((num11 * 10) + (num10 * 9) + (num9 * 8) + (num8 * 7) + (num7 * 6) + (num6 * 5) + (num5 * 4) + (num4 * 3) + (num3 * 2)); SomaCpf2 = ((num11 * 11) + (num10 * 10) + (num9 * 9) + (num8 * 8) + (num7 * 7) + (num6 * 6) + (num5 * 5) + (num4 * 4) + (num3 * 3) + (num2 * 2)); resto1 = ((SomaCpf * 10) % 11); resto2 = ((SomaCpf2 * 10) % 11); if((num1 == num2) && (num2 == num3) && (num3 == num4) && (num4 == num5) && (num5 == num6) && (num6 == num7) && (num7 == num8) && (num8 == num9) && (num9 == num10) && (num10 == num11)) { return false; } if (resto2 == 10) { resto2 = 0; } if((resto1 == num10) && (resto2 == num11)) { return true; } else { return false; } } class ContaBancaria: public Pessoa { private: int Saldo; int ContaBancaria; public: void Cadastrar() { Pessoa::Cadastrar(); cout << "Digite o Saldo: " << endl; cin >> Saldo; cout << "Digite o Número da Conta: " << endl; cin >> ContaBancaria; } int Sacar(int Sacar) { if(Saldo > 0) { return Saldo - Sacar; cout << "Saldo atual eh:" << Saldo - Sacar << endl; } else { cout << "A conta esta vazia"; } } void Depositar(int Deposito) { Saldo = Saldo + Deposito; } int GetSaldo() { return Saldo; } }; int main(int argc, char *argv[]) { int Escolha; int Sacar = 0; int Saldo = 0; int Deposito = 0; ContaBancaria CB; do { cout << "\nDigite 1 para Cadastrar " << endl; cout << "Digite 2 para Sacar " << endl; cout << "Digite 3 para Depositar " << endl; cout << "Digite 4 para ver saldo " << endl; cin >> Escolha; if(Escolha == 1) { CB.Cadastrar(); } if(Escolha == 2) { cout << "Digite o valor a ser sacado: " << endl; cin >> Sacar; CB.Sacar(Sacar); cout << Sacar << endl; cout << Saldo; } if(Escolha == 3) { cout << "Digite o valor a ser depositado: " << endl; cin >> Deposito; cout << Deposito << endl; cout << Saldo; } if(Escolha == 4) { cout << CB.GetSaldo() << endl; } } while(Escolha > 0 && Escolha < 4); return 0; }
  6. @TYSQUARE89 nem todo herói veste capa, tá certinho segundo as condições do Professor. Muito Obrigado
  7. Quando eu inicializo tudo em um construtor dá certo adicionado 0 minutos depois @CiroboyBR eita rapaz vou tentar aqui, poderia me dar uma ideia geral de como eu faria isso?
  8. Resultado esperado: 9 24 4052 -1 0 1 Resultado do programa: 437134 213243 2531515
  9. O problema é que os valores não estão batendo adicionado 3 minutos depois ?
  10. @CiroboyBR então porque meu código nao esta funcionando? class Datas { private: int dia, mes, ano, anoatual, mesatual, diaatual; public: Datas(int dia, int mes, int ano); Datas(); void SomaDatas() { int a, b, c; a = diaatual + dia; b = mesatual + mes; c = anoatual + ano; cout << a << endl; cout << b << endl; cout << c << endl; } void SubtraiDatas() { int a, b, c; a = diaatual - dia; b = mesatual - mes; c = anoatual - ano; cout << a << endl; cout << b << endl; cout << c << endl; } }; Datas::Datas() { struct tm *local; time_t t; time(&t); local = localtime(&t); int anoatual = local->tm_year; anoatual = anoatual + 1900; int diaatual = local->tm_mday; int mesatual = local->tm_mon + 1; this->diaatual = diaatual; this->mesatual = mesatual; this->anoatual = anoatual; } Datas::Datas(int dia, int mes, int ano) { this->dia = dia; this->mes = mes; this->ano = ano; } int main() { Datas f2(4, 12, 2018); f2.SomaDatas(); }
  11. sim, essa questão eu consegui fazendo um construtor só. Mas não sei como faz pra usar dois
  12. Como faço para usar dois construtores como na seguinte questão? Classe Data: Implemente uma classe para representar datas. • Propriedades: – ano – mês – dia • Métodos construtores: – Construtor-padrão: deverá iniciar os campos de data com a data atual (procure no header time.h como você pode fazer isso) – Um construtor onde deverão ser passados os 3 campos da data • Métodos: – Data soma(Data somaData): Soma a data representada pelo objeto com a data recebida como parâmetro, retornando um novo objeto representado a nova data. – Data subtrai(Data subtraiData): Igual à soma, porém realiza a subtração das duas datas
  13. Calma rapaz acabei de começar na brincadeira
  14. Mas qual a necessidade de usar this-> ?
  15. #include<iostream> #include<time.h> using namespace std; /* Classe Data: Implemente uma classe para representar datas. • Propriedades: – ano – mês – dia • Métodos construtores: – Construtor-padrão: deverá iniciar os campos de data com a data atual (procure no header time.h como você pode fazer isso) – Um construtor onde deverão ser passados os 3 campos da data • Métodos: – Data soma(Data somaData): Soma a data representada pelo objeto com a data recebida como parâmetro, retornando um novo objeto representado a nova data. – Data subtrai(Data subtraiData): Igual à soma, porém realiza a subtração das duas datas*/ class Datas { private: int dia; int mes; int ano; public: Datas(); Datas(int dia, int mes, int ano); void SomaDatas(int dia, int mes, int ano, int idaatual, int mesatual, int anoatual); }; Datas::Datas() { time_t t = time(NULL); tm *ltm = localtime(&t); int anoatual, mesatual, diaatual; anoatual = 1900 + ltm->tm_year; mesatual = 1 + ltm->tm_mon; diaatual = ltm->tm_mday; } Datas::Datas(int dia, int mes, int ano) { dia = 02; mes = 11; ano = 2017; } void Datas::SomaDatas(int dia, int mes, int ano, int diaatual, int mesatual, int anoatual) { int a, b, c; a = diaatual - dia; b = mesatual - mes; c = anoatual - ano; cout << a << endl; cout << b << endl; cout << c << endl; } int main() { Datas f; f.SomaDatas(); }
  16. #include<stdio.h> #include<stdlib.h> /* Dados 2 vetores inteiros, obtenha o vetor resultante que contenha nesta ordem: o menor elemento do segundo vetor, a parte inteira da media dos elementos do primeiro vetor, o menor par negativo do segundo vetor e o maior impar positi- vou do primeiro vetor, suponha que exista pelo menos uma ocorrencia de cada situ- ação*/ //Menor elemento vetor 2 int MenorElemVetor2(int v2[], int n1) { int i, menor = v2[0]; for(i = 0; i < n1; i++) { if(menor > v2[i]) { menor = v2[i]; } } return menor; } //Media elemento vetor 1 int MediaElemVetor1(int v1[], int n1) { int i, media = 0; for(i = 0; i < n1; i++) { media = media + v1[i]; } return media / n1; } //Menor, par e negativo vetor 2 int MenorParNegaVetor2(int v2[], int n2) { int i, mpn = 0, mpn1 = 0; for(i = 0; i < n2; i++) { if(v2[mpn] > v2[i]) { mpn = i; } } if((v2[mpn] < 0)&&(v2[mpn] % 2 == 0)) { mpn1 = v2[mpn]; } return mpn1; } //Maior, impar e positivo vetor 1 int MaiorImparPositivoVetor1(int v1[], int n1) { int i, mip = 0, mip1 = 0; for(i = 0; i < n1; i++) { if(v1[i] > v1[mip]) { mip = i; } } if((v1[mip] % 2 != 0) && (v1[mip] > 0)) { mip1 = v1[mip]; } return mip1; } void BotaNolugar(int vres[], int MeVet2, int MediaVet1, int MenPaNegVet2, int MaiImpaPosVet1) { vres[0] = MeVet2; vres[1] = MediaVet1; vres[2] = MenPaNegVet2; vres[3] = MaiImpaPosVet1; } void PrintaVetor(int vres[]) { int i; for(i = 0; i < 4; i++) { printf("Resultado da %d condicao: %d\n", i, vres[i]); } } int main() { int n1, n2, *v1, *v2, *vres, i; printf("Digite o tamanho do primeiro vetor:\n"); scanf("%d", &n1); printf("Digite o tamanho do segundo vetor:\n"); scanf("%d", &n2); v1 = (int*)malloc(n1 * sizeof(int)); v2 = (int*)malloc(n2 * sizeof(int)); vres = (int*)malloc((n1 + n2) * sizeof(int)); printf("Digite os elementos do primeiro vetor:\n"); for(i = 0; i < n1; i++) { scanf("%d", &v1[i]); } printf("Digite os elementos do segundo vetor:\n"); for(i = 0; i < n2; i++) { scanf("%d", &v2[i]); } int MeVet2 = MenorElemVetor2(v2, n1); int MediaVet1 = MediaElemVetor1(v1, n1); int MenPaNegVet2 = MenorParNegaVetor2(v2, n2); int MaiImpaPosVet1 = MaiorImparPositivoVetor1(v1, n1); BotaNolugar(vres, MeVet2, MediaVet1, MenPaNegVet2, MaiImpaPosVet1); PrintaVetor(vres); } Não sei porque mas a terceira condição não está funcionando direito
  17. @iHollyZinhOMeu Jesus que erro boçal, muito obrigado me ajudou demais perdi horas tentando achar o erro
  18. Em anexo está uma imagem que mostra o tipo de erro que está dando... adicionado 30 minutos depois @iHollyZinhO Ta ai o erro
  19. #include <stdlib.h> #include <stdio.h> /*Dados dois vetores de inteiros pegue o maior elemento do primeiro vetor, troque o o menor do segundo. Devolva os impares do segundo vetor */ int MaiorVetor1(int v1[],int n1){ int i,IndMaior=0; for(i=0;i<n1;i++){ if(v1[i]>v1[IndMaior]){ IndMaior=i; } } return IndMaior; } int MenorVetor2(int v2[],int n2){ int i,IndMenor=0; for(i=0;i<n2;i++){ if(v2[i]>v2[IndMenor]){ IndMenor=i; } } return IndMenor; } void Troca(int v1[],int v2[],int ima ,int ime){ int aux; aux=v1[ima]; v1[ima]=v2[ime]; v2[ime]=aux; } int ExtraiImpar(int v2[],int n2,int vimpar[]){ int i,ni; for(i=0;i<n2;i++){ if(v2[i]%2!=0){ vimpar[ni]=v2[i]; ni++; } } return ni; } int Concatena(int vimpar[],int ni,int vres[]){ int i,nvr=0; for(i=0;i<ni;i++){ vres[nvr]=vimpar[i]; nvr++; } while(i<ni){ vres[nvr] = vimpar[i]; nvr++; i++; } return nvr; } void printa_vetor(int v[], int n){ int i; for(i = 0;i <n;i++) { printf("%d ",v[i]); } printf("\n"); } /*int Concatena(int v1[],int v2[],int n1,int n2){ int i,j,nvr=0,vres[nvr]; for(i=0;i<n1;i++){ vres[nvr]=v1[i]; nvr++; } for(j=0;j<n2;j++){ vres[nvr]=v2[j]; nvr++; } for(nvr=0;nvr<(n1+n2);nvr++){ printf(" %i",vres[nvr]); } }*/ int main(){ int n1,n2,i,ima,ime,*v1,*v2,*vres,*vimpar,ni,co; printf("Digite o tamanho do vetor 1:\n"); scanf("%i",&n1); printf("Digite o tamanho do vetor 2:\n"); scanf("%i",&n2); v1=(int*)malloc(n1*sizeof(int)); v2=(int*)malloc(n2*sizeof(int)); vimpar=(int*)malloc(n2*sizeof(int)); vres=(int*)malloc(n2*sizeof(int)); printf("Digite os elementos do vetor 1:\n"); for(i=0;i<n1;i++){ scanf("%d",&v1[i]); } printf("Digite os elementos do vetor 2:\n"); for(i=0;i<n2;i++){ scanf("%d",&v2[i]); } ima=MaiorVetor1(v1,n1); ime=MenorVetor2(v2,n2); Troca(v1,v2,ima,ime); ni=ExtraiImpar(v2,n2,vimpar); Troca(v1,v2,ima,ime); co=Concatena(vimpar,ni,vres); printa_vetor(vimpar, ni); printa_vetor(vres,co); }
  20. #include <stdlib.h> #include <stdio.h> int Particao(int v[],int p,int q){ int i,j,x,aux; x=v[p]; i=p; for(j=p+1;i<=q;j++){ if(v[j]<=x){ i++; aux=v[j]; v[j]=v[i]; v[i]=aux; } } aux=v[i]; v[i]=v[p]; v[p]=aux; return i; } void QuickSort(int v[],int p,int q){ int r; if(p<q){ r=Particao(v,p,q); QuickSort(v,p,r-1); QuickSort(v,r+1,q); } } int main(){ int n,i; printf("Digite o tamanho do vetor:\n"); scanf("%i",&n); int v[n]; printf("Digite os elementos do vetor:\n"); for(i=0;i<n;i++){ scanf("%i",&v[i]); } QuickSort(v,0,n); for(i=0;i<n;i++){ printf("%i",v[i]); } }
  21. #include <stdlib.h> #include <stdio.h> /* Exibir todos os elementos que não se repetem em um vetor, o programa não está funcionando da forma que eu queria e eu não sei consertar ficarei muito grato se alguém puder me ajudar*/ int main(){ int i,c=0,vetor1[6],vres[6]; printf("Digite os elementos do vetor:\n"); for(i=0;i<6;i++){ scanf("%i",&vetor1); } for(i=0;i<6;i++){ if(vetor1==vetor1[i+1]){ vres[c]=vetor1; c++; } } printf("Esses numeros nao se repetem:\n"); for(c=0;c<6;c++){ printf("%i\n",vres[6]); } }
  22. devair1010, muito obrigado pela sua ajuda, foi muito útil para mim
  23. #include <stdlib.h> #include <stdio.h> /* Dados 2 vetores de inteiros, obtenha os pares do primeiro vetor, os impares do segundo e devolva os impares do segundo seguido dos pares do primeiro em um vetor único*/ int main(){ int n1,n2,n3; printf("Digite o tamanho do primeiro vetor:\n"); scanf("%i",&n1); printf("Digite o tamanho do segundo vetor:\n"); scanf("%i",&n2); n3=n1+n2; int v1[n1],v2[n2],i,par=0,imp=0,nvr=0,vres[n3],v[n3]; printf("Digite os numeros do primeiro vetor:\n"); for(i=0;i<n1;i++){ scanf("%i",&v1); } printf("Digite os numeros do segundo vetor:\n"); for(i=0;i<n2;i++){ scanf("%i",&v2); } for(i=0;i<n1;i++){ if(v1%2==0){ par++; } } for(i=0;i<n2;i++){ if(v2!=0){ imp++; } } for(par=0;par<n1;par=+2){ vres[nvr]=v[par]; nvr++; } for(imp=1;imp<n2;imp=+2){ vres[nvr]=v[imp]; nvr++; } for(nvr=0;nvr<n3;nvr++){ printf("%i\n",vres[nvr]); } }

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!