Ir ao conteúdo
  • Cadastre-se

Alisson Pavinhaski

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

5
  1. @Xaws Velho você me ajudou muito cara, obrigado mesmo, mais minha dificuldade não é cadastrar usuários no sistema de Login, e sim (cadastrar clientes). mesmo assim você me deu uma força, obrigado.
  2. @Xaws O código feito por mim, não está completo não consigo fazer a inserção do cadastro de clientes nele peguei um exemplo e modifiquei completamente pra depois criar o meu próprio programa, segue o código abaixo. #include<stdio.h> #include<malloc.h> #include<string.h> #include <stdio.h> #include <stdlib.h> char c; typedef struct veic{ /* Estrutura de Veiculo */ char placa[8]; char marca[15]; char modelo[30]; int ano; struct veic* prox; } tveic; typedef tveic* veiculo; typedef struct data{ int dia; int mes; int ano; } tdata; typedef struct manut{ /* Estrutura de Manutencao */ int km; tdata data; double valor; char placa[8]; struct manut* prox; } tmanut; typedef tmanut* manutencao; void flush_in (){ /* Funcao para limpar o buffer */ int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } void inputs (char *prompt, char *s, int count){ /* Funcao para receber strings com o gets e verificar se cabem dentro do vetor */ char p[255]; do { printf(prompt); gets(p); if(strlen(p)>count) printf("\nmuito longo\n"); } while (strlen(p)>count); strcpy(s, p); } void criarv (veiculo *L){ /* Funcao que cria a lista encadeada vazia veiculo */ *L = NULL; } void criarm (manutencao *L){ /* Funcao que cria a lista encadeada vazia manutencao */ *L = NULL; } int vaziaveiculo (veiculo L){ /* Funcao que verifica se a lista veiculo esta vazia */ return (L == NULL); } int vaziamanut (manutencao L){ /* Funcao que verifica se a lista manutencao esta vazia */ return (L == NULL); } /* Menu do aplicativo */ void menu(){ system("cls"); printf("|-------------------------------------------------------------------------|\n"); printf("| MENU PRINCIPAL |\n"); printf("|-------------------------------------------------------------------------|\n"); printf("| Entre com a opcao desejada: |\n"); printf("| |\n"); printf("| (1) : Cadastrar veiculo |\n"); printf("| (2) : Cadastrar manutencao |\n"); printf("| (3) : Listar veiculo cadastrado |\n"); printf("| (4) : Localizar dados do veiculo ( pela placa) |\n"); printf("| (5) : Listar as manutencoes de um veiculo |\n"); printf("| (6) : Calcular valor dos gasto com manutencoes de um veiculo |\n"); printf("| (7) : Remover dado de uma manutencao de um veiculo |\n"); printf("| (8) : Remover cadastro de um veiculo. |\n"); printf("| (9) : Alterar cadastro de um veiculo |\n"); printf("| (10): Alterar cadastro de uma manutencao de um veiculo |\n"); printf("| (11): Exibir um relatorio |\n"); printf("| (12): Sair |\n"); printf("|-------------------------------------------------------------------------|\n"); printf(" opcao: "); } int cadveiculo(veiculo *L){ /* Funcao que insere dados de veiculos*/ veiculo novo; novo = (veiculo) malloc(sizeof(tveic)); if (*L == NULL) { /* 1a. insersao */ if (novo == NULL) return 0; /* erro: memoria insuficiente */ inputs("Digite a placa: ", novo->placa, 7); inputs("Digite a marca: ", novo->marca, 14); inputs("Digite a modelo: ",novo->modelo, 29); printf("Digite o ano: "); scanf("%d",&novo->ano); novo->prox = NULL; *L = novo; return 1; } else { /* insersao na primeira posisao em uma lista nao vazia */ if (novo == NULL) return 0; /* erro: memoria insuficiente */ inputs("Digite a placa: ", novo->placa, 7); inputs("Digite a marca: ", novo->marca, 15); inputs("Digite a modelo: ",novo->modelo, 30); printf("Digite o ano: "); scanf("%d",&novo->ano); novo->prox = *L; *L = novo; return 1; } } int cadmanutencao(manutencao *Lm, veiculo *Lv){ /*Funcao que insere dados de manutensoes*/ manutencao novo; veiculo lista; int c1=1; int e; novo = (manutencao) malloc(sizeof(tmanut)); if(vaziaveiculo(*Lv)){ printf("\nA lista de veiculos? vazia!\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&c); return 0; } for(lista=*Lv;lista!=NULL;lista=lista->prox){ printf("%d - %s\n",c1,lista->placa); c1++; } printf("\n\nInforme um numero para cadastrar a manutencao: "); scanf("%d",&e); lista=*Lv; for(c1=1;c1<e;c1++) lista=lista->prox; strcpy(novo->placa,lista->placa); printf("%s\n",novo->placa); if (*Lm == NULL) { /* 1a. insersao */ if (novo == NULL) return 0; /* erro: memoria insuficiente */ printf("Digite a quilometragem: "); scanf("%d",&novo->km); printf("Digite o dia: "); scanf("%d",&novo->data.dia); printf("Digite o mes: "); scanf("%d",&novo->data.mes); printf("Digite o ano: "); scanf("%d",&novo->data.ano); printf("Digite o valor: "); scanf("%lf",&novo->valor); novo->prox = NULL; *Lm = novo; return 1; } else { /* insersao na primeira posicao em uma lista nao vazia */ if (novo == NULL) return 0; /* erro: memoria insuficiente */ printf("Digite a quilometragem: "); scanf("%d",&novo->km); printf("Digite o dia: "); scanf("%d",&novo->data.dia); printf("Digite o mes: "); scanf("%d",&novo->data.mes); printf("Digite o ano: "); scanf("%d",&novo->data.ano); printf("Digite o valor: "); scanf("%lf",&novo->valor); novo->prox = *Lm; *Lm = novo; return 1; } } void imprimirveiculos(veiculo L){ int n; veiculo temp=L; char ch; if(vaziaveiculo(temp)){ printf("\nA lista esta? vazia!\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&ch); } else { system("cls"); printf("\n\n\n"); printf("|-------------------------------------------------------|\n"); printf("| Listar Veiculo Cadastrado |\n"); printf("|-------------------------------------------------------|\n"); printf("| Placa | Marca | Modelo | Ano |\n"); printf("|-------------------------------------------------------|\n"); while(temp!=NULL){ printf("| %7s | %6s |%10s | %3d |\n",temp->placa, temp->marca, temp->modelo, temp->ano); temp=temp->prox; } printf("|-------------------------------------------------------|\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&ch); } } int removerveiculo (veiculo *Lv, manutencao *Lm){ veiculo atualv, anteriorv; manutencao atualm, anteriorm; char excluir[8]; atualv=anteriorv->prox; if(vaziaveiculo(*Lv)) return 0; //Lista esta? vazia inputs("Informe a placa do veiculo a ser excluido: ", excluir, 7); if(*Lm!=NULL){ anteriorm=*Lm; atualm=anteriorm->prox; while(atualm!=NULL) { if(!strcmp(excluir,anteriorm->placa)) { *Lm=anteriorm->prox; free(anteriorm); } else { if(!strcmp(excluir,atualm->placa)){ anteriorm->prox=atualm->prox; } else { anteriorm=anteriorm->prox; atualm=atualm->prox; } } } } while(atualv!=NULL) { if(!strcmp(excluir,anteriorv->placa)) { *Lv=anteriorv->prox; free(anteriorv); return (1); } else { if(!strcmp(excluir,atualv->placa)){ anteriorv->prox=atualv->prox; return (1); } else { anteriorv=anteriorv->prox; atualv=atualv->prox; } } } return (0); } int localizavei(veiculo *L){ //Localizar veiculos cadastrados veiculo temp; char local[8]; system("cls"); if(vaziaveiculo(*L)) { printf("Lista Vazia!\n"); return (1); } inputs("Informe a placa do veiculo a ser localizado: ", local, 8); system("cls"); for(temp=*L;temp!=NULL;temp=temp->prox){ if(!strcmp(local,temp->placa)) { printf("\n\n\n"); printf("|-----------------------------------------------|\n"); printf("| Listar Veiculo Cadastrado(Placa) |\n"); printf("|-----------------------------------------------|\n"); printf("| Placa | Marca | Modelo | Ano |\n"); printf("|-----------------------------------------------|\n"); printf("|%7s | %6s |%10s | %3d |\n",temp->placa, temp->marca, temp->modelo, temp->ano); printf("|-----------------------------------------------|\n"); printf("\n\n\nTecle <Enter> para retornar ao menu"); scanf("%c",&c); return (0); } } return (1); } /* int calculagasto(manutencao L, char pplaca[8]){ int total; total=0; manutencao p; p = L; if (L == NULL){ printf("\nA lista esta vazia!\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&c); return total; } while (p != NULL) { if (!strcmp(p->placa, pplaca)) { total+=p->valor; } p = p->prox; } return total; } */ void relatorioveiculos (veiculo Lv, manutencao Lm){ veiculo listav; manutencao listam; int count; system("cls"); for(listav=Lv;listav!=NULL;listav=listav->prox){ printf("\n\n\n"); printf("|-----------------------------------------------------|\n"); printf("| Relatorio |\n"); printf("|-----------------------------------------------------|\n"); printf("| Placa | Marca | Modelo | Ano3 |\n"); printf("|-----------------------------------------------------|\n"); printf("| %s | %s | %s | %d |\n",listav->placa, listav->marca, listav->modelo, listav->ano); count=1; for(listam=Lm;listam!=NULL;listam=listam->prox){ printf("|-----------------------------------------------------|\n"); printf("| Manut. | Kilometragem | Data | Valor |\n"); printf("|-----------------------------------------------------|\n"); if(!strcmp(listam->placa,listav->placa)){ printf("| %d | %d | %d/%d/%d | %5.2f |\n",count, listam->km, listam->data.dia, listam->data.mes, listam->data.ano, listam->valor); count++; } } } printf("|-----------------------------------------------------|\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&c); } void relatoriomanutencao (veiculo Lv, manutencao Lm){ veiculo listav; manutencao listam; int count; system("cls"); count=1; for(listav=Lv;listav!=NULL;listav=listav->prox){ printf("\n\n\n"); printf("|------------------------------------------------------|\n"); printf("| Lista de Manutencoes |\n"); printf("|------------------------------------------------------|\n"); printf("| Manut. | Kilometragem | Data | Valor |\n"); printf("|------------------------------------------------------|\n"); for(listam=Lm;listam!=NULL;listam=listam->prox){ if(!strcmp(listam->placa,listav->placa)){ printf("| %d | %d | %d/%d/%d | %5.2f |\n",count, listam->km, listam->data.dia, listam->data.mes, listam->data.ano, listam->valor); count++; } } } printf("|------------------------------------------------------|\n"); printf("\n\n\nTecle Enter para retornar ao menu"); scanf("%c",&c); } /*int removemnt(tlistamnt *L, char pplaca[8]){ tlistamnt a, p; int n; if (*L == NULL) return 0; /* erro: lista vazia p = *L; n = 1; while ((!strcmp(p->placa,pplaca)) && (p!=NULL)) { a = p; p = p->prox; n++; } if (p == NULL) return 0; /* erro: placa não encontrada if (n == 1) *L = p->prox; else a->prox = p->prox; free(p); return(1); } */ int main() { veiculo cadveic; /* variavel cadastro de veiculos */ manutencao cadman; /* declaracao da variavel cadastro de manutencoes */ int opcao; /* opcao digitada pelo usuário */ int fim = 0; /* encerra o laço do-while e por consequência o programa */ char placavei[8]; criarv(&cadveic); criarm(&cadman); while (!fim){ menu(); opcao = 0; scanf("%d", &opcao); flush_in(); switch(opcao){ case 1: if(cadveiculo(&cadveic)){ printf("Veiculo cadastrado com sucesso!\n"); scanf("%c",&c); } break; case 2: if(cadmanutencao(&cadman,&cadveic)){ printf("Manutencao cadastrada com sucesso!\n"); scanf("%c",&c); } break; case 3: imprimirveiculos(cadveic); break; case 4: if(localizavei(&cadveic)){ printf("Veiculo nao localizado!\n"); scanf("%c",&c); } break; case 5: relatoriomanutencao(cadveic, cadman); // case 6: calculagasto(cadman, pplaca[8]); // break; case 7:// printf("Informe um numero da placa para remover a manutencao: "); // gets(placavei); // removemnt(&cadman, placavei); //printf("Manutencao removida com sucesso!\n"); break; case 8: if(removerveiculo(&cadveic, &cadman))//{ printf("Veiculo removido com sucesso!\n"); break; case 9: printf("\n Em desenvolvimento\n"); break; case 10: printf("\n Em desenvolvimento\n"); break; case 11: relatorioveiculos(cadveic, cadman); break; case 12: fim = 1; break; scanf("%c",&c); default: printf("\n\nERRO: A opcao Invalida. Tente novamente...\n"); } } return(0); }
  3. Olá, Gostaria de saber como é feito um programa em c, sobre cadastro de clientes, relatório e locação de veículos, tenho que desenvolver um programa para a faculdade com essa base e não estou conseguindo, alguém poderia me ajudar, a respeito do mesmo, com um exemplo feito. Obrigado.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!