então galera, mto prazer ae… meu nome é emannuel e faço sistemas de informação, segundo semestre… sou iniciante em programção.
Meu problema é o seguinte, comecei a fazer um sistema simples exigido como trabalho final de algoritmos. Optei por fazer em cima de um sistema de biblioteca e até estou indo mais longe do que a professora exigiu. Porém comecei a perceber que estou “embaralhando” mto o sistema e ele está ficando feio. Gostaria de uns toque de como melhorar em alguma parte na minha orientação a objetos. Caso alguem se dispor, vou mostrar aqui só a calsse Aluguel pra se receber alguns toques… desde já valeu aí!
PS.: A professora proibiu usar arraylist, pois o trabalho é sobre array comum.
public class Aluguel {
private Locacao[] listaAluguel;
private Cadastro cadastro;
private int codigoAluguel = 1;
public Aluguel(Cadastro cadastro) {
super();
this.listaAluguel = new Locacao[1000];
this.cadastro = cadastro;
}
//não estou utilizando
private boolean validaLocacao(Cliente locatario){
if (locatario.getMaxLivro() < 2) {
return true;
}else{
return false;
}
}
//Método para alugar livro:
public void alugar(Integer codigoCliente, Integer codigoLivro){
Locacao al = new Locacao();
boolean entrouCliente = false;
boolean entrouLivro = false;
boolean livroLocado = false;
boolean limiteLivro = false;
String locatario = "";
int locCodigo = 0;
//Procura pelo código do cliente à alugar o livro
for (int i = 0; i < cadastro.getCliente().length; i++) {
if(cadastro.getCliente()[i] != null){
if (codigoCliente == cadastro.getCliente()[i].getCodigo()) {
al.setCliente(cadastro.getCliente()[i]);
entrouCliente = true;
break;
}
}
}
//Procura pelo código do livro para alugar
for (int i = 0; i < cadastro.getLivro().length; i++) {
if(cadastro.getLivro()[i] != null){
if (codigoLivro == cadastro.getLivro()[i].getCodigo()) {
if (validaLivro(cadastro.getLivro()[i])) {
al.setLivro(cadastro.getLivro()[i]);
entrouLivro = true;
break;
}else{
locatario = listaAluguel[i].getCliente().getNome();
locCodigo = listaAluguel[i].getCliente().getCodigo();
livroLocado = true;
}
}
}
}
//Verifica se encontrou o livro e o Cliente para chamar o
//método que registra o aluguel
if (!livroLocado) {
if (entrouLivro & entrouCliente) {
registraAluguel(al, codigoAluguel);
codigoAluguel += 1;
JOptionPane.showMessageDialog(null, "Aluguel efetuado com sucesso", "Biblioteca", 1);
}else{
JOptionPane.showMessageDialog(null, "Cliente e/ou Livro Inexistente(s)", "Biblioteca", 0);
}
}else{
JOptionPane.showMessageDialog(null, "Este livro já está locado por "+locatario +" de código: "+locCodigo, "Biblioteca", 1);
}
}
//devolve livro...
public void devolverLivro(Integer codigo){
boolean entrou = false;
for (int i = 0; i < listaAluguel.length; i++) {
if(listaAluguel[i] != null){
if(listaAluguel[i].getLivro().getCodigo() == codigo){
listaAluguel[i] = null;
entrou = true;
break;
}
}
}
if (entrou) {
JOptionPane.showMessageDialog(null, "Devolução efetuada com sucesso", "Biblioteca", 1);
}else {
JOptionPane.showMessageDialog(null, "Código do livro à devolver inexistente ou incorreto", "Biblioteca", 0);
}
}
//Lista todas as locações
public String listaLocacoes(){
String concatenaDados = "";
boolean entrou = false;
for (int i = 0; i < listaAluguel.length; i++) {
if (listaAluguel[i] != null) {
concatenaDados +=
"Cliente: "+listaAluguel[i].getCliente().getNome()+" "+
"Livro: "+listaAluguel[i].getLivro().getTitulo()+" "+
"Código Locação: "+listaAluguel[i].getCodigo()+"\n";
entrou = true;
}
}
if (entrou) {
return concatenaDados;
}else{
return "Nenhuma locação registrada";
}
}
//Método para registrar o aluguel no array:
private void registraAluguel(Locacao locacao, int codigo){
for (int i = 0; i < listaAluguel.length; i++) {
if (listaAluguel[i] == null) {
listaAluguel[i] = locacao;
listaAluguel[i].getCliente().setMaxLivro(listaAluguel[i].getCliente().getMaxLivro() + 1);
listaAluguel[i].setCodigo(codigo);
break;
}
}
}
//Verifica se o livro já está alugado
private boolean validaLivro(Livro livro){
boolean entrou = false;
for (int i = 0; i < listaAluguel.length; i++) {
if (listaAluguel[i] != null) {
if (livro.getCodigo() == listaAluguel[i].getLivro().getCodigo()) {
entrou = true;
}
}
}
if (entrou) {
return false;
}else{
return true;
}
}
public int getCodigo() {
return codigoAluguel;
}
public void setCodigo(int codigo) {
this.codigoAluguel = codigo;
}
public Locacao[] getListaAluguel1() {
return listaAluguel;
}
}