Socorro Codigo dando erro! [RESOLVIDO]

1. Socorro Codigo dando erro! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/11/2010 - 10:19h

Estou fazendo um programa para a faculdade de video locadora porem o programa nao esta gravando aqui vai o codigo fonte:


#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <math.h>
#define fundo_branco system("color f0")

main()
{
fundo_branco;
struct registro
{
int cod , dvd_loc , tot_dvd_loc ;
char nome[40] , sexo[10] , data_nas[11] , rg[20] , cpf[15] ;
char endereco[50] , cidade[25] , estado[3] , telefone [9] ;

};
registro clientes[100] ;

int cont_c , cod_aux , qtd , op ,i , j ;
cont_c = 0 ;

FILE *arq;

do
{
system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t\tMENU DE OPCOES\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t 1 - Cadastrar Clientes ");
printf("\n\n\t\t\t 2 - Mostrar Clientes ");
printf("\n\n\t\t\t 3 - Remover Clientes ");
printf("\n\n\t\t\t 4 - Devolucao de DVDs ");
printf("\n\n\t\t\t 5 - Efetuar Locacao ");
printf("\n\n\t\t\t 6 - Mostrar Clientes / DVDs Locados ");
printf("\n\n\t\t\t 7 - Finalizar ");
printf("\n\n\n\t\t\t Digite sua opcao : ");
scanf("%d",&op);


switch ( op )
{
case 1 :
if ( cont_c < 100 )
{
system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t\t CADASTRAMENTO\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf ("\t\tDigite o Codigo : ");
scanf("%d",&cod_aux);
i = 0 ;

while ( ( i < cont_c ) && ( clientes[i].cod != cod_aux ) )
i++ ;

if ( i < cont_c )
{
printf ("\n\n\n\t\t\t Cliente ja cadastrado! ");
getch();
}

else
{ fflush(stdin);
clientes[cont_c].cod = cod_aux ;
printf("\n\t\tDigite o Nome : ");
gets(clientes[cont_c].nome);
printf("\n\t\tDigite o Sexo : ");
gets(clientes[cont_c].sexo);
printf("\n\t\tDigite a data de Nascimento : ");
gets(clientes[cont_c].data_nas);
printf("\n\t\tDigite o Telefone : ");
gets(clientes[cont_c].telefone);
printf("\n\t\tDigite o RG : ");
gets(clientes[cont_c].rg);
printf("\n\t\tDigite o CPF : ");
gets(clientes[cont_c].cpf);
printf("\n\t\tDigite o Endereco : ");
gets(clientes[cont_c].endereco);
printf("\n\t\tDigite a Cidade : ");
gets(clientes[cont_c].cidade);
printf("\n\t\tDigite o Estado : ");
gets(clientes[cont_c].estado);

clientes[cont_c].dvd_loc = 0 ;
clientes[cont_c].tot_dvd_loc = 0 ;

cont_c++ ;
Beep(600, 250 ) ;
printf("\n\t\tCliente cadastrado com sucesso!\n\n");
getch();

}
}
else
{
printf("\n100 clientes ja foram cadastrados!!!");
getch();
}
break ;

case 2 :
for ( i = 0 ; i < cont_c ; i++ )
{

system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t CLIENTES CADASTRADOS\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n\t\t\t Codigo : " , clientes[i].cod);
printf("\n\t\t\t Nome : " , clientes[i].nome);
printf("\n\t\t\t Sexo : " , clientes[i].sexo);
printf("\n\t\t\t Data de Nascimento : " , clientes[i].data_nas);
printf("\n\t\t\t Telefone : " , clientes[i].telefone);
printf("\n\t\t\t RG : " , clientes[i].rg);
printf("\n\t\t\t CPF : " , clientes[i].cpf);
printf("\n\t\t\t Endereco : " , clientes[i].endereco);
printf("\n\t\t\t Cidade : " , clientes[i].cidade);
printf("\n\t\t\t Estado : " , clientes[i].estado);
printf("\n\t\t\t DVDs locados atualmente : " , clientes[i].dvd_loc);
printf("\n\t\t\t Total de DVDs locados : " , clientes[i].tot_dvd_loc);
printf("\n\n\n\n\t\t\t Tecle enter ...");
getch();
}
break ;
case 3 :
system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t REMOVER CLIENTES\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n\t\tDigite o codigo do cliente a ser removido : ");
scanf("%d",&cod_aux);
i = 0 ;
while ( ( i < cont_c ) && ( clientes[i].cod != cod_aux ) )
i++ ;
if ( i < cont_c )
{
if ( clientes[i].dvd_loc > 0 )
{
printf("\nCliente nao pode ser excluido , porque possui DVDs locados! ");
getch();
}
else
{
for ( j = i + 1 ; j < cont_c ; j++ )
{
clientes[j-1] = clientes[j] ;
}
cont_c--;
printf("\n\n\n\t\t Cliente removido com sucesso!");
getch();
}
}
break ;
case 4 :
system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t DEVOLUCAO DE DVDS\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n\t\t\tDigite o codigo do cliente : ");
scanf("%d",&cod_aux);
i = 0 ;
while ( ( i < cont_c) && ( clientes[i].cod != cod_aux ) )
i++ ;
if ( i < cont_c )
{
if ( clientes[i].dvd_loc == 0 )
{
printf("\nEste cliente nao possui DVDs locados");
getch();
}
else
{
do
{
printf("Quantos DVDs serao devolvidos ? ") ;
scanf("%d",&qtd);
if ( qtd > clientes[i].dvd_loc )
{
printf("\nEste cliente possui apenas [ %d ] DVDs locados " , clientes[i].dvd_loc);
getch();
}
}
while ( qtd > clientes[i].dvd_loc );
clientes[i].dvd_loc = clientes[i].dvd_loc - qtd ;
printf("\nDevolcao realizada com sucesso!");
getch();
}
}
else
{
printf("\n\n\t\t\t Cliente nao cadastrado!");
getch();
}
break;
case 5 :
system("cls");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t\t EFETUAR LOCACAO\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\nDigite o codigo do cliente :");
scanf("%d",&cod_aux);
i = 0 ;
while ( ( i < cont_c ) && ( clientes[i].cod != cod_aux ) )
i++ ;
if ( i < cont_c )
{
if ( clientes[i].dvd_loc > 0 )
{
printf("\nEste cliente nao pode fazer novas locacoes pois possui DVDs locados ");
getch();
}
else
{
printf("\nDigite o numero de DVDs que serao locados : ");
scanf("%d",&qtd);
clientes[i].dvd_loc = qtd ;
clientes[i].tot_dvd_loc = clientes[i].tot_dvd_loc + qtd ;
printf("\nLocacao realizada com sucesso!");
getch();
}
}
else
{
printf("\nCliente nao cadastrado!");
getch();
}
break ;
case 6 :
for ( i = 0 ; i < cont_c ; i++ )
{
if ( clientes[i].dvd_loc > 0 )
{
printf("\nCodigo : " , clientes[i].cod);
printf("\nNome : " , clientes[i].nome);
printf("\nSexo : " , clientes[i].sexo);
printf("\nData de Nascimento : " , clientes[i].data_nas);
printf("\nTelefone : " , clientes[i].telefone);
printf("\nRG : " , clientes[i].rg);
printf("\nCPF : " , clientes[i].cpf);
printf("\nEnderec : " , clientes[i].endereco);
printf("\nCidade : " , clientes[i].cidade);
printf("\nEstado : " , clientes[i].estado);
printf("\nDVDs locados atualmente : " , clientes[i].dvd_loc);
printf("\nTotal de DVDs locados : " , clientes[i].tot_dvd_loc);
printf("\n\t\tTecle enter ...");
getch();
system("cls");
}
}
}
}
while ( op != 7 );
}

