Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "cadastro_carros.h"
- #include "arquivos.h"
- void carro_inclui(void) {
- FILE * p;
- tcarro reg_carro;
- printf("\nCadastro de novo carro\n");
- p = (FILE *) abre_arquivo("carro.dat");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- else {
- setbuf(stdin, NULL);
- printf("\nNome do carro: ");
- gets(reg_carro.nome);
- setbuf(stdin, NULL);
- printf("\nMarca do carro: ");
- gets(reg_carro.marca);
- setbuf(stdin, NULL);
- printf("\nValor da locacao: ");
- scanf("%f", ®_carro.valor);
- fseek(p, 0, SEEK_END);
- reg_carro.id = 1 + ftell(p) / sizeof(tcarro);
- fseek(p, 0, SEEK_END);
- reg_carro.flag = 0;
- fseek(p, 0L, SEEK_END);
- fwrite(®_carro, sizeof(tcarro), 1, p);
- fclose(p);
- mensagem("Dados gravados");
- }
- }
- void carro_altera(void) {
- FILE *p;
- tcarro reg_carro;
- short int confirmacao, id,menu,valid_id=0;
- mensagem_menu("ALTERAÇÃO\n\n");
- deseja_listar();
- clrscr();
- id=id_invalido();
- printf("\t\t\t\tREGISTRO\n");
- consulta_id(id);
- // printf("Deseja Alterar Esse Registro? (1) SIM / (2) NÃO: ");
- // scanf("%i",&confirmacao);
- clrscr();
- p = fopen ("carro.dat","rb+");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- fseek(p, (id-1) * sizeof(tcarro), SEEK_SET);
- fread(®_carro, sizeof(tcarro), 1, p);
- mensagem_menu("ALTERAÇÃO\n\n");
- do{
- printf("Digite a Opção Desejada");
- printf("ID3: %i\n",reg_carro.id);
- printf("\n(1)Alterar Nome\n(2)Alterar Marca\n(3)Alterar Valor \n(4)Alteração Completa\n(0)Voltar ao Menu Principal\nOpção: ");
- printf("ID4: %i\n",reg_carro.id);
- scanf("%i",&menu);
- if(menu<0||menu>4)
- mensagem("Opção Inválida!");
- clrscr();}while(menu<0||menu>4);
- printf("ID2: %i\n",reg_carro.id);
- switch(menu){
- case 1: {printf("Digite o Novo Nome do Carro: ");scanf("%s",®_carro.nome);mensagem("Registro Alterado com Sucesso!");break;}
- case 2: {printf("Digite a Nova Marca do Carro: ");scanf("%s",®_carro.marca);mensagem("Registro Alterado com Sucesso!");break;}
- case 3: {printf("Digite o Novo Valor do Carro: ");scanf("%f",®_carro.valor);mensagem("Registro Alterado com Sucesso!");break;}
- case 4: {printf("Digite o Novo Nome do Carro: ");scanf("%s",®_carro.nome);
- printf("\nDigite a Nova Marca do Carro: ");scanf("%s",®_carro.marca);
- printf("\nDigite o Novo Valor do Carro: ");scanf("%f",®_carro.valor);mensagem("Registro Alterado com Sucesso!");break;}
- case 0: cliente_altera();break;
- default: printf("Opção Inválida!");}
- fseek(p,(id-1)*sizeof(tcarro), SEEK_SET);
- fwrite(®_carro, sizeof(tcarro), 1, p);
- fclose(p);
- }
- void carro_exclui(void) {
- FILE * p;
- tcarro reg_carro;
- short int id,confirmacao;
- mensagem_menu("EXCLUSÃO\n\n");
- deseja_listar();
- clrscr();
- printf("Digite O Codigo do carro Desejado: ");
- scanf("%i",&id);
- consulta_id(id);
- printf("\n\nDeseja Excluir esse Registro(1-Sim/2-Nao): ");
- scanf("%i",&confirmacao);
- switch (confirmacao){
- case 2: menu_cadastro_carros(); break;
- case 1: {
- p = fopen("carro.dat","rb+");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- fseek(p,(id-1)*sizeof(tcarro),SEEK_SET);
- reg_carro.flag = 1;
- fwrite(®_carro,sizeof(tcarro),1,p);
- fclose(p);
- mensagem("Registro Excluido com Sucesso!");break;}}
- getch();}
- void carro_consulta(void) {
- tcarro reg_carro;
- int id;
- printf("Digite O Codigo do carro Desejado: ");
- scanf("%i",&id);
- consulta_id(id);
- getch();}
- void carro_lista(void) {
- FILE * p;
- tcarro reg_carro;
- printf("\nListagem de todos os carros cadastrados\n");
- p = (FILE *) abre_arquivo("carro.dat");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- else {
- while (!feof(p)) {
- fread(®_carro, sizeof(tcarro), 1, p);
- if (!feof(p)){
- if(reg_carro.flag==0)
- printf("\n%5d %-30s %-20s %10.2f %i", reg_carro.id, reg_carro.nome, reg_carro.marca, reg_carro.valor,reg_carro.flag);}
- }
- fclose(p);
- mensagem("Fim da listagem");
- }
- }
- short int id_invalido (void){
- short int verifica_id,valid_id=0, id=0;
- tcarro reg_carro;
- FILE *p;
- p=fopen("carro.dat","rb");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- do {
- printf("Digite O Codigo do carro Desejado: ");
- scanf("%i",&id);
- fseek(p, 0, SEEK_END);
- verifica_id = ftell(p)/sizeof(tcarro);
- if (id > verifica_id || id< 1)
- valid_id= 1;
- else
- valid_id= 0;
- if(valid_id!=0)
- mensagem("ID Invalido");
- clrscr();}while (valid_id!=0);
- fclose(p);
- return id;}
- void consulta_id(short int id){
- FILE *p;
- tcarro reg_carro;
- p=fopen("carro.dat","rb");
- fseek(p,(id-1)*sizeof(tcarro),SEEK_SET);
- fread(®_carro,sizeof(tcarro),1,p);
- printf("\n%5d %-30s %-20s %10.2f\n", reg_carro.id, reg_carro.nome, reg_carro.marca, reg_carro.valor);
- getch();
- fclose(p);}
- void deseja_listar(void){
- short int verifica;
- printf("Deseja listar os Carros? (1) Sim / (2) Não: ");
- scanf("%i",&verifica);
- if(verifica==1){
- carro_lista();}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement