Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DE MINAS GERAIS 
 UNIDADE CURVELO 
GRADUAÇÃO EM ENGENHARIA CIVIL 
 
 
 
JÚLIO CÉSAR LOPES DE SÁ 
LAIANE RABELO BRAGA 
 
 
 
 
ORIENTAÇÃO A OBJETOS EM JAVA 
Trabalho final 
 
 
 
 
 
 
 
 
 
CURVELO 
2023 
2 
 
JÚLIO CÉSAR LOPES DE SÁ 
LAIANE RABELO BRAGA 
 
 
 
 
 
 
SISTAGRO - SISTEMA DE GESTÃO AGROPECUÁRIA 
Automatizando a Administração com Java: Controle de Gados, Produtos e Custos na 
Atividade Agropecuária. 
 
 
Trabalho final desenvolvido nas disciplinas 
de Programação de computadores 2 e 
laboratório de programação 2 como 
requisito parcial para provação nas 
disciplinas. 
Professor(a): Dra. Karla De Souza Torres 
 
 
 
 
 
CURVELO 
2023 
3 
 
SUMÁRIO 
 
 
1. INTRODUÇÃO .................................................................................. 5 
2. DESENVOLVIMENTO ....................................................................... 5 
3. ESTRUTURA .................................................................................... 6 
3.1 GADO ................................................................................................ 6 
3.2 PRODUTO ........................................................................................ 8 
3.3 FAZENDA .......................................................................................... 9 
3.4 SISAGROCOMPRA ........................................................................ 10 
4. INTERAÇÕES ENTRE AS CLASSES ............................................ 11 
5. DIAGRAMA UML ............................................................................ 12 
6. EXECUÇÃO DO PROGRMA .......................................................... 13 
7. ERROS E CONTRATEMPOS ........................................................ 16 
8. CONCLUSÕES .............................................................................. 16 
9. REFERENCIAS ............................................................................. 18 
 
 
 
 
 
 
 
 
 
4 
 
LISTA DE FIGURAS 
 
Figura 1:Construtor Gado. .......................................................................... 6 
Figura 2: Métodos de cálculo da classe Gado. ........................................... 7 
Figura 3 : Métodos Get da Classe Gado. ................................................... 8 
Figura 4: Construtor Produto. ..................................................................... 8 
Figura 5: Cálculo do custo total. ................................................................. 9 
Figura 6: Gets da classe Fazenda. ........................................................... 10 
Figura 7:Diagrama UML ........................................................................... 13 
Figura 8 : Interface do menu. ................................................................... 14 
Figura 9 : Custo da silagem por mês. ....................................................... 15 
Figura 10 : Custo dos produtos. ............................................................... 15 
Figura 11: Custos totais da fazenda. ........................................................ 15 
Figura 12 : Dados armazenados no arquivo txt. ....................................... 15 
Figura 13:Erros de compilação da versão 5. ............................................ 16 
 
5 
 
1. INTRODUÇÃO 
 
A inspiração para o desenvolvimento do programa neste projeto originou-se na 
propriedade rural da família de Laiane, que se dedica a atividades pecuárias. Em 
virtude dessa conexão pessoal, decidimos batizar o programa de SistAgro - Sistema 
de Gestão Agropecuária. A intenção foi criar uma ferramenta que simplificasse as 
atividades cotidianas em uma propriedade rural voltado para a pecuária, abrangendo 
desde o cadastro de animais, produtos e valores até o cálculo dos gastos com 
produtos, silagem e custos totais da fazenda. A partir dessa ideia, procuramos 
incorporar os conhecimentos adquiridos na disciplina, visando alcançar uma solução 
satisfatória para o problema específico abordado. Reconhecemos que ter um controle 
eficiente sobre esses aspectos é crucial para aqueles que vivem no campo e 
dependem da pecuária como meio de subsistência. 
 
2. DESENVOLVIMENTO 
 
