locadora em C
#include
#include
#include
#include
#define TAM 30
struct ficha
{
int codigo; char filme[TAM]; float duracao; char categoria[TAM]; char status; int ativo;
};
struct ficha dados;
FILE *arq; char resp;
void AbrirArquivo(char filme[])
{
system("cls"); arq = fopen(filme, "rb+"); // associa ao arq fisico e, se arquivo nao existe, deve ser criado, rb = somente para leitura if (arq == NULL) puts("NULL"); if (arq == NULL) arq = fopen(filme, "wb+"); // abre o arquivo depois - rb = escrita a partir do início do arquivo puts("ARQUIVO ABERTO.");
//sleep(3000);
}
void FecharArquivo() { system("cls"); fclose(arq); puts("ARQUIVO FECHADO.");
//sleep(3000);
}
//Registra o filme no banco de dados void RegistrarFilme() { char opcao; do {
//Faz inclusão dos dados para registra o filme system("cls"); fseek(arq,0,SEEK_END); // procura de uma certa posição do arquivo - arq, 0 = qtd bytes para deslocamento do cursor
//seek_end - começa do final para o início puts("** INCLUSAO DE FILME ***\n"); printf("Codigo ......:"); fflush(stdin); scanf("%d",&dados.codigo); printf("Filme ..:"); fflush(stdin); gets(dados.filme); printf("Duracao do filme..:"); fflush(stdin); scanf("%f",&dados.duracao); printf("Categoria..:"); fflush(stdin); gets(dados.categoria); printf("Status..:"); puts("D = Disponivel"); puts("L = Locado"); fflush(stdin); dados.status = toupper(getchar());
if((dados.filme == "") || (dados.filme == NULL)) { puts("REGISTRO RESTRINGIDO DEVIDO A DADOS ERRADOS INSERIDOS"); puts("Deixou o campo FILME em branco"); puts("Os dados nao foram registrados no sistema"); }
else if(dados.codigo == NULL) { puts("REGISTRO RESTRINGIDO DEVIDO A DADOS ERRADOS INSERIDOS"); puts("Deixou o campo FILME em branco"); puts("Os dados nao foram registrados no sistema"); }
//Tratamento do status, restringe o usuário a colocar diferente de D ou L else if((dados.status