static void Main()
        {
            Funcionario[] funcionarios = new Funcionario[1000];
            Console.WriteLine(FolhaDePagamento.INSS);

            string opcao;
            int    quantidadeCadastros = 0;

            do
            {
                #region Menu
                Console.Clear();
                Console.WriteLine("[1]. Cadastrar Funcionário");
                Console.WriteLine("[2]. Exibir Folha de Pagamento");
                Console.WriteLine("[3]. Total de custo bruto da folha");
                Console.WriteLine("[4]. Aumento de salário");
                Console.WriteLine("[5]. Total de custo líquido da folha\n");
                Console.WriteLine("[0]. Sair");
                opcao = Console.ReadLine();
                #endregion

                switch (opcao)
                {
                case "1":
                    if (quantidadeCadastros < funcionarios.Length)
                    {
                        funcionarios[quantidadeCadastros] = new Funcionario();

                        Console.WriteLine("Informe o nome: ");
                        funcionarios[quantidadeCadastros].Nome = Console.ReadLine();

                        Console.WriteLine("Informe o salário: ");
                        funcionarios[quantidadeCadastros].Salario = double.Parse(Console.ReadLine());

                        quantidadeCadastros++;
                    }
                    else
                    {
                        Console.WriteLine("Erro. Quantidade máxima de usuários cadastrados");
                    }
                    break;

                case "2":
                    int cont = 0;

                    foreach (Funcionario f in funcionarios)
                    {
                        if (f == null)
                        {
                            break;
                        }

                        Console.WriteLine($"[{cont}] - Nome: {f.Nome}; Salário: {f.Salario}");
                        cont++;
                    }

                    Console.WriteLine($"Escolha o usuario entre [0 - {quantidadeCadastros - 1}]");
                    int indice = int.Parse(Console.ReadLine());

                    if (indice >= 0 && indice < quantidadeCadastros)
                    {
                        FolhaDePagamento.MostrarFolhaDePagamento(funcionarios[indice]);
                    }
                    else
                    {
                        Console.WriteLine("Índice inválido");
                    }
                    break;

                case "3":
                    double total = 0;

                    foreach (Funcionario f in funcionarios)
                    {
                        if (f == null)
                        {
                            break;
                        }

                        total += f.Salario;
                    }
                    Console.WriteLine($"Total de salários brutos: {total}");
                    break;

                case "4":
                    Console.WriteLine($"Escolha o usuario entre [0 - {quantidadeCadastros - 1}]");
                    int indice2 = int.Parse(Console.ReadLine());

                    if (indice2 >= 0 && indice2 < quantidadeCadastros)
                    {
                        FolhaDePagamento.AumentarSalario(funcionarios[indice2]);
                    }
                    else
                    {
                        Console.WriteLine("Índice inválido");
                    }
                    break;

                case "5":
                    double totalLiquido = 0;

                    foreach (Funcionario f in funcionarios)
                    {
                        if (f == null)
                        {
                            break;
                        }

                        totalLiquido += f.Salario - FolhaDePagamento.CalcularDescontos(f.Salario);
                    }
                    Console.WriteLine($"Total de salários brutos: {totalLiquido}");
                    break;

                default:
                    Console.WriteLine("Comando inválido");
                    break;
                }
                Console.ReadKey();
            } while (opcao != "0");
        }