O programa foi desenvolvido e estruturado na linguagem Java, mais 
especificadamente orientada a objetos, baseado nos conceitos e exemplos 
apresentados na apostila K19 (2015) que diz “a linguagem de programação Java 
permite que os conceitos de orientação a objetos sejam utilizados no desenvolvimento 
de uma aplicação”. 
Além da apostila o desenvolvimento do programa também se baseia no que 
foi proposto durante a disciplina de programação 2 e laboratório de programação 2. O 
programa foi desenvolvido com base nas inúmeras versões do sistema SistCEPETz que 
foram desenvolvidos durante o andar da disciplina, logo a estrutura do programa 
desenvolvido para esse trabalho baseia-se na estrutura dos programas desenvolvidos 
em sala. Buscamos envolver os conceitos abordados na orientação a objetos, conceitos 
como associação de classes, métodos GET e SET, classes TAD, construtores, 
empacotamento, encapsulamento e arquivos. 
No programa temos 4 classes, sendo a classe principal a SisAgro que recebe 
os valores das outras classes e cria as saídas, temos como classes TAD a classe 
produtos, classe gado e a classe fazenda. 
6 
 
3. ESTRUTURA 
 
Como dito anteriormente temos 4 classes que abordaremos nesse tópico, 
começaremos descrevendo o uso do recurso package ou pacote que agiliza o programa, 
o package agro traz as classes fazenda, gado e produtos. O uso do recurso package 
traz agilidade e facilidade, pois reúne as classes que serão utilizadas em um único lugar 
e já fazendo o acesso as classes. 
Tendo aqui mostrado as classes que compõem o pacote agro podemos agora 
explicar os conceito e recursos utilizados nas classes que compões o package. 
Começaremos descrevendo a Classe TAD Gado, antes disso relembremos o conceito 
de classe TAD, (DEITEL, 2010) TAD ou tipo Abstrato de Dados é uma representação 
abstrata de um tipo de dados (dados e operação) desvinculando-o de sua 
implementação. 
3.1 GADO 
A classe Gado representa um tipo de dado relacionado a informações sobre 
gados em um Fazenda. Temos o construtor da classe que recebe como parâmetros o 
nome, tipo e peso do gado e inicializa os atributos com os valores fornecidos. como 
vemos na figura 1. 
Todas as variáveis declaradas nessa classe estão com os atributos privados, 
ou seja, somente a própria classe pode acessar esses valores. 
 
Figura 1:Construtor Gado. 
 
Além do emprego dos construtores nessa classe temos o método que calcula 
a quantidade diária de silagem consumida pelo gado. Este método usa a fórmula 
baseada nos dados da Embrapa para converter o peso do gado em quantidade diária 
7 
 
de silagem e retorna à quantidade diária de silagem, como podemos observar na figura 
2., além disso temos o método que calcula consumo mensal de silagem, baseada no 
consumo diário de silagem, que também podemos observar na figura 2. 
 
Figura 2: Métodos de cálculo da classe Gado. 
 
Na classe Gado também temos os métodos gets que estão aqui presentes 
para retornar os valores nome, tipo e peso como podemos ver na figura 3. 
8 
 
 
Figura 3 : Métodos Get da Classe Gado. 
 
Finalizada a análise de recursos, métodos e elementos que são importantes 
da classe Gado passamos então a análise da classe Produto. 
3.2 PRODUTO 
 
Na classe produto temos o método que faz o cálculo do custo do produto 
cadastrado e utiliza do método Get para buscar os valores de tipo, preço e quantidade. 
Como na classe Gado, também possui um construtor que recebe como parâmetros o 
tipo, o preço e a quantidade do produto. Este construtor é utilizado para instanciar 
objetos da classe, como mostra afigura 4. 
 Figura 4: ConstrutorProduto. 
 
 
 
9 
 
3.3 FAZENDA 
 
Na classe Fazenda serão realizados os cálculos de silagem consumida 
através do método calcSilomes, o preço da silagem com base no número de gados com 
o método precoSiloMes, o custo total com produtos com o método 
calcularGastoTotalProdutos e o custo total da fazenda a partir do método 
calcularGastoTotal como podemos ver na figura 5. Esses cálculos são realizados com 
os atributos das classes produto e gado. Nessa classe também temos o uso do método 
GET para buscar o número de gados, o vetor produtos e o número de produtos conforme 
figura 6. 
 
