Esempio n. 1
0
 private static void InOrdem(this Arvore arvore, int codEspecialidade, Nodo raiz, ref string saida)
 {
     if (raiz != null)
     {
         InOrdem(arvore, codEspecialidade, raiz.filhoEsquerdo, ref saida);
         if (((Consulta)raiz.elemento.retornar()).codEspecialidade == codEspecialidade)
         {
             saida += raiz.elemento.nomeDado() + " \n";
         }
         InOrdem(arvore, codEspecialidade, raiz.filhoDireito, ref saida);
     }
 }
Esempio n. 2
0
        public void inserir(Consulta novoNodo)
        {
            int mes = novoNodo.dataConsulta.Month - 1;
            int dia = novoNodo.dataConsulta.Day - 1;
            int ano = novoNodo.dataConsulta.Year - anoReferencia;

            // Console.WriteLine("{0}, {1}, {2}", ano, mes, dia);
            if (tabelaConsultas[ano, mes, dia] == null)
            {
                tabelaConsultas[ano, mes, dia] = new Arvore();
            }

            tabelaConsultas[ano, mes, dia].inserir(novoNodo);
        }
Esempio n. 3
0
        public static void InOrdem(this Arvore arvore, int codEspecialidade)
        {
            string Saida = "";

            InOrdem(arvore, codEspecialidade, arvore.raiz, ref Saida);
            if (Saida.Length == 0)
            {
                Console.WriteLine("Para essa não tem registro de consulta com essa especialidade!");
            }
            else
            {
                Console.WriteLine(Saida);
            }
        }
        public void LerPacientes(String arq, Arvore ArvPaciente)
        {
            Console.WriteLine("Iniciando leitura dos paciêntes...");
            var sw = new Stopwatch();

            sw.Start();
            System.IO.StreamReader file = new System.IO.StreamReader(arq);
            while ((line = file.ReadLine()) != null)
            {
                string[] DadosColetados = line.Split(';');
                var      cpf            = DadosColetados[0];
                var      nome           = DadosColetados[1];
                Paciente paciente       = new Paciente(cpf, nome);
                ArvPaciente.inserir(paciente);
            }
            sw.Stop();
            file.Close();
            Console.WriteLine("Total de tempo de leitura do Paciênte : " + sw.ElapsedMilliseconds.ToString() + " milisegundos");
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            // Estrutura de Dados
            Arvore      ArvPaciente   = new Arvore();
            TabelaHash  HashConsultas = new TabelaHash();
            HashMedicos tabelaMedicos = new HashMedicos();

            // Controle da Aplicação
            Boolean arquivoCarregado = false;
            int     state            = 0;

            // Do while para controlar as opções do programa
            do
            {
                // Na primeira execução faz a leitura dos arquivos no caminho informado
                if (!arquivoCarregado)
                {
                    try
                    {
                        // Caminho dos arquivos p/ leitura
                        String arqMedicos   = @"D:\PUC\AED\dadosMedicos.txt";
                        String arqPacientes = @"D:\PUC\AED\dadosPacientes.txt";
                        String artConsultas = @"D:\PUC\AED\dadosCons.txt";

                        // Leituras
                        LeituraArquivos Leitura = new LeituraArquivos();
                        Leitura.LerPacientes(arqPacientes, ArvPaciente);
                        Leitura.LerMedico(arqMedicos, tabelaMedicos);
                        Leitura.LerConsultas(artConsultas, HashConsultas, ArvPaciente, tabelaMedicos);
                        Console.WriteLine("Leitura dos arquivos foi finalizado com sucesso.\n");
                        // Enable file read
                        arquivoCarregado = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Erro encontrado na leitura do arquivo:");
                        Console.WriteLine(e.Message);
                        // Encerra o programa
                        state = 4;
                        break;
                    }
                }

                // Controle de atividade da aplicação
                try
                {
                    state = obterMenu();
                } catch
                {
                    Console.WriteLine("Não foi possivel reconhecer a opção, tente novamente");
                }

                switch (state)
                {
                case 1:
                    Console.WriteLine("Mostrar, para um paciente, todas as suas consultas e o valor total pago.");
                    Console.WriteLine("Informe o CPF do paciente no formato 000000000-00");
                    // Pegar o CPF
                    try
                    {
                        // GET CPF and Validate with regex
                        String cpf        = Console.ReadLine();
                        String patternCpf = @"[0-9]{9}[-]?[0-9]{2}$";
                        var    rgx        = Regex.Match(cpf, patternCpf, RegexOptions.IgnoreCase);

                        if (rgx.Success)
                        {
                            var sw = new Stopwatch();
                            sw.Start();
                            Paciente pac = ((Paciente)ArvPaciente.procurar(cpf));
                            if (pac != null)
                            {
                                pac.consultas.imprime();
                            }
                            else
                            {
                                Console.WriteLine("O CPF informado não consta na lista de pacientes!");
                            }
                            sw.Stop();
                            Console.WriteLine("Tempo gasto : " + sw.ElapsedMilliseconds.ToString() + " milisegundos");
                        }
                        else
                        {
                            Console.WriteLine("O formato do CPF informado é invalido. Tente novamente com o formato 000000000-00");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        Console.ReadKey();
                        break;
                    }
                    Console.ReadKey();
                    break;

                case 2:
                    //Console.Clear();
                    // Obter data
                    try
                    {
                        Console.WriteLine("Exibir, em uma data, todas as consultas de uma especialidade.");
                        Console.WriteLine("Informe uma dana no formato DD/MM/YYYY:");
                        DateTime data = Convert.ToDateTime(Console.ReadLine());
                        Console.WriteLine("Informe a identificação da especialdiade 0 a 9:");
                        int codEspecialidade = int.Parse(Console.ReadLine());

                        // Verificar como será esse retorno !
                        var sw = new Stopwatch();
                        sw.Start();
                        HashConsultas.pesquisaTodasConsultasDataEspecialidade(data, codEspecialidade);
                        sw.Stop();
                        Console.WriteLine("Tempo gasto : " + sw.ElapsedMilliseconds.ToString() + " milisegundos");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("O valor informado não é uma data válida ou não existe o código de especialidade, informe a õpção novamente.");
                        Console.WriteLine(e.Message);
                        Console.ReadKey();
                        break;
                    }
                    Console.ReadKey();
                    break;

                case 3:
                    // Console.Clear();
                    Console.WriteLine("Exibir um relatório, em ordem decrescente de valores, dos médicos e valor es recebidos.");
                    // Relatorio
                    tabelaMedicos.imprimirListaDeMedicos();
                    Console.ReadKey();
                    break;

                case 4:
                    Console.Clear();
                    break;
                }
            } while (state != 5);
            Console.ReadKey();
        }
Esempio n. 6
0
 public void imprimirData(Arvore Arvore)
 {
     Arvore.percorre(2);
 }
Esempio n. 7
0
 public TabelaHash()
 {
     Arvore[,,] matriz = new Arvore[22, 12, 31]; // YY MM DD
     tabelaConsultas   = matriz;
     anoReferencia     = 1999;
 }