APS 2 e 3 Semestre de Bacharelado em Sistema de informao
Programao Orientada a Objetos
BRASLIA 2014 2
UNIVERSIDADE PAULISTA UNIP
Trabalho referente disciplina de Atividades Prticas Supervisionadas do 2 e 3 semestre de bacharelado em Sistema de informao da Universidade Paulista - Campus Braslia. Orientado pelo professor Ly Freitas. Avaliado pelo Professor Ly Freitas. Realizado pelos alunos:
lisson Henrique - B914BE-0 Davi Demetrio - B78DCF-5 Hitiel Souza - B926DG-9 Raissa dos Santos - B964DA-9 Michel Silva Santos - B83031-0 Ana Carolina - B857820 Matheus Mangabeira- B803GB5
BRASLIA 2014 3
ndice
Objetivo ............................................................................................................. 5 Introduo .......................................................................................................... 6 Elementos de programao Orientada a Objeto (conceitos gerais) ................... 8
Classes .................................................................................................... 8 Objetos .................................................................................................. 10 Herana ................................................................................................. 11 Polimorfismo ......................................................................................... 13 Conceitos Gerias de Modelagem e Relacionamento ...................................... 14 Entidade ................................................................................................. 14 Atributos ................................................................................................. 15 Relacionamento ..................................................................................... 15 Relacionamento Um-Para-Um (1:1) ........................................... 15 Relacionamento Um-Para-Vrios (1:N) ...................................... 15 Relacionamento Vrios-Para-vrios (N:M) ................................. 16 Cardinalidade ......................................................................................... 16 Dissertao ............................................................................................ 18 Estrutura do Programa ..................................................................................... 23 Diagrama de Atividades ......................................................................... 23 Diagrama de Relacionamento ............................................................... 24 Diagrama de Caso de uso ..................................................................... 25 Relatrio com linhas de Cdigo de Emisso de Co ........................................ 26 Relatrio com linhas de Cdigo de Energia Elica .......................................... 28 Relatrio com linhas de Cdigo de Energia Solar ............................................ 33 Interface Da Aplicao ..................................................................................... 44 Interface De Login ............................................................................................ 50 4
Apresentao das Funcionalidades do Programa. .......................................... 56 Bibliografia........................................................................................................ 66
5
Objetivo
Objetivo do trabalho a Introduo de energia sustentveis e seus conceitos gerais mais utilizados e conhecidos
O conceito sustentabilidade resultado da responsabilidade social, das melhores praticas de implantao de grande empreendimentos e da boa gesto dos recursos naturais, baseado nesse conceito, preservando os recursos naturais e culturais para as geraes futuras, equilibrando de modo sustentvel, as demandas econmicas, sociais e ambientais ligadas a implantao do aproveitamento hidreltrico. O seu impacto na esfera social, econmica e cultural, tem dado situaes sem precedentes e que sero abordadas neste trabalho.
6
Introduo
Chamamos de energia renovvel todo e qualquer tipo de energia que se origina de alguma fonte natural como a gua (energia hidrulica), o Sol (energia solar), o vento (energia elica),e a energia da biomassa. Todos esses tipos de energia so renovveis, ou seja, no se esgotam e no liberam poluentes para a atmosfera. Iremos demonstra com nossa aplicao quando de energia pode ser produzida atravs da energia elica, energia solar e atravs do CO2. Para o facto de as energia renovveis serem uma das principais armas para assegurar um futuro vantajoso e limpo, destacando-se ento a necessidade para o crescimento saudvel do ser humano, num futuro prximo onde irar reinar quem estiver mais avanado cientificamente e tecnologicamente.
Os caminhos da programao tm mudado dramaticamente desde a inveno do computador. A primeira razo para as mudanas acomodar o aumento da complexidade dos programas. Por exemplo, quando os computadores foram inventados, a programao era feita por chaveamentos em instrues binrias de mquina, usando-se o painel frontal. Enquanto os programas continham somente algumas centenas de instrues, esse mtodo funcionava.
A programao orientada a objetos aproveitou as melhores ideais da programao estruturada e combinou-as com novos conceitos poderosos que levam a ver na tarefa de programao uma nova luz, permitindo que um problema seja mais facilmente decomposto em subgrupos relacionados. Ento, usando-se a linguagem, podem-se traduzir esses subgrupos em objetos.
A primeira linguagem a incorporar facilidades para definir classes de objetos genricos na forma de uma hierarquia de classes e subclasses foi a linguagem Simula, que foi idealizada em 1966, na Noruega. 7
A abordagem utilizada aqui ser a representao de dados no modelo relacional, utilizando-se, para tal, o Modelo de Entidade-Relacionamento (MER). O MER um modelo baseado na percepo do mundo real, que consiste em um conjunto de objetos bsicos chamados de entidades e nos relacionamentos entre esses objetos. Foi proposto por Peter Chen, em 1976, como uma ferramenta de projeto de banco de dados. O MER apresenta como contribuies um maior grau de independncia de dados que os modelos convencionais (de redes e hierrquico) e uma unificao de representao destes modelos, atravs do formalismo grfico do Diagrama de Entidade-Relacionamento (DER).
8
Elementos de programao Orientada a Objeto (conceitos gerais)
Um dos grandes diferenciais da programao orientada a objetos em relao a outros paradigmas de programao que tambm permitem a definio de estruturas e operaes sobre essas estruturas esto no conceito de herana, mecanismo atravs do quais definies existentes podem ser facilmente estendidas. Juntamente com a herana deve ser enfatizada a importncia do polimorfismo, que permite selecionar funcionalidades que um programa ir utilizar de forma dinmica, durante sua execuo.
Classes
A definio de classes e seus inter-relacionamentos o principal resultado da etapa de projeto de software. Em geral, esse resultado expresso em termos de alguma linguagem de modelagem, tal como UML.
Uma classe um gabarito para a definio de objetos. Atravs da definio de uma classe, descreve-se que propriedades ou atributos o objeto ter. Alm da especificao de atributos, a definio de uma classe descreve tambm qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades so descritas atravs de mtodos. Um mtodo nada mais que o equivalente a um procedimento ou funo, com a restrio que ele manipula apenas suas variveis locais e os atributos que foram definidos para a classe.
Uma vez que estejam definidas quais sero as classes que iro compor uma aplicao, assim como qual deve ser sua estrutura interna e comportamento, possvel criar essas classes em Java. Na Unified Modeling Language (UML), a representao para uma classe no diagrama de classes tipicamente expressa na forma grfica.
O nome da classe um identificador para a classe, que permite referenci-la posteriormente, por exemplo, no momento da criao de um objeto. 9
O conjunto de atributos descreve as propriedades da classe. Cada atributo identificado por um nome e tem um tipo associado. Em uma linguagem de programao orientada a objetos pura, o tipo o nome de uma classe. Na prtica, a maior parte das linguagens de programao orientada a objetos oferecem um grupo de tipos primitivos, como inteiro, real e carter, que podem ser usados na descrio de atributos. O atributo pode ainda ter um valor default opcional, que especifica um valor inicial para o atributo.
Os mtodos definem as funcionalidades da classe, ou seja, o que ser possvel fazer com objetos dessa classe. Cada mtodo especificado por uma assinatura, composta por um identificador para o mtodo (o nome do mtodo), o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identificado por seu tipo e nome.
Atravs do mecanismo de sobrecarga (overloading), dois mtodos de uma classe podem ter o mesmo nome, desde que suas assinaturas sejam diferentes. Tal situao no gera conflito, pois o compilador capaz de detectar qual mtodo deve ser escolhido a partir da anlise dos tipos dos argumentos do mtodo. Nesse caso, diz-se que ocorre a ligao prematura (early binding) para o mtodo correto.
O modificador de visibilidade pode estar presente tanto para atributos como para mtodos. Em princpio, trs categorias de visibilidade podem ser definidas: pblico, denotado em UML pelo smbolo +: nesse caso, o atributo ou mtodo de um objeto dessa classe pode ser acessado por qualquer outro objeto (visibilidade externa total); privativo, denotado em UML pelo smbolo -: nesse caso, o atributo ou mtodo de um objeto dessa classe no pode ser acessado por nenhum outro objeto (nenhuma visibilidade externa); protegido, denotado em UML pelo smbolo #: nesse caso, o atributo ou mtodo de um objeto dessa classe poder ser acessado apenas por objetos de classes que sejam derivadas dessa atravs do mecanismo de herana.
10
Objetos
Objetos so instncias de classes. atravs deles que (praticamente) todo o processamento ocorre em sistemas implementados com linguagens de programao orientadas a objetos.
Objetos, obedecendo aos princpios associados sua definio conforme estabelecido no paradigma de desenvolvimento orientado a objetos, chave para o desenvolvimento de sistemas complexos eficientes. Um objeto um elemento que representa, no domnio da soluo, alguma entidade (abstrata ou concreta) do domnio de interesse do problema sob anlise. Objetos similares so agrupados em classes.
No paradigma de orientao a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programao orientada a objetos, um objeto no muito diferente de uma varivel normal. Por exemplo, quando se define uma varivel do tipo int em uma linguagem de programao como C ou Java, essa varivel tem:_ um espao em memria para registrar o seu estado (valor) _ um conjunto de operaes que podem ser aplicadas a ela, atravs dos operadores definidos na linguagem que podem ser aplicados a valores inteiros.
Da mesma forma, quando se cria um objeto, esse objeto adquire um espao em memria para armazenar seu estado (os valores de seu conjunto de atributos, definidos pela classe) e um conjunto de operaes que podem ser aplicadas ao objeto (o conjunto de mtodos definidos pela classe). Um programa orientado a objetos composto por um conjunto de objetos que interagem atravs de trocas de mensagens. Na prtica, essa troca de mensagem traduz-se na aplicao de mtodos a objetos.
As tcnicas de programao orientada a objetos recomendam que a estrutura de um objeto e a implementao de seus mtodos devem ser to privativos como possvel. Normalmente, os atributos de um objeto no devem ser visveis 11
externamente. Da mesma forma, de um mtodo deve ser suficiente conhecer apenas sua especificao, sem necessidade de saber detalhes de como a funcionalidade que ele executa implementada.
Encapsulao o princpio de projeto pelo qual cada componente de um programa deve agregar toda a informao relevante para sua manipulao como uma unidade (uma cpsula). Aliado ao conceito de ocultamento de informao um poderoso mecanismo da programao orientada a objetos.
O conjunto de assinaturas dos mtodos pblicos da classe constitui sua interface operacional. Dessa forma, detalhes internos sobre a operao do objeto no so conhecidos, permitindo que o usurio do objeto trabalhe em um nvel mais alto de abstrao, sem preocupao com os detalhes internos da classe. Essa facilidade permite simplificar a construo de programas com funcionalidades complexas, tais como interfaces grficas ou aplicaes distribudas.
Herana
O conceito de encapsular estrutura e comportamento em um tipo no exclusivo da orientao a objetos; particularmente, a programao por tipos abstratos de dados segue esse mesmo conceito. O que torna a orientao a objetos nica o conceito de herana.
Herana um mecanismo que permite que caractersticas comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as caractersticas (estrutura e mtodos) da classe base e acrescenta a elas o que for definido de particularidade para ela.
H vrias formas de relacionamentos em herana: 12
Extenso: a subclasse estende a superclasse, acrescentando novos membros (atributos e/ou mtodos). A superclasse permanece inalterada, motivo pelo qual este tipo de relacionamento normalmente referenciado como herana estrita.
Especificao: a superclasse especifica o que uma subclasse deve oferecer, mas no implementa nenhuma funcionalidade. Diz-se que apenas a interface (conjunto de especificao dos mtodos pblicos) da superclasse herdada pela subclasse.
Combinao de extenso e especificao: a subclasse herda a interface e uma implementao padro de (pelo menos alguns de) mtodos da superclasse. A subclasse pode ento redefinir mtodos para especializar o comportamento em relao ao que oferecido pela superclasse, ou ter que oferecer alguma implementao para mtodos que a superclasse tenha declarado mas no implementado. Normalmente, este tipo de relacionamento denominado herana polimrfica.
A ltima forma , sem dvida, a que mais ocorre na programao orientada a objetos. Algumas modelagens introduzem uma forma de herana conhecida como contrao. Contrao uma variante de herana onde a subclasse elimina mtodos da superclasse com o objetivo de criar uma classe mais simples. A eliminao pode ocorrer pela redefinio de mtodos com corpo vazio. O problema com este mecanismo que ele viola o princpio da substituio, segundo o qual uma subclasse deve poder ser utilizada em todos os pontos onde a superclasse poderia ser utilizada.
Se a contrao parece ser uma soluo adequada em uma hierarquia de classes, provavelmente a hierarquia deve ser reanalisada para deteco de inconsistncias (problema pssaros-pinguins). De modo geral, o mecanismo de contrao deve ser evitado.
13
Polimorfismo
Polimorfismo o princpio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar mtodos que tm a mesma identificao (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referncia a um objeto do tipo da superclasse. Esse mecanismo fundamental na programao orientada a objetos, permitindo definir funcionalidades que operem genericamente com objetos, abstraindo-se de seus detalhes particulares quando esses no forem necessrios.
Para que o polimorfismo possa ser utilizado, necessrio que os mtodos que estejam sendo definidos nas classes derivadas tenham exatamente a mesma assinatura do mtodo definido na superclasse; nesse caso, est sendo utilizado o mecanismo de redefinio de mtodos (overriding). Esse mecanismo de redefinio muito diferente do mecanismo de sobrecarga de mtodos, onde as listas de argumentos so diferentes.
No caso do polimorfismo, o compilador no tem como decidir qual o mtodo que ser utilizado se o mtodo foi redefinido em outras classes afinal, pelo princpio da substituio um objeto de uma classe derivada pode estar sendo referenciado como sendo um objeto da superclasse. Se esse for o caso, o mtodo que deve ser selecionado o da classe derivada e no o da superclasse.
14
Conceitos gerais de Modelagem e Relacionamento
O modelo de entidades e relacionamentos um modelo conceitual onde descrevemos o nosso banco de dados. Representamos esse modelo por um diagrama de Entidade e Relacionamento (ER). No diagrama ER, utilizamos smbolos grficos para representar os requisitos dos usurios. Tudo comeou quando o Dr. Peter Chen em 1976 props o modelo Entidade- Relacionamento (ER) para projetos de banco de dados. Isso deu uma nova e importante percepo dos conceitos de modelos de dados. O modelo ER proposto pelo Dr. Peter possibilitava ao projetista concentrar-se apenas na utilizao dos dados sem se preocupar com estrutura lgica de tabelas Por esse motivo, o modelo ER utilizado pelo projeto conceitual para modelar os conceitos do bando de dados de forma independente de SGDB. O diagrama ER e a forma pela qual o projetista do banco de dados descreve os requisitos levantados para os clientes. Por esse motivo, importante aprender os conceitos do Modelo ER e aprender como modelar tais conceitos.
Entidade
O primeiro conceito de modelo entidade-relacionamento e o conceito de entidade. Mas, o que uma entidade? E algo que possui existncia distinta e separada, real ou imaginaria, ou seja, uma entidade e um objeto no mundo rela que pode se identificado de uma forma nica em relao ao outros objetos.
Depois de identificar tais entidades, necessrio model-las no diagrama ER. Para tanto, devermos desenhar retngulos e escrever o nome da entidade no centro delas.
15
Atributos
Note que, at o momento, as entidades no guardam informao alguma. Elas apenas representam um objeto existente no cenrio. Para guardar informao, devemos definir os atributos das entidades. Dessa forma, atributos so propriedades particulares que descrevem cada entidade.
Relacionamento
a forma como os objetos que compem a realidade se relacionam. o tipo de ocorrncia existente entre entidades. O relacionamento entre entidades em um diagrama ER representado atravs de um losango que liga as entidades relacionadas Note que para identificar como cada entidade se relaciona com as demais importante realizar algumas perguntas durante a fase de levantamento de requisitos. Por exemplo, para identificar os relacionamentos voc poderia perguntar: Como um empregado est relacionado com um departamento? Um empregado pode trabalhar em apenas um departamento? Um departamento possui mais de um empregado? Dependendo do tipo de resposta fornecida, um relacionamento poder ser definido de trs formas; Um-para-um Um-para-muitos Muitos-para-muitos
Relacionamento Um-Para-Um (1:1) Uma instncia da entidade A relaciona-se a uma instncia da entidade B Relacionamento Um-Para-Vrios (1:N) 16
Uma instncia da entidade A relaciona-se a vrias instncias da entidade B Relacionamento Vrios-Para-vrios (N:M) Vrias instncias da entidade A relacionam-se a vrias instncias da entidade B
Cardinalidade
A cardinalidade um conceito importante para ajudar a definir o relacionamento, ela define o nmero de ocorrncias em um relacionamento. Para determinarmos a cardinalidade, deve-se fazer algumas perguntas relativa ao relacionamento em ambas s direes. Por exemplo, dado um relacionamento entre Departamento e Empregado, pode-se fazer as seguintes perguntas;
Pergunta: Um departamento possui quantos empregados? Resposta: No mnimo 1 e no mximo N. Pergunta: Um empregado esta alocado em quantos departamentos? Resposta: No mnimo em 1 e no mximo em 1.
Voc deve observar que a resposta dada na forma de no mnimo e no Mximo. Por tais termos serem usados, surgiu o conceito de Cardinalidade Mxima e Cardinalidade Mnima. As cardinalidades so expressas pela forma (Cardinalidade Mnima: Cardinalidade Mxima). Exemplo: 1:N e 1:1 17
A cardinalidade mxima indica a quantidade mxima de ocorrncias de entidades que podem estar associadas a uma ocorrncia da outra entidade (1 ou n). Como exemplo, temos que a entidade Empregado, que tem cardinalidade mxima 1 no seu relacionamento com uma ocorrncia da entidade Departamento. Ou seja, o empregado s pode estar trabalhando em no mximo um departamento. Por outro lado, a entidade Departamento tem cardinalidade mxima de N. Isto , um departamento pode ter um nmero N infinito de empregados trabalhando nele. Dessa forma, duas cardinalidades mximas so relevantes:
18
Dissertao
A escassez de fontes primrias (no renovveis) de energia e o prejuzo ambiental resultante da construo de grandes usinas geradoras (como as hidreltricas e termeltricas) motivam a busca de fontes alternativas de energia. Tais fontes devem ser capazes de suprir a demanda necessria preservando o meio ambiente, motivo de grande preocupao. Por esta razo, denominam-se tais tipos de energia como energia verde (do ingls Green energy) ou energia limpa.
A maior fonte de energia eltrica do Brasil provm das usinas hidreltricas, 75%, estima-se que o potencial hidrulico do brasil seja da ordem de 260GW por segundo dados do Atlas de Energia Eltrica do Brasil, Aneel, 2008. Isso devido as grandes reservas de agua doce que nosso pais, e um relevo favorvel, pois maior parte do territrio nacional encontra-se num relevo do planalto, o que facilita na gerao da energia devido a fora da gua.
Mas tambm temos um grande potencial para utilizarmos recursos naturais e energia renovveis tais como a energia elica, solar e o CO2. O brasil e favorecido em termos de ventos, caracterizam-se por uma presena duas vezes maior que a media mundial, somos privilegiados em termos de radiao solar. Mas mesmos com todas essas vantagens ainda produzimos energia trmica atravs da queima de carvo, ou atravs das usinas nucleares de angra I e !!. E ,ainda, importamos uma parcela considervel de energia.
Um dos tipos de energia alternativa a energia solar fotovoltaica. A energia solar consiste na converso da radiao solar em energia eltrica utilizando-se painis fotovoltaicos constitudos de material semicondutor que, quando expostos radiao solar, geram uma diferena de potencial em seus 19
terminais. Esta diferena, quando ligada a uma carga, faz surgir uma corrente eltrica. Sua difuso, de uma maneira geral, no muito significativa. Porm, existem casos isolados de utilizao em grande escala para a gerao independente de energia ou tambm para a cogerao.
A utilizao da energia solar no Brasil justificada pelo grande potencial energtico (radiao solar) ao qual submetido. Entretanto, o sistema solar fotovoltaicos ainda caro e tem baixa eficincia. O uso da energia solar torna- se vivel em locais isolados, distantes das linhas de transmisso, cujos custos da ligao do consumidor ao sistema eltrico tornam-se elevado.
Um mdulo fotovoltaico compreende basicamente trs componentes para a converso da radiao solar em energia eltrica [1-5]: painel fotovoltaico propriamente dito; controlador de carga da bateria (que servir como armazenador de energia para o sistema); conversor esttico (que far o condicionamento da energia gerada para ser fornecida para a carga ou para o armazenamento). Cada um dos componentes pode ser utilizado unitariamente ou em combinaes que permitam a adequao das grandezas eltricas geradas (tenso, corrente e potncia nominais) s caractersticas de consumo (carga).
Os pases desenvolvidos, principalmente diversos pases europeus e os Estados Unidos foram os impulsionadores dos avanos tecnolgicos que permitiram que a energia elica e solar atingisse o grau de maturidade que apresentam hoje.
Entretanto, os pases em desenvolvimento, com destaque para os pases que compe o bloco dos BRICS (Brasil, Rssia, ndia e China), vem cada vez 20
aumentando a participao destas fontes nas suas respectivas matrizes de gerao eltrica. No caso brasileiro, a energia elica vem crescendo exponencialmente.
O crescimento da energia elica se confirma pelo fato de ela hoje estar atraindo participantes nos leiles do setor como tambm por j se a segunda fonte mais competitiva, somente perdendo para as grandes hidreltricas. No h que se discutir a importncia de diversificar as fontes de energia para que se atinja um montante tranquilizador, de modo que os pais ficaram livres de eventuais apages. Alm disso, a energia elica contribui para a obteno de um acmulo tecnolgico, pois exige inovao e pesquisa constantes, beneficiando toda a cadeia produtiva.
As aplicaes mais favorveis desta fonte energtica no Brasil esto na integrao ao sistema interligado de grandes blocos de gerao nos stios de maior potencial. Em certas regies, como por exemplo, a regio Nordeste, no vale do Rio So Francisco, pode ser observada uma situao de conveniente complementariedade da gerao elica com o regime hdrico, seja no perodo estacional ou na gerao de ponta do sistema - ou seja, o perfil de ventos observado no perodo seco do sistema eltrico brasileiro mostra maior capacidade de gerao de eletricidade justamente no momento em que a afluncia hidrolgica nos reservatrios hidreltricos se reduz. Por outro lado, no perodo mido do sistema eltrico brasileiro, caracterizado pelo maior enchimento destes reservatrios, o potencial de gerao elica de eletricidade se mostra menor. Assim, a energia elica se apresenta como uma interessante alternativa de complementariedade no sistema eltrico nacional.
O dixido de carbono (tambm conhecido como gs carbnico) um composto qumico constitudo por dois tomos de oxignio e um tomo de carbono. As atraes intermoleculares so muito fracas, tornando-o, nas condies 21
ambientais, um gs. Da seu nome comercial gs carbnico. Esse gs exalado dos seres humanos e dos animais e aceito pelas plantas.
Esse composto essencial vida no planeta. Visto que um dos compostos essenciais para a produo da fotossntese processo pelo qual os organismos fotossintetizantes transformam energia solar em energia qumica. Esta energia qumica, por sua vez distribuda para todos os seres vivos por meio da teia alimentar. Este processo umas das fases do ciclo do carbono e vital para a manuteno dos seres vivos. O dixido de carbono estocado na atmosfera, nos oceanos, solos rochas sedimentares e est presente nos combustveis fsseis. Contudo, o carbono no fica fixo em nenhum desses estoques. Existe uma srie de interaes por meio das quais ocorre a transferncia de carbono de um estoque para outro. Existe ainda o intercmbio de dixido de carbono entre os oceanos e a atmosfera por meio da difuso.
A produo de energia e o seu consumo so responsveis pela maioria das emisses de CO2 para a atmosfera. A energia obtida a partir de combustveis fsseis, como o petrleo, o carvo e o gs natural, envolve um processo de combusto, que produz emisses de GEE. Esta combusto d lugar formao de CO2, o principal causador do agravamento do efeito estufa, responsvel por 78% das emisses, e a outros gases, como o monxido de carbono CO, dixido de enxofre SO2 e xido de Nitrognio - NOx. O consumo de energia para o aquecimento da gua contribui tambm para importantes emisses de CO2 [4, 10]. Como alternativa aos combustveis fosseis, a utilizao de fontes de energia renovveis, como a energia solar, elica, hdrica, fotovoltaica e geotrmica, podem proporcionar uma significativa reduo das emisses de CO2 para a atmosfera.
Ao nvel das habitaes, a energia consumida no aquecimento do ambiente, no aquecimento da gua, na iluminao e no funcionamento dos equipamentos elctricos, podem ser diminudas, implementando medidas de eficincia energtica, de eficincia hdrica e de utilizao de energias renovveis. A utilizao de eletrodomsticos mais eficientes (classe A), a utilizao da energia solar, da energia elica e da energia geotrmica, a utilizao de 22
equipamentos eficientes do ponto de vista hdrico, podem contribuir de forma fundamental, para a diminuio da emisso de CO2 numa habitao.
Existem vrios cientistas trabalhando nisso, usar co2 para gerar energia limpa, como combustvel para carros, mas at hoje nada foi concretizado. Sabemos que estes tipos de energia so prejudiciais ao meio ambiente e contribuem para o aquecimento global, ou ate em acidentes catastrficos, no caso das usinas nucleares. Devemos pensar no futuro, deixarmos de lado o consumo destas energias prejudiciais ao planeta, e assim, cobramos investimentos das autoridades competentes no uso de energia renovvel. Os dados comprovam que o Brasil pode ser uma grande potencia no uso dessas energias. Segundo a Atlas do Potencial Elico Brasileiro de 2010, temos um potencial de gerao de energia elica de 143,5 mil MW. Isto apenas um exemplo quo amplo nosso potencial para gerarmos energias limpas e renovveis, basta o investimento necessrio nessa rea para que o brasil seja um grande produtor de energia limpa.
23
Estrutura do Programa Diagrama de Atividades
24
Diagrama de Relacionamento
25
Diagrama de Caso de Uso
26
Relatrio com linhas de Cdigo de Emisso de Co
import javax.swing.JOptionPane; public class CO2 { String nom; double kw; public double calcularCo2(double formula) { formula = kw * 0.1751; return formula; } public double calcularAno (double ano) { ano = calcularCo2(kw) * 12; return ano; } public void imprimir() { String nom= JOptionPane.showInputDialog("Coloque o tipo de energia: "); kw= Double.parseDouble(JOptionPane.showInputDialog("Coloque quantos KW/h foram gastos no ms: ")); System.out.println("O consumo de energia: "+nom); System.out.println("O consumo de kw por ms : "+kw); System.out.println("Voc liberou a quantidade de "+ calcularCo2(kw * 0.1751)+ "kg de Co2 por ms!") ; System.out.println("Voc liberou a quantidade de "+ calcularAno(getKw()) +"kg de Co2 por ano!"); } public void selecao() { if (calcularAno(calcularCo2(kw) * 12) >= 3600 ) { 27
System.out.println (" Ao plantar 06 rvores voc compensar sua emisso anual de Gases de Efeito Estufa contribuindo com o esforo global para impedir o aquecimento de nosso planeta."); } else { System.out.println("Ao plantar 03 rvore voc compensar sua emisso anual de Gases de Efeito Estufa contribuindo com o esforo global para impedir o aquecimento de nosso planeta. "); }
} public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public double getKw() { return kw; } public void setKw(double kw) { this.kw = kw; } public void setKwh(double kw) { this.kw = kw; } }
28
Executar
public class Executar { public static void main (String[]args) { CO2 novo = new CO2 (); novo.imprimir(); } }
Relatrio com linhas de Cdigo de Energia Elica
import javax.swing.JOptionPane; public class Eolica { protected double tamanhoLamina; protected double velocidadeVento; protected double potenciaMoinho;
// Construtor padro ... public Eolica() { super(); // TODO Auto-generated constructor stub } // Metodo para inserir as informaes com tratamento de excesso public void setInformacoes() { try { tamanhoLamina = Double .parseDouble(JOptionPane 29
.showInputDialog("Informe o tamanho da Lmina em metros: "));
velocidadeVento = Double .parseDouble(JOptionPane .showInputDialog("Informe a velocidade do Vento em Km/h: "));
potenciaMoinho = Double .parseDouble(JOptionPane .showInputDialog("Informe a potncia do moinho (30% a 80%): ")); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(null, "Digite apenas nmeros!"); System.exit(0); } }
// Metodo para exibir as informaes na tela public void imprimir() { JOptionPane .showMessageDialog( null, "Informaes: " + "\nVelocidade convertida em Metros: " + getVelocidadeVento() 30
+ "\nResultado da velocidade convertida em M/s: " + velocidadeConverteMetro() + "\nResultado da velocidade convertida em Kg/s: " + velocidadeConverteKg() + "\nResultado da converso da velocidade do vento em Energia eltrica W: " + converteEnergiaEletricaW() + "\nResultado final da potncia de uma turbina elica de eixo vertical : " + potenciaReal()); } // Mtodo conversor de velocidade em metro public double velocidadeConverteMetro() { return (velocidadeVento) / 3.6; } // Mtodo conversor de velocidade em peso public double velocidadeConverteKg() { return (velocidadeConverteMetro() * velocidadeConverteMetro() * velocidadeConverteMetro()) * (1.88); } // Mtodo conversor de energia eletrica public double converteEnergiaEletricaW() { return velocidadeConverteKg() * (tamanhoLamina * tamanhoLamina); } 31
// Mtodo demonstrador da potencia real public double potenciaReal() { return (converteEnergiaEletricaW()) * (potenciaMoinho); } // Mtodos de acesso e alterao public double getTamanhoLamina() { return tamanhoLamina; } public void setTamanhoLamina(double tamanhoLamina) { this.tamanhoLamina = tamanhoLamina; } public double getVelocidadeVento() { return velocidadeVento; } public void setVelocidadeVento(double velocidadeVento) { this.velocidadeVento = velocidadeVento; } public double getPotenciaMoinho() { return potenciaMoinho; } public void setPotenciaMoinho(double potenciaMoinho) { this.potenciaMoinho = potenciaMoinho; } }
32
Teste Elico
public class TesteEolica { public static void main(String[] args) { // Instancia-se o objeto... Eolica Alfa; // Inicia um novo objeto da classe eolica... Alfa = new Eolica(); // Insere as informaes... Alfa.setInformacoes(); // Chama as assinaturas dos metodos para fazer os respectivos calculos Alfa.velocidadeConverteMetro(); Alfa.velocidadeConverteKg(); Alfa.converteEnergiaEletricaW(); Alfa.potenciaReal(); // Imprime as informaes na tela Alfa.imprimir(); // Finaliza a aplicao saindo do programa System.exit(0);
} }
33
Relatrio com linhas de Cdigo de Energia Solar
Aplicao public class Aplicacao extends Paineis1 { public static void main(String[] args) { Paineis1 entrada = new Paineis1(); entrada.escolha(); } }
import javax.swing.JOptionPane; public class Paineis1 extends Variaveis implements Calculos { public Paineis1() {
} public void escolha() { setReceba(JOptionPane .showInputDialog( null, "Digite o nmero correspondente a operao que deseja fazer:" + "\n 1-Clculo da corrente utilizada pela carga" + "\n 2-Clculo da energia diria necessria" + "\n 3-Fator de segurana" + "\n 4-Clculo da corrente fornecida pelo painel fotovoltico" + "\n 5-Clculo da corrente suportada pelo controlador de carga" + "\n 6-Clculo dos acumuladores de carga. ")); setOperacao(Integer.parseInt(getReceba())); 35
switch (getOperacao()) { case 1: calculoCorrenteUtilizada(); imprimirCalculoCorrenteUtilizada(); break; case 2: calculoEnergiaDiaria(); imprimirCalculoEnergiaDiaria(); break; case 3: calculoFatorSeguranca(); imprimirCalculoFatorSeguranca(); break; case 4: calculoCorrentePainel(); imprimirCalculoCorrentePainel(); break; case 5: calculoCorrenteSuportada(); imprimirCalculoCorrenteSuportada(); break; case 6: calculoAcumuladorCarga(); imprimirCalculoAcumuladorCarga(); break;
default: 36
JOptionPane.showMessageDialog(null, "Voc digitou uma operao invlida."); } } public void imprimirCalculoCorrenteUtilizada() { JOptionPane.showMessageDialog(null, "A corrente utilizada : " + getCorrenteCarga()); } public void imprimirCalculoEnergiaDiaria() { JOptionPane.showMessageDialog(null, "A Energia diria : " + getEnergiaDiaria()); } public void imprimirCalculoFatorSeguranca() { JOptionPane.showMessageDialog(null, "O Fator de segurana : " + getFatorSeguranca()); } public void imprimirCalculoCorrentePainel() { JOptionPane.showMessageDialog(null, "A corrente do painel : " + getCorrentePainel()); } public void imprimirCalculoCorrenteSuportada() { JOptionPane.showMessageDialog(null, "A corrente suportada : " + getCorrenteSuportada()); } public void imprimirCalculoAcumuladorCarga() { JOptionPane.showMessageDialog(null, "A carga acumulada : " 37
+ getAcumuladorCarga()); } public void calculoCorrenteUtilizada() { setReceba(JOptionPane.showInputDialog("Digite a ptencia: ")); setPotencia(Double.parseDouble(getReceba())); setReceba(JOptionPane.showInputDialog("Digite a tenso: ")); setTensao(Double.parseDouble(getReceba())); setCorrenteCarga(getPotencia() / getTensao()); } public void calculoEnergiaDiaria() { setReceba(JOptionPane .showInputDialog("Digite a corrente utilizada pela carga: ")); setCorrenteCarga(Double.parseDouble(getReceba())); setReceba(JOptionPane .showInputDialog("Digite o nmero de horas que deseja que o sistema fique ligado: ")); setHoras(Double.parseDouble(getReceba())); setEnergiaDiaria(getCorrenteCarga() * getHoras()); } public void calculoFatorSeguranca() { setReceba(JOptionPane.showInputDialog("Digite a energia diria: ")); setEnergiaDiaria(Double.parseDouble(getReceba())); setReceba(JOptionPane.showInputDialog("Digite o fator de segurana: ")); setFatorSeguranca(Double.parseDouble(getReceba())); setEnergiaExtra(getEnergiaDiaria() * getFatorSeguranca()); } 38
public void calculoCorrentePainel() { setReceba(JOptionPane.showInputDialog("Digite a energia extra: ")); setEnergiaExtra(Double.parseDouble(getReceba())); setReceba(JOptionPane.showInputDialog("Digite o valor da insolao: ")); setInsolacao(Double.parseDouble(getReceba())); setCorrentePainel(getEnergiaExtra() / getInsolacao()); } public void calculoCorrenteSuportada() { setReceba(JOptionPane .showInputDialog("Digite a corrente de curto do painel: ")); setCorrenteCurto(Double.parseDouble(getReceba())); setReceba(JOptionPane.showInputDialog("Digite corrente utilizada: ")); setCorrenteCarga(Double.parseDouble(getReceba())); setCorrenteSuportada(getCorrenteCurto() + getCorrenteCarga()); } public void calculoAcumuladorCarga() { setReceba(JOptionPane.showInputDialog("Digite a energia extra: ")); setEnergiaExtra(Double.parseDouble(getReceba())); setReceba(JOptionPane .showInputDialog("Digite o tempo de ausncia de radiaao: ")); setAusenciaRadiacao(Double.parseDouble(getReceba())); setReceba(JOptionPane .showInputDialog("Digite o valor maximo da descarga: ")); 39
JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar);
JMenu mnOpes = new JMenu("Op\u00E7\u00F5es"); menuBar.add(mnOpes);
JMenuItem mntmSair = new JMenuItem("Sair"); mntmSair.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); mnOpes.add(mntmSair);
JMenu mnAjuda = new JMenu("Ajuda"); menuBar.add(mnAjuda);
JMenuItem mntmSobreOPrograma = new JMenuItem("Sobre o Programa"); mntmSobreOPrograma.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane .showMessageDialog(null, "Mix de App's sobre energias renovaveis e emisses de CO"); 47
JButton btnAplicaoDeEnergia = new JButton( "Aplica\u00E7\u00E3o de Energia Solar"); btnAplicaoDeEnergia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // Instanciase o objeto Paineis1 entrada = new Paineis1(); 48
entrada.escolha();
// Finaliza a aplicao saindo do programa System.exit(0); } }); btnAplicaoDeEnergia.setBounds(10, 11, 270, 23); panel.add(btnAplicaoDeEnergia);
JButton btnAplicaoDeEnergia_1 = new JButton( "Aplica\u00E7\u00E3o de Energia E\u00F3lica"); btnAplicaoDeEnergia_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Instancia-se o objeto... Eolica Alfa;
// Inicia um novo objeto da classe eolica... Alfa = new Eolica();
// Insere as informaes... Alfa.setInformacoes();
// Chama as assinaturas dos metodos para fazer os respectivos // calculos Alfa.velocidadeConverteMetro(); Alfa.velocidadeConverteKg(); 49
// Finaliza a aplicao saindo do programa System.exit(0); } }); btnAplicaoDeEnergia_1.setBounds(10, 45, 270, 23); panel.add(btnAplicaoDeEnergia_1);
JButton btnAplicaoDeEmisso = new JButton( "Aplica\u00E7\u00E3o de Emiss\u00E3o de CO\u00B2"); btnAplicaoDeEmisso.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Instancia-se o objeto CO2 novo = new CO2(); novo.imprimir();
// Finaliza a aplicao saindo do programa System.exit(0); } }); btnAplicaoDeEmisso.setBounds(10, 79, 270, 23); 50
panel.add(btnAplicaoDeEmisso);
JLabel lblBemvindoAoMenu = new JLabel("Bem-Vindo ao Menu Natural Tec"); lblBemvindoAoMenu.setBounds(246, 0, 200, 20); contentPane.add(lblBemvindoAoMenu); } }
Login = new JTextField(); Login.setBounds(357, 76, 122, 20); contentPane.add(Login); Login.setColumns(10);
Senha = new JPasswordField(); Senha.setBounds(357, 108, 122, 20); contentPane.add(Senha);
JButton Acessar = new JButton("Entrar"); Acessar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (Login.getText().equals("scott") && (Senha.getText().equals("tiger"))){ JOptionPane.showMessageDialog(null, "Acesso Garantido"); new InterfaceAPS().setVisible(true); // A tela aps o login entra aqui... Login.this.dispose(); 55