Ir ao conteúdo
  • Cadastre-se

tiiaguiinho

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá colega, muito obrigado. Consegui dar uma melhorada no código aqui, mas ainda to com um probleminha, eu queria montar um programa que fosse capaz de cadastra n(eni) pessoas e listasse todas essas pessoas cadastradas, no caso to limitando esse número de cadastros a 5 no meu programa, mas estou com problemas, pois não consigo cadastrar mais de 1 pessoa, mandarei o meu programa aqui se você conseguir me ajudar nessa ficarei muito agradecido. Meu programa está da seguinte forma: #include <iostream> #include <string.h> using namespace std; struct Pessoa { int codigoPessoa; char cpf[15]; // NNN.NNN.NNN-NN char nome[30]; int idade; }; Pessoa p1, lPessoas[5]; // 2 variaveis do tipo Pessoa FILE * arq; int i; int cadastraPessoa() { Pessoa p1; FILE * arq; int i; // DADOS DA PESSOA p1.codigoPessoa = rand() % 100; cout << "informe o cpf: "; cin >> p1.cpf; cout << "informe o nome: "; cin >> p1.nome; cout << "informe a idade: "; cin >> p1.idade; arq = fopen("pessoa.dat","wb"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } // GRAVACAO BINARIA fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); // ACRESCENTAR PESSOAS arq = fopen("pessoa.dat","ab"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } fwrite(&p1, sizeof(struct Pessoa), 2, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 3, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 4, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 5, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); return 0; } int listaPessoas() { arq = fopen("pessoa.dat","rb"); // read binario if (arq == NULL) { cout << "Erro na abertura do arquivo!"; return 0; } fread(&lPessoas[0], sizeof(struct Pessoa), 5, arq); cout << "Lendo arquivo...." << endl << endl; for(i=0;i<5;i++) { cout << "Codigo: " << lPessoas.codigoPessoa << endl; cout << "CPF: " << lPessoas.cpf << endl; cout << "Nome: " << lPessoas.nome << endl; cout << "Idade: " << lPessoas.idade << endl << endl; } fclose(arq); return 0; } int main() { int op; // opcao escolhida no menu // MENU do { cout << "1. Cadastrar Pessoa" << endl; cout << "2. Listar pessoas cadastradas" << endl; cout << "3. Encerrar o Programa" << endl; cout << "escolha opcao: "; cin >> op; switch (op) { case 1: cadastraPessoa(); break; case 2: listaPessoas(); break; case 3: cout << "Encerrando o programa..."; break; } } while (op != 3); return 0; } adicionado 1 minuto depois #include <iostream> #include <string.h> using namespace std; struct Pessoa { int codigoPessoa; char cpf[15]; // NNN.NNN.NNN-NN char nome[30]; int idade; }; Pessoa p1, lPessoas[5]; // 2 variaveis do tipo Pessoa FILE * arq; int i; int cadastraPessoa() { Pessoa p1; FILE * arq; int i; // DADOS DA PESSOA p1.codigoPessoa = rand() % 100; cout << "informe o cpf: "; cin >> p1.cpf; cout << "informe o nome: "; cin >> p1.nome; cout << "informe a idade: "; cin >> p1.idade; arq = fopen("pessoa.dat","wb"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } // GRAVACAO BINARIA fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); // ACRESCENTAR PESSOAS arq = fopen("pessoa.dat","ab"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } fwrite(&p1, sizeof(struct Pessoa), 2, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 3, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 4, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 5, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); return 0; } int listaPessoas() { arq = fopen("pessoa.dat","rb"); // read binario if (arq == NULL) { cout << "Erro na abertura do arquivo!"; return 0; } fread(&lPessoas[0], sizeof(struct Pessoa), 5, arq); cout << "Lendo arquivo...." << endl << endl; for(i=0;i<5;i++) { cout << "Codigo: " << lPessoas[i].codigoPessoa << endl; cout << "CPF: " << lPessoas[i].cpf << endl; cout << "Nome: " << lPessoas[i].nome << endl; cout << "Idade: " << lPessoas[i].idade << endl << endl; } fclose(arq); return 0; } int main() { int op; // opcao escolhida no menu // MENU do { cout << "1. Cadastrar Pessoa" << endl; cout << "2. Listar pessoas cadastradas" << endl; cout << "3. Encerrar o Programa" << endl; cout << "escolha opcao: "; cin >> op; switch (op) { case 1: cadastraPessoa(); break; case 2: listaPessoas(); break; case 3: cout << "Encerrando o programa..."; break; } } while (op != 3); return 0; }
  2. Olá galera, preciso fazer um programa que no menu tenha as seguintes opções: 1. cadastrar pessoa (codigo, nome, cpf, idade) 2. Listar pessoas 3. encerrar programa Sou meio leigo, então não sei bem o que estou fazendo de errado, mas já fiz o seguinte: #include <iostream> #include <string.h> struct Pessoa { int codigoPessoa; char cpf[15]; // NNN.NNN.NNN-NN char nome[30]; int idade; }; Pessoa p1, listaPessoas[5]; // 2 variaveis do tipo Pessoa FILE * arq; int i; int cadastraPessoa() { Pessoa p1, listaPessoas[5]; // 2 variaveis do tipo Pessoa FILE * arq; int i; // DADOS DA PESSOA p1.codigoPessoa = 123; strcpy(p1.cpf,"123.456.789-00"); strcpy(p1.nome,"Marcos"); p1.idade = 20; arq = fopen("pessoa.dat","wb"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } // gravacao binaria fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); // ACRESCENTAR PESSOAS arq = fopen("pessoa.dat","ab"); // write binario if (arq == NULL) { cout << "Erro na criacao do arquivo!"; return 0; } fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fwrite(&p1, sizeof(struct Pessoa), 1, arq); cout << "Gravando arquivo...." << endl << endl; fclose(arq); return 0; } int listaPessoas() { arq = fopen("pessoa.dat","rb"); // read binario if (arq == NULL) { cout << "Erro na abertura do arquivo!"; return 0; } fread(&listaPessoas[0], sizeof(struct Pessoa), 4, arq); cout << "Lendo arquivo...." << endl << endl; for(i=0;i<4;i++) { cout << "Codigo: " << listaPessoas.codigoPessoa << endl; cout << "CPF: " << listaPessoas.cpf << endl; cout << "Nome: " << listaPessoas.nome << endl; cout << "Idade: " << listaPessoas.idade << endl << endl; } fclose(arq); return 0; } int main() { int opc; // opcao escolhida no menu do { cout << "1. Cadastrar pessoa" << endl; cout << "2. Listar pessoa cadartrada" << endl; cout << "3. Encerrar o programa" << endl; cout << "escolha opcao: "; cin >> opc; swtich (opc) { case 1: cadastraPessoa(); break; case 2: listaPessoas(); break; case 3: cout << "Encerrando o programa..."; break; } } return 0; } caso queiram a especificação mais detalhada, segue o anexo: MATA37_TP3_2018_1.pdf

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