public override void CarregarNotas() { using (StreamReader reader = new StreamReader("../../Notas_Real.txt")) { try { string linha; String[] Separador; linha = reader.ReadLine(); int nota; int Qtd_Nota; // Ler linha por linha e Adiciona na lista de clientes while (linha != null) { Separador = linha.Split(new char[] { ';' }); nota = int.Parse(Separador[0]); Qtd_Nota = int.Parse(Separador[1]); linha = reader.ReadLine(); Real Novo = new Real(nota, Qtd_Nota, nome_moeda, simbolo); } reader.Close(); } catch (IOException) { Console.WriteLine("Erro ao adicionar na lista"); } } }
public static void lerArquivo(List<Cliente> clientes) { try { if (File.Exists("../../clientes.txt")) { Stream arqDados = File.Open("../../clientes.txt", FileMode.Open); StreamReader leitor = new StreamReader(arqDados); String linha = leitor.ReadLine(); String[] separador; Cliente clientePadrao; FundoInvestimento novoFundo = null; List<Aplicacao> aplicacoes = new List<Aplicacao>(); List<FundoInvestimento> fundoInvestimento = new List<FundoInvestimento>(); Real real = new Real(2, "real", "R$"); Dolar dolar = new Dolar(3, "dolar", "U$"); Aplicacao.lerArquivo(aplicacoes); FundoInvestimento.lerArquivo(fundoInvestimento, dolar, real); bool verifica = false; while (linha != null) { separador = linha.Split(';'); clientePadrao = new Cliente(clientes.Count(), separador[1], separador[2], separador[3], Convert.ToDouble(separador[4]), separador[5],DateTime.Parse(separador[6])); for (int i=0;i< Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente).Count();i++) { for (int j=0;j<fundoInvestimento.Count();j++) { if (Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente)[i].getCodInvestimento().Equals(fundoInvestimento[j].getCodInvestimento())) { if (fundoInvestimento[j].getMoeda().getNomeMoeda().Equals("real")){ novoFundo = new FundoInvestimento(fundoInvestimento[j].getCodInvestimento() - 1, fundoInvestimento[j].getNome(), real); } else { novoFundo = new FundoInvestimento(fundoInvestimento[j].getCodInvestimento() - 1, fundoInvestimento[j].getNome(), dolar); } } for(int k=0;k<clientePadrao.fundoInvestimento.Count();k++) { if (clientePadrao.fundoInvestimento[k].getCodInvestimento().Equals(Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente)[i].getCodInvestimento())) { verifica = true; } } if (verifica) { //dando problema aqui FundoInvestimento.buscaFundo(clientePadrao.fundoInvestimento, Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente)[i].getCodInvestimento()).buscaAplicacao().Add(Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente)[j]); } else { novoFundo.buscaAplicacao().Add(Aplicacao.buscaAplicacaoCliente(aplicacoes, clientePadrao.codCliente)[i]); clientePadrao.fundoInvestimento.Add(novoFundo); } } } linha = leitor.ReadLine(); clientes.Add(clientePadrao); verifica = false; } leitor.Close(); arqDados.Close(); } }catch(IOException io){ Console.WriteLine("\nOcorreu um erro: {0}", io); } }
//Ajustar relatórios de aplicações por cliente case 4!!!!!!!!!!!! static void Main(string[] args) { Lista_fundos chamar_fundo = new Lista_fundos(); Lista_clientes chamar_cli = new Lista_clientes(); Lista_aplicacoes chamar_investimentos = new Lista_aplicacoes(); Lista_user chamar_user = new Lista_user(); chamar_user.carrega_user(); chamar_fundo.FundosCadastrados(); chamar_cli.ClientesCadastrados(); chamar_investimentos.Aplicações_arq(); int opcao1 = -1, opcao0 = -1; while (opcao0 != 0) { Console.WriteLine("Para acesso ADM,..................digite 1"); Console.WriteLine("Para acesso de cliente,...........digite 2"); //não deu tempo Console.WriteLine("Para cadastrar novo usuário ADM...digite 3"); Console.WriteLine("Para sair,........................digite 0"); opcao0 = Convert.ToInt32(Console.ReadLine()); switch (opcao0) { case 1: /* Console.WriteLine("Informe usuário:"); string use = Console.ReadLine(); Console.WriteLine("Informe a senha: "); int sen = int.Parse(Console.ReadLine()); if (chamar_user.Buscar_usuario(use, sen) != null) { */ while (opcao1 != 0) { Console.WriteLine("Para cadastrar novo fundo de investimentos,......digite 1"); Console.WriteLine("Para buscar fundo de investimento,.............. digite 2"); Console.WriteLine("Para gerar relatório de aplicações por mês,......digite 3"); Console.WriteLine("Para gerar relatório de aplicações por cliente,..digite 4"); Console.WriteLine("Para cadastrar novo cliente,.....................digite 5"); Console.WriteLine("Para buscar cliente,.............................digite 6"); Console.WriteLine("Para excluir cliente,............................digite 7"); Console.WriteLine("Para excluir fundo,..............................digite 8"); Console.WriteLine("Para sair,.......................................digite 0"); opcao1 = Convert.ToInt32(Console.ReadLine()); switch (opcao1) { case 1: int codigo_fundo; string nome_fundo; string sigla_fundo; if (chamar_fundo.contaFundos() == 0) { codigo_fundo = 01; } else { codigo_fundo = chamar_fundo.contaFundos(); } int opcaomoeda; Console.WriteLine("Escolha o tipo de moeda para este fundo!"); Console.WriteLine("Digite 1, para Real"); Console.WriteLine("Digite 2, para Dolar"); opcaomoeda = int.Parse(Console.ReadLine()); Console.WriteLine("Digite o nome do fundo de investimento a cadastrar: "); nome_fundo = Console.ReadLine(); Console.WriteLine("Digite a sigla do fundo de investimento: "); sigla_fundo = Console.ReadLine(); Fundo_de_investimento novo_fundo = new Fundo_de_investimento(codigo_fundo, nome_fundo, sigla_fundo, opcaomoeda); Console.WriteLine("Codigo do fundo: " + codigo_fundo); chamar_fundo.Cadatrar_fundo(novo_fundo); //carregar arquivo de fundos em uma lista //atualizar a lista e gravar a mesma novamente em arquivo; //vai ter um arquivo para - fundos_completos, fundos, clientes //para buscar carregar do arquivo para a lista e depois fazer a busca na lista break; case 2: int codigo; Console.WriteLine("Digite o codigo do fundo de investimento: "); codigo = Convert.ToInt32(Console.ReadLine()); if (chamar_fundo.Busca_fundo(codigo) == null) { Console.WriteLine("Não foi possível encontrar o fundo, verifique o codigo!"); } else { Console.WriteLine("Nome: " + chamar_fundo.Busca_fundo(codigo).getNome_fundo() + "- " + chamar_fundo.Busca_fundo(codigo).getSigla_fundo()); } break; case 3: Console.WriteLine("codigo do Fundo_de_investimento"); int cod1 = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod1) != null) { chamar_investimentos.Relatorio_mensal(cod1); } else { Console.WriteLine("Código inválido"); } break; case 4: Console.Write("Digite o cpf do cliente: "); int cpf_cli = int.Parse(Console.ReadLine()); if (chamar_cli.Busca_cliente(cpf_cli) != null) { Console.WriteLine(""); Console.WriteLine("Cliente: " + chamar_cli.Busca_cliente(cpf_cli).getCodigo_cliente() + "- " + chamar_cli.Busca_cliente(cpf_cli).getNome_cliente()); Console.WriteLine(" "); Console.WriteLine("para escolher fundo, digite.....1"); Console.WriteLine("Para imprimir todos,............2"); int escolha = int.Parse(Console.ReadLine()); if (escolha == 1) { Console.WriteLine("digite o código do fundo"); int cod_fun = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod_fun) != null) { Console.WriteLine("Para exibir na tela......digite 1"); Console.WriteLine("Para gerar relatório.....digite 2"); int escolha1 = int.Parse(Console.ReadLine()); if (escolha1 == 1) { chamar_investimentos.Buscar_aplicacao_Cliente(cpf_cli, cod_fun); } else { if (escolha1 == 2) { //chamar método de gerar arquivo chamar_investimentos.Gerar_relatorio_por_cliente_e_fundo(cpf_cli, cod_fun); } else { Console.WriteLine("Opção inválida!"); } } } else { Console.WriteLine("Fundo não encontrado!"); } } else { if (escolha == 2) { //imprimir todos na tela ou no arquivo Console.WriteLine("Para exibir na tela......digite 1"); Console.WriteLine("Para gerar relatório.....digite 2"); int escolha1 = int.Parse(Console.ReadLine()); if (escolha1 == 1) { chamar_investimentos.Exibir_aplicacoes_por_cliente(cpf_cli); } else { if (escolha1 == 2) { chamar_investimentos.Gerar_relatorio_por_cliente(cpf_cli); } else { Console.WriteLine("Opção inválida!"); } } } else { Console.WriteLine("Opção inválida!"); } } } else { Console.WriteLine("Cliente não encontrado, verifique o cpf!"); } break; case 5: int codigo_cli; int cpf; string nome; Console.WriteLine("Digite cpf: "); cpf = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Digite nome: "); nome = Console.ReadLine(); if (chamar_cli.contaClientes() == 0) { codigo_cli = 01; } else { codigo_cli = chamar_cli.contaClientes(); } Cliente novo = new Cliente(codigo_cli, cpf, nome); if (chamar_cli.Cadatrar_cliente(novo)) { Console.WriteLine("Código do cliente: " + codigo_cli); } else { Console.WriteLine("Menu:"); } break; case 6: int b_cpf; Console.WriteLine("Digite o seu CPF: "); b_cpf = int.Parse(Console.ReadLine()); if (chamar_cli.Busca_cliente(b_cpf) == null) { Console.WriteLine("Dado inválido, verifique o CPF cadastrado"); } else { Console.WriteLine("Código: " + chamar_cli.Busca_cliente(b_cpf).getCodigo_cliente()); Console.WriteLine("Nome: " + chamar_cli.Busca_cliente(b_cpf).getNome_cliente()); } break; case 7: int cpf_ex; Console.WriteLine("Digite o CPF do cliente!"); cpf_ex = int.Parse(Console.ReadLine()); if (chamar_cli.Busca_cliente(cpf_ex) != null) { if (chamar_investimentos.possui_apli(cpf_ex)) { Console.WriteLine("Cliente possui aplicações.......Resgate ou transfira as mesmas!"); } else { Console.WriteLine("O cliente: {0}, CPF: {1} " + chamar_cli.Busca_cliente(cpf_ex).getNome_cliente() + chamar_cli.Busca_cliente(cpf_ex).getCpf_cliente() + "Será excluído!"); Console.WriteLine("Para confirmar digite 1"); Console.WriteLine("Para cancelar digite 0"); int opcao = int.Parse(Console.ReadLine()); if (opcao == 1) { chamar_cli.excluir_cliente(cpf_ex); } else { Console.WriteLine("Exclusão cancelada!"); } } } else { Console.WriteLine("Cliente não existente!"); } break; case 8: Console.WriteLine("Digite o código do fundo:"); int cod = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod) != null) { //fazer metodo que verifica se há cliente no fundo. if (chamar_investimentos.fundo_tem_aplicacao(cod)) { Console.WriteLine("Fundo não pode ser excluído, o mesmo possui aplicações"); } else { Console.WriteLine("O fundo: {0}, Cod: {1}-Sigla{2} " + chamar_fundo.Busca_fundo(cod).getCodigo_fundo() + chamar_fundo.Busca_fundo(cod).getNome_fundo() + chamar_fundo.Busca_fundo(cod).getSigla_fundo() + "Será excluído!"); Console.WriteLine("Para confirmar digite 1"); Console.WriteLine("Para cancelar digite 0"); int opcao = int.Parse(Console.ReadLine()); if (opcao == 1) { chamar_fundo.excluir_fundo(cod); } else { Console.WriteLine("Exclusão cancelada!"); } } } else { Console.WriteLine("Código inválido!"); } break; case 0: Console.WriteLine("Menu Principal"); break; } } /* } else { Console.WriteLine("Usuário ou senha inválido!"); }*/ break; case 2: Console.WriteLine("Digite o CPF do investidor: "); int cpf_inv = int.Parse(Console.ReadLine()); //validar cliente if (chamar_cli.Busca_cliente(cpf_inv) != null) { Console.WriteLine("Bem vindo @ - " + chamar_cli.Busca_cliente(cpf_inv).getNome_cliente()); int opcao2 = -1; while (opcao2 != 0) { //opções para o cliente Console.WriteLine("Para aplicar em fundo,...........................digite 1"); Console.WriteLine("Consultar aplicações,............................digite 2"); Console.WriteLine("Para fazer resgate,..............................digite 3"); Console.WriteLine("Para transferiri aplicação para outro fundo,.....digite 4"); Console.WriteLine("Para sair,......................digite 0"); opcao2 = Convert.ToInt32(Console.ReadLine()); switch (opcao2) { case 1: //case para aplicar int b_cpf; Console.WriteLine("Digite o seu CPF: "); b_cpf = int.Parse(Console.ReadLine()); if (chamar_cli.Busca_cliente(b_cpf) == null) { Console.WriteLine("Dado incorreto, verifique CPF!"); } else { Console.WriteLine("Bem vindo(a): " + chamar_cli.Busca_cliente(b_cpf).getNome_cliente()); int opcaomoeda; Console.WriteLine("Escolha a moeda para a aplicação: "); Console.WriteLine("Para Real,................digite 1"); Console.WriteLine("Para dolar,...............digite 2"); opcaomoeda = int.Parse(Console.ReadLine()); //se digitar moeda inesistente: if (opcaomoeda == 1 || opcaomoeda == 2) { Console.WriteLine("Lista de fundos disponíveis para a moeda escolhida: "); if (chamar_fundo.Imprimir_fundo(opcaomoeda) == false) { Console.WriteLine("não há fundos cadastrados!"); } else { int cod_fundo; Console.WriteLine("Digite o codigo do fundo que deseja aplicar:"); cod_fundo = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod_fundo) != null) { Console.WriteLine("...." + chamar_fundo.Busca_fundo(cod_fundo).getNome_fundo() + "...." + chamar_fundo.Busca_fundo(cod_fundo).getSigla_fundo()); double valor_apl; DateTime dt_apl; Console.WriteLine("Digite o valor que deseja aplicar: "); valor_apl = double.Parse(Console.ReadLine()); Console.WriteLine("Confirmar aplicação: "); Console.WriteLine("Se sim, digite 1.........Se não digite 0"); int conf = int.Parse(Console.ReadLine()); if (conf == 1) { dt_apl = DateTime.Today; Console.WriteLine("Data da aplicação:" + dt_apl); chamar_investimentos.containvestimentos(); Aplicacao nova_aplicacao = new Aplicacao(valor_apl, dt_apl, chamar_investimentos.containvestimentos()); //atribuindo os dados do cliente a aplicação nova_aplicacao.dados_cli = new Cliente(chamar_cli.Busca_cliente(b_cpf).getCodigo_cliente(), b_cpf, chamar_cli.Busca_cliente(b_cpf).getNome_cliente()); //atribuindo os dados do fundo a aplicação nova_aplicacao.fundo = new Fundo_de_investimento(cod_fundo, chamar_fundo.Busca_fundo(cod_fundo).getNome_fundo(), chamar_fundo.Busca_fundo(cod_fundo).getSigla_fundo(), opcaomoeda); chamar_investimentos.Aplicar(nova_aplicacao); } else { Console.WriteLine("Aplicação cancelada!"); } } else { Console.WriteLine("Código incorreto!"); } } } else { Console.WriteLine("Moeda inválida!"); } } break; // Consultar aplicações pelo codigo case 2: Console.WriteLine("Digite o código do fundo para ver suas aplicações"); int cod_fundo_consulta = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod_fundo_consulta) != null) { Console.WriteLine("Digite o seu CPF"); b_cpf = int.Parse(Console.ReadLine()); chamar_investimentos.Buscar_aplicacao_Cliente(b_cpf, cod_fundo_consulta); } else { Console.WriteLine("Código não encontrado!"); } break; case 3: Console.WriteLine("Digite o código da aplicação:"); int cod_aplic = int.Parse(Console.ReadLine()); if (chamar_investimentos.Buscar_aplicacao(cod_aplic) == null) { Console.WriteLine("Aplicação não encontrada verifique o código digitado!"); } else { if (chamar_investimentos.Buscar_aplicacao(cod_aplic).dados_cli.getCpf_cliente() == cpf_inv)//cpf_inv é validado no menu de clientes { Console.WriteLine(chamar_investimentos.Buscar_aplicacao(cod_aplic).dados_cli.getNome_cliente() + " - Resgatar a aplicação abaixo?"); Console.WriteLine("Código da aplicação: " + chamar_investimentos.Buscar_aplicacao(cod_aplic).getCod_aplicacao() + " Valor: " + chamar_investimentos.Buscar_aplicacao(cod_aplic).getValor_aplicacao() + " Data: " + chamar_investimentos.Buscar_aplicacao(cod_aplic).getData_aplicacao()); Console.WriteLine("Cógdigo do fundo: " + chamar_investimentos.Buscar_aplicacao(cod_aplic).fundo.getCodigo_fundo() + " Nome: " + chamar_investimentos.Buscar_aplicacao(cod_aplic).fundo.getNome_fundo() + "-" + chamar_investimentos.Buscar_aplicacao(cod_aplic).fundo.getSigla_fundo()); Console.WriteLine("Se sim, digite 1"); Console.WriteLine(""); int esc_resg = int.Parse(Console.ReadLine()); if (esc_resg == 1) { if (chamar_investimentos.Buscar_aplicacao(cod_aplic).fundo.getOpcaomoeda() == 1) { //usar classe real Real apli_real = new Real("real", 'R');//verificar tam da variavel pq não aceita o $ Console.WriteLine("-20% IRRF: " + apli_real.desconto_resgate(chamar_investimentos.Buscar_aplicacao(cod_aplic))); double acressimo = chamar_investimentos.RetornoAcressimo(cod_aplic); double total_resgate = acressimo + apli_real.desconto_resgate(chamar_investimentos.Buscar_aplicacao(cod_aplic)); Console.WriteLine("Valor total do resgate: " + total_resgate); Console.WriteLine("Confirma o resgate ?"); Console.WriteLine("Se sim, digite 1"); Console.WriteLine("Para cancelar , digite 0"); int confirma = int.Parse(Console.ReadLine()); if (confirma == 1) { // Carrega as notas de Reais na lista apli_real.CarregarNotas(); //meétodo que retorna as notas utilizadas apli_real.Contar_Notas(total_resgate); //resgatar--------------excluir aplicação chamar_investimentos.resgatar(chamar_investimentos.Buscar_aplicacao(cod_aplic)); } else { Console.WriteLine("Resgate cancelado!"); } } else { if (chamar_investimentos.Buscar_aplicacao(cod_aplic).fundo.getOpcaomoeda() == 2) { //usar classe dolar Dolar apli_dolar = new Dolar("Dolar", 'D'); Console.WriteLine("-1% IOF: " + apli_dolar.desconto_resgate(chamar_investimentos.Buscar_aplicacao(cod_aplic))); double acressimo = chamar_investimentos.RetornoAcressimo(cod_aplic); double total_resgate = acressimo + apli_dolar.desconto_resgate(chamar_investimentos.Buscar_aplicacao(cod_aplic)); Console.WriteLine("Valor total do resgate: " + total_resgate); Console.WriteLine("Confirma o resgate ?"); Console.WriteLine("Se sim, digite 1"); Console.WriteLine("Para cancelar , digite 0"); int confirma = int.Parse(Console.ReadLine()); if (confirma == 1) { //meétodo que retorna as notas utilizadas apli_dolar.Contar_Notas(total_resgate); //resgatar--------------excluir aplicação chamar_investimentos.resgatar(chamar_investimentos.Buscar_aplicacao(cod_aplic)); } else { Console.WriteLine("Resgate cancelado!"); } } else { Console.WriteLine("Resgate não pode ser feito"); } } } else { Console.WriteLine("Resgate cancelado!"); } } else { Console.WriteLine("Cliente não associado a essa aplicação, consulte suas aplicações e confira o código!"); } } break; case 4: Console.WriteLine("Digite o cpf do investidor: "); int cpf = int.Parse(Console.ReadLine()); if (chamar_cli.Busca_cliente(cpf) != null) { Console.WriteLine(".........." + chamar_cli.Busca_cliente(cpf).getNome_cliente() + ".........."); Console.WriteLine("Digite o código da aplicação a transferir:"); int cod_apli = int.Parse(Console.ReadLine()); if (chamar_investimentos.Buscar_aplicacao(cod_apli) != null) { if (chamar_investimentos.Buscar_aplicacao(cod_apli).dados_cli.getCodigo_cliente() == chamar_cli.Busca_cliente(cpf).getCodigo_cliente()) { Console.WriteLine("Transferir a aplicação: "); Console.WriteLine("Codigo da aplicação: " + cod_apli + " Data: " + chamar_investimentos.Buscar_aplicacao(cod_apli).getData_aplicacao() + " Valor: " + chamar_investimentos.Buscar_aplicacao(cod_apli).getValor_aplicacao()); Console.WriteLine("Codigo do fundo atual: " + chamar_investimentos.Buscar_aplicacao(cod_apli).fundo.getCodigo_fundo() + " Nome: " + chamar_investimentos.Buscar_aplicacao(cod_apli).fundo.getNome_fundo() + "-" + chamar_investimentos.Buscar_aplicacao(cod_apli).fundo.getSigla_fundo()); Console.WriteLine(" "); Console.WriteLine("Digite o codigo do fundo a receber a aplicação: "); int cod_fun = int.Parse(Console.ReadLine()); if (chamar_fundo.Validar_fundo(cod_fun) != null) { if (chamar_investimentos.Buscar_aplicacao(cod_apli).fundo.getOpcaomoeda() == chamar_fundo.Busca_fundo(cod_fun).getOpcaomoeda()) { Console.WriteLine(" Código: " + chamar_fundo.Busca_fundo(cod_fun).getCodigo_fundo() + " Nome:" + chamar_fundo.Busca_fundo(cod_fun).getNome_fundo() + "- " + chamar_fundo.Busca_fundo(cod_fun).getSigla_fundo()); Console.WriteLine("Para confirmar transferência para o fundo acima........Digite 1 "); Console.WriteLine("Para cancelar transferência ...........................Digite 2"); int opc_tr = int.Parse(Console.ReadLine()); if (opc_tr == 1) { chamar_investimentos.transfere(chamar_investimentos.Buscar_aplicacao(cod_apli), chamar_fundo.Busca_fundo(cod_fun)); } else { Console.WriteLine("Transferência cancelada!"); } } else { Console.WriteLine("Transferência não permitida, moeda incompatível!"); } } else { Console.WriteLine("Fundo não encontrado, verifique o codigo!"); } } else { Console.WriteLine("Aplicação não encontrada!"); } } else { Console.WriteLine("Cliente não está associado a esta aplicação."); } } else { Console.WriteLine("Cliente não encontrado, verifique CPF!"); } break; } } } else { Console.WriteLine("Cliente não pode ser encontrado, verifique cpf!"); } break; case 3: Console.Write("Informe seu usuário, em letras minúsculas:"); string user = Console.ReadLine(); Console.WriteLine(""); Console.Write("informe sua senha, somente números:"); int senha = int.Parse(Console.ReadLine()); Usuario novo_user = new Usuario(); novo_user.setUser(user); novo_user.setSenha(senha); chamar_user.cadastra_user(novo_user); opcao0 = 1; break; default: break; }//término de menu para cliente break; } //término de menu para adm }
static void Main(string[] args) { List<Cliente> clientes = new List<Cliente>(); List<Moeda> moedas = new List<Moeda>(); List<FundoInvestimento> fundoInvestimento = new List<FundoInvestimento>(); List<Aplicacao> aplicacoes = new List<Aplicacao>(); Real real = new Real(2, "real", "R$"); Dolar dolar = new Dolar(3, "dolar", "U$"); moedas.Add(real); moedas.Add(dolar); FundoInvestimento.lerArquivo(fundoInvestimento, moedas[0], moedas[1]); Cliente.lerArquivo(clientes); Aplicacao aplicacao = null; Cliente clientePadrao = null; FundoInvestimento novo = null; int opcao = -1, opcaoBanco = -1, opcaoCliente = -1; String nome, senha, endereco, telefone, senhaBanco; double cpf, cpfCliente = 0; bool verifica = true; String tempCpf = ""; String senhaCliente = ""; Console.WriteLine("Por favor, selecione a opção:"); Console.WriteLine("1 - Banco."); Console.WriteLine("2 - Cliente."); opcao = int.Parse(Console.ReadLine()); while (opcao == 1 || opcao == 2) { if (opcao == 1) { //verifica = true; Console.WriteLine("Por favor, digite sua senha: "); senhaBanco = Console.ReadLine(); if(senhaBanco.Equals("root")) { Console.WriteLine("1 - Cadastrar clientes."); Console.WriteLine("2 - Remover cliente."); Console.WriteLine("3 - Cadastrar fundos de investimento."); Console.WriteLine("4 - Remover fundos de investimento."); Console.WriteLine("5 - Realizar Aplicação."); opcaoBanco = int.Parse(Console.ReadLine()); while (opcaoBanco == 1 || opcaoBanco == 2 || opcaoBanco == 3 || opcaoBanco == 4) { if (opcaoBanco == 1) { for (int i = 0; i < 0; i++) { Console.WriteLine("Digite o nome do {0}º cliente:", i + 1); nome = Console.ReadLine(); Console.WriteLine("Digite a senha do {0}º cliente:", i + 1); senha = Console.ReadLine(); Console.WriteLine("Digite o endereço completo do {0}º cliente:", i + 1); endereco = Console.ReadLine(); Console.WriteLine("Digite o CPF do {0}º cliente:", i + 1); cpf = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Digite o telefone do {0}º cliente: ", i + 1); telefone = Console.ReadLine(); clientePadrao = new Cliente(clientes.Count(), nome, senha, endereco, cpf, telefone, DateTime.Now); clientes.Add(clientePadrao); } Console.WriteLine("1 - Cadastrar clientes."); Console.WriteLine("2 - Remover cliente."); Console.WriteLine("3 - Cadastrar fundos de investimento."); Console.WriteLine("4 - Remover fundos de investimento."); Console.WriteLine("5 - Realizar Aplicação."); opcaoBanco = int.Parse(Console.ReadLine()); } else { if (opcaoBanco == 2) { Console.WriteLine("LISTA DE CLIENTES: "); Cliente.imprimeListaCliente(clientes); Console.WriteLine("Por favor, digite o código do cliente a ser removido: "); int codCliente = int.Parse(Console.ReadLine()); while (Cliente.buscaCliente(clientes, codCliente) == null) { Console.WriteLine("Cliente não existe! Favor inserir um novo código: "); codCliente = int.Parse(Console.ReadLine()); } Console.WriteLine("Tem certeza que deseja excluir esse cliente {0}?", Cliente.buscaCliente(clientes, codCliente).getNome()); Console.WriteLine("1 - Sim."); Console.WriteLine("2 - Não."); int deletaCliente = int.Parse(Console.ReadLine()); if (deletaCliente == 1) { clientes.Remove(Cliente.buscaCliente(clientes, codCliente)); } } else { if (opcaoBanco == 3) { Console.WriteLine("Digite o nome do fundo de investimento: "); String nomeInvestimento = Convert.ToString(Console.ReadLine()); Console.WriteLine("Digite a moeda do fundo de investimento: Real ou Dolar?"); String moedaInvestimento = Convert.ToString(Console.ReadLine()); if (moedaInvestimento.ToLower().Equals("real")) { novo = new FundoInvestimento(fundoInvestimento.Count(), nomeInvestimento, real); } else { if (moedaInvestimento.ToLower().Equals("dolar")) { novo = new FundoInvestimento(fundoInvestimento.Count(), nomeInvestimento, dolar); } } fundoInvestimento.Add(novo); FundoInvestimento.escreveArquivo(fundoInvestimento); } else { if (opcaoBanco == 4) { Console.WriteLine("LISTA DE FUNDOS: "); FundoInvestimento.imprimeListaFundos(fundoInvestimento); Console.WriteLine("Por favor, digite o fundo a ser removido: "); int codFundo = int.Parse(Console.ReadLine()); while (FundoInvestimento.buscaFundo(fundoInvestimento, codFundo) == null) { Console.WriteLine("Fundo não existe! Favor inserir um novo código: "); codFundo = int.Parse(Console.ReadLine()); } Console.WriteLine("Tem certeza que deseja excluir esse fundo {0}?", FundoInvestimento.buscaFundo(fundoInvestimento, codFundo).getNome()); Console.WriteLine("1 - Sim."); Console.WriteLine("2 - Não."); int deletaFundo = int.Parse(Console.ReadLine()); if (deletaFundo == 1) { fundoInvestimento.Remove(FundoInvestimento.buscaFundo(fundoInvestimento, codFundo)); FundoInvestimento.escreveArquivo(fundoInvestimento); } } else { } } } } } Console.WriteLine("1 - Cadastrar clientes."); Console.WriteLine("2 - Remover cliente."); Console.WriteLine("3 - Cadastrar fundos de investimento."); Console.WriteLine("4 - Remover fundos de investimento."); opcaoBanco = int.Parse(Console.ReadLine()); } } else { if (opcao == 2) { if(verifica){ Console.WriteLine("Por favor, digite os dados: "); Console.WriteLine("CPF: "); tempCpf = Console.ReadLine().Replace(".", ""); tempCpf = tempCpf.Replace("-", ""); cpfCliente = Convert.ToDouble(tempCpf); } while (Cliente.buscaClienteCpf(clientes, cpfCliente) == null) { Console.WriteLine("Esse CPF {0} não existe! Favor inserir um novo CPF: ", cpfCliente); tempCpf = Console.ReadLine().Replace(".", ""); tempCpf = tempCpf.Replace("-", ""); cpfCliente = Convert.ToDouble(tempCpf); } if (verifica) { Console.WriteLine("Senha: "); senhaCliente = Convert.ToString(Console.ReadLine()); verifica = false; } while(!(senhaCliente.Equals(Cliente.buscaClienteCpf(clientes, cpfCliente).getSenha()))) { Console.WriteLine("Senha incorreta! Favor digitar a senha: "); senhaCliente = Convert.ToString(Console.ReadLine()); } if((senhaCliente.Equals(Cliente.buscaClienteCpf(clientes, cpfCliente).getSenha()))){ Console.WriteLine("1 - Realizar aplicação."); Console.WriteLine("2 - Realizar resgate."); Console.WriteLine("3 - Histórico de aplicações."); Console.WriteLine("4 - Histórico de resgates."); opcaoCliente = int.Parse(Console.ReadLine()); if(opcaoCliente == 1){ Console.WriteLine("Aplicação: "); Console.WriteLine("Por favor, digite o valor a ser aplicacado: "); float valorAplicacao = float.Parse(Console.ReadLine()); Console.WriteLine("Por favor, digite o código do Fundo de Investimento que deseja aplicar: "); FundoInvestimento.imprimeListaFundos(fundoInvestimento); int codInvestimento = int.Parse(Console.ReadLine()); while(FundoInvestimento.buscaFundo(fundoInvestimento, codInvestimento) == null){ Console.WriteLine("Fundo não existe! Favor inserir um novo código: "); codInvestimento = int.Parse(Console.ReadLine()); } aplicacao = new Aplicacao(valorAplicacao, codInvestimento, DateTime.Now, 0, Cliente.buscaClienteCpf(clientes, cpfCliente).getCodCliente()); Aplicacao.escreveArquivo(aplicacao); Console.WriteLine("{0}, tem certeza que deseja incluir essa aplicação de R${1} nesse fundo {2}?", Cliente.buscaClienteCpf(clientes, cpfCliente).getNome(), valorAplicacao, FundoInvestimento.buscaFundo(fundoInvestimento, codInvestimento).getNome()); Console.WriteLine("1 - Sim."); Console.WriteLine("2 - Não."); int incluiAplicacao = int.Parse(Console.ReadLine()); if(incluiAplicacao == 1) { Cliente.buscaClienteCpf(clientes, cpfCliente).getFundoInvestimento().Add(FundoInvestimento.buscaFundo(fundoInvestimento, codInvestimento)); FundoInvestimento.buscaFundo(Cliente.buscaClienteCpf(clientes, cpfCliente).getFundoInvestimento(), codInvestimento).buscaAplicacao().Add(aplicacao); FundoInvestimento.imprimeListaAplicacao(FundoInvestimento.buscaFundo(Cliente.buscaClienteCpf(clientes, cpfCliente).getFundoInvestimento(), codInvestimento).buscaAplicacao()); } } else if (opcaoCliente == 2) { Console.WriteLine("Resgate"); for (int i = 0; i < Cliente.buscaClienteCpf(clientes, cpfCliente).getFundoInvestimento().Count(); i++ ) { Aplicacao.imprimeListaAplicacao(Cliente.buscaClienteCpf(clientes, cpfCliente).getFundoInvestimento()[i].buscaAplicacao()); Console.WriteLine("Informe o valor que deseja resgatar:"); float valorResgate = float.Parse(Console.ReadLine()); Aplicacao.buscaAplicacaoClienteValor(Aplicacao.buscaAplicacaoCliente(aplicacoes, Cliente.buscaClienteCpf(clientes, cpfCliente).getCodCliente()), valorResgate).resgate(aplicacoes, valorResgate); } } } } } Console.WriteLine("Por favor, selecione a opção:"); Console.WriteLine("1 - Banco."); Console.WriteLine("2 - Cliente."); opcao = int.Parse(Console.ReadLine()); } Console.ReadKey(); }