Figura 5: Cálculo do custo total. 
 
10 
 
 
Figura 6: Gets da classe Fazenda. 
 
 
3.4 SISTAGRO 
 
A classe SisAgro é a classe principal. Nessa classe, recebemos as entradas 
de dados e as chamadas de métodos e processamentos. Um dos métodos presentes é 
o mostrarMenu, que é um método de retorno vazio. Além disso, temos o método 
LimpaTela (Figura 7), que foi utilizado e é de autoria de outra pessoa. Adicionalmente, 
existem os cases que correspondem a cada opção apresentada no menu." 
A classe SistAgroV8 cria objetos da classe Gado para representar os animais 
da fazenda. Os dados desses objetos são obtidos através da interação com o usuário 
no menu (nomeGado, tipoGado, pesoGado). 
11 
 
Nessa classe também incrementamos o recurso arquivo a partir desse 
recurso os dados de Produtos da fazenda são gravados em um arquivo usando os 
métodos leArquivoProdutos e gravaArquivoProdutos. 
 
4.INTERAÇÕES ENTRE AS CLASSES 
 
A classe Fazenda possui um vetor de objetos do tipo Gado. Essa relação 
indica uma associação entre a Fazenda e o Gado. A fazenda "tem" ou "contém" gados. 
Isso permite que a Fazenda armazene e gerencie informações sobre os gados 
associados. Da mesma forma, a classe Fazenda possui um vetor de objetos do tipo 
Produto. Isso estabelece uma associação entre a Fazenda e o Produto. A fazenda "tem" 
ou "contém" produtos. Isso permite que a Fazenda armazene e gerencie informações 
sobre os produtos associados a ela. 
Há uma associação entre as classes Fazenda e Gado (por meio do vetor de 
gados) e associação entre as classes Fazenda e Produto (por meio do vetor de 
produtos), estabelecendo uma relação de composição. 
A classe SistAgro cria um objeto da classe Fazenda chamado fazendinha. 
Diversos métodos da classe Fazenda são chamados na classe SistAgro para realizar 
operações relacionadas aos gados e produtos, como addGado, addProduto, 
getNGados, getGados, getNProdutos, getProdutos, calcSiloMes, precoSiloMes, 
calcularGastoTotalProdutos, calcularGastoTotal, leArquivoProdutos e 
gravaArquivoProdutos. 
A classe SistAgroV8 cria objetos da classe Gado para representar os animais 
da fazenda. Os dados desses objetos são obtidos através da interação com o usuário 
no menu (nomeGado, tipoGado, pesoGado). O método calcularConsumoDiarioSilagem 
da classe Gado é chamado na classe SistAgroV8 para calcular a quantidade diária de 
silagem consumida pelo gado, além disso a classe SistAgroV8 cria objetos da classe 
Produto para representar os produtos da fazenda. Os dados desses objetos são obtidos 
através da interação com o usuário no menu (tipoProduto, precoProduto, 
quantidadeProduto) e o método calcularCusto da classe Produto é chamado para 
calcular o custo total do produto. 
12 
 
5.DIAGRAMA UML 
 
“A UML é agora o esquema de representação gráfica mais amplamente 
utilizado para modelar sistemas orientados a objetos. Ela de fato unificou os vários 
esquemas de notação populares.” (DEITEL, 2010) “Em algumas empresas, o UML é 
amplamente utilizado. Às vezes, o programador recebe o UML já pronto, completo, e só 
deve preencher a implementação, devendo seguir à risca o UML.” (CAELUM, 2022). 
K19, (2015) expõe que podemos representar uma classe pelo meio de um 
diagrama UML. Esse diagrama UML de uma classe é composta pelo nome dela, e pelos 
atributos e métodos que ela define. Todos os objetos que serão criados a partir de uma 
classe, terão os atributos e métodos mostrados no diagrama UML. Os valores dos 
atributos de uma quantidade determinada de objetos criados a partir da classe, podem 
ser diferentes. Na Figura 8 é mostrado o diagrama UML que foi utilizado para o 
desenvolvimento deste programa. 
A partir do diagrama UMl (figura 7) podemos chegar nas seguintes relações 
entre as classes: 
• Associação em entre fazenda e gado; 
• Associação entre fazenda e produto; 
• Dependência entre fazenda e SistAgro. 
13 
 
 
Figura 7:Diagrama UML 
 
 
6.EXECUÇÃO DO PROGRMA 
 
