Example #1
0
        public static void CadastrarPessoa(ClassePessoa[] pessoas, int posicao)
        {
            string nome      = "";
            string sobrenome = "";
            double peso      = 0;
            double altura    = 0;
            int    idade     = 0;
            bool   nomeIgual = true;

            while (nomeIgual)
            {
                nomeIgual = false;
                Console.WriteLine("Digite o nome da pessoa: ");
                nome = Console.ReadLine();
                Console.WriteLine("Digite o sobrenome de " + nome + ":");
                sobrenome = Console.ReadLine();
                for (int j = 0; j < pessoas.Length; j++)
                {
                    if (pessoas[j] == null)
                    {
                        ;
                    }
                    else if (pessoas[j].Nome.Equals(nome) && pessoas[j].Sobrenome.Equals(sobrenome))
                    {
                        nomeIgual = true;
                        Console.WriteLine(Environment.NewLine + "Essa pessoa ja foi cadastrada " + Environment.NewLine);
                    }
                }
            }
            Console.WriteLine("Insira a idade de " + nome + " " + sobrenome + ":");
            string inputIdade = Console.ReadLine();

            if (int.TryParse(inputIdade, out idade) == false)
            {
                idade = 0;
            }
            while (idade < 20 || idade > 65)
            {
                Console.WriteLine(Environment.NewLine + "Este IMC é apenas para adultos entre 20 e 65 anos!" + Environment.NewLine);
                Console.WriteLine("Insira a idade de " + nome + " " + sobrenome + ":");
                inputIdade = Console.ReadLine();
                if (int.TryParse(inputIdade, out idade) == false)
                {
                    idade = 0;
                }
            }
            Console.WriteLine("Informe o sexo de " + nome + " " + sobrenome + " (M para masculino e F para feminino):");
            string sexo = Console.ReadLine();

            while (!sexo.ToUpper().Equals("M") && !sexo.ToUpper().Equals("F"))
            {
                Console.WriteLine("Informe o sexo de " + nome + " " + sobrenome + " (M para masculino e F para feminino):");
                sexo = Console.ReadLine();
            }
            ClassePessoa pessoa = new ClassePessoa(idade, nome, sobrenome, sexo);

            pessoas[posicao] = pessoa;
            Console.WriteLine("Insira o peso de " + nome + " " + sobrenome + ":");
            string inputPeso = Console.ReadLine();

            inputPeso = inputPeso.Replace(',', '.');
            if (double.TryParse(inputPeso, out peso) == false)
            {
                peso = 0;
            }
            while (peso > 300 || peso < 30)
            {
                Console.WriteLine(Environment.NewLine + "Este peso é inválido!" + Environment.NewLine);
                Console.WriteLine("Insira o peso de " + nome + " " + sobrenome + ":");
                inputPeso = Console.ReadLine();
                inputPeso = inputPeso.Replace(',', '.');
                if (double.TryParse(inputPeso, out peso) == false)
                {
                    peso = 0;
                }
            }
            pessoas[posicao].Peso = peso;
            Console.WriteLine("Insira a altura de " + nome + " " + sobrenome + ":");
            string inputAltura = Console.ReadLine();

            inputAltura = inputAltura.Replace(',', '.');
            if (double.TryParse(inputAltura, out altura) == false)
            {
                altura = 0;
            }
            while (altura > 2.8 || altura < 1)
            {
                Console.WriteLine(Environment.NewLine + "Esta altura é inválida!" + Environment.NewLine);
                Console.WriteLine("Insira a altura de " + nome + ":");
                inputAltura = Console.ReadLine();
                inputAltura = inputAltura.Replace(',', '.');
                if (double.TryParse(inputAltura, out altura) == false)
                {
                    altura = 0;
                }
            }
            pessoas[posicao].Altura = altura;
        }
