Ir ao conteúdo
  • Cadastre-se
Joel Carvalho SANTOS

Menu e submenu

Recommended Posts

Ola, sou estudante iniciante em c++, estou fazendo um trabalho em grupo mais que cada um faz uma parte do código, o código esta funcionando assim....
 

//DESCRIÇÃO DO SISTEMA: O sistema tem como obejtivo o auxilio à uma clínica veterinária no âmbito administrativo.
//o dsistema possui um cadastroe clientes, medicamentos e veterinários além da elaboração de uma agenda das consultas diárias 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<locale.h>
struct cliente{
             char nomecliente[20],sobrenome[20],endereco[20],bairro[20],complemento[20],nomeanimal[20],raca[20];
             char telefone[20],cpf[11],tipoanimal[2],idadeanimal[30],pesoanimal[30];
             struct cliente *prox;
             }*iniciocliente=NULL;
struct medicamento{
             char nomemedicamento[20],descricao[20],valor[20],indicado[20];
             struct medicamento *prox;
             }*iniciomedicamento=NULL;
struct agenda {    
             char nomevet[20],horario[10],nomeanimal[15],nomecliente[20];
             struct agenda *prox;
             }*inicioagenda=NULL;
             
struct veterinario{
             char nomevet[20],sobrenomevet[20],inscricaovet[20],cpfvet[11];
             struct veterinario *prox;
             }*iniciovet=NULL;

int menu()
{
         int escolha;
         system("cls");
         printf(">>> DATA: %s HORA: %s\n",__DATE__,__TIME__);
         printf("\n.:.:.:.:.Menu de opções.:.:.:.:.\n\n1 > Cadastrar cliente\n");
         printf("5 > Cadastrar Medicamento\n");
         printf("6 > Cadastrar Veterinario\n");
         printf("7 > Adicionar agenda\n");
         printf("9 > Encerrar Programa\n:::::::Escolha uma op\207ao: ");
         scanf("%d",&escolha);
         fflush(stdin);
         system("cls");
         return (escolha);
}
//formulário de cadastro de cliente
struct cliente * cadastrar_primeiro()
{
     
     struct cliente *primeiro;
     primeiro = (struct cliente *) malloc (sizeof(struct cliente));
     
     printf("\n......:Cadastro de Clientes:......\n");
     printf("Informe o nome do cliente: \n");
     gets(primeiro->nomecliente);
     
     printf("\nInforme o sobrenome do cliente: \n");
     gets(primeiro->sobrenome);
     
     printf("\nInforme o telefone do cliente: \n");
     gets(primeiro->telefone);
     
     printf("\nInforme o cpf do cliente: \n");
     gets(primeiro->cpf);
     
     printf("\nInforme o endere\207o do cliente: \n");
     gets(primeiro->endereco);
     
     printf("\nInforme o bairro do cliente: \n");
     gets(primeiro->bairro);
     
     printf("\nInforme o complemento do cliente: \n");
     gets(primeiro->complemento);
     
     printf("\nInforme o Nome do animal do cliente: \n");
     gets(primeiro->nomeanimal); 
     
     printf("\nInforme o tipo de animal (Cachorro ou Gato): \n");
     gets(primeiro->tipoanimal);
     
     printf("\nInforme o ra\207a do animal: \n");
     gets(primeiro->raca);
     printf("\nInforme a idade do animal: \n");
     gets(primeiro->idadeanimal);
     
     printf("\nInforme o peso do animal: \n");
     gets(primeiro->pesoanimal);
             
     primeiro->prox=NULL;   
     return (primeiro);  
}
//formulário de Veterinario
struct veterinario * cadastrar_quarto()
{
     
     struct veterinario *quarto;
     quarto = (struct veterinario *) malloc (sizeof(struct veterinario));
     
     printf("\n......:Cadastro de Veterinários:......\n");
     printf("Informe o nome do Veterinário: \n");
     gets(quarto->nomevet);
     printf("Informe o sobrenome do Veterinário: \n");
     gets(quarto->sobrenomevet);
     
     printf("Informe o CPF do Vterinário: \n");
     gets(quarto->cpfvet);
     
