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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts