Ir ao conteúdo
  • Cadastre-se

joaoufms

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá galera,estou com uma problema na minha serialização. Meu programa é para cadastrar Pessoas e Contas. No caso, meu professor pediu para usar MVC(a ideia básica) com os CRUDS. então eu tenho uma classe chamada ContaDAO, onde dentro dela eu tenho um ArrayList para criar uma conta, depois de adicionar no Array em ContaDAO, eu dou um setContas(), que é um método dentro da classe model Pessoa, pois dentro dela eu tenho um ArrayList de contas tambem. Para serialização, quando eu executo o programa deve ter um método para carregar pessoas e contas, quando fecho o programa deve-se ter um método para salvar pessoas e contas. O problema é: Quando eu vou criar mais uma conta para uma pessoa(pois neste trabalho, a pessoa pode ter mais de uma conta), ao invés do número da conta incrementar,ou seja, a nova conta ser a conta 02, ela fica 01. No caso meu professor pediu para o número da conta ser auto incremento. Eu estou serializando os array das duas classes. Neste caso como eu devo fazer para não dar este problema de incremento? Método na classe ContaDAO: public void serializarContasc(){ try { FileOutputStream fos = new FileOutputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contac.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(list2); oos.close(); fos.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } public Object carregarObjetoContac(){ try { FileInputStream fiz = new FileInputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contac.txt"); ObjectInputStream ois = new ObjectInputStream(fiz); Object obj = ois.readObject(); ois.close(); fiz.close(); return obj; } catch (IOException ioe) { //System.out.println("\nPrimeira vez sendo utilizado, não há Contas salvas!"); return null; } catch (ClassNotFoundException c) { System.out.println("\nClasse não encontrada!"); c.printStackTrace(); return null; } } public void carregarContasc(){ ArrayList<Conta> contas = (ArrayList<Conta>)carregarObjetoContac(); if(contas!=null){ list2 = contas; //System.out.println(list2); }else{ System.out.println("\nAinda não tem Contas cadastradas"); } } } Método na classe model Pessoa: public void serializarContasp(){ try { FileOutputStream fos = new FileOutputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contap.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(contas); oos.close(); fos.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } public Object carregarObjetoContap(){ try { FileInputStream fiz = new FileInputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contap.txt"); ObjectInputStream ois = new ObjectInputStream(fiz); Object obj = ois.readObject(); ois.close(); fiz.close(); return obj; } catch (IOException ioe) { //System.out.println("\nPrimeira vez sendo utilizado, não há Contas salvas!"); return null; } catch (ClassNotFoundException c) { System.out.println("\nClasse não encontrada!"); c.printStackTrace(); return null; } } public void carregarContas(){ ArrayList<Conta> conta = (ArrayList<Conta>)carregarObjetoContap(); if(conta!=null){ contas = conta; } } }
  2. Boa tarde galera, tenho um código com as classes abaixo, tenho um vetor de contas dentro da classe Pessoa, na classe principal eu tenho uma opção para criar conta, onde o usuário digita seu cpf e outros dados da conta, como posso fazer para relacionar a pessoa que tem o cpf que foi digitado com a conta e adicionar a conta no vetor? Classe Principal: import java.util.Scanner; public class Principal { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int op; Banco banco = new Banco(); do { System.out.println("1 - Cadastrar pessoa"); System.out.println("2 - Criar conta"); System.out.println("3 - Verificar dados pessoais"); System.out.println("4 - Extrato da Conta"); System.out.println("Escolha uma Opcao:"); op = scan.nextInt(); scan.nextLine(); Pessoa p; Conta c; switch (op) { case 1: System.out.println("Digite seu Nome: "); String nome = scan.nextLine(); System.out.println("Digite sua Data de Nascimento: "); String dtn = scan.nextLine(); System.out.println("Digite seu Sexo: "); String sexo = scan.nextLine(); System.out.println("Digite seu CPF: "); String cpf = scan.nextLine(); p = new Pessoa(); p.setNome(nome); p.setDtn(dtn); p.setSexo(sexo); p.setCpf(cpf); banco.addPessoa(p); break; case 2: System.out.println("Digite seu CPF: "); String cpf = scan.nextLine(); System.out.println("Digite uma Senha para a conta: "); int senha = scan.nextInt(); System.out.println("Digite o Numero da conta: "); int numero = scan.nextInt(); System.out.println("Digite o Saldo para conta: "); double saldo = scan.nextDouble(); System.out.println("Digite a Agencia da conta: "); int agencia = scan.nextInt(); break; case 3: banco.infoPessoa(); break; case 4: banco.infoConta(); default: if (op == 0) { System.out.println("Programa Encerrado"); } else { System.out.println("Opcao Inválida"); } break; } } while (0 != op); } } Classe Pessoa: public class Pessoa { private String nome; private String dtn; private String sexo; private String cpf; private Conta [] contas = new Conta[100]; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getDtn() { return dtn; } public void setDtn(String dtn) { this.dtn = dtn; } public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } public String getCpf() { return cpf; } public void setCpf(String cpf) { this.cpf = cpf; } /public Conta[] getContas(){ return contas; } public void setContas(Conta[] con){ this.contas = contas; } public String infoPessoa() { return "\nNome: " + nome + "\ndtn: " + dtn + "\nSexo: " + sexo + "\nCPF: " + cpf+"\n"; } } Classe Conta: public class Conta { private double saldo; private int senha; private int numero; private int agencia; public double getSaldo() { return saldo; } public void setSaldo(double saldo) { this.saldo = saldo; } public int getSenha() { return senha; } public void setSenha(int senha) { this.senha = senha; } public int getNumero() { return numero; } public void setNumero(int numero) { this.numero = numero; } public int getAgencia() { return agencia; } public void setAgencia(int agencia) { this.agencia = agencia; } //public depositar(double valor){ //this.saldo += valor; // } public String infoConta() { return "\nNumero da Conta: " + numero + "\nAgencia: " + agencia + "\nSaldo da Conta: " + saldo +"\n"; } } Classe Banco: Classe banco: import java.util.Scanner; public class Banco { Scanner scan = new Scanner(System.in); private int qtdP = 0; private Pessoa[] pessoas = new Pessoa[100]; public int tamanhoPessoa() { return this.qtdP; } public void addPessoa(Pessoa c) { this.pessoas[qtdP] = c; qtdP++; System.out.print("Cadastro Realizado com Sucesso!\n\n"); } public void infoPessoa() { System.out.println("Digite o CPF para buscar: "); String busca = scan.nextLine(); Pessoa buscaPessoa = null; for (int i = 0; i < this.tamanhoPessoa(); i++) { Pessoa p = pessoas[i]; if (p.getCpf().equals(busca)) { buscaPessoa = p; break; }else{ buscaPessoa = null; } } if (buscaPessoa == null) { System.out.println("\nCliente não foi encontrado\n"); } else { System.out.println("\nInformações do Cliente:\n"+buscaPessoa.infoPessoa()); } } }
  3. Olá galera, não estou conseguindo fazer uma busca no vetor, peço pro usuário digitar o cpf e logo em seguida faço a consulta. O exercício é um sistema de cadastro de pessoas e contas, por enquanto eu estou cadastrando só pessoa, então caso a pessoa queira ver seu cadastro ela digita o cpf. O código estou executando no prompt. Minha classe principal onde tem o menu: import java.util.Scanner; public class Principal{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int op; do{ System.out.println("1 - Cadastrar pessoa"); System.out.println("2 - Criar conta"); System.out.println("3 - Verificar dados pessoais"); System.out.println("Escolha uma Opcao:"); op = scan.nextInt(); scan.nextLine(); Banco banco = new Banco(); switch(op){ case 1: System.out.println("Digite seu Nome: "); String nome = scan.nextLine(); System.out.println("Digite sua Data de Nascimento: "); String dtn = scan.nextLine(); System.out.println("Digite seu Sexo: "); String sexo = scan.nextLine(); System.out.println("Digite seu CPF: "); String cpf = scan.nextLine(); Pessoa p = new Pessoa(); p.setNome(nome); p.setDtn(dtn); p.setSexo(sexo); p.setCpf(cpf); banco.addP(p); break; case 3: banco.verDados(); break; default: if(op==0){ System.out.println("Programa Encerrado"); }else{ System.out.println("Opcao Inválida"); } } }while(0 !=op); } } Classe onde tem o método: import java.util.Scanner; public class Banco{ Scanner scan = new Scanner(System.in); private static int qtdP = 0; private static int qtdC = 0; private Conta contas[] = new Conta[100]; private Pessoa pessoas[] = new Pessoa[100]; public void addP(Pessoa c){ this.pessoas[qtdP] = c; qtdP++; } public void verDados(){ Pessoa p = new Pessoa(); String busca; System.out.println("Digite o CPF para buscar: "); busca = scan.nextLine(); for(qtdP=0; qtdP<100; qtdP++){ if(busca.equals(pessoas[qtdP].getNome())){ System.out.println("Nome: " +p.getNome()); }else if(qtdP == 100 - 1){ System.out.print("Pessoa nao encontrada!"); } } } } Erro que aparece: Exception in thread "main" java.lang.NullPointerException at Banco.verDados(Banco.java:23) at Principal.main(Principal.java:45)
  4. Boa Tarde, em relação ao que você me mandou nada funcionou, acredito que seja o php, vou tentar arrumar. Mas muito obrigado
  5. Boa Noite, olha então pelo que entendi o que falta é o php indicar se houve alteração no banco e chamar a função, mas eu nunca fiz isso tipo de coisa, você não pode me mostrar um exemplo?
  6. Boa tarde galera, sou novo usando ajax e estou tentando usar ajax para atualizar a página a cada inserção de novo registro no banco. Mas meu código esta atualizando infinitamente. O que eu fiz de errado. O primeiro código é o html com ajax e o segundo a consulta que fiz no banco. Alguém pode me ajudar? <!DOCTYPE html> <html lang="pt-br"> <head> <link rel="stylesheet" href="lanchescss.css"/> <meta charset="utf-8"> <title>Lista de Pedidos</title> <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> <script src="ajax.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> </head> <body> <div class="grid-container"> <div id = "db"> </div> </div> <script type="text/javascript"> $(document).ready(function(){ $('#db').empty(); setInterval(function(){ $.ajax({ type:'post', dataType: 'json', url: 'pedb.php', success: function(dados){ for(var i=0;dados.length>i;i++){ var d = $('#db'); d.append('<p> Pedido: '+dados[i].id+'</p>'); d.append('<p> Hambúrguer Pedido: '+dados[i].hamb+'</p>'); d.append('<p> Observação: '+dados[i].obs+'</p>'); } } }); }, 1000); }); </script> </body> </html> ?php $con = new mysqli("localhost", "root", "", "lanche"); if (mysqli_connect_errno()) trigger_error(mysqli_connect_error()); $qryLista = mysqli_query($con, "SELECT *FROM pedido WHERE DATE(NOW())"); while($resultado = mysqli_fetch_assoc($qryLista)){ $vetor[] = array_map('utf8_encode', $resultado); } echo json_encode($vetor); ?>
  7. Não estou conseguindo salvar minha lista de caminhoes em um arquivo(é a ultima função.O que estou errando? #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> typedef struct caminhoes{ int id; char motorista[200]; char marca[200]; char la[200]; char lisd[200]; float kml; struct caminhoes *prox; }lcam; typedef struct cargas{ int id; char produto[200]; char origem[200]; char destino[200]; float vfrete; struct cargas *prox; }lcar; typedef struct cidades{ int id; char nome[200]; char vizinhos[200]; char distancia[200]; float você; struct cidades *prox; }lcid; void cad_cam(lcam **cabeca); void cad_car(lcar **carcabeca); void cad_cid(lcid **cidcabeca); void imp_cam(lcam *cabeca); void imp_car(lcar *carcabeca); void imp_cid(lcid *cidcabeca); void salva(lcam *cabeca); int main() { setlocale(LC_ALL, "Portuguese"); lcam *cabeca = NULL; lcam *noatual; lcar *carcabeca = NULL; lcar *carnoatual; lcid *cidcabeca = NULL; lcid *cidnoatual; int op; printf("0 - Fechar \n"); printf("1 - Cadastrar Caminhão \n"); printf("2 - Cadastrar Carga \n"); printf("3 - Cadastrar Cidade \n"); printf("4 - Imprimir Caminhão\n" ); printf("5 - Imprimir Cargas\n"); printf("6 - Imprimir Cidades\n"); printf("7 - Salvar Caminhao em Arquivo \n"); printf("8 - Excluir Cargas \n"); printf("9 - Excluir Cidades \n"); printf("10 - Relatórios \n"); printf("Digite uma opcao: \n"); scanf("%d", &op); while(op!=0){ switch(op){ case 0:{ op=0; break; } break; case 1: cad_cam(&cabeca); break; case 2: cad_car(&carcabeca); break; case 3: cad_cid(&cidcabeca); break; case 4: imp_cam(cabeca); break; case 5: imp_car(carcabeca); break; case 6:imp_cid(cidcabeca); break; case 7:salvacam(&cabeca); break; case 8: break; case 9: break; case 10: break; } printf("0 - Fechar \n"); printf("1 - Cadastrar Caminhão \n"); printf("2 - Cadastrar Carga \n"); printf("3 - Cadastrar Cidade \n"); printf("4 - Imprimir Caminhão\n" ); printf("5 - Imprimir Cargas\n"); printf("6 - Imprimir Cidades\n"); printf("7 - Salvar Caminhao em Arquivo \n"); printf("8 - Excluir Cargas \n"); printf("9 - Excluir Cidades \n"); printf("10 - Relatórios \n"); printf("Digite uma opcao: \n"); scanf("%d", &op); } } void cad_cam (lcam **cabeca) { setlocale(LC_ALL, "Portuguese"); lcam *noatual, *novono; int id; char mot[200]; char mar[200]; char loca[200]; char lisd[200]; float kml; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Motorista:\n"); scanf("%[^\n]s", &mot); setbuf(stdin, NULL); printf("Marca:\n"); scanf("%[^\n]s", &mar); setbuf(stdin, NULL); printf("Local Atual:\n"); scanf("%[^\n]s", &loca); setbuf(stdin, NULL); printf("Lista de Destinos:\n"); scanf("%[^\n]s", &lisd); setbuf(stdin, NULL); printf("KM/L:\n"); scanf("%f", &kml); setbuf(stdin, NULL); if (*cabeca == NULL) { *cabeca = malloc(sizeof(lcam)); (*cabeca)->id = id; strcpy((*cabeca)->motorista, mot); strcpy((*cabeca)->marca, mar); strcpy((*cabeca)->la, loca); strcpy((*cabeca)->lisd, lisd); (*cabeca)->kml = kml; (*cabeca)->prox = NULL; } else{ noatual = *cabeca; while(noatual->prox != NULL) noatual = noatual->prox; novono = malloc(sizeof(lcam)); novono->id = id; strcpy(novono->motorista, mot); strcpy(novono->marca,mar); strcpy(novono->la,loca); strcpy(novono->lisd,lisd); novono->kml = kml; novono->prox = NULL; noatual->prox = novono; } } void cad_car (lcar **carcabeca) { setlocale(LC_ALL, "Portuguese"); lcar *carnoatual, *carnovono; int id; char prod[200]; char ori[200]; char dest[200]; float vf; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Produto:\n"); scanf("%[^\n]s", &prod); setbuf(stdin, NULL); printf("Origem:\n"); scanf("%[^\n]s", &ori); setbuf(stdin, NULL); printf("Destino:\n"); scanf("%[^\n]s", &dest); setbuf(stdin, NULL); printf("Valor do Frete:\nR$"); scanf("%f", &vf); setbuf(stdin, NULL); if (*carcabeca == NULL) { *carcabeca = malloc(sizeof(lcar)); (*carcabeca)->id = id; strcpy((*carcabeca)->produto, prod); strcpy((*carcabeca)->origem, ori); strcpy((*carcabeca)->destino, dest); (*carcabeca)->vfrete = vf; (*carcabeca)->prox = NULL; } else{ carnoatual = *carcabeca; while(carnoatual->prox != NULL) carnoatual = carnoatual->prox; carnovono = malloc(sizeof(lcar)); carnovono->id = id; strcpy(carnovono->produto, prod); strcpy(carnovono->origem,ori); strcpy(carnovono->destino,dest); carnovono->vfrete = vf; carnovono->prox = NULL; carnoatual->prox = carnovono; } } void cad_cid (lcid **cidcabeca) { setlocale(LC_ALL, "Portuguese"); lcid *cidnoatual, *cidnovono; int id; char nome[200]; char viz[200]; char dist[200]; float vac; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Nome da Cidade:\n"); scanf("%[^\n]s", &nome); setbuf(stdin, NULL); printf("Digite o Valor do Combistível:\nR$"); scanf("%f", &vac); setbuf(stdin, NULL); if (*cidcabeca == NULL) { *cidcabeca = malloc(sizeof(lcid)); (*cidcabeca)->id = id; strcpy((*cidcabeca)->nome, nome); (*cidcabeca)->você = vac; (*cidcabeca)->prox = NULL; } else{ cidnoatual = *cidcabeca; while(cidnoatual->prox != NULL) cidnoatual = cidnoatual->prox; cidnovono = malloc(sizeof(lcid)); cidnovono->id = id; strcpy(cidnovono->nome, nome); cidnovono->você = vac; cidnovono->prox = NULL; cidnoatual->prox = cidnovono; } } void imp_cam(lcam *noatual) { setlocale(LC_ALL, "Portuguese"); while( noatual != NULL) { printf("\nID:%d\n", noatual->id); printf("Motorista:%s\n", noatual->motorista); printf("Marca:%s\n", noatual->marca); printf("Local Atual:%s\n", noatual->la); printf("Lista de Destinos:%s\n", noatual->lisd); printf("KM/L:%.2f\n", noatual->kml); noatual = noatual->prox; } } void imp_car(lcar *carnoatual) { setlocale(LC_ALL, "Portuguese"); while( carnoatual != NULL) { printf("\nID:%d\n", carnoatual->id); printf("Produto:%s\n", carnoatual->produto); printf("Origem:%s\n", carnoatual->origem); printf("Destino:%s\n", carnoatual->destino); printf("Valor do Frete:R$%.2f\n", carnoatual->vfrete); carnoatual = carnoatual->prox; } } void imp_cid(lcid *cidnoatual) { setlocale(LC_ALL, "Portuguese"); while( cidnoatual != NULL) { printf("\nID:%d\n", cidnoatual->id); printf("Nome da Cidade:%s\n", cidnoatual->nome); printf("Valor do Combustível:%.2f\n", cidnoatual->você); cidnoatual = cidnoatual->prox; } } void salvacam(lcam **cabeca){ lcam *noatual; FILE *arquivo; arquivo = fopen("Caminhões.txt", "w"); if(arquivo = NULL){ printf("Erro na Abertura do Arquivo"); } else{ if((*cabeca)->noatual == NULL){ fprintf(arquivo,"Lista Vazia!\n"); } else{ while(noatual != NULL){ fprintf(arquivo,"ID:%d\n", noatual->id); fprintf(arquivo,"Motorista:%s\n", noatual->motorista); fprintf(arquivo,"Marca:%s\n", noatual->marca); fprintf(arquivo,"Local Atual:%s\n", noatual->la); fprintf(arquivo,"Lista de Destinos:%s\n", noatual->lisd); fprintf(arquivo,"Marca:%s\n", noatual->kml); noatual = noatual->prox; } } } fclose(arquivo); printf("Salvo com Sucesso!"); }

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