Baixe o app para aproveitar ainda mais
Prévia do material em texto
MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL FARROUPILHA - CAMPUS SÃO VICENTE DO SUL CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DESTAQUE: SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA ACADEMIA DE GINÁSTICA TRABALHO DE CONCLUSÃO DE CURSO Alcione Rosa de Morais São Vicente do Sul, RS, Brasil 2012 DESTAQUE: SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA ACADEMIA DE GINÁSTICA Por Alcione Rosa de Morais Trabalho de Conclusão de Curso apresentado como requisito para obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas do Instituto Federal Farroupilha- Campus São Vicente do Sul Orientador: Éric Tadiello Beltrão São Vicente do Sul, RS, Brasil 2012 MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL FARROUPILHA - CAMPUS SÃO VICENTE DO SUL CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS A comissão examinadora, abaixo assinada, Aprova a Monografia. DESTAQUE: SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA ACADEMIA DE GINÁSTICA Elaborado por Alcione Rosa de Morais Como requisito parcial da obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas COMISSÃO EXAMINADORA: ____________________________ Éric Tadiello Beltrão (Orientador) ____________________________ Eliana Zen (IFET-SVS) ____________________________ Fabieli de Conti (IFET-SVS) São Vicente do Sul, 16 de julho de 2012 RESUMO DESTAQUE: SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA ACADEMIA DE GINÁSTICA Autor: Alcione Rosa de Morais Orientador: Éric Tadiello Beltrão Data e Local da Defesa: São Vicente do Sul, 16 de julho de 2012. Este trabalho tem por objetivo explicar os métodos e as tecnologias utilizadas para elaboração de um sistema para academias de ginástica de pequeno e médio porte. Gerenciando e informatizando os dados de seus clientes, ajudando aos profissionais da mesma em suas tarefas diárias, utilizando a tecnologia para oferecer um serviço com maior rapidez e eficiência. Com base na análise do sistema, previamente realizada pela acadêmica Eliandra Trombini Naressi, deu-se início ao desenvolvimento do software. Foi utilizado o banco de dados MySQL, a IDE NetBeans com a linguagem de programação Java. No decorrer deste documento, será explicado com maiores detalhes como foi desenvolvido o software Destaque. Palavras-Chave: Codificação, Academia de ginástica, Software. ABSTRACT This work aims to explain the methods and technologies used for developing a system to small and medium sized gyms. Managing and computerizing the data from its customers, helping professionals in their daily tasks, using the technology to offer a faster and more efficiently service. Based on system analysis previously performed by graduate student Eliandra Trombini Naressi, has been started create the software. We used the MySQL database, the NetBeans IDE with Java programming language. Throughout this document we will be explaining in more detail how the software DESTAQUE was developed. Keywords: Coding, GYM, Software. LISTA DE FIGURAS Figura 1 – O processo em espiral, visão abstrata (Fonte Videira, 2000) ..................... 14 Figura 2 – Classe e atributos ..................................................................................... 17 Figura 3 – Objetos .................................................................................................... 18 Figura 4 – Método consultar CPF .............................................................................. 18 Figura 5 – Herança .................................................................................................... 19 Figura 6 – Der do banco de dados que mostrar apenas as tabelas. ........................... 26 Figura 7 – Tela login .................................................................................................. 30 Figura 8 – Protótipo da tela de administração do sistema ........................................ 31 Figura 9 – Protótipo da tela cadastro de administrador. ........................................... 32 Figura 10 – Protótipo da tela cadastro de cliente ...................................................... 32 Figura 11 – Controle de questionários e atividades do cliente. ................................. 33 Figura 12 – Manter Anamnese. ................................................................................. 34 Figura 13 – Manter questionário dependência do cigarro. ........................................ 35 Figura 14 – Manter Parq. .......................................................................................... 36 Figura 15 – Manter questionário risco cardíaco. ....................................................... 36 Figura 16 – Manter Avaliação Relação Cintura/ Quadril. ........................................... 37 Figura 17 – Manter Avaliação Composição Corpora. ................................................. 38 Figura 18 – Manter Atividades do Cliente. ................................................................ 39 Figura 19 – Tela de Acesso do Cliente. ...................................................................... 40 Figura 20 – Tela Controle de Atividades. ................................................................... 41 Figura 21 – Avaliação composição corporal. ............................................................. 42 Figura 22 – Relatório das atividades. ........................................................................ 43 Figura 23 – Relatório e gráfico Cintura/ Quadril. ....................................................... 44 LISTA DE SIGLAS DER – Diagrama Entidade-Relacionamento IFF – Instituto Federal Farroupilha SGI – Sistema de Gerenciamento Informação TI – Tecnologia da Informação UML – Unified Modeling Language MySQL – My Structured Query Language SQL – Structured Query Language DBA – Administradores de Banco de Dados BD – Banco de Dados Parq – Physical Activity Readiness Questionnarie GPL – General public License SUMÁRIO 1 INTRODUÇÃO ................................................................................................................10 1.1 Motivação .............................................................................................................11 1.2 Justificativas ..........................................................................................................11 1.3 Objetivo Geral .......................................................................................................12 1.4 Objetivos Específicos .............................................................................................12 2 METODOLOGIA APLICADA PARA IMPLEMENTAÇÃO DO SOFTWARE .............................13 2.1 Modelo Interativo ou Espiral .................................................................................13 3 TIPO DE PROGRAMAÇÃO E LINGUAGEM UTILIZADA NO SOFTWARE ............................16 3.1 Programação estruturada ......................................................................................163.2 Programação Orientada a Objetos ........................................................................16 3.3 Linguagem de programação JAVA .........................................................................19 4 FERRAMENTAS ..............................................................................................................21 4.1 NetBeans ...............................................................................................................21 4.2 Mysql .....................................................................................................................21 4.3 VertrigoServ ..........................................................................................................22 4.4 SQLyog...................................................................................................................22 4.5 MySQL WorkBench 5.2 ..........................................................................................22 4.6 IReport ..................................................................................................................22 5 BANCO DE DADOS .........................................................................................................24 5.1 O Structured Query Language – SQL ......................................................................24 5.2 Estrutura do banco de dados .................................................................................25 6 DESENVOLVIMENTO DO SOFTWARE .............................................................................27 6.1 Como foi programado o sistema............................................................................27 6.1.1 ClienteBean ......................................................................................................27 6.1.2 ClienteView ......................................................................................................29 6.2 Módulo Usuário .....................................................................................................30 6.3 Módulo Administrador ..........................................................................................31 6.3.1 Manter dados pessoais do administrador.........................................................32 6.3.2 Manter dados pessoais do cliente ....................................................................32 6.3.3 Manter questionário e avaliações do cliente ....................................................33 6.3.3.1 Manter Questionário Anamnese................................................................34 6.3.3.2 Manter questionário dependência do cigarro ............................................35 6.3.3.3 Manter questionário parq..........................................................................35 6.3.3.4 Manter questionário risco cardíaco ...........................................................36 6.3.3.5 Manter avaliação relação cintura/ quadril .................................................37 6.3.3.6 Manter avaliação composição corporal .....................................................37 6.3.4 Manter atividades do cliente ............................................................................38 6.4 Módulo Cliente ......................................................................................................39 6.4.1 Marcar atividades realizadas ............................................................................40 6.4.2 Gráfico da composição corporal .......................................................................41 6.4.3 Relatório das atividades ...................................................................................42 6.4.4 Relatório e gráfico Cintura/ Quadril..................................................................43 7 CONCLUSÃO ..................................................................................................................45 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................46 ANEXOS................................................................................................................................48 1 INTRODUÇÃO Com o mercado tão competitivo, a necessidade de criar ferramentas para auxiliar no dia a dia torna-se cada vez mais importante, e um software quando bem projetado com objetivos sólidos tem um grande valor, pois se pode utilizar dele para fazer as tarefas com maior rapidez e praticidade. A partir dessa ideia decidiu-se criar um software para as academias de ginástica de pequeno e médio porte, que estão, em sua maioria, sem o auxílio da área da Tecnologia da Informação, devido a alguns fatores como: a falta de pessoas especializadas na área, o baixo poder aquisitivo, os altos preços dos softwares existentes no mercado. As academias acabam usando, muitas vezes, anotações em papel, o que torna lenta e trabalhosa essa atividade, tanto para o profissional da academia como para o seu cliente. Tudo isso motivou a realização deste trabalho para colocar o software Destaque no mercado, como uma nova opção para as academias que precisam de um software, e não possuem condições financeiras para pagar altos valores por um sistema. Para um melhor entendimento, o presente trabalho está dividido em capítulos, que serão descritos a seguir: A metodologia utilizada para desenvolver o sistema foi o modelo espiral, porque se buscou programar, testar e implementar o software, juntamente com o profissional da academia, para poder ter a certeza de que o programa desenvolvido atendia as necessidades da academia, e caso não atendesse, procurou-se identificar os possíveis erros de desenvolvimento, e assim saná-los, sucessivamente, até se chegar a real necessidade do usuário. Com a evolução da tecnologia surgiram algumas técnicas de programação e linguagem de programação, cada uma com suas características específicas, no software produzido foi utilizado o Java, por já ter sido estudado durante o curso. Quando se desenvolve um software é preciso que se leve em conta uma série de fatores, dos quais se pode citar: as ferramentas utilizadas para cria-lo possuem um papel importante, pois dependendo das ferramentas pode-se ganhar ou perder tempo no desenvolvimento do mesmo. 11 O banco de dados exerce uma função importante, pois é nele que ficam armazenadas as informações cadastradas pelo usuário no software, a seguir, no documento serão explicados alguns conceitos para mostrar como foi criado o banco de dados. Também busca-se explicar como foram criadas as telas do software, desde os layouts das classes até os seus códigos. 1.1 Motivação A grande maioria das academias de pequeno porte não possui software que atenda suas necessidades, pelo fato de que os softwares presentes no mercado custam muito caro, o que inviabiliza a aquisição dos mesmos, pelas academias de ginástica. A falta de softwares com preços mais acessíveis faz com que os profissionais responsáveis pelas academias passem por algumas dificuldades devido a fatores como: · dificuldade de controle de seus clientes; · os exercícios são prescritos através de ficha, gerando um grande acúmulo de papéis, e consequentemente, uma desorganização relevante; · falta de um histórico de cada cliente; · falta de acesso do cliente a um histórico de suas atividades; · dificuldade em comparar o avanço ou não, de um cliente em específico. Aconteceu o contato com um profissional de uma academia, da cidade de São Vicente do Sul, para poder identificar as afirmativas feitas acima. 1.2 Justificativas O softwarebusca gerenciar e solucionar problemas como a perda de fichas de clientes, a perda de dados de avaliações, e com isso traz benefícios como: · O controle sobre os clientes; · diminui a dificuldade de gerar o histórico de cada cliente; 12 · histórico de avaliações; · os clientes terão acesso às suas atividades; · poderão ser feitas comparações de avaliações de acordo com a data; · geração de gráficos com vários comparativos; · acesso ao histórico do cliente. 1.3 Objetivo Geral Desenvolver um software para academias de ginástica, para gerenciar as atividades realizadas pelos seus alunos. Com o passar do tempo, também será possível criar o histórico das atividades do aluno, e a partir desse histórico, há a possibilidade de gerar gráficos de desempenho de suas avaliações. 1.4 Objetivos Específicos · Programar um sistema capaz de gerenciar toda uma série de Questionários e Avaliações; · fazer para esse programa uma interface amigável para facilitar o trabalho de pessoas leigas em computação; · configurar um banco de dados suficientemente simples, e de fácil acesso, para que se possam fazer pesquisas eficientes nele, de acordo com a necessidade do usuário; · tratar de forma adequada os dados coletados para geração de relatórios estruturados e de fácil entendimento. 13 2 METODOLOGIA APLICADA PARA IMPLEMENTAÇÃO DO SOFTWARE Segundo (Geraldo Xexéo, 2007), desenvolver um software “é um processo de transformação de uma necessidade do cliente em uma sequência de produtos de software (análise, projeto, protótipo, manuais) que tem em seu fim um programa de computador”. Essas transformações são imperfeitas, problemas de comunicação entre o usuário e o desenvolvedor, e falhas nas técnicas utilizadas pelo desenvolvedor para garantir que nenhuma informação fique perdida ou inserida de forma incorreta no sistema. Para garantir que o sistema faça o que o usuário deseja, foram utilizadas duas técnicas: verificação e validação. Verificar significa analisar se o produto de uma fase do processo de desenvolvimento está de acordo com sua especificação. Já Validar significa analisar se o produto de uma fase do processo de desenvolvimento está de acordo com as expectativas do cliente. Para o desenvolvimento do software, decidiu-se usar o modelo espiral, pois esta metodologia prega pelo desenvolvimento, teste e implantação, no qual o software é testado pelo cliente, e assim, possíveis erros são identificados e corrigidos. Conforme pode-se observar na figura 1. 2.1 Modelo Interativo ou Espiral O modelo em espiral foi proposto por Boehm (1988), como forma de integrar os diversos modelos existentes na época, eliminando suas dificuldades e explorando seus pontos fortes. Este modelo foi desenvolvido para abranger as melhores características tanto do ciclo de vida clássico como da prototipação, acrescentando, ao mesmo tempo, um novo elemento à análise de riscos, que falta nesses paradigmas. Variações do modelo espiral consideram entre três a seis tarefas ou seletores da espiral, que podem ser: · comunicação com o cliente e planejamento; · análise de risco; · engenharia; 14 · construção e liberação; · avaliação do cliente. Figura 1: o processo em espiral, visão abstrata. (Fonte: Videira, 2000) Com cada interação ao redor da espiral (começando no centro e trabalhando para fora), versões, progressivamente, mais completas do software são construídas. Durante o primeiro circuito ao redor da espiral, os objetivos, alternativas e restrições são definidas, e riscos são identificados e analisados. Se a análise de risco indica que existem dúvidas nos requisitos, a prototipação pode ser usada no quadrante de engenharia para atender tanto o desenvolvedor como o cliente. Simulações e outros modelos podem ser usados depois para definir o problema e refinar os requisitos. O cliente avalia o trabalho de engenharia (quadrante de avaliação do cliente), e faz sugestões para modificações. Com base nas entradas do cliente, ocorre a próxima fase do planejamento e da análise de risco. A cada loop ao redor da espiral, o ponto culminante da análise de risco resulta na decisão "continuar ou não". Se os riscos forem muito altos, o projeto pode ser encerrado. No entanto, em muitos casos, o fluxo ao redor da espiral continua, com cada caminho movendo os desenvolvedores para fora, na direção de um modelo mais completo do sistema. 15 Segundo Videira (2000), o modelo espiral para engenharia de software pode ser considerado como o modelo mais realista para o desenvolvimento de grandes sistemas. Ele usa uma abordagem "evolucionária" para engenharia de software habilitando o desenvolvedor e o cliente a entender e a reagir aos riscos na evolução de cada nível. O mecanismo de prototipação como um mecanismo de redução, mas mais importante, habilita o desenvolvedor a aplicar a prototipação em qualquer estágio da evolução do produto. Mantém também a abordagem por etapas do modelo clássico, mas incorpora uma estrutura interativa que reflete de forma mais realista o mundo real. O modelo espiral demanda uma consideração direta dos riscos técnicos em todos os estágios do projeto, e se propriamente aplicado, reduziria os riscos antes que eles se tornassem problemáticos. 3 TIPO DE PROGRAMAÇÃO E LINGUAGEM UTILIZADA NO SOFTWARE Segundo Willirich (2007), linguagem de programação pode ser definida como sendo um conjunto limitado de instruções associado a um conjunto de regras, que define como as instruções podem ser associadas, ou seja, como se podem compor os programas para a resolução de um determinado problema. As linguagens de programação são classificadas em níveis de linguagens, sendo que os níveis mais baixos são classificados como linguagem de máquinas, já as linguagens de alto nível são assim denominadas por apresentarem uma sintaxe mais próxima da linguagem natural. 3.1 Programação estruturada Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interação, e foi desenvolvida por Michael A. Jackson (1975). Para Deitel (2003, p. 60) “a programação estruturada nasceu nos anos 60, e ainda é bastante utilizada no mundo do desenvolvimento. O programa é quebrado em pequenos procedimentos, também conhecidos como funções”. Assim, é possível manter um aproveitamento razoável de código, e criar funções genéricas que podem ser reaproveitadas em projetos diferentes. Hoje em dia, a programação estruturada está perdendo espaço e adeptos devido ao surgimento da programação orientada a objetos, que será explicada a seguir. 3.2 Programação Orientada a Objetos Conforme Deitel (2003), um dos grandes diferenciais da programação orientada a objetos em relação a outros paradigmas de programação está no conceito de herança, mecanismo através do qual definições existentes podem ser facilmente estendidas. 17 Juntamente com a herança deve ser enfatizada a importância do polimorfismo, que permite selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução. Segundo Furlan (2001) “Um software orientado a objetos é composto por um conjunto de classes e objetos bem definidos que interagem entre si, de modo a gerar o resultado esperado, proporcionando ao programador mais produtividade no desenvolvimento de software em relação à programação estrutura”. Deitel (2010) diz que a programação orientada a objetos é amplamente considerada comoum avanço significativo que pode aprimorar enormemente a produtividade do programador. Para (Kathi Seirra e Bert Bates, 2003), programação Orientação a Objetos “modela o mundo real com classes e instâncias. Cada classe é a estrutura de uma variável, ou seja, um tipo de dado. Nela, são declarados atributos e métodos que poderão ser executados ou acessados nas instâncias da mesma classe”. 3.2.1 Classes Conforme Mattos (2007), uma classe é um tipo definido pelo usuário que possui especificações (características e comportamentos) que o identifiquem. De uma maneira mais objetiva, pode-se dizer que a classe é um molde que será usado para construir objetos que representem elementos da vida real. A seguir, na figura 2, uma classe e seus atributos utilizando a linguagem Java. Figura 2: classe e atributos. 18 3.2.2 Objetos Um Objeto ou instância é uma entidade cujas informações podem incluir desde suas características até suas atividades. A figura 3 mostra como criar um objeto através do comando new. Figura 3: objetos. 3.2.3 Métodos Com os métodos definem-se as operações que podem ser executadas com ou sobre um objeto. Eles, geralmente, precisam de parâmetros para ser utilizados, e também na maioria das vezes, possuem um retorno que pode definir o comportamento de uma classe. É preciso declarar os métodos dentro do corpo da classe, ou seja, dentro do bloco de código da definição da classe, que é definido com abre e fecha chaves, e esse pode ser dividido em três partes que são: retorno, nome e parâmetro do método, e podem ser observados na figura 4. Figura 4: método consultar CPF. 3.2.4 Herança Para desenvolver um software utilizando a linguagem Java, por exemplo, precisa-se trabalhar com várias classes. Muitas vezes, classes diferentes têm características comuns, então, ao invés de se criar uma nova classe com todas essas características, usam-se as características de um objeto ou classe já existente. 19 Com isso, uma classe herda as características da outra, a palavra reservada extends logo após a definição do nome da classe. Para um melhor entendimento, pode-se observar a figura 5, que contempla um exemplo de como aplicar herança. Figura 5: herança. 3.2.5 Polimorfismo Polimorfismo abre a possibilidade de se usar o mesmo elemento de forma diferente no Java, através do polimorfismo é possível modificar totalmente o código de um método herdado de uma classe diferente, ou seja, sobrescrever o método da classe pai. Portanto, o polimorfismo está ligado a herança de classes. Um pequeno exemplo para simplificar essa característica segue abaixo: Classe 1 possui 2 métodos: métodoA() e métodoB(). Classe 2 herda a classe 1. Classe 2 reescreve todo o métodoA() que pertence a classe 1. 3.3 Linguagem de programação JAVA O Java, segundo (Deitel, 2003) “surgiu em 1991 com a revolução dos microprocessadores, a empresa Sun Microsystems financiou um projeto que deu origem ao Java, que teve esse nome em homenagem a uma cidade produtora de café”. Atualmente, a plataforma Java já atraiu mais de 6,5 milhões de desenvolvedores de softwares. Ela é utilizada em todos os principais segmentos da indústria, estando presente em uma gama de dispositivos como computadores e celulares. A versatilidade, eficiência, portabilidade e segurança da plataforma, fazem dela a tecnologia ideal para a computação em rede. A tecnologia Java pode ser encontrada em laptops, datacenters, consoles de jogos, supercomputadores científicos, telefones celulares e até na internet. A tecnologia Java está presente em mais de 4,5 bilhões de dispositivos, incluindo: · mais de 800 milhões de PCs (fonte: Java.com); · 2,1 bilhões de telefones celulares e outros dispositivos portáteis (fonte: Ovum); 20 · 3,5 bilhões de cartões inteligentes; · além de set-top boxes, impressoras, webcams, jogos, sistemas de navegação para automóveis, terminais lotéricos, dispositivos médicos, guichês de pagamento de estacionamento, etc. O Java é uma linguagem de programação bastante usada em todo mundo, e está presente em muitos equipamentos eletrônicos. Como já tinha sido trabalhado durante o tecnólogo, foi decidido utilizar o Java como linguagem de programação para a construção do software Destaque. 4 FERRAMENTAS Para o desenvolvimento do software foram utilizadas algumas ferramentas, cada uma com sua função específica como por exemplo, para codificar, gerenciar o banco de dados, gerar relatórios, entre outras funcionalidades. A seguir serão explicadas as ferramentas utilizadas neste projeto. 4.1 NetBeans O NetBeans, originalmente chamado de XELFI, surgiu na República Tcheca em 1996, sendo criado por um grupo de estudantes, que em 1999 lançaram o NetBeans DeveloperX2 com suporte a Swing, em seguida, a Sun Microsystems se interessou pelo software. O NetBeans se tornaria a principal ferramenta de desenvolvimento Java da Sun, que mantém a licença GPL(General public License) do software. Da versão 5 em diante, as pessoas começaram a criar seus próprios plug-ins e desenvolvimento de módulos de IDE. Hoje, o NetBeans encontra-se na versão 7.0, com grande variedade de plug-ins livres para serem utilizados. 4.2 Mysql Com o grande avanço da internet e da área da tecnologia da informação, foi necessária a criação de novos softwares para armazenamento e administração de banco de dados. O MySQL é um desses softwares, que veio para auxiliar no desenvolvimento de aplicativos. O MySQL é um servidor e gerenciador de banco de dados (SGBD) relacional, de licença dupla (sendo uma delas de software livre). Ele foi projetado, inicialmente, para trabalhar com aplicações de pequeno e médio porte, mas hoje, atende aplicações de grande porte, com muito mais vantagens do que seus concorrentes. Possui todas as características que um banco de dados de grande porte precisa, sendo reconhecido por algumas entidades como o banco de dados open source com maior capacidade para concorrer com programas similares de código fechado, tais como: SQL Server (da Microsoft) e Oracle. O MySQL surgiu na década de 90, e seus criadores foram David Axmark, Allan Larsson e Michael, com objetivo de suprir algumas deficiências na forma de armazenar dados. 22 4.3 VertrigoServ Para a criação e administração do banco de dados, notou-se a necessidade do uso de um software com interface atrativa e de fácil interação com o usuário, por isso decidiu-se utilizar o VertrigroServ, e também porque já havia o conhecimento dessa ferramenta. O VertrigroServ é um instalador de Apache (servidor web – HTTP), MySQL (Data base Management System), PhpMyAdmin (ferramenta escrita em PHP para administrar as bases de dados MySQL), entre outros para a plataforma Windows. 4.4 SQLyog Para controlar e ter uma melhor visualização dos dados salvos no banco de dados, na fase de desenvolvimento, e para os testes do software, usou-se o aplicativo SQLyog, que trabalha em cima do Mysql, permitindo uma maior interação gráfica com os dados que são gravados no banco de dados; o SQLyog é uma ferramenta disponibilizada sobre licença GNU- GPL, e é fornecido pela empresa Norte Americana WEByoge, sendo que neste projeto foi utilizada a versão 6.54 do SQLyog. 4.5 MySQL WorkBench 5.2 Para a criação do banco de dados utilizou-se o MySQL WorkBench, porque ele permite interagir com maior facilidade, criar banco de dados, atualizar e fazer correções, quando necessário. O MySQL Workbenchoferece três áreas principais de funcionalidade: • Desenvolvimento de SQL: permite criar e gerenciar conexões com os servidores de banco de dados, e ainda executar consultas SQL aos dados. • Modelagem de Dados: permite criar modelos de seu esquema de banco de dados, graficamente, engenharia inversa e editar o banco de dados. • Administração do Servidor: permite administrar instâncias do servidor. 4.6 IReport O IReport é uma ferramenta desenvolvida na linguagem Java, fácil de usar, que constrói relatórios para JasperReports. 23 Essa ferramenta permite ao usuário gerar relatórios complexos com imagens, gráficos e sub-relatórios. O IReport é integrado com o JfreeChart, uma das bibliotecas Java de geração de gráficos mais difundidas. Com o IReport é possível gerar relatórios em vários formatos, incluindo PDF, HTML, XML, XLS, CVS, entre outros. No desenvolvimento do software foi utilizado o plug-in do IReport acoplado ao NetBeans, para gerar os relatórios e os gráficos que foram necessários. 5 BANCO DE DADOS Segundo (Célio Cardoso Guimarães, 2000) “Um banco de dados ou base de dados (BD) é uma coleção de dados ou informações relacionadas entre si. Elas representam aspectos do mundo real com significado próprio e que desejamos armazenar para uso futuro”. Com os dados espalhados por várias e diferentes bases de dados e com o avanço tecnológico da informação, há a necessidade de realizar o armazenamento de uma série de informações que não se encontram isoladas umas das outras, ou seja, dados que se relacionam entre as informações a serem manipuladas. 5.1 O Structured Query Language – SQL Para (Celso, 2002) “SQL é uma linguagem padrão para acesso e manipulação de dados que pode interagir com várias linguagens como PHP, ASP e JAVA e vem sempre ligado a uma base de dados como PostegreSQL, MS Access e SQL Server, entre outros”. Neste projeto, foi utilizado SQL como linguagem para fazer interação com o JAVA e como base de dados. Abaixo listam-se algumas tarefas que podem ser realizadas com o SQL: · executar consultas em um banco de dados; · recuperar dados de um banco de dados; · inserir registros em um banco de dados; · atualizar registros em um banco de dados; · criar novos bancos de dados; · criar novas tabelas em um banco de dados; · criar procedimentos armazenados em um banco de dados; · criar exibições em um banco de dados; · definir permissões em tabelas, procedures e views; · excluir registros de um banco de dados. 25 5.2 Estrutura do banco de dados Após o estudo realizado, e já com os requisitos suficientes, iniciou-se a modelagem do banco de dados, onde se utilizou a ferramenta MySQL WorkBench, já descrita no item 4.5. Os nomes do banco dados e das tabelas foram criados de acordo com o levantamento de informações, utilizando as palavras que melhor descreviam cada uma delas. Já os atributos das tabelas foram criados usando como prefixo as três primeiras letras de cada tabela, com o objetivo de ficar mais fácil o seu entendimento para o programador. Depois da criação do diagrama entidade-relacionamento do banco de dados, partiu- se o banco de dados no MySQL, que foi o servidor de banco de dados adotado. E a linguagem utilizada para a criação do banco de dados no MySQL foi o SQL, que está descrito no item 5.1. O banco de dados é composto por 26 tabelas que se relacionam entre si, como pode ser observado na figura 2, onde é possível ver o diagrama entidade-relacionamento das mesmas, sendo que no anexo A, apresenta-se o Diagrama Entidade-Relacionamento com seus atributos dispostos, para um melhor entendimento do banco de dados, pois mostra como ocorrem os relacionamentos entre as tabelas. 26 Figura 6: Der do banco de dados que mostra apenas as tabelas. 6 DESENVOLVIMENTO DO SOFTWARE O sistema utilizado para o gerenciamento de informações da academia de ginástica é relativamente grande, com muitas telas e funções. Algumas funcionalidades das telas e a programação de classes serão explicadas em seguida, para mostrar como este trabalho foi desenvolvido. O software é dividido em 3 módulos que serão descritos a seguir. 6.1 Como foi programado o sistema O sistema foi programado utilizando orientação a objetos. Para cada classe foram criados dois arquivos, sendo que um é composto pelo nome da classe seguido da palavra Bean no final, esse arquivo contém atributos e métodos da classe, e também tem a função de ligar a classe de conexão com o banco de dados; e o outro arquivo é composto igualmente, pelo nome da classe mais a palavra View, sendo que nesse arquivo está criada toda a parte gráfica. A seguir, será explicado como foram criados os arquivos da classe cliente, que é composta pelos arquivos ClienteBean e ClienteView. 6.1.1 ClienteBean Como já foi descrito acima, o arquivo ClienteBean faz parte da classe cliente. Primeiramente, será explicado como foi criado o arquivo, e em seguida, será apresentado o seu código. Pacote que a classe pertence. Primeiro foi declarado a que pacote a classe pertence, isso é realizado através da palavra reservada package, e serve para organizar as classes semelhantes. Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional, onde ficam armazenados os arquivos fonte de Java, e são essenciais para o conceito de encapsulamento, no qual são dados níveis de acesso às classes. Importação de pacotes que foram necessários para a classe. O Java possui vários pacotes com sub-pacotes internos, e várias classes já prontas para serem utilizadas. Dentre eles, podem-se determinar dois grandes pacotes: o pacote Java, que possui as classes padrões para o funcionamento do algoritmo; e o pacote javax, que possui pacotes de extensão que fornecem as classes, os objetos e mais possibilidades para o pacote Java. 28 Para utilizar as classes contidas nos inúmeros pacotes Java, deve-se referenciar diretamente a classe ou importá-la. Para importar um pacote usa-se o comando import, para separar um pacote de seu sub-pacote, usa-se um ponto para acesso aos membros de classe. O asterisco (*) serve para importar todos os sub-pacotes e as classes do pacote que estão definidas. Classe Classe pode ser associada ao conjunto de dados (variáveis) e métodos (funções), onde se define o nome da classe, logo após abre e fecha chaves { }, e dentro dessas chaves vão as variáveis e os métodos da classe. A palavra reservada que indica a criação de uma classe é class, e esta classe pode ser pública ou privada. Classe pública A declaração de uma classe pública é feita pela palavra public, e o modificador public permite o acesso às chamadas de qualquer outra classe do programa. Classe privada A classe privada não permite o acesso a partir de outra classe. Em Java, quando uma determinada classe ou objeto tenta acessar um método ou variável que tenha visibilidade private, ocorre um erro de compilação. A declaração de uma classe privada é feita pela palavra reservada private. Atributos da classe Em Java, costuma-se utilizar o termo atributo, que é uma variável que pertence a uma classe. Como tudo que se faz em Java está contido dentro de uma classe, então se usa o termo atributo ao invés de variável, assim podem-se criar atributos públicos ou privados, e ainda definir a que tipo dado, ele pertence. No desenvolvimento do sistema foram adotadas, como identificador para os atributos, as três primeiras letras da classe e mais o nome do atributo, como se observa nocódigo que se encontra na tabela ClienteBean. GETS e SETS Os métodos get e set têm grande importância, pois se podem criar variáveis privadas, e com o get público dessa variável é permitido acessá-la de outro método ou de outra classe; já um método set público pode e deve avaliar, cuidadosamente, as tentativas para modificar o valor da variável. 29 Os métodos set podem ser chamados de métodos modificadores, já que, geralmente, alteram um valor. Enquanto os métodos get são chamados de métodos de acesso ou métodos de consulta. Métodos da classe cliente Os métodos que foram no arquivo ClienteBean são de grande importância, pois interagem com a classe que controla o acesso ao banco de dados, e também interagem com a classe visual do sistema, a ClienteView, que será explicada no decorrer deste documento. Quando se define um objeto em um programa orientado a objetos, programa-se todo o comportamento desse objeto em um ou mais métodos, que devem sempre ser definidos dentro de uma classe. Modificadores de Acesso O Java controla o acesso a atributos e métodos através do uso dos modificadores de acesso. São eles: · Public: é o menos restritivo de todos. Atributos e métodos declarados como public em uma classe podem ser acessados pelos métodos da própria classe, por classes derivadas desta, e por qualquer outra classe, em qualquer outro pacote. · Protected: atributos e métodos definidos como protected são acessíveis pelos métodos da própria classe e pelas classes derivadas. · Private: é o mais restritivo. Atributos e métodos declarados como private só podem ser acessados pelos métodos da própria classe. No anexo B, é possível observar parte do código do arquivo ClienteBean, que traz exemplos do que foi explicado durante este tópico. 6.1.2 ClienteView O arquivo ClienteView que também pertence a classe cliente é responsável pela parte visual da classe, e interage com o arquivo ClienteBean e com algumas classes do sistema através dos seus métodos. O arquivo ClienteView possui vários componentes gráficos na sua estrutura: botões, caixas de texto, caixas de seleções, entre outros; como pode ser observado na Figura 10, que está mostrando a tela cadastro de cliente. 30 No anexo C, é possível acompanhar parte do código fonte, criado no arquivo ClienteView, que contém vários componentes Swing como: caixa de texto, caixa de seleção dentre outros. 6.2 Módulo Usuário Com o banco de dados já criado, iniciou-se a programação do módulo usuário, usando como ferramenta IDE NetBeans e a linguagem de programação Java. O módulo usuário se refere à tela inicial do sistema, e nela identifica-se se é um usuário administrador ou um cliente que está acessando o sistema, pois conforme o usuário, o sistema direcionará para telas diferentes, e poderá gravar dados diferenciados. Para cada um dos usuários abre uma sessão no sistema, e para conseguir esse acesso ao sistema, tanto o administrador como o cliente, precisam estar cadastrados no sistema, por um administrador já cadastrado. Isso pode ser observado na figura 7. Figura 7: tela login. O módulo usuário ficou dinâmico, e realiza o teste na hora em que o usuário clica em acessar. Ele faz uma série de verificações como: se as caixas de texto estão em branco, se não está em branco, ele testa se o usuário existe, e se senha dele é valida, e se os dados direcionam o cliente ou o administrador para interagir com o sistema. 31 6.3 Módulo Administrador O módulo administrador é dependente do módulo usuário, pois só é possível efetuar o login no módulo usuário. O módulo administrador é o mais complexo, já que após o indivíduo ter feito o login, se abrirá uma tela composta por várias funcionalidades do sistema, como se vê no protótipo da tela de administração do sistema abaixo. Figura 8: protótipo da tela de administração do sistema. A seguir serão descritas cada uma das funções do sistema: · manter os dados pessoais do administrador; · manter os dados pessoais do cliente; · manter o questionário e as avaliações do cliente; · manter as atividades do cliente. 32 6.3.1 Manter dados pessoais do administrador O administrador tem poder de cadastrar novo, alterar e excluir os administradores, sendo que todas essas ações são realizadas no protótipo da tela cadastro de administrador, que está representada na figura 9. Figura 9: protótipo da tela cadastro de administrador. Figura 10: protótipo da tela cadastro de cliente. 6.3.2 Manter dados pessoais do cliente O administrador tem poder de cadastrar novo, alterar e excluir os clientes, e todas essas ações são realizadas no protótipo da tela cadastro de cliente, que está representada na figura 10. Nesta tela, é muito importante preencher todos os dados, pois é criado o login e a 33 senha para o cliente poder acessar e visualizar seus dados, marcar as suas atividades e acompanhar os seus gráficos de desempenho. Figura 11: controle de questionários e atividades do cliente. 6.3.3 Manter questionário e avaliações do cliente Na figura 11, o administrador visualiza uma tabela, onde são listados todos os clientes, os seus questionários e as suas atividades em uma linha individual para cada cliente. Os questionários, como são preenchidos só uma vez, são indicados por zero ou um: um se já foi preenchido e zero se ainda não foi preenchido. As atividades são feitas quase da mesma maneira, a única diferença é que essas atividades são preenchidas várias vezes, onde o zero indica que não foi preenchida, e do número um em diante, indica quantas vezes foram preenchidas as atividades. Logo abaixo da tabela, observa-se um grupo de botões, que chamam todos os formulários para poder manter os questionários e as atividades do cliente, mas para isso acontecer é preciso selecionar a linha correspondente a um cliente em específico, de cada vez, na tabela acima, como está exposto na figura 11. 34 Para entender melhor como funciona todo esse processo de cadastramento de questionários e avaliações são destacados os itens abaixo: · manter questionário anamnese; · manter questionário dependência do cigarro; · manter questionário parq (Physical Activity Readiness Questionnarie) · manter questionário risco cardíaco; · manter avaliação relação cintura/ quadril; · manter avaliação composição corporal. Figura 12: manter Anamnese. 6.3.3.1 Manter Questionário Anamnese A tela do questionário anamnese, que é visto na figura 12, tem por funcionalidade cadastrar anamnese ou alterar uma anamnese já cadastrada pelo administrador, referente a um cliente específico, lembrando que é de extrema importância preencher todos os dados, pois o profissional da academia de ginástica usa esse questionário para se basear na prescrição das atividades de cada aluno da academia. 35 6.3.3.2 Manter questionário dependência do cigarro A tela do questionário dependência do cigarro, que pode ser observada na figura 13, tem por funcionalidade verificar a dependência do cigarro, também se encontra nela a função alterar dependência do cigarro, que serve para alterar os dados do cliente já cadastrado pelo administrador, lembrando que é muito importante preencher todos os dados nele solicitado, visto que o profissional da academia de ginástica consultará esse questionário para fazer a prescrição correta das atividades físicas para cada cliente da academia. Figura 13: manter questionário dependência do cigarro. 6.3.3.3 Manter questionário parq Na tela parq que estána figura 14, existem algumas perguntas que o profissional da academia responde junto com o cliente, assinalando sim ou não. De acordo com as respostas o professor tem um parecer sobre as reais condições físicas do cliente, pois este questionário tem o objetivo de identificar a necessidade da avaliação clínica antes do início da atividade física. Caso seja identificado algum sim, é aconselhável a realização da avaliação médica. 36 Figura 14: manter Parq. Figura 15: manter questionário risco cardíaco. 6.3.3.4 Manter questionário risco cardíaco O questionário do risco cardíaco (figura 15) tem o objetivo de avaliar o risco cardíaco dos clientes, porém não substitui uma avaliação médica. Caso o resultado apresente algum risco, é aconselhável que o aluno procure um médico para fazer o seu acompanhamento. Lembre-se de que a prevenção e o diagnóstico precoce podem salvar uma vida. 37 6.3.3.5 Manter avaliação relação cintura/ quadril A avaliação cintura/ quadril deve ser realizada pelo profissional da academia, que extrai as medidas do cliente e lança no sistema Destaque. O resultado aparece na tela relação cintura/ quadril que está disposta na figura 16, onde se busca identificar qual a situação do aluno, isto é, se ele está perto do tamanho ideal ou não. Esta avaliação é realizada periodicamente para verificar como está o desempenho do cliente, assim o profissional da academia pode aumentar ou diminuir as séries de exercícios, ou até mesmo cadastrar novos exercícios, fazendo um balanceamento das atividades físicas para ajudar o cliente a atingir, com maior rapidez, o resultado ideal. Figura 16: manter avaliação relação cintura/ quadril. 6.3.3.6 Manter avaliação composição corporal A avaliação da composição corporal é de extrema importância, porque o profissional da academia fica ciente de algumas informações que o ajudam a definir como estão as reais condições físicas do cliente. A figura 17 mostra como ficou a tela. A avaliação da composição corporal leva em consideração algumas variantes que são: a altura, o peso, o nível de 38 condicionamento e as medidas das sete dobras, para calcular e dar o resultado da densidade corporal, entre outros. Figura 17: manter avaliação composição corporal. 6.3.4 Manter atividades do cliente A tela manter as atividades do cliente tem grande importância, pois é nela que o profissional da academia de ginástica prescreve as atividades, e também pode ativar ou desativar as atividades do cliente. Por padrão, a atividade física é ativa, e se ele quiser desativar é só clicar no botão “desativar”, com isso ela não aparecerá na tela onde o cliente visualizará quais atividades estão listadas para ele fazer. Observando a tela manter atividade na figura 18, na qual há duas caixas de seleção, onde se deve selecionar primeiro o membro e ao defini-lo, o sistema lista seus exercícios respectivos. As caixas de texto: peso, repetições e séries definem essas variantes, antes de clicar no botão cadastrar atividade, que salva no banco de dados e adiciona em uma nova linha, na tabela abaixo, do botão cadastrar atividades. 39 Figura 18: manter atividades do cliente. 6.4 Módulo Cliente O módulo cliente serve como mecanismo de comunicação entre o cliente e o profissional da academia, pois o cliente cadastra suas atividades e o profissional da academia pode consultar esses dados. O cliente faz o login no sistema e tem acesso ao sistema que contém alguns botões, onde o cliente interage com o sistema, como se observa na figura 19. 40 Figura 19: tela de acesso do cliente. O usuário também pode ver alguns gráficos, relatórios de atividades e marcar as atividades realizadas. 6.4.1 Marcar atividades realizadas Marcar as atividades realizadas é uma das partes principais desse módulo, e também de todo o sistema, já que é onde o cliente marca as atividades que realizou, selecionando a linha da atividade e clicando em marcar atividade, como se vê na figura 20. Com isso, ele salva o código e a data de realização da atividade, e isso fica registrado no banco de dados, dentro da tabela atividade diária, que pode ser observada no anexo A. Na figura 20, também se pode observar na última coluna da tabela, a coluna status da atividade. Se o cliente clicar em marcar atividade após ter selecionado a linha e a coluna status da atividade mudará de “a fazer” para “feita”, com isso o cliente fica interagindo com sistema, podendo deixar de fazer alguma atividade, que o profissional da academia irá ficar sabendo para poder conversar com cliente e ter uma posição do cliente, ver se ele está realmente com alguma dificuldade na realização das atividades. 41 Figura 20: tela controle de atividades. 6.4.2 Gráfico da composição corporal Para ajudar o cliente a observar e identificar o seu desempenho na academia, foram desenvolvidos alguns gráficos comparativos com dados do cliente, para verificar como está sendo seu ganho ou perda de massa muscular, e ainda poder ver o seu gráfico ideal, para junto com o profissional da academia, decidir quais as atividades ele deve fazer para alcançar o seu objetivo (figura 21). 42 Figura 21: avaliação composição corporal. 6.4.3 Relatório das atividades No relatório de atividades, o cliente pode acompanhar seu histórico de atividades na academia e o seu status, que exibe sim, para as atividades que estão ativas, ou seja, as atividades que o aluno está realizando no momento, e ele ainda pode ver as atividades em que o status está não, isto é, o aluno já realizou por algum período, mas não se encontra ativa. Quando ele acessa a tela Controle de Atividades, que pode ser observada na figura 22, o aluno verá apenas as atividades que estão com status ativas, para ele realizar. 43 Figura 22: relatório das atividades. 6.4.4 Relatório e gráfico Cintura/ Quadril O relatório e gráfico cintura/ quadril tem a função de mostrar as medidas do cliente, assim ele terá uma ideia de como estão suas medidas, e de acordo com as orientações passadas pelo profissional da academia, pode saber o que precisa melhorar. Na elaboração do relatório foram utilizados plug-ins do Ireport adicionada ou NetBeans, interagindo com Mysql através da linguagem de acesso de dados SQL mais a linguagem de programação Java. 44 Figura 23: relatório e gráfico cintura/ quadril. 7 CONCLUSÃO O desenvolvimento do software Destaque - Sistema de Gerenciamento de Informações para Academia de Ginástica - foi um grande desafio, pois exigiu muito esforço e persistência em aprender novas tecnologias e aprofundar outras adquiridas durante o curso de Análise e Desenvolvimento de Sistemas. O presente trabalho proporcionou o real desempenho no papel de analista e desenvolvedor de sistemas, principalmente na função de desenvolvedor, onde foi necessário um estudo mais aprofundado sobre a linguagem de programação Java e a orientação a objetos. Como o sistema de gerenciamento de informações da academia de ginástica foi criado utilizando o modelo espiral, o programa ainda está no final de seu desenvolvimento, e em fase de testes para que sejam identificadas suas possíveis falhas, como requisitos que tenham passado despercebidos, pois como iniciantes nesta área de desenvolvimento de softwares, é preciso ter uma maior atenção. Também cabe salientar que a ajuda de profissionais ligados a academias de ginástica e do professor orientador foram muito importantes para o desenvolvimentodo software. O desenvolvimento desse sistema proporcionou um grande acréscimo de conhecimento, e com isso uma grande satisfação pessoal e profissional, enfim trouxe a certeza que todo o esforço valeu a pena. REFERÊNCIAS BIBLIOGRÁFICAS ALVAREZ, M. Introduzimos para os mais leigos as bases sobre o que se assenta a Programação Orientada a Objetos. Último acesso em 23/10/2011. Disponível em: <http://www.criarweb.com/artigos/215.php> BEZERRA,E. Princípios de Análise e Projeto de Sistemas com UML. Editora Elsevier Ltda, 2007. CLASS DECIMALFORMAT. Último acesso em 12/12/2011. Disponível em: http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html MATTOS, C, T. Programação de Softwares em Java. 2007. DEITEL P, J. Java: Como Programar. 8. ed. Pearson, 2010. GUIMARÃES, C, C. Fundamentos de Bancos de Dados: Modelagem, Projeto e Linguagem Sql. IREPORT. Último acesso em 01/09/2011. Disponível em: <http://jasperforge.org/projects/ireport> JFREECHART & IREPORT– Parte I. Último acesso em 11/02/2012. Disponível em: <http://www.devmedia.com.br/post-3163-JfreeChart--iReport-Parte-I.html> Métodos, explicando os tipos de métodos existentes na programação. Último acesso em 17/10/2011. Disponível em: <http://www.devmedia.com.br/post-748-Metodos.html> MYSQL. Último acesso em 08/11/2011. Disponível em: <http://www.mysql.com/oem/licensing.html> NETBEANS. Último acesso em 08/11/2011. Disponível em: <Netbeans.org/about/history.htm> PRESSMAN, R. S. Engenharia de Software. São Paulo: Pearson Makron Books, 2007. SAIBA MAIS SOBRE A TECNOLOGIA JAVA. Último acesso em 04/11/2011. Disponível em: <http://www.java.com/pt_BR/about/> SOMMERVILLE, I. Engenharia de Software. 8. ed. Editora Addison Wesley Edito, 2007. SQLYOG. Último acesso em 07/09/2011. Disponível em: <www.webyog.com> WAZLAWICK R. S. Análise e projeto de sistemas de informação orientados a objetos. Rio de Janeiro: Campos, 2004. 47 XEXÉO, G. Modelagem de Sistemas de Informação: Da Análise de Requisitos ao Modelo de Interface. Edição: agosto/ 2007. VERTRIGO. Último acesso em 07/10/2011. Disponível em: <Vertrigo.sourceforge.net> VIDEIRA, C, A. UML Metodologias e Ferramentas. Edições Atlântico, 2001. 48 ANEXOS 49 Anexo A - Diagrama Entidade Relacionamento Figura A1: Diagrama Entidade Relacionamento, parte 1. 50 Figura A2: Diagrama Entidade Relacionamento, parte 2. 51 Anexo B - ClienteBean //* COMENTARIO :: PACOTE QUE CLASSE PERTENCE packagedestaque.Bean; //* COMENTARIO :: IMPORTS import com.mysql.jdbc.Connection; //* COMENTARIO :: OS OUTROS IMPORTS FORAM RETIRADOS PARA DIMUINUR O CODIGÓ //* COMENTARIO :: CLASSE publicclassClienteBean { //* COMENTARIO :: ATRIBUTOS DA CLASSE Private int cli_codigo, cli_cid_codigo, cli_sexo, cli_usu_cod; Private String cli_nome, cli_cpf,cli_datanascimento,cli_endereco; private String cli_etnia,cli_tsanguineo,cli_fatorrh,cli_telefone; private Connection con; private ResultSet rs; private Statement comando; //******COMENTARIO :: GETS e SETERS *****// public String getCli_nome() { return cli_nome; } public String getCli_cpf() { returncli_cpf; } //* COMENTARIO :: OS OUTROS GETS E SETS FORAM RETIRADOS PARA DIMINUIR O CÓDIGO // COMENTARIO :: CHAMADA DA CLASSE QUE FAZ A CONEXÃO COM BANCO DE DADOS conexao c = new conexao(); 52 // COMENTARIO :: METODO INSERIRCLIENTE publicResultSetinserirCliente(){ ResultSetseleciona_cliente = null; con= (Connection) c.conectaBD(); try { comando = (Statement) con.createStatement(); intresultadoPesqCli= comando.executeUpdate("INSERT INTO cliente (cli_usu_codigo,cli_cid_codigo,cli_nome,cli_tipo_sex_codigo,cli_cpf,cli_datanascimento,cli_endereco ,cli_etnia,cli_tsanguineo,cli_fatorrh,cli_telefone) " + " VALUES(\"" + getCli_usu_cod() + "\",\"" + getCli_cid_codigo() + "\",\"" + getCli_nome() + "\",\"" + getCli_sexo() + "\",\"" + getCli_cpf() + "\",\"" + getCli_datanascimento() + "\",\"" + getCli_endereco() + "\",\"" + getCli_etnia() + "\",\"" + getCli_tsanguineo() + "\",\"" + getCli_fatorrh() + "\",\"" + getCli_telefone() + "\")"); // FAZER \"" + cli_datanascimento + "\" if(resultadoPesqCli== 1) seleciona_cliente = comando.executeQuery("SELECT * FROM cliente WHERE cli_cpf = \"" + getCli_cpf() + "\""); seleciona_cliente.next(); System.out.println("Inserido com sucesso o CLIENTE " +resultadoPesqCli); }catch (SQLException e){ System.err.println ("Erro no comando SQL de Insert do CLIENTE: " + e.getMessage()); } // c.desconectaBD(); returnseleciona_cliente; } // COMENTARIO: METODO ALTERARCLIENTE publicvoidalterarCliente(){ con= (Connection) c.conectaBD(); try { comando = (Statement) con.createStatement(); comando.executeUpdate("UPDATE cliente SET " + "cli_usu_codigo = " + "\"" + getCli_usu_cod() + "\"," + "cli_cid_codigo = " + "\"" + getCli_cid_codigo() + "\"," + 53 "cli_nome = " + "\"" + getCli_nome() + "\"," + "cli_tipo_sex_codigo = " + "\"" + getCli_sexo() + "\"," + "cli_cpf = " + "\"" + getCli_cpf() + "\"," + "cli_datanascimento = " + "\"" + getCli_datanascimento() + "\"," + "cli_endereco = " + "\"" + getCli_endereco() + "\"," + "cli_etnia = " + "\"" + getCli_etnia() + "\"," + "cli_tsanguineo = " + "\"" + getCli_tsanguineo() + "\"," + "cli_fatorrh = " + "\"" + getCli_fatorrh() + "\"," + "cli_telefone = " + "\"" + getCli_telefone() + "\"" + "WHERE cli_codigo = " + getCli_codigo()); }catch (SQLException e){ System.err.println ("Erro no comando SQL de Update: " + e.getMessage()); } c.desconectaBD(); } // comentario :: metodoexcluirCliente publicbooleanexcluirCliente(){ boolean testa=false; con= (Connection) c.conectaBD(); try { comando = (Statement) con.createStatement(); int linhas = comando.executeUpdate("DELETE FROM cliente " + "WHERE cli_codigo = " + getCli_codigo()); if (linhas>0) testa=true; else testa=false; }catch (SQLException e){ System.err.println ("Erro no comando SQL de Update: " + e.getMessage()); } c.desconectaBD(); return testa; } 54 // COMENTARIO :: METODO CONSULTARCLIENTEESPECIFICO publicResultSetconsultarClienteEspecifico(){ ResultSet res = null; con= (Connection) c.conectaBD(); try { comando = (Statement) con.createStatement(); res = comando.executeQuery("SELECT cli_nome, cli_codigo,(YEAR(CURDATE())- YEAR(cli_datanascimento)) AS idade_atual , " + "(SELECT (COUNT(ana_codigo)) FROM anamnese whereana_cli_codigo = cli_codigo ) AS anamnese," + "(SELECT (COUNT(par_codigo)) FROM parqwherepar_cli_codigo = cli_codigo ) ASparq," + " (SELECT (COUNT(dep_codigo)) FROM dependencia_cigarrowheredep_cli_codigo = cli_codigo ) AS dependencia_cigarro, " + "(SELECT (COUNT(ava_codigo)) FROM avaliacao_risco_cardiacowhereava_cli_codigo = cli_codigo ) AS avaliacao_risco_cardiaco," + " (SELECT (COUNT(rel_codigo)) FROM relacao_cintura_quadrilwherecli_codigo = rel_cli_codigo ) AS relacao_cintura_quadril," + " (SELECT (COUNT(com_codigo)) FROM composicao_corporalwherecli_codigo = com_cli_codigo ) AS composicao_corporal" + " FROM cliente WHERE cli_codigo = \"" + getCli_codigo() + "\""); }catch (SQLException e){ System.err.println ("Erro no comando SQL de consulta: " + e.getMessage()); } // c.desconectaBD(); return res; } } // COMENTARIO :: METODO EXCLUIRCLIENTE publicbooleanexcluirCliente(){ boolean testa=false; 55 con= (Connection) c.conectaBD(); try { comando = (Statement) con.createStatement(); int linhas = comando.executeUpdate("DELETE FROM cliente " + "WHERE cli_codigo = " + getCli_codigo()); if (linhas>0) testa=true; else testa=false; }catch (SQLException e){ System.err.println ("Erro no comando SQL de Update: " + e.getMessage()); } c.desconectaBD(); return testa; } 56 Anexo C - ClienteView public class ClienteView extends javax.swing.JFrame { CidadeBean cid = new CidadeBean(); ClienteBean cli = new ClienteBean(); EstadoBean est = new EstadoBean(); UsuarioBean usu = new UsuarioBean(); TipoSexoBeantipo_sexo = new TipoSexoBean(); //pega data do sistema Date data = new Date(System.currentTimeMillis()); SimpleDateFormat formataDate = new SimpleDateFormat("yyyy-MM-dd"); private void initComponents() { bGsexo = new javax.swing.ButtonGroup(); jTnome = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); try{ mascaracpf = new MaskFormatter("###.###.###-##"); mascaracpf.setPlaceholderCharacter('_'); } catch(Exception erro) { JOptionPane.showMessageDialog(null,"Não foi possivel"+erro); } jFcpf = jFcpf = new JFormattedTextField(mascaracpf); jLsexo = new javax.swing.JLabel(); jCetnia = new javax.swing.JComboBox(); jBfechar = new javax.swing.JButton(); jTendereco = new javax.swing.JTextField(); jLcidade = new javax.swing.JLabel(); jCtipo_samguineo = new javax.swing.JComboBox(); jCfatorrh = new javax.swing.JComboBox(); try{ 57 mascaratelefone = new MaskFormatter("(##)####-####"); mascaratelefone.setPlaceholderCharacter('_'); } catch(Exception erro) { JOptionPane.showMessageDialog(null,"Não foi possivel"+erro); } jFtelefone = jFtelefone = jFtelefone = new JFormattedTextField(mascaratelefone); jPconfirmaSenha = new javax.swing.JPasswordField(); jLconfirmaSenha = new javax.swing.JLabel(); jDdata_nascimento = new com.toedter.calendar.JDateChooser(); jCsexo = new javax.swing.JComboBox(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Cadastro de Cliente"); jLabel3.setText("Cpf :"); jFcpf.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jFcpfActionPerformed(evt); } }); // MÉTODO PARA DESABILITA O BOTÃO public void Opcao_tela (int op){ //opcao_tela if(op ==1){ jBsalvar.setEnabled(false); }else{ jBAlterar.setEnabled(false); jBExcluir.setEnabled(false); } } 58 // MÉTODO PARA PREENCHER O COMBO ESTADO publicResultSetsetComboEstado(){ jCestado.removeAllItems(); estado = est.lista_estado(); try { while(estado.next()){ jCestado.addItem(estado.getString("est_uf")); } } catch (SQLException ex) { Logger.getLogger(ClienteView.class.getName()).log(Level.SEVERE, null, ex); } return estado; } // MÉTODO PREENCHER O COMBO CIDADE publicResultSetsetComboCidade(){ jCcidade.removeAllItems(); cidade = cid.lista_cidade(); try { while(getCidade().next()){ jCcidade.addItem(getCidade().getString("cid_nome")); } } catch (SQLException ex) { Logger.getLogger(ClienteView.class.getName()).log(Level.SEVERE, null, ex); } returngetCidade(); } 59 // ACTIONPERFORMED private void jBsalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN- FIRST:event_jBsalvarActionPerformed cid.setCid_nome((String) jCcidade.getSelectedItem()); cid.setEstado_codigo(jCestado.getSelectedIndex()); filtra_cid = cid.filtra_cidade(); try { filtra_cid.first(); cli.setCli_cid_codigo(filtra_cid.getInt("cid_codigo")); } catch (SQLException ex) { Logger.getLogger(ClienteView.class.getName()).log(Level.SEVERE, null, ex); } cli.setCli_nome(jTnome.getText()); //COMEÇO SEXO tipo_sexo.setTipo_sex_descricao((String) getjCsexo().getSelectedItem()); filtra_sexo = tipo_sexo.filtra_tipo_sexo(); try { filtra_sexo.first(); cli.setCli_sexo(filtra_sexo.getInt("tipo_sex_codigo")); } catch (SQLException ex) { Logger.getLogger(ClienteView.class.getName()).log(Level.SEVERE, null, ex); } //FIM SEXO // INICIAL DATA if(jDdata_nascimento.getDate()== null){ JOptionPane.showMessageDialog(null, "Preencha data de nascimento!!" ); }else{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Stringdatanasc = sdf.format(jDdata_nascimento.getDate()); cli.setCli_datanascimento(datanasc); } // FIM DATA cli.setCli_cpf(jFcpf.getText()); ResultSet tempCpf = cli.consultarclinte_Cpf(); 60 try { if (tempCpf.next()) { JOptionPane.showMessageDialog(null, "Já esta cadastrado " + tempCpf.getString("cli_cpf")); jFcpf.setText("###.###.###-##"); } else { cli.setCli_endereco(jTendereco.getText()); cli.setCli_etnia((String) jCetnia.getSelectedItem()); cli.setCli_tsanguineo((String) jCtipo_samguineo.getSelectedItem()); cli.setCli_fatorrh((String) jCfatorrh.getSelectedItem()); cli.setCli_telefone(jFtelefone.getText()); usu.setUsu_nome(jTnome.getText()); usu.setUsu_login(jTlogin.getText()); usu.setUsu_senha(jPsenha.getText()); usu.setUsu_status("C"); usu.setUsu_datacadastro(formataDate.format(data)); //INICIO DA VERIFICACAO DO LOGIN ResultSettemp = usu.CompararLogin(); if (temp.next()) { JOptionPane.showMessageDialog(null, "Já esta cadastrado " + temp.getString("usu_login")); jTlogin.setText(""); } else { //INICIO DO TESTA SENHA String senha = jPsenha.getText(); StringconfirmaSenha = jPconfirmaSenha.getText(); if (!senha.equals(confirmaSenha)) { JOptionPane.showMessageDialog(null, "Senhas diferentes repita por favor"); } else { int temp2 = usu.inserirUsuario();if (temp2 != 0) { cli.setCli_usu_cod(temp2); ResultSet temp4 = cli.inserirCliente(); //INICIO DA ESCOLHA DE AVALIAÇÃO intopcao; Object[] botoes = {"Sim", "Não"}; 61 opcao = JOptionPane.showOptionDialog(null, "Cliente Salvo; Deseja quantinuar preenchendo a Avaliacao?", "Fechar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, botoes, botoes[0]); if (opcao == JOptionPane.YES_OPTION) { tela_questionariosQues = new tela_questionarios(); Ques.show(); Ques.jLnome.setText(temp4.getString("cli_nome")); Ques.setNome_cliente_em_edicao(temp4.getString("cli_nome")); Ques.setCodigo_cliente_em_edicao(temp4.getInt("cli_codigo")); Ques.setSexo_cliente_em_edicao(temp4.getInt("cli_tipo_sex_codigo")); dispose(); //FIM DA ESCOLHA DE AVALIAÇÃO SE SIM SE NÃO } } } } //FIM DO TESTA SENHA } //FIM DO VERIFICA LOGIN } catch (SQLException ex) { Logger.getLogger(UsuarioView.class.getName()).log(Level.SEVERE, null, ex); } }
Compartilhar