O programa se inicia mostrando o menu opções figura 8 com uma frase de 
boas-vindas, além disso optamos por um menu que fosse muito intuitivo e que o usuário 
não necessitasse ficar demostrando ao programa que desejava mais cadastros ou não. 
Gerando um programa final menos repetitivo e mais agradável de se utilizar. 
14 
 
 
Figura 8 : Interface do menu. 
 
Na interface menu optamos por deixar todas as opções de escolha e a saída 
bem intuitiva, com a exceção da opção 0 que sai do sistema. As outras opções pedem 
dados ou mostram custos e o menu produto ainda permanece na tela para que o usuário 
possa pensar nas opções que ainda pode realizar. 
Depois de realizados os cadastros o usuário tem as opções de mostrar os 
dados cadastrados ou calcular os custos de silagem como na (figura 9), custos de 
produtos (figura 10) e o custo total da Fazenda (figura 11). 
 
 
 
15 
 
 
Figura 9 : Custo da silagem por mês. 
 
 
Figura 10 : Custo dos produtos. 
 
 
 
Figura 11: Custos totais da fazenda. 
 
Após a utilização do programa ele gera um arquivo de texto em formato txt que 
armazena os produtos cadastrados conforme figura 12. 
 
Figura 12 : Dados armazenados no arquivo txt. 
 
16 
 
7.ERROS E CONTRATEMPOS 
 
Durante a concepção inicial do projeto pretendíamos ter herança e 
polimorfismo mais essa ideia acabou sendo muito complicada e não havíamos 
compreendido de maneira satisfatória o conceito de polimorfismo e isso gerou erros 
como o da figura 13 e assim abandonamos as versões 1 a 5 do programa, após 
conversarmos optamos por termos somente as relações de associação e dependência. 
 
Figura 13:Erros de compilação da versão 5. 
 
Após mudarmos a dinâmica do programa um dos erros mais comuns que 
cometemos era fazer o case sem o break isso estava associado a desatenção, porém 
esse erro demandou tempo de programar. Outra dificuldade que tivemos foi o recurso 
arquivo e à configuração das saídas. 
 
 
8.CONCLUSÕES 
 
Concluímos que foi muito proveitoso trabalhar neste trabalho final, onde 
tivemos a oportunidade de aprimorar nossos conhecimentos adquiridos ao longo da 
disciplina. Demonstramos resiliência na solução de problemas, especialmente na 
identificação e correção de erros de código. 
Ao longo do desenvolvimento deste trabalho, destacamos a importância das 
classes TAD e a utilização de diversos métodos. A interação entre as classes resultou 
em um programa mais complexo, compreendido como um conjunto de partes que se 
17 
 
interagem, evitando códigos extensos e facilitando a compreensão de cada função sem 
repetições desnecessárias. 
A implementação de saídas em arquivo contribuiu para resultados mais bem 
elaborados. Ao finalizar a execução do programa, os resultados são armazenados em 
um arquivo de texto no computador do usuário. Isso permite que o usuário acesse e 
utilize os resultados mesmo após fechar o programa. No nosso caso, isso significa que 
podemos verificar facilmente a quantidade de produto calculada sem a necessidade de 
reabrir o programa.
18 
 
 
9.REFERENCIAS 
 
Apostila K19 Treinamentos, Lógica de Programação, 2015. 0 
 
Caelum, Java e Orientação a Objetos, Curso FJ-11. 
 
Apostila K19 Treinamento, Orientação a Objetos em Java, 2015. 
 
DEITEL, P.; DEITEL, H. Java - Como Programar. 8. ed. São Paulo: Pearson Prentice Hall, 
2010.

Mais conteúdos dessa disciplina