Desenvolvimento de um Sistema de Transportes de Cargas Utilizando Estrutura de Dados em Java Rafael Spilere Marangoni1, Leandro Jerônimo1, Leandro Barbosa1, Priscyla Waleska Targino de Azevedo Simões2, Cristiane Raquel Woszezenki2 1 Acadêmico do curso de Ciência da Computação – Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC – Brasil 2 Professor(a) do curso de Ciência da Computação - Unidade Acadêmica de Ciências, Engenharias e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC - Brasil {rafaels_marangoni, leandrosjeronimo}@hotmail.com, [email protected], {cristianerw, pri)@unesc.net Resumo. Este artigo apresenta um trabalho interdisciplinar apartir de conceitos de Estruturas de dados e Programação orientada a objetos. Teve como objetivo, desenvolver um aplicativo voltado a gerenciamento de uma agência de cargas. Foram utilizados as estruturas lista e pilha, implementados em linguagem de programação Java, apartir da biblioteca padrão de gabaritos (SLT). As classes definidas são: Agência, Cliente, Transportadora e Depósito. Com o desenvolvimento dessa pesquisa, pode-se correlacionar os assuntos e conhecimentos pertinentes às duas disciplinas desenvolvidas. Palavras-chave: Estruturas de dados, programação orientada a objetos, coleções em Java, linguagem Java. 1. Introdução Hoje em dia, as estruturas de dados são métodos particulares de implementação de tipos abstratos de dados. Os conceitos de fundamentação teórica desta pesquisa foram: Estrutura de dados, listas lineares, listas encadeadas, filas, pilhas, filas de prioridades. Tendo em vista estes conceitos e aplicando um trabalho interdisciplinar usando estrutura de dados orientada a objetos, foi implementado um aplicativo para o auxílio de gerenciamento de uma agência de carga. 1.1. Estrutura de dados Segundo Hyman (1995), estrutura de dados é um método particular de se implementar um tipo abstrato de dados (TAD). Tipos de dados pode ser visto como métodos para interpretar o conteúdo da memória do computador. Podemos ver o conceito de Tipo de Dados de uma perspectiva: não em termos do que um computador pode fazer (interpretar os bits), mas em termos do que os usuários desejam fazer (somar dois inteiros). Este conceito de Tipo de Dados divorciado do hardware é chamado Tipo Abstrato de Dados. A implementação de um tipo abstrato de dados, escolhe uma estrutura de dados para representá-lo. Cada estrutura de dado é construída dos tipos básicos (int, real, char) ou dos tipos estruturados (array, record) de uma linguagem de programação. 1.1.1. Listas Lineares Segundo Sintes (2002), nas listas lineares a prioridade seqüencial funciona da maneira onde existe um início que se localiza o primeiro elemento e um final onde encontramos o último elemento. Suas classificações são designadas pela sua disciplina de acesso. 1.1.2. Listas com disciplinas de acesso Para Lages (1994), listas encadeadas são implementações de listas baseadas em estruturas ligadas. São formadas por conjuntos de nós que referenciam uns aos outros em seqüência. Listas encadeadas são ilustradas como grafos. 1.2. Linguagem Java Segundo Lemay e Cadenhead (1999), Java é uma linguagem de programação orientada a objetos, desenvolvida por uma pequena equipe de pessoas na Sun Microsystems. Inicialmente elaborada para ser a linguagem-base de projetos de software para produtos eletrônicos, Java teve seu grande boom em 1995, devido ao sucesso mundial da World Wide Web Um problema no uso de linguagens de programação tradicionais em produtos eletro-eletrônicos, por exemplo, reside no fato de que o consumidor em geral quer uma longa vida útil para seu aparelho. De outro lado, ponto pacífico que a maioria dos softwares são projetados já prevendo-se sua breve obsolência, ou seja, escreva um programa hoje e em poucos meses ele estará ultrapassado. Desta forma, sempre que novos processadores para eletrodomésticos fossem desenvolvidos, eles teriam de apresentar uma espécie de compatibilidade retroativa. 1.3. Programação Orientada a objetos Para Hubbard (2006), programação orientada a objetos, implementam os conceitos de: Abstração, classe, objeto, encapsulamento, herança e polimorfismo. Apesar de estar fortemente presente hoje nas linguagens de programação, é um conceito antigo na computação, onde surgiu na área acadêmica. A Programação Orientada a Objetos (POO) e a Programação Orientada a Eventos (POE) são facilmente confundidas, mas lembre-se que a POO contém a POE, mas a POE não contém a POO. Um objeto pode existir mesmo que não exista nenhum evento associado a ele, mas um evento não pode existir se não houver um objeto a ele associado. 1.4. Estrutura de dados em Java Biblioteca padrão de gabaritos, mais conhecida como STL - Standard Template Library, é uma biblioteca de classes container. Elas fornecem muitos algoritmos e iteradores que contém a maioria dos algoritmos básicos e estruturas de dados da ciência da computação. Coleções em Java é uma estrutura de dados que permite armazenar vários objetos. A coleção é um objeto de agregação. Suas operações variam, mas as mais usadas são: Adição de elementos, remoção de elementos, pesquisa de elementos, acesso de elementos. 2. Estudo de caso O estudo de caso dessa pesquisa aborda o desenvolvimento de um aplicativo de gerenciamento de uma Agência de Cargas baseado em estrutura de dados. O aplicativo tem o intuito de coordenar o transporte de mercadorias do fabricante para seus clientes. O software tem o objetivo de fazer com que a agência de carga que faz a logística das mercadorias, tenha todos os dados do transporte. Atravéz de arquivos texto são gravados todos os clientes cadastrados para, posteriormente, uma melhor performance de busca. Para cada novo cliente cadastrado, grava-se em uma pasta específica, criada default no código do programa, o nome do cliente cadastrado com a extensão RLLAgencia. Ao mesmo tempo, é gravado em outro caminho, também especificado no código, todos os dados pedidos no cadastramento (Figura 1.1). Com isso, quando o usuário solicitar o conteúdo do depósito, será mostrado todos os clientes cadastrados anteriormente, conforme ilustrado na figura 1.3. Clientes estes que estão contidos no arquivo texto salientado àcima. As classes utilizadas foram: Agência, Cliente, Transportadora e Deposito. Foram criadas algumas estruturas para o melhor encapsulamento do programa. 1 1.1 1.2 1.3 Figura 1: Parte gráfica do aplicativo, com os menus e sub-menus para interação e melhor entendimento do usuário. Figura 1.1: Tela de cadastramento de clientes. Figura 1.2: Peso dos caminhões disponíveis na transportadora Figura 1.3: Tela criada para mostrar todos os clientes cadastrados no depósito da agência. Estruturas usadas: Pilha e fila. 3. Considerações finais Apartir do desenvolvimento deste artigo pode-se concluir que teve-se um ótimo desempenho do conteúdo, com uma nova experiência de unir duas disciplinas. Assim, utilizamos orientação a objetos e estrutura de dados para o desenvolvimento do aplicativo, apartir dos conceitos de estruturas como pilhas, filas, listas lineares, listas encadeadas. 4. Referências LEMAY, Laura; CADENHEAD, Rogers; Java 21 dias. São Paulo: Ed. Campus, 1999. HYMAN, Michael I.; Visual C++2: Para Leigos, São Paulo, Ed. Berkeley, 1995. SZWARCFITER, Jaime L.; Estrutura de dados e seus algorítmos, Rio de Janeiro, Ed. LTC, 1994. LAGES, Guimarães; Algorítmos e Estrutura de dados, Rio de Janeiro, Ed. Afiliada, 1994. DROSDEK, Adam; Estrutura de dados e algorítmos em C++; São Paulo, Ed. Afiliada, 2002. SINTES, Tony; Aprenda programação orientada a objetos em 21 dias; São Paulo, Ed. Makron Books, 2002. HUBBARD, John; Programação com Java; 2. ed; Porto Alegre, Ed. Bookman, 2006.