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.
Pergunta
Head
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
Editado por HeadLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.