Example #2
0
        static void Main(string[] args)
        {
            //Criando o nosso vetor
            Funcionario[] funcionarios = new Funcionario[1000];
            System.Console.WriteLine(FolhaDePagamento.INSS);

            string comando = null;
            int    quantidadeDeCadastros = 0;

            do
            {
                //Limpa o menu
                Console.Clear();

                #region Menu
                Console.WriteLine("[1]. Cadastrar Funcionário");
                Console.WriteLine("[2]. Exibir Folha de Pagamento");
                Console.WriteLine("[3]. Total de custo bruto da folha");
                Console.WriteLine("[4]. Aumento de salário");
                Console.WriteLine("[5]. Total de custo líquido da folha\n");
                Console.WriteLine("[0]. Sair");
                comando = Console.ReadLine();
                #endregion

                switch (comando)
                {
                    #region Cadastro de usuário
                case "1":
                    if (quantidadeDeCadastros < funcionarios.Length)
                    {
                        //Instancia do funcionario
                        funcionarios[quantidadeDeCadastros] = new Funcionario();

                        //Recebendo o nome
                        Console.WriteLine("Informe o nome: ");
                        funcionarios[quantidadeDeCadastros].Nome = Console.ReadLine();

                        //Recebendo o salario
                        Console.WriteLine("Informe o salário: ");
                        funcionarios[quantidadeDeCadastros].Salario = double.Parse(Console.ReadLine());

                        //Incrementa a quantidade
                        quantidadeDeCadastros++;
                    }
                    else
                    {
                        System.Console.WriteLine("Erro. Quantidade máxima de usuários cadastrados");
                    }

                    break;
                    #endregion

                    #region Folha de pagamento

                case "2":

                    //Exibindo os funcionarios
                    int cont = 0;
                    foreach (Funcionario f in funcionarios)
                    {
                        //Verificando se o f for diferete de nulo
                        if (f == null)
                        {
                            break;
                        }

                        Console.WriteLine($"[{cont}] - Nome: {f.Nome}; Salário: {f.Salario}");
                        cont++;
                    }

                    System.Console.WriteLine($"Escolha o usuario entre [0 - {quantidadeDeCadastros - 1}]");
                    int indice = int.Parse(Console.ReadLine());

                    if (indice >= 0 && indice < quantidadeDeCadastros)
                    {
                        FolhaDePagamento.MostrarFolhaDePagamento(funcionarios[indice]);
                    }
                    else
                    {
                        System.Console.WriteLine("Índice inválido");
                    }

                    break;

                    #endregion

                    #region Salario Bruto
                case "3":
                    double total = 0;
                    //Percorre a lista de funcionarios
                    foreach (Funcionario f in funcionarios)
                    {
                        //Verificando se o funcionario e nulo
                        if (f == null)
                        {
                            break;
                        }

                        //Realiza a soma dos salarios
                        total += f.Salario;
                    }
                    System.Console.WriteLine($"Total de salários brutos: {total}");
                    break;
                    #endregion

                case "4":
                    System.Console.WriteLine($"Escolha o usuario entre [0 - {quantidadeDeCadastros - 1}]");
                    int indice2 = int.Parse(Console.ReadLine());

                    if (indice2 >= 0 && indice2 < quantidadeDeCadastros)
                    {
                        FolhaDePagamento.AumentarSalario(funcionarios[indice2]);
                    }
                    else
                    {
                        System.Console.WriteLine("Índice inválido");
                    }
                    break;

                case "5":
                    double totalLiquido = 0;
                    //Percorre a lista de funcionarios
                    foreach (Funcionario f in funcionarios)
                    {
                        //Verificando se o funcionario e nulo
                        if (f == null)
                        {
                            break;
                        }

                        //Realiza a soma dos salarios
                        totalLiquido += f.Salario - FolhaDePagamento.CalcularDescontos(f.Salario);
                    }
                    System.Console.WriteLine($"Total de salários brutos: {totalLiquido}");
                    break;

                default:
                    Console.WriteLine("Comando inválido");

                    break;
                }

                Console.ReadKey();
            } while (comando != "0");
        }
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            sbyte escolha = 0;

            const int tamanhoDataBase = 1001;

            FolhaDePagamento.funcionarios = new Funcionario[tamanhoDataBase];
            Relatorio.MensagemSucesso("Projeto Finanças");

            do
            {
                Console.WriteLine("");
                Relatorio.TextDecoration("O Que deseja fazer?");
                Console.WriteLine($"\n1- Cadastrar um Funcionario\n2- Exibir Folha De Pagamento\n3- Exibir total de custos bruto da folha de pagamento\n4- Aumentar o salario de um funcionario\n5- Exibir total de custos liquido da folha de pagamento\n6- Ver maior salario\n7- Ver menor salario\n8- Alterar cadastro\n9- Remover cadastro\n0 - Sair\n10- Criar DataBase (Aleatorio)\n11- Listar funcionarios\n");
                sbyte.TryParse(Console.ReadLine().ToString(), out escolha);
                int id = 0;

                switch (escolha)
                {
                case 1:    //   Cadastrar funcionario   //
                    for (int i = 0; i < tamanhoDataBase - 1; i++)
                    {
                        if (FolhaDePagamento.funcionarios[i] == null)
                        {
                            FolhaDePagamento.funcionarios[i] = new Funcionario();
                            FolhaDePagamento.CadastrarFuncionario(i);
                            break;
                        }
                    }
                    break;

                case 2:    //   Exibir folha de pagamento   //
                    Relatorio.TextDecoration("Digite o numero de identificação do funcionario");
                    int.TryParse(Console.ReadLine(), out id);
                    if (FolhaDePagamento.funcionarios[id] != null)
                    {
                        FolhaDePagamento.MostrarFolhaDePagamento(id);
                    }
                    else
                    {
                        Relatorio.FuncionarioNaoEncontrado(id);
                    }
                    break;

                case 3:    //   Exibir total de custos bruto    //
                    FolhaDePagamento.TotalCustosBruto();
                    break;

                case 4:    //   Aumentar Salario de um funcionario  //
                    Relatorio.TextDecoration("Informe o numero de identificação do funcionario no qual você quer aumentar o salario");
                    int.TryParse(Console.ReadLine(), out id);
                    if (id < 1001 && id >= 0)
                    {
                        if (FolhaDePagamento.funcionarios[id] != null)
                        {
                            FolhaDePagamento.AumentarSalario(id);
                        }
                        else
                        {
                            Relatorio.FuncionarioNaoEncontrado(id);
                        }
                    }
                    else
                    {
                        Relatorio.TextDecoration($"O valor inserido ({id}) não está dentro dos limites do banco de dados");
                    }
                    break;

                case 5:    //   Exibir total de custos liquido da folha de pagamento    //
                    FolhaDePagamento.TotalCustosLiquido();
                    break;

                case 6:    //   Ver maior salario   //
                    FolhaDePagamento.MaiorSalario();
                    break;

                case 7:    //   Ver menor salario   //
                    FolhaDePagamento.MenorSalario();
                    break;

                case 8:    //   Alterar cadastro    //
                    Console.WriteLine("Digite o ID do funcionario que você quer alterar");
                    int.TryParse(Console.ReadLine(), out id);
                    if (id < tamanhoDataBase && id >= 0)
                    {
                        if (FolhaDePagamento.funcionarios[id] != null)
                        {
                            FolhaDePagamento.AlterarCadastro(id);
                        }
                        else
                        {
                            Relatorio.TextDecoration($"Não existe nenhum funcionario cadastrado no ID {id}.");
                            Console.WriteLine("\nDeseja cadastar um funcionario nesse ID?\n1- Sim\n2- Não");
                            sbyte.TryParse(Console.ReadLine(), out sbyte esc);
                            switch (esc)
                            {
                            case 1:
                                FolhaDePagamento.CadastrarFuncionario(id);
                                break;

                            default:
                                //porra nenhuma acontece ;-;
                                break;
                            }
                        }
                    }
                    else
                    {
                        Relatorio.TextDecoration($"O valor inserido ({id}) não está dentro dos limites do banco de dados");
                    }
                    break;

                case 9:    //   Remover cadastro    //
                    Console.WriteLine("Digite o ID do funcionario que você quer remover");
                    int.TryParse(Console.ReadLine(), out id);
                    if (id < tamanhoDataBase && id >= 0)
                    {
                        if (FolhaDePagamento.funcionarios[id] != null)
                        {
                            Console.WriteLine($"\nDeseja mesmo excluir o Funcionario {FolhaDePagamento.funcionarios[id].nome} no indice {id}?\n1- Sim\n2- Não");
                            sbyte.TryParse(Console.ReadLine(), out sbyte esc);
                            switch (esc)
                            {
                            case 1:
                                Relatorio.MensagemSucesso($"Funcionario {FolhaDePagamento.funcionarios[id].nome} removido com sucesso");
                                FolhaDePagamento.funcionarios[id] = null;
                                break;

                            default:
                                //porra nenhuma acontece ;-;
                                break;
                            }
                        }
                        else
                        {
                            Relatorio.TextDecoration($"Não há funcionario no indice {id}.");
                        }
                    }
                    else
                    {
                        Relatorio.TextDecoration($"O valor inserido ({id}) não está dentro dos limites do banco de dados");
                    }
                    break;

                case 10:    // Gerar funcionarios aleatorio //
                    Relatorio.TextDecoration($"Insira a quantidade de funcionarios");
                    Console.WriteLine($"um numero entre 1 e {tamanhoDataBase}");
                    int.TryParse(Console.ReadLine(), out int valor);

                    FolhaDePagamento.funcionarios = new Funcionario[tamanhoDataBase];

                    if (valor < tamanhoDataBase && valor > 0)
                    {
                        for (int i = 0; i < valor; i++)
                        {
                            FolhaDePagamento.GerarDataBase(i);
                        }
                    }
                    else
                    {
                        Relatorio.TextDecoration("O numero inserido não é valido.");
                    }
                    break;

                case 11:    //  Listar Funcionario  //
                    foreach (Funcionario item in FolhaDePagamento.funcionarios)
                    {
                        if (item != null)
                        {
                            Console.WriteLine($"ID : {item.id} , Nome : {item.nome} , Salario R${item.salarioBruto}");
                        }
                    }
                    break;

                case 12:
                    Relatorio.EasterEgg();
                    break;

                case 0:    //   Sair     //
                    Console.WriteLine("Aperte qualquer tecla para sair");
                    break;

                default:    //  Exceção //
                    escolha = 1;
                    Relatorio.TextDecoration("Você deve escolhe qualquer uma dessas escolhas numeradas");
                    continue;
                }
                if (escolha != 0)
                {
                    Console.WriteLine("Aperte qualquer tecla para continuar");
                    Console.ReadKey();
                }
            }while(escolha != 0);
            Console.ReadKey();
        }