     printf("Informe o júmero de inscrição do Veterinário: \n");
     gets(quarto->inscricaovet);
     
     quarto->prox=NULL;   
     return (quarto);
}
//formulário de cadastro de medicamento
struct medicamento * cadastrar_segundo()
{
     
     struct medicamento *segundo;
     segundo = (struct medicamento *) malloc (sizeof(struct medicamento));
     
     printf("\n......:Cadastro de Medicamentos:......\n");
     printf("Informe o nome do medicamento: \n");
     gets(segundo->nomemedicamento);
     printf("Informe uma descricao para o medicamento: \n");
     gets(segundo->descricao);
     
     printf("Informe para qual tipo de animal ele e usado: \n");
     gets(segundo->indicado);
     
     printf("Informe o valor do medicamento R$: \n");
     gets(segundo->valor);
     
     segundo->prox=NULL;   
     return (segundo);
}
//formulário de cadastro de agenda
struct agenda * cadastrar_terceiro()
{
     
     struct agenda *terceiro;
     terceiro = (struct agenda *) malloc (sizeof(struct agenda));
     
     printf("\n......:Cadastro de AGENDA:......\n");
    
     printf("Informe o horario de atendimento: \n");
     gets(terceiro->horario);
     printf("Informe o nome do veterinario: \n");
     gets(terceiro->nomevet);
     
     printf("Informe nome do cliente: \n");
     gets(terceiro->nomecliente);
    
      printf("Informe nome do animal: \n");
     gets(terceiro->nomeanimal);  
     
