travassos 0 Denunciar post Postado Junho 8, 2015 Boa noite amigos, sou novo por aqui, venho pedir ajuda nesse projeto de facu, estou com alguns problemas, como editar, excluir e buscar por cliente, o resto consigo desenrolar. Descrição: Deve ser construido um sistema de cadastro de um Lava Jato. O sistema deve cadastrar o cliente e seus respectivos carros que serão lavados no Lava Jato. 1 Parte: Deve ser desenvolvido uma tela de login e senha para acessar o sistema. Essas informações devem está fixas no código fonte do sistema. 2 Parte: Deve ser cadastrado no sitema o cliente com as seguintes informações: codigo_cliente, nome, endereço, telefone e email. O sistema deve permitir que os dados do cliente sejam editados e excluídos. O sistema também deve contemplar a busca do cliente pelo nome. 3 Parte: Deve ser cadastrado no sistema os carros de um determinado cliente com as seguintes informações: codigo_carro, codigo_cliente, modelo, cor e a placa. O Sistema deve permitir que os dados do carro sejam editados e excluídos. O sistema também deve contemplar a busca do carro pela placa. 4 Parte: Validações: 1) O sistema não deve permitir o cadastro de um mesmo carro para mais de um cliente. Entretanto, um cliente pode ter vários carros cadastrados. 2) O sistema não deve permitir o cadastro de mais de um carro com a mesma placa. 3) O sistema não deve permitir a exclusão de um cliente que tenha carros cadastrados. Primeiro o usuário deve excluir os carros daquele cliente para que possa excluí-lo definitivamente. Obs.: Todos os dados do sistema devem ser armazenados em um arquivo. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include<ctype.h> #define TAM 30 typedef struct{ char codigo[TAM]; char nome[TAM]; char cpf [TAM]; char idade[TAM]; char fone [TAM]; char email [TAM]; char buscar [TAM]; } cliente; struct carro{ int codigo_car; char placa; char cor; char modelo; int codigo_cli; int ativo; }; /*struct cliente cli; FILE *arq; char resposta;*/ /*struct Carro car; FILE *arq; char resposta;*/ /*void abrirArquivo(char arquivoLavaJato[]){ system("cls"); arq= fopen(arquivoLavaJato, "r+"); if(arq== NULL){ arq= fopen(arquivoLavaJato, "w+"); } }*/ int main (void){ FILE *arq; if (arq==NULL){ printf ("\n Erro ao abrir o arquivo \n"); } else{ printf("\n Arquivo aberto com sucesso \n"); } arq=fopen("C:\\crud\\arq.txt","w+"); arq=fopen("C:\\crud\\arq.txt", "r+"); system ("pause"); system ("cls"); char c,cadastro_login[50] = "adm",cadastro_senha[50] = "lavajato",acesso_login[50],acesso_senha[50]; int a=0,b=1,d=3; int menu; char nome[TAM]; char buscar[TAM]; cliente cli; do{ printf("\nEntre com o login: "); fflush(stdin); gets(acesso_login); printf("\nEntre com a senha: "); a=0; do{ c=getch(); if(isprint(c)){ acesso_senha[a]=c; a++; printf("*"); } else if(c==8&&a){ acesso_senha[a]='\0'; a--; printf("\b \b"); } }while(c!=13); acesso_senha[a]='\0'; if(!strcmp(cadastro_login,acesso_login)&&!strcmp(cadastro_senha,acesso_senha)){ printf("\n\n\t\t\tLOGADO COM SUCESSO...\n\n"); b=0; } else { system("cls"); d--; if (d)printf("\n\n\t\a\t USUARIO OU SENHA INVALIDOS - TENTE NOVAMENTE...\n\n"); } }while(b&&d); if(!d){ printf("\a\n\n\t\tCONTA BLOQUEADA - VOCE ERROU 3 VEZES CONSECUTIVAS...\n\n"); return 0; } system ("pause"); system ("cls"); do { printf("*=============================================================================*\n"); printf("| ___ ___ ________ ___ ___ ___ ___ |\n"); printf("| XXX_ _XXX XXXXXXXX XXX_ XXX XXX XXX |\n"); printf("| XXXX_ _XXXX XXXXXXXX XXXX XXX XXX XXX |\n"); printf("| XXXXX____XXXXX XXX_____ XXXXX__XXX XXX XXX |\n"); printf("| XXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXX XXX XXX |\n"); printf("| XXX XXXXXX XXX XXX_____ XXXXXXXXXX XXX____XXX |\n"); printf("| XXX XXXX XXX XXXXXXXX XXX XXXXXX XXXXXXXXXX |\n"); printf("| XXX XX XXX XXXXXXXX XXX XXXXX XXXXXXXXXX |\n"); printf("| _________ ___ ___ ________ ___ _________ ____ ___ _________ |\n"); printf("| XXXXXXXXX XXX XXX XXXXXXXX XXX XXXXXXXXX XXXX XXX XXXXXXXXX |\n"); printf("| XXX XXX XXX XXX XXX XX XXX XXXXXXXXX XXX XXX XXXXXXXXX |\n"); printf("| XXX______ XXX XXX XXX___XX XXX XXX___XXX XXX XXX XXX___XXX |\n"); printf("| XXXXXXXXX XXX XXX XXXXXXXX XXX XXXXXXXXX XXX XXX XXXXXXXXX |\n"); printf("| ___ XXXX XXX____XXX XXXXXXXX XXX_____ XXXXXXXXX XXX_XXX XXXXXXXXX |\n"); printf("| XXX__XXXX XXXXXXXXXX XXX XXXXXXXX XXX XXX XXXXX XXX XXX |\n"); printf("| XXXXXXXXX XXXXXXXXXX XXX XXXXXXXX XXX XXX XXX XXX XXX |\n"); printf("| |\n"); printf("*=============================================================================*\n\n"); printf (" SUPER LAVA JATO\n\n " ); printf("\n <1> CADASTRAR"); printf("\n <2> EXCLUIR"); printf("\n <3> EDITAR"); printf("\n <4> BUSCAR"); printf("\n <5> SAIR"); printf("\n\nInforme a opcao desejada: "); scanf("%d", &menu); system("cls"); switch(menu) { case 1: printf("Cadastre o cliente \n"); printf (""); gets (cli.nome); fputs (cli.nome, arq); printf ("Nome: \t"); gets (cli.nome); fputs (cli.nome, arq); printf ("\nIdade:\t"); gets (cli.idade); fputs (cli.idade, arq); printf("\nCPF:\t"); gets(cli.cpf); fputs (cli.cpf, arq); printf("\nfone:\t"); gets(cli.fone); fputs (cli.fone, arq); printf("\nemail:\t"); gets(cli.email); fputs (cli.email, arq); printf("\nCodigo:\t"); gets (cli.codigo); fputs (cli.codigo, arq); system ("cls"); printf ("cadastrado com sucesso \n"); system ("pause"); system ("cls"); getch(); break; case 2: printf("Em manutencao\n"); //excluir system ("pause"); getch(); break; case 3: printf("Em manutencao\n"); //editar system ("pause"); getch(); break; case 4: printf("Digite o codigo do clinte:"); //buscar fputs (cli.buscar, arq); if (cli.buscar==cli.codigo){ printf ("\n nome: %s", cli.nome); printf ("\n idade: %i", cli.idade); printf ("\n cpf: %i", cli.cpf); printf ("\n fone: %i", cli.fone); printf ("\n email: %i", cli.email); printf ("\n codigo: %i \n", cli.codigo); } else { printf ("codigo nao encontrado \n"); } system ("pause"); system ("cls"); getch(); break; case 5: return 0; break; } } while (menu != 5); return 0; fclose(arq); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 8, 2015 http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Não use gets.http://en.cppreference.com/w/c/io/gets The gets() function does not perform bounds checking, therefore this function is extremely vulnerable to buffer-overflow attacks. It cannot be used safely (unless the program runs in an environment which restricts what can appear on stdin). For this reason, the function has been deprecated in the third corrigendum to the C99 standard and removed altogether in the C11 standard. fgets() and gets_s() are the recommended replacements. E qual é o problema? Compartilhar este post Link para o post Compartilhar em outros sites