Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define QTDE 1
typedef struct{
    int cod_medico;
    char nome_medico[50];
    char endereco_medico[100];
    float salario_medico;
}dadosM;
typedef struct{
    int cod_paciente;
    char nome_paciente[50];
    char endereco_paciente[100];
    int idade_paciente;
}dadosP;
typedef struct{
    int num_prontuario;
    char data[10];
    char diagnostico[50];
    int cod_medico;
    int cod_paciente;
}dadosC;
int main()
{
    setlocale(LC_ALL, "Portuguese");
    dadosM medicos[QTDE];
    dadosP pacientes[QTDE];
    dadosC consultas[QTDE];
    int opcao, i;
    do{
        printf("\nEscolha uma das opções abaixo:\n\n");
        printf("\n1 - Inclusão de Médicos");
        printf("\n2 - Inclusão de Pacientes");
        printf("\n3 - Inclusão de Consultas");
        printf("\n4 - Exclusão de Médico");
        printf("\n5 - Relatório - Consultas");
        printf("\n0 - Sair");
        printf("\nOpção: ");
        scanf("%d", &opcao);
        switch(opcao)
        {
            case 1:
                printf("\nSUBMENU DE INCLUSÃO DE MÉDICOS\n");
                for(i = 0;i < QTDE;i++)
                {
                    printf("\nMÉDICO %d", i + 1);
                    printf("\nCódigo: ");
                    scanf("%d", &medicos[i].cod_medico);
                    fflush(stdin);
                    printf("Nome: ");
                    gets(medicos[i].nome_medico);
                    printf("Endereço: ");
                    gets(medicos[i].endereco_medico);
                    printf("Salário: R$");
                    scanf("%f", &medicos[i].salario_medico);
                    printf("\nMÉDICO %d INCLUSO!\n", i + 1);
                }
                printf("\n\nMÉDICOS INCLUÍDOS!\n\n");
            break;
            case 2:
                printf("\nSUBMENU DE INCLUSÃO DE PACIENTES\n");
                for(i = 0;i < QTDE;i++)
                {
                    printf("\nPACIENTE %d", i + 1);
                    printf("\nCódigo: ");
                    scanf("%d", &pacientes[i].cod_paciente);
                    fflush(stdin);
                    printf("Nome: ");
                    gets(pacientes[i].nome_paciente);
                    printf("Endereço: ");
                    gets(pacientes[i].endereco_paciente);
                    printf("Idade: ");
                    scanf("%f", &pacientes[i].idade_paciente);
                    printf("\nPACIENTE %d INCLUSO!\n", i + 1);
                }
                printf("\n\nPACIENTES INCLUÍDOS!\n\n");
            break;
            case 3:
                printf("\nSUBMENU DE INCLUSÃO DE CONSULTAS\n");
                for(i = 0;i < QTDE;i++)
                {
                    printf("\nCONSULTA %d", i + 1);
                    printf("\nID Prontuário: ");
                    scanf("%d", &consultas[i].num_prontuario);
                    fflush(stdin);
                    printf("Data: ");
                    gets(consultas[i].data);
                    printf("Diagnóstico: ");
                    gets(consultas[i].diagnostico);
                    printf("Código - Médico: ");
                    scanf("%d", &consultas[i].cod_medico);
                    printf("Código - Paciente: ");
                    scanf("%d", &consultas[i].cod_paciente);
                    int j;
                    for(j = QTDE - 1;j >= 0;j--)
                    {
                        if(consultas[i].cod_medico == medicos[j].cod_medico)
                        {
                            if(consultas[i].cod_paciente == pacientes[j].cod_paciente)
                            {
                                printf("CONSULTA %d CADASTRADA!", i + 1);
                            }
                        }
                        else if(consultas[i].cod_medico == medicos[j].cod_medico &&
                                consultas[i].cod_paciente != pacientes[j].cod_paciente)
                        {
                            consultas[i].cod_medico = 0;
                            consultas[i].cod_paciente = 0;
                            strcpy(consultas[i].data, "NULL");
                            strcpy(consultas[i].diagnostico, "NULL");
                            consultas[i].num_prontuario = 0;
                            printf("\nCONSULTA NÃO CADASTRADA!\nPACIENTE %d NÃO CADASTRADO!", consultas[i].cod_paciente);
                        }
                        else if(consultas[i].cod_medico != medicos[j].cod_medico &&
                                consultas[i].cod_paciente == pacientes[j].cod_paciente)
                        {
                            consultas[i].cod_medico = 0;
                            consultas[i].cod_paciente = 0;
                            strcpy(consultas[i].data, "NULL");
                            strcpy(consultas[i].diagnostico, "NULL");
                            consultas[i].num_prontuario = 0;
                            printf("\nCONSULTA NÃO CADASTRADA!\MÉDICO %d NÃO CADASTRADO!", consultas[i].cod_medico);
                        }
                        else
                        {
                            consultas[i].cod_medico = 0;
                            consultas[i].cod_paciente = 0;
                            strcpy(consultas[i].data, "NULL");
                            strcpy(consultas[i].diagnostico, "NULL");
                            consultas[i].num_prontuario = 0;
                            printf("\nCONSULTA NÃO CADASTRADA!\MÉDICO %d & PACIENTE %d NÃO CADASTRADO!",
                                    consultas[i].cod_medico, consultas[i].cod_paciente);
                        }
                    }
                }
            break;
            case 4:
                printf("\nSUBMENU DE EXCLUSÃO DE MÉDICOS\n");
                for(i = 0;i < QTDE;i++)
                {
                    printf("\nMédico %s - Código: %d.", medicos[i].nome_medico, medicos[i].cod_medico);
                }
                int cod_exclusao;
                printf("Qual o código do médico que deseja excluir? ");
                scanf("%d", &cod_exclusao);
                for(j = QTDE - 1;j >= 0;j--)
                {
                    if(cod_exclusao == medicos[j].cod_medico)
                    {
                        if()
                        {
                            
                        }
                    }
                }
            break;
        }
    }while(opcao != 0);
    printf("\nOBRIGADO!");
    return 0;
}

