public void LerConsultas(String arq, TabelaHash Hash, Arvore ArvPaciente, HashMedicos tabelaMedicos) { Console.WriteLine("Iniciando leitura das consultas..."); 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 tipo = int.Parse(DadosColetados[1]); var especialidade = int.Parse(DadosColetados[2]); var data = Convert.ToDateTime(DadosColetados[3]); Consulta consulta = new Consulta(cpf, tipo, especialidade, data); Hash.inserir(consulta); tabelaMedicos.AdicionarConsultaMedico(consulta); // buscar o cpf e inserir na lista a consulta do cliente ((Paciente)ArvPaciente.procurar(cpf)).consultas.adicionar(consulta); } sw.Stop(); file.Close(); Console.WriteLine("Tempo gasto : " + sw.ElapsedMilliseconds.ToString() + " milisegundos"); }
public void LerMedico(String arq, HashMedicos tabelaMedico) { Console.WriteLine("Iniciando leitura dos médicos..."); 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 crm = DadosColetados[0]; var nome = DadosColetados[1]; var codEspecialidade = int.Parse(DadosColetados[2]); Medico medico = new Medico(crm, nome, codEspecialidade); tabelaMedico.Adicionar(medico); } sw.Stop(); file.Close(); Console.WriteLine("Total de tempo de leitura do médicos : " + sw.ElapsedMilliseconds.ToString() + " milisegundos"); // Suspend the screen. }
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(); }