Example #2
0
        public static void Main(string[] args)
        {
            /*Tarefas
             * Perguntar de quantas pessoas se deseja calcular o IMC - armazenar em um array - OK
             * Implementar método para perguntar de qual pessoa deseja olhar o IMC (por nome, nome+sobrenome ou número)
             * Manter o programa em execução até que o usuário digite SAIR - OK
             * Caso o usuário digite a palavra TROCAR, programa deve permitir que ele escolha(por nome ou número, de qual pessoa deseja trocar os dados)
             * Verificar no cadastro da pessoa e na hora de trocar informações que não exista nenhum nome+sobrenome igual
             * Calcular IMC por sexo - 1/2 OK
             * Modificar mensagens ao usuário(algumas estão para apenas uma pessoa, não se aplicando ao novo modelo) - OK
             * Pesquisar e implementar tabelas de IMC para homens e para mulheres e suas diferenças - OK
             */

            //muda para cultura EUA, para utilizar ponto ao invés de vírgula
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            //criação variáveis
            string nome       = "";
            string sobrenome  = "";
            double peso       = 0;
            double altura     = 0;
            double imc        = 0;
            int    idade      = 0;
            int    quantidade = 0;

            Console.WriteLine("De quantas pessoas você deseja calcular o IMC?");
            string inputQuantidade = Console.ReadLine();

            if (int.TryParse(inputQuantidade, out quantidade) == false)
            {
                quantidade = 0;
            }
            while (quantidade < 1)
            {
                Console.WriteLine(Environment.NewLine + "Digite uma quantidade válida!" + Environment.NewLine);
                Console.WriteLine("De quantas pessoas você deseja calcular o IMC?");
                inputQuantidade = Console.ReadLine();
                if (int.TryParse(inputQuantidade, out quantidade) == false)
                {
                    quantidade = 0;
                }
            }

            ClassePessoa[] pessoas = new ClassePessoa[quantidade];

            //tabela informativa
            Console.WriteLine("                         TABELA IMC MASCULINA " + Environment.NewLine);
            Console.WriteLine(">----------------------------------------------------------------------<" + Environment.NewLine);
            Console.WriteLine("       IMC           |     CLASSIFICAÇÃO     |    RISCO DE DOENÇA" + Environment.NewLine);
            Console.WriteLine(">------------------- | ------------------    | ------------------------<    " + Environment.NewLine);
            Console.WriteLine("Menos de 17,9        |     Magreza  grave    |    Elevado");
            Console.WriteLine("Entre 17,9 e 18,     |     Magreza           |    Elevado");
            Console.WriteLine("Entre 19 e 24,9      |     Normal	     |    Sem Risco");
            Console.WriteLine("Entre 25 e 27,7      |     Sobrepeso	     |    Elevado");
            Console.WriteLine("Entre 30 e 39,9	     |     Obesidade	     |    Muito elevado");
            Console.WriteLine("Igual ou maior de 40 |     Obesidade grave   |    Muitíssimo elevado" + Environment.NewLine);

            //tabela informativa
            Console.WriteLine("                         TABELA IMC FEMININA " + Environment.NewLine);
            Console.WriteLine(">----------------------------------------------------------------------<" + Environment.NewLine);
            Console.WriteLine("       IMC           |     CLASSIFICAÇÃO     |    RISCO DE DOENÇA" + Environment.NewLine);
            Console.WriteLine(">------------------- | ------------------    | ------------------------<    " + Environment.NewLine);
            Console.WriteLine("Menos de 15          |     Magreza grave     |    Elevado");
            Console.WriteLine("Entre 15 e 17,9      |     Magreza           |    Elevado");
            Console.WriteLine("Entre 18 e 24,4      |     Normal	     |    Sem Risco");
            Console.WriteLine("Entre 24,5 e 27,2    |     Sobrepeso	     |    Elevado");
            Console.WriteLine("Entre 30 e 39,9	     |     Obesidade	     |    Muito elevado");
            Console.WriteLine("Igual ou maior de 40 |     Obesidade grave   |    Muitíssimo elevado" + Environment.NewLine);

            for (int i = 0; i < pessoas.Length; i++)
            {
                CadastrarPessoa(pessoas, i);
            }
            for (int i = 0; i < pessoas.Length; i++)
            {
                imc = pessoas[i].CalculaIMC();
                Console.Write(Environment.NewLine + "O IMC de " + pessoas[i].Nome + " " + pessoas[i].Sobrenome + " ");
                Console.WriteLine(MensagemIMC(imc, pessoas[i].Sexo));
            }

            // comando = "" inicializa a variável
            // ToUpper passa para caixa alta
            // Equals serve para comparar strings
            // ! = diferente
            string comando = "";

            while (!comando.ToUpper().Equals("SAIR"))
            {
                Console.WriteLine(Environment.NewLine + " MENU DE OPÇÕES      |           AJUDA                       ");
                Console.WriteLine(Environment.NewLine + ">--------------------| -----------------------------------------------------------<");
                Console.WriteLine(Environment.NewLine + "       Resultados    |   para visualizar os resultados das pessoas informadas.");
                Console.WriteLine("       Pesquisar     |   para realizar pesquisa por pessoa informada.  ");
                Console.WriteLine("       Trocar        |   para trocar dados de pessoa informada. ");
                Console.WriteLine("       Sair          |   para encerrar o programa.");
                Console.WriteLine(Environment.NewLine + " >-------------------|------------------------------------------------------------<");
                Console.WriteLine("Informe a opção: ");
                comando = Console.ReadLine().ToUpper();
                if (comando.Equals("RESULTADOS"))
                {
                    for (int i = 0; i < pessoas.Length; i++)
                    {
                        imc = pessoas[i].CalculaIMC();
                        Console.Write(Environment.NewLine + "O IMC de " + pessoas[i].Nome + " " + pessoas[i].Sobrenome);
                        Console.WriteLine(MensagemIMC(imc, pessoas[i].Sexo));
                    }
                }
                else if (comando.Equals("TROCAR"))
                {
                    Console.WriteLine("Informe o nome da pessoa que deseja trocar:");
                    string pesquisa = Console.ReadLine();
                    int    posicao  = PesquisaPessoa(pesquisa, pessoas);
                    if (posicao == -1)
                    {
                        Console.WriteLine("Não encontrado");
                    }
                    else
                    {
                        CadastrarPessoa(pessoas, posicao);
                    }
                }
                else if (comando.Equals("PESQUISAR"))
                {
                    Console.WriteLine("Digite o nome da pessoa que deseja pesquisar:");
                    string pesquisa = Console.ReadLine();
                    int    posicao  = PesquisaPessoa(pesquisa, pessoas);
                    if (posicao == -1)
                    {
                        Console.WriteLine("Não encontrado");
                    }
                    else
                    {
                        Console.WriteLine("Nome: " + pessoas[posicao].Nome);
                        Console.WriteLine("Sobrenome: " + pessoas[posicao].Sobrenome);
                        Console.WriteLine("Idade: " + pessoas[posicao].Idade);
                        Console.WriteLine("Sexo: " + pessoas[posicao].Sexo);
                        Console.WriteLine("Peso: " + pessoas[posicao].Peso);
                        Console.WriteLine("Altura: " + pessoas[posicao].Altura);
                        Console.WriteLine("IMC : " + pessoas[posicao].CalculaIMC());
                    }
                }
                else if (comando.Equals("SAIR"))
                {
                    Environment.Exit(0);
                }
                else
                {
                    Console.WriteLine(Environment.NewLine + "Comando inválido!" + Environment.NewLine);
                }
            }
        }