Boa tarde, vocês poderiam me ajudar?

 

Estou com dúvida de como posso fazer para excluir um dado em C mediante a algumas condições, o exercício é: 

 

Faça um programa em C que utilize as informações a seguir:

Médicos            Pacientes              Consultas

Cod_medico    Cod_paciente         Num_prontuario

Nome               Nome                     Data

Endereco        Endereco                Diagnostico

Salario            Idade                      Cod_medico

                                                      Cod_paciente

O programa deverá:

(a) criar um procedimento para realizar inclusões no cadastro de pacientes e médicos;

(b) criar um procedimento para excluir um médico (lembre-se: se existir alguma consulta realizada por esse médico, ele não pode ser excluído)

(c) criar um procedimento para mostrar todas as consultas realizadas em uma data escolhida pelo usuário.

 

obs.: Na linha metodológica de Programação de Computadores, sei somente até o conceito de struct.

atenciosamente,

João Lucas

Duvida_Questao_14.JPG

  • Curtir 1
Postado
15 minutos atrás, João Lucas Benício disse:

@vangodp sim amigo, mas vai que um médico tenha mais que uma consulta, como verifico ?

Essa é aproximadamente (se não) a pergunta que leva a resolução do exame. Qualquer tentativa de exemplificar essa questão sem pericia é direto ou indiretamente uma resposta, um desafio entanto.

 

Pra começar, descreva você a solução em forma de representação Descritiva Narrativa.

Sinto mais satisfação em ajudar do que prejudicar com resposta prontas.

 

Bons Estudos.

Postado
44 minutos atrás, João Lucas Benício disse:

@Mauro Britivaldo amigo, perguntando pois já tentei de toda forma, não é resolução, é mostrar como verifico, se não puder ajudar, sem problemas.

Ok! Agradeço muito sua compreensão.

 

Bons Estudos.

Postado
Em 19/03/2020 às 17:03, João Lucas Benício disse:

Faça um programa em C que utilize as informações a seguir:

Médicos            Pacientes              Consultas

Cod_medico    Cod_paciente         Num_prontuario

Nome               Nome                     Data

Endereco        Endereco                Diagnostico

Salario            Idade                      Cod_medico

                                                      Cod_paciente

O programa deverá:

(a) criar um procedimento para realizar inclusões no cadastro de pacientes e médicos;

(b) criar um procedimento para excluir um médico (lembre-se: se existir alguma consulta realizada por esse médico, ele não pode ser excluído)

(c) criar um procedimento para mostrar todas as consultas realizadas em uma data escolhida pelo usuário.

 

 

Esse é um enunciado bem besta.

  • Nada diz sobre as consultas. Apenas usar as informações. Então você pode ler de um arquivo umas consultas ou colocar umas a olho e pronto. Item (sem letra) ok. Não precisa criar consultas. Não está no enunciado. Não que isso acrescente muito já que o registro de consultas tem 5 campos apenas
     
  • Médicos e pacientes só tem 4 campos. E o item (a) só fala em inclusões. Então seria 🤔 ler 4 campos do teclado e colocar na lista correspondente.
     
  • excluir um médico? Você pega o tal Cod_Medico e vai lá na lista de Consultas e vê se tem uma com o Cod_Medico dele, e se tiver deixa pra la. Escreva algo na tela pra ficar claro que você viu, tipo 
    O Medico 'cod_Medico' tem consulta em 'Data' e entao nao pode ser excluido
    e não caia na tentação ingênua de por acentos e tal. Não faz parte do problema. (b)
     
  • mostrar as consultas que estão numa lista de consultas? E nao fala em ordem nem nada. Então não precisam estar ordenadas. Apenas um loop: passe por todas as consultas. Apenas um if. Liste apenas as que tem 'Data' igual a que o usuário especificou. (c)

    Agora isso não entendi mesmo:
#define QTDE 1
  
  // que pretende com um unico medico um unico paciente e uma so consulta?
  
    dadosM medicos[QTDE];
    dadosP pacientes[QTDE];
    dadosC consultas[QTDE];

    int qMedicos = 0; // deve imaginar que vai precisar saber quantos medicos tem ja
    int qPacientes = 0; // e pacientes
    int qConsultas = 0; // e consultas

Não vai muito longe com QTDE = 1...

 

Use um contador para cada tabela e quando incluir alguém incremente o correspondente. Quando excluir faça o óbvio e subtraia. Assim sempre saberá até onde procurar algo nas listas. Note que pelo enunciado só pode excluir médicos que não tenham consultas...

 

Pode ser uma pegadinha ou só uma bobagem de quem escreveu, mas o enunciado fala explicitamente em "consultas realizadas em uma data escolhida pelo usuário" e isso quer dizer passado. Já realizadas.

 

jlucas.png.3d7eff769a5376b487ca71a8652976a3.png

 

Lucas, você tem um livro-texto? uma apostila? Você sabe até o que leu no livro. Até o que aprendeu. Ninguém vai te impedir de aprender, exceto talvez você mesmo. Deve imaginar que nas páginas que você ainda não leu do livro tenha coisas que vão tornar seu trabalho mais fácil e não mais difícil. 

 

Não me leve a mal, mas em especial nesse campo essa ideia de "ainda não aprendi isso" não é nada saudável. Em geral os caras só pagam a gente pra fazer o que a gente não sabe :( ainda. Ou pagam bem pouco para fazer o bem simples.


 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!