agradeço a ajuda.







  


2. Re: Socorro Codigo dando erro! [RESOLVIDO]

Ezequias Rocha
Ezequias Rocha

(usa Ubuntu)

Enviado em 10/11/2010 - 10:45h

Sinceramente, não estou conseguindo ver onde está a gravação (se é que eu entendi, gravação em arquivo).

Para gravar em arquivo, você necessita:

1 - abrir o arquivo
arq = fopen("nome_do_arquivo.txt","x");//x pode ser, e. g., r, w, a

2 - Verificar se de fato foi aberto
if( arq == NULL)
//Mensagem de erro

3 - Escrever, ou gravar, no arquivo aberto
fprintf(arq, "/* Texto/variáveis */",arg1,arg2,..);

Veja
http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node34.html

Ou busque "c arquivos textuais" no google


Embraces!


3. Re: Socorro Codigo dando erro! [RESOLVIDO]

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 10/11/2010 - 11:04h

conio.h ? windows.h?

O cara faz programa pra ms-dos e coloca o fonte aqui? Esse vivaoLinux é engraçado às vezes.

Quem já fez funcionar no gcc as bibliotes conio.h e windows.h pra compilar e ajudar o colega acima? rs..


4. Re: Socorro Codigo dando erro! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/11/2010 - 11:35h

hey hey psiu chega ai... é... existe conio e windows.h no gcc mas oh não contra pra ninguém viu? So que não é a melhor alternativa já que tem n formas de substituir a conio . e a windows é inutil.


5. Re: Socorro Codigo dando erro! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/11/2010 - 12:14h

gente eu sei que e um programa feito para windows , só que como disse é pra faculdade , e infelizmente só se usa windows , em casa e no meu note uso o debian lenny , e sei que existem n formas para linux superiores , só o que manda agora é faculdade que não aceita linux.Se quiserem posso colocar como resolvido e peço desculpa por usar um codigo de windows em lugar indevido.


6. Re: Socorro Codigo dando erro! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/11/2010 - 12:27h

Sr. verifique o que foi dito, realmente não existe ponto no codigo onde haja gravação, e aqui é uma área de programação e outra C/C++ é nativo do linux não tem problema nenhum é apenas uma extensão de conheciemnto afinal o mundo linux é para ser livre não é?


7. Re: Socorro Codigo dando erro! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/11/2010 - 13:08h

Nossa agradeço mesmo nem tinha percebido que nao havia ponto de gravação.E sim C/C++ é nativo do linux tanto que o programa usado na faculdade para compilação é o Dev-C++ que usa o gcc do linux.
Valeu mesmo galera.E desculpe qualquer coisa.


8. Re: Socorro Codigo dando erro! [RESOLVIDO]

Anderson de Oliveira Madeira
enki

(usa Zenwalk)

Enviado em 11/11/2010 - 11:32h

Só um parêntese aqui, mas o DevC++, pelo que eu me lembro da minha época negra, ele usa o MingW (Minimalist GNU for Windows), diferente do GCC, pois não provê um ambiente POSIX, etc.