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"); }
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(); }