     terceiro->prox=NULL;   
     return (terceiro);
}
//Função para cadastrar um cliente novo
void cadastrar_demais(struct cliente *primeiro)
{
    struct cliente *aux, *novo;
    
    aux=primeiro;
    while(aux->prox != NULL)
         aux = aux->prox;
     novo = (struct cliente *) malloc (sizeof(struct cliente));
     
     printf("\n......:Cadastro de Cliente:......\n");
     printf("\nInforme o nome do cliente: \n");
     gets(novo->nomecliente);
     
     printf("\nInforme o sobrenome do cliente: \n");
     gets(novo->sobrenome);
     
     printf("\nInforme o telefone do cliente: \n");
     gets(novo->telefone);
     
     printf("\nInforme o cpf do cliente: \n");
     gets(novo->cpf);
     
     printf("\nInforme o endere\207o do cliente: \n");
     gets(novo->endereco);
     
     printf("\nInforme o bairro do cliente: \n");
     gets(novo->bairro);
     
     printf("\nInforme o complemento do cliente: \n");
     gets(novo->complemento);
     
     printf("\nInforme o Nome do animal do cliente: \n");
     gets(novo->nomeanimal); 
     
     printf("\nInforme o tipo de animal (Cachorro ou Gato): \n");
     gets(novo->tipoanimal);
     
     printf("\nInforme o ra\207a do animal: \n");
     gets(novo->raca);
     printf("\nInforme a idade do animal: \n");
     gets(novo->idadeanimal);
     
     printf("\nInforme o peso do animal: \n");
     gets(novo->pesoanimal);
     
     novo->prox=NULL;
     aux->prox = novo;
}
//Função para cadastrar um veterinário novo
void cadastrar_demais_vet(struct veterinario *quarto)
{
    struct veterinario *aux_4, *novo_veterinario;
    
    aux_4=quarto;
    while(aux_4->prox != NULL)
         aux_4 = aux_4->prox;
    novo_veterinario= (struct veterinario *) malloc (sizeof(struct veterinario));
    
     printf("\n......:Cadastro de Veterinários:......\n");
     printf("Informe o nome do Veterinário: \n");
     gets(quarto->nomevet);
     printf("Informe o sobrenome do Veterinário: \n");
     gets(quarto->sobrenomevet);
     
     printf("Informe o CPF do Vterinário: \n");
     gets(quarto->cpfvet);
     
     printf("Informe o júmero de inscrição do Veterinário: \n");
     gets(quarto->inscricaovet);
     
     novo_veterinario->prox=NULL;
    aux_4->prox = novo_veterinario;
}
//Função para cadastrar um medicamento novo
void cadastrar_demais_medicamento(struct medicamento *segundo)
{
    struct medicamento *aux_2, *novo_medicamento;
    
    aux_2=segundo;
    while(aux_2->prox != NULL)
         aux_2 = aux_2->prox;
    novo_medicamento= (struct medicamento *) malloc (sizeof(struct medicamento));
    
    printf("\n......:Cadastro de Medicamentos:......\n");
    printf("Informe o nome do medicamento: \n");
    gets(novo_medicamento->nomemedicamento);
    
    printf("Informe uma descricao para o medicamento: \n");
    gets(novo_medicamento->descricao);
     
    printf("Informe para qual tipo de animal ele e usado: \n");
    gets(novo_medicamento->indicado);
     
    printf("Informe o valor do medicamento R$: \n");
    gets(novo_medicamento->valor);
    
    novo_medicamento->prox=NULL;
    aux_2->prox = novo_medicamento;
}
//Função para cadastrar uma agenda nova
void cadastrar_demais_agenda(struct agenda *terceiro)
{
    struct agenda *aux_3, *novo_agenda;
    aux_3=terceiro;
    while(aux_3->prox != NULL)
        aux_3= aux_3->prox;
    novo_agenda = (struct agenda *) malloc (sizeof(struct agenda));
    
    printf("\n......:Cadastro de AGENDA:......\n");
    printf("Informe o horário de atendimento: \n");
    gets(novo_agenda->horario);
    
    printf("Informe o nome do veterinario: \n");
    gets(novo_agenda->nomevet);
     
    printf("Informe nome do cliente: \n");
    gets(novo_agenda->nomecliente);
    
    printf("Informe nome do animal: \n");
    gets(novo_agenda->nomeanimal);  
    
    novo_agenda->prox=NULL;
    aux_3->prox = novo_agenda;
         
}
//Mostrar a AGENDA
void listar_agenda (struct agenda *terceiro)
{
     struct agenda *aux_3;
     
     aux_3=terceiro;
     while(aux_3!= NULL)
     {
         printf("\n*********AGENDA DIÁRIA*********\n");
        printf("Nome do veterinario: %s\n",aux_3->nomevet);
        printf("Horario da agenda: %s\n",aux_3->horario);
        printf("Nome do cliente: %s\n",aux_3->nomecliente);
        printf("Nome do animal: %s\n",aux_3->nomeanimal);
        printf("\n-------------------------\n");
        aux_3 = aux_3->prox;
     }
}
main()
{
      int op=0;
      while(op!=9)
      {
//opção no menu para cadastrar cliente
         op = menu();
         if (op==1){
             if (iniciocliente == NULL) 
               iniciocliente = cadastrar_primeiro();
            else
               cadastrar_demais(iniciocliente);
         }
           
//opção no menu para cadastrar medicamentos
         if (op==5)   
         {
            if (iniciomedicamento == NULL) 
               iniciomedicamento = cadastrar_segundo();
            else
               cadastrar_demais_medicamento(iniciomedicamento);
         }
//opção no menu para cadastrar veterinário
         if (op==6)   
         {
            if (iniciovet == NULL) 
               iniciovet = cadastrar_quarto();
            else
               cadastrar_demais_vet(iniciovet);
         }
//opção no menu para cadastrar agenda
         if (op==7){
             if (inicioagenda == NULL) 
               inicioagenda = cadastrar_terceiro();
            else
               cadastrar_demais_agenda(inicioagenda);
         }             
      }
    free(iniciocliente);
    free(inicioagenda);
    free(iniciomedicamento);

 

 

... E tenho que mudar o menu adicionar um sub menu, porque vai mudar a sequencia de menus, vai ser assim....
1- cadastrar
           1.1 cadastrar cliente
            1.2 cadastrar medicamento
            1.3 cadastrar veterinário
2- agenda
             2.1 listar agendas
             2.2 adicionar agenda
             2.3 excluir agenda

..Adicionei um swtch e inseri o que eu achei que seria o certo, quando fui compilar (estou o usando o dev c++) deu erro no "Cadastrar primeiro" preciso de uma luz o que fazer, se estou no caminho certo... Abaixo o código com a parte que inserir, desde já obrigado e desculpe por postar todo o código assim, mais é que preciso que entendam.
 

 

 


 

//DESCRIÇÃO DO SISTEMA: O sistema tem como obejtivo o auxilio à uma clínica veterinária no âmbito administrativo.
//o sistema possui um cadastro de clientes, medicamentos e veterinários além da elaboração de uma agenda das consultas diárias 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<locale.h>
struct cliente{
             char nomecliente[20],sobrenome[20],endereco[20],bairro[20],complemento[20],nomeanimal[20],raca[20];
             char telefone[20],cpf[11],tipoanimal[2],idadeanimal[30],pesoanimal[30];
             struct cliente *prox;
             }*iniciocliente=NULL;
struct medicamento{
             char nomemedicamento[20],descricao[20],valor[20],indicado[20];
             struct medicamento *prox;
             }*iniciomedicamento=NULL;
struct agenda {    
             char nomevet[20],horario[10],nomeanimal[15],nomecliente[20];
             struct agenda *prox;
             }*inicioagenda=NULL;
             
struct veterinario{
             char nomevet[20],sobrenomevet[20],inscricaovet[20],cpfvet[11];
             struct veterinario *prox;
             }*iniciovet=NULL;

int menu()
{                                                                              
         int escolha, opcao,opc1;
         system("cls");
         printf(">>> DATA: %s HORA: %s\n",__DATE__,__TIME__);
         printf("\n.:.:.:.:.Menu de opções.:.:.:.:.\n\n1 > Cadastrar \n");
         printf("2> agenda\n");
         printf("0> SAIR\n");
         printf("9 > Encerrar Programa\n:::::::Escolha uma op\207ao: ");
         scanf("%d",&escolha);
         fflush(stdin);
         system("cls");
         return (escolha);
         
switch (escolha)
{         
       case 1:    
            do{
               puts("cadastrar\n");
               system("cls");
               puts("\nEscolha uma opções - Cadastrar\n\n");
               puts("  [1] - Cadastrar cliente\n"); 
               puts("  [2] - Cadastrar Medicamento\n"); 
               puts("  [3] - Cadastrar Veterinario\n");
               puts("  [0] - Returnar ao Menu Principal\n");
               puts("\n\n");    
               scanf ("%d",&opc1);  
               switch(opc1){

}
 }
//formulário de cadastro de cliente
struct cliente * cadastrar_primeiro    ()
{
     
     struct cliente *primeiro; ( É AQUI QUE APARECE O [Error] expected 'while' before 'cliente')
     primeiro = (struct cliente *) malloc (sizeof(struct cliente));
     
     printf("\n......:Cadastro de Clientes:......\n");
     printf("Informe o nome do cliente: \n");
     gets(primeiro->nomecliente);
     
     printf("\nInforme o sobrenome do cliente: \n");
     gets(primeiro->sobrenome);
     
     printf("\nInforme o telefone do cliente: \n");
     gets(primeiro->telefone);
     
     printf("\nInforme o cpf do cliente: \n");
     gets(primeiro->cpf);
     
     printf("\nInforme o endere\207o do cliente: \n");
     gets(primeiro->endereco);
     
     printf("\nInforme o bairro do cliente: \n");
     gets(primeiro->bairro);
     
     printf("\nInforme o complemento do cliente: \n");
     gets(primeiro->complemento);
     
     printf("\nInforme o Nome do animal do cliente: \n");
     gets(primeiro->nomeanimal); 
     
     printf("\nInforme o tipo de animal (Cachorro ou Gato): \n");
     gets(primeiro->tipoanimal);
     
     printf("\nInforme o ra\207a do animal: \n");
     gets(primeiro->raca);
     printf("\nInforme a idade do animal: \n");
     gets(primeiro->idadeanimal);
     
     printf("\nInforme o peso do animal: \n");
     gets(primeiro->pesoanimal);
             
     primeiro->prox=NULL;   
     return (primeiro);  
}
//formulário de Veterinario
struct veterinario * cadastrar_quarto()
{
     
     struct veterinario *quarto;
     quarto = (struct veterinario *) malloc (sizeof(struct veterinario));
     
     printf("\n......:Cadastro de Veterinários:......\n");
     printf("Informe o nome do Veterinário: \n");
     gets(quarto->nomevet);
     printf("Informe o sobrenome do Veterinário: \n");
     gets(quarto->sobrenomevet);
     
     printf("Informe o CPF do Vterinário: \n");
     gets(quarto->cpfvet);
     
     printf("Informe o júmero de inscrição do Veterinário: \n");
     gets(quarto->inscricaovet);
     
     quarto->prox=NULL;   
     return (quarto);
}
//formulário de cadastro de medicamento
struct medicamento * cadastrar_segundo()
{
     
     struct medicamento *segundo;
     segundo = (struct medicamento *) malloc (sizeof(struct medicamento));
     
     printf("\n......:Cadastro de Medicamentos:......\n");
     printf("Informe o nome do medicamento: \n");
     gets(segundo->nomemedicamento);
     printf("Informe uma descricao para o medicamento: \n");
     gets(segundo->descricao);
     
     printf("Informe para qual tipo de animal ele e usado: \n");
     gets(segundo->indicado);
     
     printf("Informe o valor do medicamento R$: \n");
     gets(segundo->valor);
     
     segundo->prox=NULL;   
     return (segundo);
}
//formulário de cadastro de agenda
struct agenda * cadastrar_terceiro()
{
     
     struct agenda *terceiro;
     terceiro = (struct agenda *) malloc (sizeof(struct agenda));
     
     printf("\n......:Cadastro de AGENDA:......\n");
    
     printf("Informe o horario de atendimento: \n");
     gets(terceiro->horario);
     printf("Informe o nome do veterinario: \n");
     gets(terceiro->nomevet);
     
     printf("Informe nome do cliente: \n");
     gets(terceiro->nomecliente);
    
      printf("Informe nome do animal: \n");
     gets(terceiro->nomeanimal);  
     
     terceiro->prox=NULL;   
     return (terceiro);
}
//Função para cadastrar um cliente novo
void cadastrar_demais(struct cliente *primeiro)
{
    struct cliente *aux, *novo;
    
    aux=primeiro;
    while(aux->prox != NULL)
         aux = aux->prox;
     novo = (struct cliente *) malloc (sizeof(struct cliente));
     
     printf("\n......:Cadastro de Cliente:......\n");
     printf("\nInforme o nome do cliente: \n");
     gets(novo->nomecliente);
     
     printf("\nInforme o sobrenome do cliente: \n");
     gets(novo->sobrenome);
     
     printf("\nInforme o telefone do cliente: \n");
     gets(novo->telefone);
     
     printf("\nInforme o cpf do cliente: \n");
     gets(novo->cpf);
     
     printf("\nInforme o endere\207o do cliente: \n");
     gets(novo->endereco);
     
     printf("\nInforme o bairro do cliente: \n");
     gets(novo->bairro);
     
     printf("\nInforme o complemento do cliente: \n");
     gets(novo->complemento);
     
     printf("\nInforme o Nome do animal do cliente: \n");
     gets(novo->nomeanimal); 
     
     printf("\nInforme o tipo de animal (Cachorro ou Gato): \n");
     gets(novo->tipoanimal);
     
     printf("\nInforme o ra\207a do animal: \n");
     gets(novo->raca);
     printf("\nInforme a idade do animal: \n");
     gets(novo->idadeanimal);
     
     printf("\nInforme o peso do animal: \n");
     gets(novo->pesoanimal);
     
     novo->prox=NULL;
     aux->prox = novo;
}
//Função para cadastrar um veterinário novo
void cadastrar_demais_vet(struct veterinario *quarto)
{
    struct veterinario *aux_4, *novo_veterinario;
    
    aux_4=quarto;
    while(aux_4->prox != NULL)
         aux_4 = aux_4->prox;
    novo_veterinario= (struct veterinario *) malloc (sizeof(struct veterinario));
    
     printf("\n......:Cadastro de Veterinários:......\n");
     printf("Informe o nome do Veterinário: \n");
     gets(quarto->nomevet);
     printf("Informe o sobrenome do Veterinário: \n");
     gets(quarto->sobrenomevet);
     
     printf("Informe o CPF do Vterinário: \n");
     gets(quarto->cpfvet);
     
     printf("Informe o júmero de inscrição do Veterinário: \n");
     gets(quarto->inscricaovet);
     
     novo_veterinario->prox=NULL;
    aux_4->prox = novo_veterinario;
}
//Função para cadastrar um medicamento novo
void cadastrar_demais_medicamento(struct medicamento *segundo)
{
    struct medicamento *aux_2, *novo_medicamento;
    
    aux_2=segundo;
    while(aux_2->prox != NULL)
         aux_2 = aux_2->prox;
    novo_medicamento= (struct medicamento *) malloc (sizeof(struct medicamento));
    
    printf("\n......:Cadastro de Medicamentos:......\n");
    printf("Informe o nome do medicamento: \n");
    gets(novo_medicamento->nomemedicamento);
    
    printf("Informe uma descricao para o medicamento: \n");
    gets(novo_medicamento->descricao);
     
    printf("Informe para qual tipo de animal ele e usado: \n");
    gets(novo_medicamento->indicado);
     
    printf("Informe o valor do medicamento R$: \n");
    gets(novo_medicamento->valor);
    
    novo_medicamento->prox=NULL;
    aux_2->prox = novo_medicamento;
}
//Função para cadastrar uma agenda nova
void cadastrar_demais_agenda(struct agenda *terceiro)
{
    struct agenda *aux_3, *novo_agenda;
    aux_3=terceiro;
    while(aux_3->prox != NULL)
        aux_3= aux_3->prox;
    novo_agenda = (struct agenda *) malloc (sizeof(struct agenda));
    
    printf("\n......:Cadastro de AGENDA:......\n");
    printf("Informe o horário de atendimento: \n");
    gets(novo_agenda->horario);
    
    printf("Informe o nome do veterinario: \n");
    gets(novo_agenda->nomevet);
     
    printf("Informe nome do cliente: \n");
    gets(novo_agenda->nomecliente);
    
    printf("Informe nome do animal: \n");
    gets(novo_agenda->nomeanimal);  
    
    novo_agenda->prox=NULL;
    aux_3->prox = novo_agenda;
         
}
//Mostrar a AGENDA
void listar_agenda (struct agenda *terceiro)
{
     struct agenda *aux_3;
     
     aux_3=terceiro;
     while(aux_3!= NULL)
     {
         printf("\n*********AGENDA DIÁRIA*********\n");
        printf("Nome do veterinario: %s\n",aux_3->nomevet);
        printf("Horario da agenda: %s\n",aux_3->horario);
        printf("Nome do cliente: %s\n",aux_3->nomecliente);
        printf("Nome do animal: %s\n",aux_3->nomeanimal);
        printf("\n-------------------------\n");
        aux_3 = aux_3->prox;
     }
}
main()
{
      int op=0;
      while(op!=9)
      {
//opção no menu para cadastrar cliente
         op = menu();
         if (op==1){
             if (iniciocliente == NULL) 
               iniciocliente = cadastrar_primeiro();
            else
               cadastrar_demais(iniciocliente);
         }
           
//opção no menu para cadastrar medicamentos
         if (op==5)   
         {
            if (iniciomedicamento == NULL) 
               iniciomedicamento = cadastrar_segundo();
            else
               cadastrar_demais_medicamento(iniciomedicamento);
         }
//opção no menu para cadastrar veterinário
         if (op==6)   
         {
            if (iniciovet == NULL) 
               iniciovet = cadastrar_quarto();
            else
               cadastrar_demais_vet(iniciovet);
         }
//opção no menu para cadastrar agenda
         if (op==7){
             if (inicioagenda == NULL) 
               inicioagenda = cadastrar_terceiro();
            else
               cadastrar_demais_agenda(inicioagenda);
         }             
      }
    free(iniciocliente);
    free(inicioagenda);
    free(iniciomedicamento);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×