Ir para conteúdo
Fórum Script Brasil

Head

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Head postou

  1. Olá a todos! Primeira vez no tópico, e com pressa! Desculpem as ca**das. Estou fazendo um projeto em c++, mais especificamente, um cadastro. De que? Produtos em geral... Nada muito complexo não. O problema é que eu ainda não consegui arrumar as 2 ultimas funções que faltam pro projeto ficar bem feito. Quais são? Editar e Excluir cadastro. Meu projeto é este : #include<iostream> using namespace std; /* ***************************************************************** * Projeto: Register * * Autores: Thiago Rodrigues * * Guilherme XXXXXXXX * * 05/12/2009 * * 2º Periodo Eng.Elétrica - Inatel * * Prof. Rosana * * * * Descrição: * * Este programa serve para manter * * registrado os produtos que voce * * deseja fiscalizar, independentemente * * do produto. * * Bom uso. * ***************************************************************** */ struct dados { char nome[51]; //Nome do produto char dsc[501]; //Descrição do produto int qt; //Unidades int qtv; //Unidades vendidas int qtd; //Unidades defeituosas int D; //Dia entrada int M; //Mês entrada int A; //Ano entrada int HR; //Hora entrada int MIM; //Minutos entrada int SG; //Segundos entrada int DS; //Dia saida int MS; //Mês saida int AS; //Ano saida int HRS; //Hora saida int MIMS; //Minutos saida int SGS; //Segundos saida float preço; //Preço do produto } x; FILE *arquivo = NULL; int cont=0; void cadastrar(); void listar(); void procurar(); void editar(); void excluir(); int main() { system("color 80"); int op; system("date /t"); system("time /t"); arquivo = fopen("Register.txt","r+"); if(arquivo == NULL) { cout<<"Arquivo inexistente."<<endl; cout<<"Criando arquivo..."<<endl; arquivo = fopen("Register.txt","w+"); if(arquivo == NULL) { cout<<"não é possivel criar este arquivo!"<<endl; exit(1); } fseek(arquivo, 0, SEEK_SET); fwrite(&cont, sizeof(cont), 1, arquivo); } else { cout<<" "<<endl; cout<<" "<<endl; cout<<" Arquivo aberto com sucesso!"<<endl; fseek(arquivo, 0, SEEK_SET); fread(&cont, sizeof(cont), 1, arquivo); } do{ do{ cout<<" |--------------------------------------|"<<endl; cout<<" | Menu Register |"<<endl; cout<<" | |"<<endl; cout<<" | 1 - Registrar Produto |"<<endl; cout<<" | 2 - Produtos Registrados |"<<endl; cout<<" | 3 - Procurar Produto |"<<endl; cout<<" | 4 - Editar produto |"<<endl; cout<<" | 5 - Excluir produto |"<<endl; cout<<" | |"<<endl; cout<<" | 6 - Sair |"<<endl; cout<<" |--------------------------------------|"<<endl; cout<<" "<<endl; cout<<" Opcao: ";cin>>op; } while((op<1) || (op>6)); switch(op) { case 1: system("cls"); cadastrar(); break; case 2: system("cls"); listar(); break; case 3: system("cls"); procurar(); break; case 4: system("cls"); editar(); break; case 5: system("cls"); excluir(); break; case 6: system("cls"); cout<<"Saindo do programa..."<<endl; break; default: system("cls"); cout<<"Digite uma opcao valida"<<endl; } system("pause"); system("cls"); } while(op!=4); fclose(arquivo); } void cadastrar() { cout<<" -------------------------- Registro --------------------------"<<endl; cout<<" "<<endl; cout<<" Digite o nome do produto: "; cin.ignore(); cin.getline(x.nome, 50); cout<<" O preço do produto (Use '.' nos centavos): "; cin>>x.preço; cout<<" "<<endl; cout<<" -------------------------- Unidades --------------------------"<<endl; cout<<" "<<endl; cout<<" Total: "; cin>>x.qt; cout<<" Vendidas: "; cin>>x.qtv; cout<<" Defeituosas/Devolvidas: "; cin>>x.qtd; cout<<" "<<endl; cout<<" ----------------------- Data de entrada ----------------------"<<endl; cout<<" "<<endl; cout<<" Dia: "; cin>>x.D; cout<<" Mes: "; cin>>x.M; cout<<" Ano: "; cin>>x.A; cout<<" "<<endl; cout<<" ---------------------------- Hora ----------------------------"<<endl; cout<<" "<<endl; cout<<" Hora: "; cin>>x.HR; cout<<" Minuto: "; cin>>x.MIM; cout<<" Segundo: "; cin>>x.SG; cout<<" "<<endl; cout<<" ----------------------- Data de saida ------------------------"<<endl; cout<<" "<<endl; cout<<" Dia: "; cin>>x.DS; cout<<" Mes: "; cin>>x.MS; cout<<" Ano: "; cin>>x.AS; cout<<" "<<endl; cout<<" ----------------------- Hora de saida ------------------------"<<endl; cout<<" "<<endl; cout<<" Hora: "; cin>>x.HRS; cout<<" Minuto: "; cin>>x.MIMS; cout<<" Segundo: "; cin>>x.SGS; cout<<" "<<endl; cout<<" --------------------------------------------------------------"<<endl; cout<<" "<<endl; cout<<" Descricao do produto: "<<endl; cin.ignore(); cin.getline(x.dsc, 500); fseek(arquivo, sizeof(cont)+sizeof(dados)*cont, SEEK_SET); fwrite(&x, sizeof(dados), 1, arquivo); cont++; fseek(arquivo, 0, SEEK_SET); fwrite(&cont, sizeof(cont), 1, arquivo); } void listar() { int posicao; for(int i=0; i<cont; i++) { posicao = sizeof(cont)+sizeof(dados)*i; fseek(arquivo, posicao, SEEK_SET); fread(&x, sizeof(dados), 1, arquivo); cout<<" |---------------------------------------------------------"<<endl; cout<<" | Produto: "<<x.nome<<endl; cout<<" | preço: R$"<<x.preço<<endl; cout<<" |- "<<endl; cout<<" | Total (Unidades): "<<x.qt<<endl; cout<<" | Vendidas (Unidades): "<<x.qtv<<endl; cout<<" | Defeituosa/Devolvida (Unidades): "<<x.qtd<<endl; cout<<" |- "<<endl; cout<<" | Data - entrada: "<<x.D<<"/"<<x.M<<"/"<<x.A<<" --- "<<x.HR<<":"<<x.MIM<<":"<<x.SG<<endl; cout<<" | Data - saida: "<<x.DS<<"/"<<x.MS<<"/"<<x.AS<<" --- "<<x.HRS<<":"<<x.MIMS<<":"<<x.SGS<<endl; cout<<" |- "<<endl; cout<<" | Descricao: "<<endl; cout<<" | "<<x.dsc<<endl; cout<<" |---------------------------------------------------------"<<endl; } } void procurar() { int posicao; bool achou=false; char name[51]; cout<<"Digite o nome do produto: "; cin.ignore(); cin.getline(name, 50); for(int i=0; i<cont; i++) { posicao = sizeof(cont)+sizeof(dados)*i; fseek(arquivo, posicao, SEEK_SET); fread(&x, sizeof(dados), 1, arquivo); if(strcmpi(x.nome, name)==0) { achou=true; cout<<" |---------------------------------------------------------"<<endl; cout<<" | Produto: "<<x.nome<<endl; cout<<" | preço: R$"<<x.preço<<endl; cout<<" |- "<<endl; cout<<" | Total (Unidades): "<<x.qt<<endl; cout<<" | Vendidas (Unidades): "<<x.qtv<<endl; cout<<" | Defeituosa/Devolvida (Unidades): "<<x.qtd<<endl; cout<<" |- "<<endl; cout<<" | Data - entrada: "<<x.D<<"/"<<x.M<<"/"<<x.A<<" --- "<<x.HR<<":"<<x.MIM<<":"<<x.SG<<endl; cout<<" | Data - saida: "<<x.DS<<"/"<<x.MS<<"/"<<x.AS<<" --- "<<x.HRS<<":"<<x.MIMS<<":"<<x.SGS<<endl; cout<<" |- "<<endl; cout<<" | Descricao: "<<endl; cout<<" | "<<x.dsc<<endl; cout<<" |---------------------------------------------------------"<<endl; } } if(achou == false) cout<<"Desculpe, produto não encontrado."<<endl; } void editar() { //Iagora Jusé? } void excluir() { //Iagora jusé? } Gostaria de ajuda, qualquer tipo de ajuda, pra fazer estas 2 funções, ai sim termino meu projetinho :) Obrigado pela atenção ai, aguardo respostas!! EDIT: Tava pensando ... Nas 2 funções terei que procurar o produto, certo? Portanto meio caminho andando, já tenho a função procurar. Copio a função 'procurar' e colo pra fazer o inicio da função 'editar', quando esta achar o produto, ira fazer a seguinte pergunta... cout<<"Este é o produto que você deseja editar ? ai vem o resto que to com duvida... "digite sim se for, e não se não for" caso resposta seja sim entre em modo de edição (que eu n sei como fazer) caso resposta seja não, faça a seguinte pergunta, deseja procurar denovo ? Se sim, procure, se não, volte ao menu. isso serve para função excluir também. Alguma alma generosa da uma luz ?? Vlwwss XD
×
×
  • Criar Novo...