Ir para conteúdo
Fórum Script Brasil

Eduardo_UniFieo

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Eduardo_UniFieo

Eduardo_UniFieo's Achievements

0

Reputação

  1. Só cpnsigo fazer o código até aqui #include <conio.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <cstdlib> #include <string.h> typedef char string[20]; struct fila {char nomePaciente [20]; int idade; float temperatura; struct fila *proximo; }*inicio, *fim; struct medicos {char nome[20]; bool liberado; int qtdeAtendimentos; } medicos [5]; void inserir (); int atender (); void liberar_medico (); void relacionar_medicos (); void pesquisar (); int main () { int opcao,i; inicio = NULL; fim = NULL; for (i=0;i<5;i++) { printf ("Digite o nome do medico %d: ", i+1); gets (medicos.nome); medicos.liberado=true; medicos.qtdeAtendimentos = 0; } while (opcao != 6) { printf ("\n -=-= [MENU - POSTO DE SAUDE] =-=-"); printf ("\n\n 1 - Inserir um paciente na fila"); printf ("\n 2 - Atender um paciente"); printf ("\n 3 - Liberar um medico"); printf ("\n 4 - Relacionar medicos liberados"); printf ("\n 5 - Pesquisar"); printf ("\n 6 - Sair do programa\n\n"); scanf ("%d", &opcao); switch (opcao) { case 1: inserir(); break; case 2: atender(); break; case 3: liberar_medico (); break; case 4: relacionar_medicos (); break; case 5: pesquisar (); break; case 6: break; default: printf ("\n Opcao invalida "); } } } void inserir () { int aux; struct fila *novo; novo = (struct fila *) malloc (sizeof (struct fila)); novo->proximo = NULL; printf ("\nDigite o nome do paciente: "); fflush(stdin); gets (novo->nomePaciente); printf ("Digite a idade do paciente: "); scanf ("%d", &novo->idade); printf ("Digite a temperatura do paciente: "); scanf ("%f", &novo->temperatura); if (fim == NULL) {inicio = novo;} else {fim->proximo = novo;} fim = novo; } int atender () { int atendimentos, i=0, val; struct fila *aux; char desejado[20]; if (inicio == NULL) { printf ("\n Fila vazia\n\n"); return 0 ; } aux = inicio; printf ("\nDigite o nome do medico desejado: "); fflush(stdin); gets (desejado); do { if (strcmp(desejado, medicos.nome ) == true) { if (medicos.liberado==true) { medicos.liberado=false; medicos.qtdeAtendimentos = medicos.qtdeAtendimentos + 1; } } i++; } while (i<5); /*for (i=0;i<5;i++) { if (strcmp(desejado, medicos.nome ) == true) { if (medicos.liberado==true) { medicos.liberado=false; medicos.qtdeAtendimentos = medicos.qtdeAtendimentos + 1; } } } */ val = inicio->idade; aux = inicio; inicio = inicio->proximo; if (inicio == NULL) { fim = NULL; } free(aux); return val; }
  2. Estou fazendo este programa em C, mais não consigo finaliza-lo. será qiue alguém pode me ajudar. Tenho que fazer esse programa urgente, estou desesperado. Assistência Técnica - Fila de Atendimento de Pedidos Codificar um programa que utilize o conceito de fila encadeada simples para criar em memória uma fila de atendimento de pedidos a serem atendidos por uma assistência técnica. Essa fila deve ser implementada pela seguinte estrutura e variáveis globais, a seguir: struct filaPedidos { char nomeCliente [20]; char descServico [20]; char endereco [20]; char bairro [15]; struct fila *próximo; }*inicio, *fim; A chamada para o atendimento será feita ao pedido primeiro da fila para um dos técnicos que estiver liberado (não em atendimento). Na Assistência Técnica existem 5 técnicos disponíveis que deverão ser considerados na implementação do vetor de estruturas global a seguir: struct tecnico { char nomeTecnico[20]; //nome do médico bool liberado; // true: liberado, false: em atendimento int qtdeAtendimentos; //quantidade de atendimentos já realizados } tecnicos [5]; //vetor do tipo struct tecnico Este vetor deverá ser inicializado no começo do programa com dados de cada técnico: • nomeTecnico : nome do tecnico, recebido por digitação • liberado : true (tecnico liberado para atendimento) • qtdeAtendimentos : 0 (nenhum atendimento realizado) O controle do programa será feito por meio de opções exibidas num menu, como se segue: Inserir um pedido na fila Solicitar por digitação o nome do cliente, a descrição do serviço a ser feito, o endereço e o bairro do local do serviço Inserir o pedido na fila Atender um pedido Verificar se existe pedido na fila Solicitar o nome do técnico. Verificar se o mesmo está liberado para atendimento (liberado = true). Caso contrário, emitir mensagem de erro. Visualizar os dados do pedido e o nome do técnico que o atenderá. Remover o pedido da fila Marcar o técnico como ocupado Adicionar 1 ao numero de atendimentos desse técnico Liberar um técnico para novo atendimento Solicitar o nome do técnico. Verificar se está mesmo ocupado Marcar o técnico como liberado Visualizar mensagem referente a liberação Relacionar nomes dos técnicos liberados Visualizar os nomes dos técnicos liberados Pesquisas Visualizar um sub-menu com as seguintes opções a escolher: Quantidade de pedidos que ainda estão na fila sem atendimento Quantidade de pedidos atendidos por cada técnico Relação dos pedidos para um determinado bairro solicitado Listar dados sobre os pedidos contidos na fila Sair do programa Obs: na variável liberado será utilizado o tipo bool, que significa um valor booleano, ou seja, esta variável só pode conter os valores true ou false. Este tipo existe na linguagem C++. Uma comparação com essa variável poderia ser: if (liberado) ou, if (liberado == true) if (!liberado) ou, if (liberado == false)
×
×
  • Criar Novo...