paulocesar.bras
(usa Ubuntu)
Enviado em 21/11/2009 - 22:00h
olha galera estou tentando construir um programa em c que salva em arquivos porem ele executa mas nao faz as funcoes desejada faz apenas a opcao 1 e 5 e buga no resto alguem pode me ajudar ??
gostaria de conseguir fazer ele rodar em linux mas tem umas biblioteca que eu nao consigo sou iniciante tenho Ubunto 9.10 e dev C++ que nao presta....
segue o codigo
// programa para controle de estoque 1.00.12
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
// #include <unistd.h>
struct produto{
// float valor;
int num;
//char m;
char nome[50];
char marca [20];
}P;
int Cadproduto();
FILE *arquivo;
/*__________________ Pesquisa de produtos _________________ */
int Buscaproduto(){
int n;
printf ("digite o inscricao do produto: ");
scanf ("%d",&n);
fread(&P,sizeof(P),1,arquivo);
while(!feof(arquivo)){
if(P.num == n){
fseek(arquivo,sizeof(P),SEEK_CUR);
return 1;
}
fread(&P,sizeof(P),1,arquivo);
}
return 0;
}
//////////////////////////////////
/* __________________ Cadastro de produtos _________________ */
int Cadproduto() {
int r;
char m;
system("cls");
arquivo = fopen("produto.txt","rw"); //abre os arquivos
if(arquivo == NULL)
{
printf("Erro ao abrir arquivo\n");
return r;
}
printf("\n\n\nInscricao do produto: ");
scanf("%d",&P.num);
if(Buscaproduto(P.num) == 0)
{
printf("\nNome: ");
fflush(stdin);
gets(P.nome);
printf("\nmarca: ");
gets(P.marca);
fflush(stdin);
fwrite(&P,sizeof(P),1,arquivo);
getchar();
}
else
printf("\nJah existe Produto Cadastrado com esse numero de Inscricao!\n");
printf("deseja continuar \n\n");
fclose(arquivo);//fecha arquivo
}
/*__________________ Listar produtos cadastrados _________________ */
void Listarproduto(){
int i=0;
arquivo = fopen("produto.txt","a+b");
if(arquivo == NULL){
printf("\nErro ao abrir arquivo\n");
return ;
}
fread(&P,sizeof(P),1,arquivo);
printf("\n\n\nRelacao de produtos:\n\n\n");
while(!feof(arquivo)){
i++;
printf("Inscricao: %d Nome: %s marca: %s \n\n",P.num,P.nome,P.marca);
fread(&P,sizeof(P),1,arquivo);
if(feof(arquivo) || (i == 30))
break;
system("PAUSE");
getchar();
getchar();
}
fclose(arquivo);
}
/* __________________ Exclui produtos _________________ */
void Excluiproduto() {
int num,i;
arquivo = fopen("produto.txt","r+b");
if(arquivo == NULL)
{
printf("Erro ao abrir arquivo\n");
return;
}
P.num = 1;
fwrite(&P,sizeof(P),1,arquivo);
printf("digite inscricao do produto a ser excluido:\n");
scanf("%d",&P.num);
if (Buscaproduto(P.num)==1){
fread(&P,sizeof(P),1,arquivo);
printf("\n\n\nRelacao de produtos:\n\n\n");
while(!feof(arquivo)){
i++;
printf("Inscricao: %d Nome: %s marca: %s \n\n",P.num,P.nome,P.marca);
fread(&P,sizeof(P),1,arquivo);
if(feof(arquivo) || (i == 20))
printf("\nProduto excluido com sucesso!\n");
getchar();
fclose(arquivo); }
}
}
void help(){
printf("____________________________\n");
printf("Contato para ajuda \n");
printf ("Paulo Cesar B Santos \n");
printf(" paulocesar.bras@gmail.com \n");
printf(" Cel 61 8609-6191\n");
printf("____________________________\n");
printf("\n");
printf("\t\t OU \n");
printf("____________________________\n");
printf ("Mayara Sales \n");
printf(" rayarasales@hotmail.com \n");
printf(" Cel 61 8503-0848\n");
printf("____________________________\n");
}
main() {
int op;
do{
printf("Escolha uma das opcoes abaixo: \n");
printf("\t 1 - Cadastro de Produtos\n");
printf("\t 2 - Listar Produtos\n");
printf("\t 3 - Pesquisar Produtos\n");
printf("\t 4 - Excluir Produtos\n");
printf("\t 5 -ajuda \n");
printf("\t 0 - Sair do Sistema\n");
printf("Digite a opcao: ");
scanf("%d",&op);
switch(op) {
case 1:Cadproduto();break;
case 2:Listarproduto();break;
case 3:Buscaproduto();break;
case 4:Excluiproduto();break;
case 5: help();break;
case 0:
printf("****saindo ****");
getchar();exit;
break;
default:
printf ("Opcao Invalida!! Digite uma das opcoes que esta no menu principal");
}
} while((op >= 0) && (op <=5));
}