RN-01: Os usuários desse sistema são aposentados, pensionistas ou funcionários públicos.
RN-02:Para aprovar o emprestimo deve fazer o cálculo de 30% do salário líquido (já descontando as parcelas de outros financiamentos).
RN-03:Calcular o valor máximo do empréstimo aceitável de forma que o valor da prestação seja igual ou inferior aos 30% calculados acima. Usando as fórmulas de PMT e consultando as tabelas financeiras para uma taxa pré-fixada..
Nº | Nome | Descrição |
---|---|---|
RF1 | Cadastro do Cliente | O cadastro deve possuir as seguintes informações: CPF, salário líquido que consta no contra cheque, nome do cliente e seu tipo (funcionário público, aposentado ou pensionista). |
RF2 | Opções de mundanças | O sistema deve ter as opções de inserir, apagar, alterar e recuperar os dados dos clientes. |
RF3 | Salário Líquido | O sistema deve fazer o cálculo de 30% do salário líquido informado (já descontando as parcelas de outros financiamentos). |
RF4 | Valor Máximo do Empréstimo | Calcular o valor máximo do empréstimo aceitável de forma que o valor da prestação seja igual ou inferior aos 30% calculados acima. Usando as fórmulas de PMT e consultando as tabelas financeiras para uma taxa pré-fixada. |
RF5 | Possibilidades de Empréstimos | O software deverá mostrar várias possibilidades de empréstimos com vários prazos distintos. |
RF6 | Valor Ultrapassado | O sistema não poderá realizar a simulação do financiamento, caso o valor da parcela ultrapassar o valor da margem permitido(tantos digitos ou valor R$). |
tipo | Atributo | Descrição |
---|---|---|
Double | pmt | Recebe o valor da parcela. |
Double | si | Recebe o saldo inicial do empréstimo no período. |
Double | sf | Recebe o saldo final do empréstimo no período. |
Double | amort | Double amort Recebe a amortização referente ao empréstimo |
Int | periodo | Recebe o período da parcela do emprestimo |
Double | juros | Recebe o valor dos juros do empréstimo no período |
Get para ptm, si, sf, amort, período, juros.
tipo | Atributo | Descrição |
---|---|---|
String | nome | Recebe o nome do cliente. |
String | cpf | Recebe o cpf do cliente |
String | tipo | Recebe o tipo do cliente(Aposentado, pensionista, funcionário público). |
Double | salarioLiqui | Recebe o salário líquido do cliente. |
Get para nome, cpf, tipo, salarioLiqui.
tipo | Atributo | Descrição |
---|---|---|
Double | pv | Recebe o valor do empréstimo que o usuário quer. |
Double | i | Recebe a taxa que o cliente digitar |
Int | n | Recebe a quantidade de meses que o cliente quer. |
ArrayList | arrEmp | Array do tipo double, guarda os empréstimos já feitos pelo cliente. |
JButton | bntInserir | Botão inserir da tela. |
JButton | bntCalcular | Botão calcular da tela. |
JButton | btnPrice | Botão Price. |
JButton | btnSac | Botão Sac. |
CAD002_Ctrl | objCtrl | Instancia da classe CAD002_Ctrl, usada para validar o cpf, validar o empréstimo, imprimir mensagem de erro e preencher as tabelas. |
• btnInserirActionPerformed(java.awt.event.ActionEvent : evt) : void
Pega o clique do usuário no botão e adiciona o valor do empréstimo digitado no array arrEmp.
• btnCalcularActionPerformed(java.awt.event.ActionEvent : evt) : void
Pega o clique do usuário no botão, verifica se os campos da tela estão preenchidos, se não informar CPF e se os campos correspondentes ao pv, i e n estiverem vazios mostra mensagem ‘Campos vazios’, se os campos estiverem preenchidos chama métodos da classe CAD002_Ctrl para validar números, usuário e depois calcular sac e price, no fim imprime a classe TelaResultados com os resultados.
tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrSac | Guarda objetos do tipo Emprestimo. |
ArrayList | arrPrice | Guarda objetos do tipo Emprestimo. |
Double | salario | Recebe o salario do usuário caso ele exista no banco de dados. |
• calcular(): Recebe por parâmetro o valor do pv, i e n informados pelo usuário, cria instancia da classe CalculoSac_Price, passa os valores recebidos para a cria instancia da classe CalculoSac_Price, pega o array sac dela e passa para seu array sac e pega o array price dela e passa para seu array price.
• validaUser(): Recebe cpf do cliente por parâmetro, cria instancia da classe Cliente_BD e chama o método listar da classe, compara o cpf informado com o atributo cpf dos objetos cliente do array dessa instancia, se algum for igual, retorna true e adiciona o valor do atributo salarioLiqui desse objeto no atributo da salario da classe CAD002_Ctrl, se não retorna false.
• msnError(): Imprime mensagem ‘CPF invalido’.
• validaEmp(): Recebe por parâmetro os atributos arrEmp da classe TelaContratar, subtrai do salário informado todos os valores do arrEmp, faz o cálculo de 30% do resultado dessa subtração e compara com o atributo pmt do primeiro objeto do arrSac e arrPrice, se o atributo pmt for menor ou igual, permite retorna true, se não, retorna false e imprime mensagem ‘Valor acima do limite, tente um valor menor’.
• validaNumero(): Recebe o que o usuário digitou por parâmetro, cria instancia da classe ValidaNumero, se o valor não for constiduido apenas de números ou se número estiver fora do padrão retorna false, se for um número ou se estiver dentro do padrão retorna true.
• enviaDados(): Receve o pv e o i digitados pelo usuário, cria instancia da classe FormaNumero, chama seu método formatar passando seus arrays sac e price, envia os arrays da classe FormaNumeroe, arrSac, arrPrice, o pv e o i recebidos para a TelaResultados, mostra a TelaResultados e chama seus métodos para listar price e sac.
tipo | Atributo | Descrição |
---|---|---|
Conexao_BD | objCon | É usado para conectar no banco de dados. |
ArrayList | arrCliente | Guarda objetos do tipo cliente. |
• inserir(): Recebe o nome, tipo, salario liquido e CPF do cliente, verifica se o arquivo de conexão existe, se não mostra tela de configuração de conexão com o banco de dados para o usuário, se sim, usa instancia da classe Conexao_BD para se conectar do banco de dados chama método validar e se retornar false insere os dados recebidos na tabela cliente, pois não tem cpf igaul.
• listar(): Verifica se o arquivo de conexão existe, se não mostra tela de configuração de conexão com o banco de dados para o usuário, se sim, Lista todos os dados da tabela cliente do banco, criando um objeto cliente com os dados e inserindo dentro do arrCliente, e retorna seu array list.
• deletar(): Rebe por parâmetro o CPF do cliente que será excluído, verifica se o arquivo de conexão existe, se não mostra tela de configuração de conexão com o banco de dados para o usuário, se sim, usa instancia da classe Conexao_BD para se conectar do banco de dados, chama método validar e se retornar true exclui o cliente da tabela cliente onde o cpf é igual ao informado.
• alterar(): Rebe por parâmetro o nome, tipo, salario liquido e CPF do cliente que será alterado, verifica se o arquivo de conexão existe, se não mostra tela de configuração de conexão com o banco de dados para o usuário, se sim, usa instancia da classe Conexao_BD para se conectar no banco de dados chama método validar e se retornar true altera os dados do cliente da tabela cliente onde o cpf é igual ao informado.
• validar(): Recebe o cpf por pametro, chama método listar, preenche o arry, e confere se o cpf já esta no array, se sim retorna true, se não retorna false.
tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrDados | Guarda os dados usados para fazer a conexão com o banco de dados. |
• conectar(): Lê arquivo com os dados excolhidos para a conexão, cria instancia da classe Connection passando por parâmetro os dados do arquivo, e retorna a variável de conexão.
• verificaArquivo(): Recebe o nome do arquivo por parâmetro, verifica se o arquivo exite, se sim retorna true se não false.
• ler(): Recebe o nome do arquivo por parâmetro, le o o arquivo e guarda em uma Strings esse dado e o retorna essa String.
• escrever(): Recebe o nome do arquivo e o que sera gravado nele por parâmetro, e escreve nele o que foi passado.
• limpar(): Recebe o nome do arquivo que sera limpo por parâmetro e apaga seus dados.
tipo | Atributo | Descrição |
---|---|---|
jButton | btnInserir | Botão inserir. |
jButton | btnDeletar | Botão deletar. |
jButton | btnAlterar | Botão alterar. |
jButton | btnListar | Botão listar. |
DecimalFormat | df | Formata os salários do usuário. |
Default | val | Instancia da classe DefaultTableModel, usada para preencher as tabelas sac e price. |
• btnInserirActionPerformed(java.awt.event.ActionEvent : evt) : void
Captura ação do usuário ao clicar no botão, chama o método inserir da classe CAD001_Ctrl passando os dados informados pelo usuário por parâmetro.
• btnDeletarActionPerformed(java.awt.event.ActionEvent : evt) : void
Captura ação do usuário ao clicar no botão, chama o método deletar da classe CAD001_Ctrl passando o CPF informado pelo usuário por parâmetro.
• btnAlterarActionPerformed(java.awt.event.ActionEvent : evt) : void
Captura ação do usuário ao clicar no botão, chama o método alterar da classe CAD001_Ctrl passando o CPF informado pelo usuário por parâmetro.
• btnListarActionPerformed(java.awt.event.ActionEvent : evt) : void
Captura ação do usuário ao clicar no botão, chama o método listar da classe CAD001_Ctrl.
tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrCliente | Armazena objetos do tipo cliente. |
• inserir(): Recebe os dados informados pelo usuário por parâmetro, cria instancia da classe Cliente_BD, cria instancia da classe ValidaNumero, verifica se o numero está no formato correto ou se é um número, se sim chama seu método inserir de Cliente_BD passando os dados que recebeu por parâmetro.
• deletar(): Recebe por parâmetro o CPF do cliente que será excluído, cria instancia da classe Cliente_BD, e chama seu método deletar passando o CPF que recebeu por parâmetro.
• alterar():Recebe por parâmetro o CPF, nome, tipo e salarioLiqui do cliente que será excluído, cria instancia da classe Cliente_BD, cria instancia da classe ValidaNumero, verifica se o numero está no formato correto ou se é um número, se sim e chama seu método alterar passando os dados que recebeu por parâmetro.
• listar(): Chama método listar da classe Cliente_BD, recebe em seu array os objetos do arry de objetos Cliente dessa insatancia da classe Cliente_BD e lista os dados de seus objetos na tabela da tela.
• validar(): Recebe por parâmetro uma string que sera validada, dizendo se é um número ou se é um número dentro do padrão, e retorna true para sim e false para não valido. Padrão: 000.000.000-00
• validarNum(): Recebe por parâmetro uma string que sera validada, dizendo se é um número , e retorna true para sim e false para não valido.
tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrSacFormatado | Guarda objetos da classe NumeroModelo, com os valores do sac formatados. |
ArrayList | arrPriceFormatado | Guarda objetos da classe NumeroModelo, com os valores do Price formatados. |
• formatar(): Recebe por parâmetro os arrays com valores do sistema sac e price, formata no padrão 00,000.00, cria objetos NumeroModelo e guarda nos arrays arrSacFormatado e arrPriceFormatado
tipo | Atributo | Descrição |
---|---|---|
String | n | Recebe o período da parcela. |
String | si | Saldo inicial da parcela |
String | juros | Juros da parcela. |
String | amort | Amortização da parcela. |
String | pmt | Valor da prestação na parcela. |
String | sf | Saldo Final. |
• Método assessor get para todos os atributos da classe.
Tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrSacFormatado | Recebe os dados do calculo do sac formatados pela classe FormaNumero ( Objetos do tipo NumeroModelo). |
ArrayList | arrPriceFormatado | Recebe os dados do calculo do sistema price formatados pela classe FormaNumero ( Objetos do tipo NumeroModelo). |
Double | pv | Recebe o valor desejado que foi informado pelo usuário. |
Double | i | Recebe o juros que foi informado pelo usuário. |
Int | n | Recebe o novo período que o usuário deseja. |
ArrayList | arrSac | Recebe os cálculos da tabela sac da classe CAD002_Ctrl. |
ArrayList | arrPrice | Recebe os cálculos da tabela price da classe CAD002_Ctrl. |
jButton | btnCalcular | Botão calcular da tela. |
jButton | btnSac | Botão sac da tela. |
jButton | btnPrice | Botão price da tela. |
DefaultTableModel | val | Instancia da classe DefaultTableModel, usada para preencher as tabelas sac e price. |
• listarDadosSac(): Lista os dados do array sac na tabela sac.
• listarDadosPrice(): Lista os dados do array price na tabela price.
• Métodos assessores Set para os quatro arrays, e para atributos pv e atributo i.
• btnCalcularActionPerformed(java.awt.event.ActionEvent : evt) : void :
Captura clique do usuário no botão calcular, cria instancia da classe CAD004_Ctrl para chamar o método recalcular passando o pv e i já setados pela classe CAD002_Ctrl e o novo período de meses(n) digitado pelo usuário, e depois chama os métodos da classe corrente listarDadosSac e listarDadosPrice para listar os valores nas tabelas.
• btnSacActionPerformed(java.awt.event.ActionEvent : evt) : void :
Captura clique do usuário no botão sac, limpa as tabelas da tela e mostra mensagem ‘Operação realizada com sucesso! Empréstimo contratado no sistema Sac.
• btnPriceActionPerformed(java.awt.event.ActionEvent : evt) : void :
Captura clique do usuário no botão price, limpa as tabelas da tela e mostra mensagem ‘Operação realizada com sucesso! Empréstimo contratado no sistema Price.
Tipo | Atributo | Descrição |
---|---|---|
CalculoSac_Price | objCal | Instancia da classe CalculoSac_Price que faz o calculo do price e sac. |
ArrayList | arrSac | Armazena os dados do sistema sac recalculados. | ArrayList | arrPrice | Armazena os dados do sistema sac recalculados. |
ArrayList | arrFormSac | Armazena os dados do sistema Sac formatados pela classe FormaNumero. |
ArrayList | arrFormPrice | Armazena os dados do sistema price formatados pela classe FormaNumero |
• recalcular(): Recebe o pv, o i e n envia para a instancia da classe CalculoSac_Price que refaz o calculo e preenche os arrays arrSac e arrPrice, pega esses arrays já preenchidos, cria instancia da classe FormaNumero, chama método formatar passando o arrSac e arrPrice por parâmetro para esse método. Armazena os valores do arrSac e arrPrice da instancia da classe CalculoSac_Price nos seus arrays arrSac e arrPrice, e pega os arrays da classe FormaNumero e armazena em seus arrays arrFormSac arrFormSac.
• validar(): Cria instancia da classe ValidaNumero e chama seu método validar passando o novo período informado pelo usuário, se for verdadeiro retorna true e o método recalcular() é executado, se não, imprimi erro.
• validaEmp(): Recebe o valor limite do empréstimo da classe TelaResultados, compara com a primeira parcela do array Sac e Price, se o limite for maior ou igual retorna true, se não retorna false.
• erro(): Imprime mensagem O valor da parcela está acima do limite.
Tipo | Atributo | Descrição |
---|---|---|
ArrayList | arrSac | Armazena objetos do tipo Emprestimo do algoritmo sac. |
ArrayList | arrPrice | Armazena objetos do tipo Emprestimo do algoritmo price. |
• calculaPrice(): Recebe o valor dos atributos pv, i e n informados pelo usuário através de parâmetro, faz o calculo da tabela Price e vai preenchendo o arrPrice gerando objetos do tipo Emprestimo de acordo com a linha da tabela.
• calculaSac(): Recebe o valor dos atributos pv, i e n informados pelo usuário através de parâmetro, faz o calculo da tabela Sac e vai preenchendo o arrSac gerando objetos do tipo Emprestimo de acordo com a linha da tabela.
1- Usuário informa:
2- Nome
3- CPF
4- Salario liquido
5- E tipo (aposentado, pensionista, funcionário público).
6- Clica no botão cadastrar.
7- Se o usuário inserir um CPF que já existe, mostra mensagem de erro ‘CPF já existe!’.
8- Se inserir outros caracteres que não sejam números no campo salário líquido imprimira uma mensagem de erro ‘Por favor, digite somente numeros no formato 000.00’.
9- Se não informar todos os dados necessários para o cadastro será exibida a mensagem Informe todos os dados!
10- Se o usuário não tiver informado os dados para conexão com o banco de dados aparecerá a tela do caso de uso 005.
1- Digitar cpf do cliente que deseja excluir
2- Clicar no botão deletar
1-Se digitar um cpf que não existe imprimirá mensagem CPF não existe.
2-Se o usuário não tiver informado os dados para a conexão com o banco de dados, irá aparecer a tela do caso de uso 005.
1- Usuário informa:
2- CPF do cliente que deseja alterar
3- Novo nome
4- Novo salario liquido
5- Novo tipo (aposentado, pensionista, funcionário público).
6- Clica no botão alterar.
1- Se digitar um cpf que não existe imprimira mensagem CPF não existe.
2- Se inserir outros caracteres que não sejam números no campo salário líquido imprimira uma mensagem de erro ‘Por favor, digite somente numeros no formato 000.00’.
3-Se não informar todos os dados necessários para o cadastro será exibida a mensagem Informe todos os dados!
2- Se o usuário não tiver informado os dados para a conexão com o banco de dados, irá aparecer a tela do caso de uso 005.
1- Clicar no botão listar
1- Se o usuário não tiver informado os dados para a conexão com o banco de dados, irá aparecer a tela do caso de uso 005.
Regras de negócio: RN-01 do documento de regras de negócio do sistema.
1- Usuário informa
2- CPF
3- Valor do empréstimo
4- Período, que é a quantidade de meses que deseja parcelar
5- Taxa de juros para o tipo de cliente
6- Informa o valor da parcela de um empréstimo anterior caso possua
7- Clica no botão inserir
8- Repete passos 6 e 7 caso possua mais de um empréstimo ou mais de uma parcela.
9- Clica no botão calcular
10- Abri a tela do caso de uso 4 com os resultados do empréstimo a partir dos dados informados pelo usuário.
1-Caso o usuário não preencha os campos aparecerá mensagem ‘Os campos da tela estão vazios’
2-Se o usuário informar um CPF que não existe aparecerá mensagem CPF invalido.
3-Se o usuário digitar palavras ou caracteres especiais em campos destinados a valores
imprimirá mensagem ‘Digite somente números no formato aceito pelo programa’.
4- Se o usuário não tiver informado os dados para a conexão com o banco de dados, irá aparecer a tela do caso de uso 005.
Regras de negócio: RN-03, RN-02 e RN-01 do documento de regras de negócio do sistema.
1- Usuário seleciona uma das opções do menu
1- Usuário selecionar:
2- Botão de desligar
3- Opção Desenvolvedores.
4- Aparecerá uma janela com os nomes dos desenvolvedores do software.
5- Selecionar Menu.
6- Selecionar Configurar conexão.
7- Irá abrir a tela Configurar conexão (DCU-CAD005) com o banco de dados.
8- Informar nome do banco de dados.
9- Nome do usuário do banco de dados.
10- Senha
11- IP do host onde se encontra o banco de dados
12- Porta de conexão
13- Clique em Salvar.
1- Se o usuário não informar todos os dados/não preencher todos os campos irá aparecer uma mensagem: “Informe todos os dados que foram pedidos!!!”
1- Clicar no botão contratar da tabela price.
2- Aparece mensagem ‘Operação finalizada com sucesso! Empréstimo contratado no sistema Price’.
3- Clicar no botão contratar da tabela sac.
4- Aparece mensagem ‘Operação finalizada com sucesso! Empréstimo contratado no sistema Sac’.
1- Digitar novo período desejado para o empréstimo.
2- Clicar no botão calcular.
3- Imprime nas tabelas sac e price os valores recalculados do mesmo empréstimo.
4-Se o usuário digitar letars ou caracteres especiais no campo de novo período aparece mensagem ‘Por favor, digite somente números’.
5-Se o usuário clicar no botão calcular com o campo novo período vazio aparece mensagem Campo vazio!!
6-Se o usuário digitar um numero de meses no novo período que resulte em parcelas maiores que o limite de 30% calculado, mostra mensagem O valor da parcela está acima do limite.
Regras de negócio: RN-03 do documento de regras de negócio do sistema.