Programação Orientada a Objetos

Documentos relacionados
Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

double [] precoa = new double [1000]; // Preço com desconto para compras Avista

insfcanceof new public switch transient while byte continue extends for int null

public void setdata(data d) { data = d;

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Exercícios de Revisão Java Básico

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

BC-0505 Processamento da Informação

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.


Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Reader e Writer para streams de caracteres (texto).

A Linguagem Java. Alberto Costa Neto DComp - UFS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

INSTITUTO DE COMPUTAÇÃO UNICAMP 1o. SEMESTRE DE Profa. Cecília M. F. Rubira

Simulado de Linguagem de Programação Java

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Programação de Computadores - I. Profª Beatriz Profº Israel

Encapsulamento de Dados

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas


UNIVERSIDADE FEDERAL DO PARANÁ

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Templates e Pilhas. 1. Introdução

Programação Orientada a Objeto Java

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Autenticação e Autorização

2 Orientação a objetos na prática

5 Caso de estudo O cartão fidelidade

Programa de Computador que funciona em Rede

Persistência de Classes em Tabelas de Banco de Dados

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

Manual de Integração SMS

JAVA. Fabrício de Sousa

Exercício de Estrutura de dados. Java Fila

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

Caso 1 NetScanner Main

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Java. Marcio de Carvalho Victorino

BC0501 Linguagens de Programação

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Design Patterns (Factory Method, Prototype, Singleton)

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Revisão da Java Ex1 equilátero isóscele escaleno Ponto, Triangulo, Ex2 Ex3 Nota Ex4 TabelaUtil preenchetab imprimetab somadiv5 TabelaUtil

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Unidade 9: Middleware JDBC para Criação de Beans

Um pouco do Java. Prof. Eduardo

Gerador de código JSP baseado em projeto de banco de dados MySQL

Criar a classe Aula.java com o seguinte código: Compilar e Executar

JavaScript 2.0X X

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Introdução à Programação de Computadores Parte I

Vetores. Professor Dr Francisco Isidro Massettto

Programação Orientada a Objetos

Guia de Fatores de Qualidade de OO e Java

Módulo 06 Desenho de Classes

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

UNIVERSIDADE FEDERAL DO PARANÁ

LINGUAGEM JAVA - RESUMO

Programação Orientada por Objetos

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Configuração de Cliente de Web Service HTTPS

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

O objetivo da aula é realizar upload de arquivos com aplicação web. Será realizado o upload de duas formas:

Estruturas de Dados em Java

ção a Objetos em Java

Persistência Java para Web com MySQL

Danilo Antônio Leite. Todo o desenvolvimento dos algoritmos e os testes foram realizados em um computador com as seguintes configurações:

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

POO Programação Orientada a Objetos

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Java : Comunicação Cliente-Servidor.

Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais

Java na Prática. Célio Silva Aula 3

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Transcrição:

Programação Orientada a Objetos Implementação do analisador de logs do Servidor Web com base nos requisitos da unidade curricular de Estatística, de acordo com o roteiro abaixo: Recuperar o conteúdo do arquivo de log de acesso do servidor httpd Apache; Definir o caractere separador de campo (ex.: - ou ou ;); Criar uma classe do tipo POJO para armazenar os campos; Fazer o teste copiando uma linha do arquivo de log e armazenar em uma variável do tipo String; Desenvolva a lógica para fazer a separação dos campos necessários a classe do item 3; Desenvolver a lógica para fazer os cálculos estatísticos solicitados; Desenvolver a classe java Executável para ler o arquivo de acesso e mostrar as estatísticas. Exemplo do arquivo de log: Pre-imagem do projeto Código logo mais a baixo:

Source.java package org.aplicativo; import java.io.file; import java.io.filenotfoundexception; import java.io.filewriter; import java.io.ioexception; import java.text.decimalformat; import java.util.arraylist; import java.util.list; import java.util.scanner; import org.relatorio.relatorio; import org.manipulacao.arquivo; import static org.manipulacao.arquivo.data; import static org.manipulacao.arquivo.imprimir; import static org.manipulacao.arquivo.ip; import static org.manipulacao.arquivo.usuario; /** * * @author junio_000 */ public class Source{ public static void main(string[] args) throws IOException { int op; File arquivo; arquivo = new File("./src/projeto-access_log"); List<Relatorio> lista = Arquivo.leitor(arquivo); Relatorio novo; do{ op = menu(); switch(op){ case 1: if (lista.isempty()){ System.out.println("A lista está vazia"); else { imprimir(lista); case 2: if (lista.isempty()){ System.out.println("A lista está vazia"); else { ip(lista);

case 3: System.out.println("Lista vazia"); else { usuario(lista); case 4: if (lista.isempty()){ System.out.println("A lista está vázia"); else { data(lista); while (op!=0); if (!lista.isempty()){ Arquivo.escritor(lista,arquivo); public static int menu() { Scanner leia = new Scanner(System.in); int opcao; do{ System.out.println("Escolha uma das opções...:"); System.out.println("0- Para poder Sair"); System.out.println("1- Para imprimir dados importados"); System.out.println("2- Para imprimir a quantidade de acessos"); System.out.println("3- Para poder imprimir a quantidade de acessos de determinado usuário"); System.out.println("4- Para poder imprimir a quantidade de acessos de determinada data"); opcao = leia.nextint(); while (opcao < 0 opcao > 4); return opcao; Relatorio.java

package org.relatorio; /** * * @author junio_000 */ public class Relatorio { String ip, usuario, data,hora; public Relatorio(){ super(); public Relatorio(String ip,string usuario,string data,string hora ) { super(); this.ip = ip; this.usuario = usuario; this.data = data; this.hora = hora; public String getip() { return ip; public void setip(string ip){ this.ip = ip; public String getusuario(){ return usuario; public void setusuario(string usuario) { this.usuario = usuario; public String getdata(){ return data; public void setdata(string data){ this.data = data; public String gethora(){ return hora; public void sethora(string hora) { this.hora = hora; @Override public String tostring(){ return "Relatorio [ip=" + ip +", usuario=" + usuario + ", data" + data +", hora=" + hora + "]";

Arquivo.java package org.manipulacao; import java.io.file; import java.io.filenotfoundexception; import java.io.filewriter; import java.io.ioexception; import java.text.decimalformat; import java.util.arraylist; import java.util.scanner; import java.util.list; import org.relatorio.relatorio; /** * * @author junio_000 */ public class Arquivo { public static List<Relatorio> leitor(file arquivoorigem) { List<Relatorio> listadelog = new ArrayList<>(); List<Relatorio> listadelog = null; try{ Scanner scan = new Scanner(arquivoOrigem); while (scan.hasnext()) { Relatorio relatorio = new Relatorio(); String linhadoarquivo = scan.nextline(); String[] dadosdolog = linhadoarquivo.split(";"); relatorio.setip(dadosdolog[0]); relatorio.setusuario(dadosdolog[1]); relatorio.setdata(dadosdolog[2]); relatorio.sethora(dadosdolog[3]); listadelog.add(relatorio); catch (FileNotFoundException e) { System.out.println("Arquivo não encontrado"); return listadelog; public static void escritor(list<relatorio> lista, File arquivodestino){ FileWriter fw; try { fw = new FileWriter(arquivoDestino);

for (Relatorio lista1 : lista) { String linha = String.format("%s;%s;%s;%s\n", lista1.getip(), lista1.getusuario(), lista1.getdata(), lista1.gethora()); fw.write(linha); fw.flush(); catch (IOException e) { System.out.println("Houve um erro ao tentar gravar o Arquivo \nverifique se você possui permissão no diretório de gravação"); public static void imprimir(list<relatorio> lista){ for (int i= 0; i < lista.size(); i++){ System.out.println(true); public static void ip(list<relatorio>lista){ Scanner leia = new Scanner(System.in); System.out.println("Esta Lista se encontra vazia"); else{ int qtde = 0; String ipe; System.out.println("Número do IP:"); ipe = leia.next(); for (int i=0; i< lista.size(); i++){ if(lista.get(i) instanceof Relatorio){ Relatorio x = (Relatorio) lista.get(i); if(x.getip().equals(ipe)){ qtde++; DecimalFormat f = new DecimalFormat("0.00"); double qtde = 0; percent = (double) ((qtde*1.0)/lista.size())*100; System.out.println("A porcentagem de acessos pelo ip escolhido é de "+f.format(percent)+"%"); public static void usuario(list<relatorio>lista){ Scanner leia = new Scanner(System.in); System.out.println("ALista vazia "); /*else{ int qtde = 0 String user;

System.out.println("nome do Usuário:"): user = leia.nextline(); for (Relatorio lista1 : lista) { if (lista1 instanceof Relatorio) { Relatorio x = (Relatorio) lista1; if(x.getusuario().equals(user)){ qtde++; */ DecimalFormat f = new DecimalFormat("0.00"); double qtde = 0; double percent = (double) ((qtde*1.0)/lista.size())*100; System.out.println("A porcentagem de acessos pelo usuário escolhido é de "+f.format(percent)+"%"); public static void data(list<relatorio>lista){ Scanner leia = new Scanner(Syste.in); System.out.println("Lista está vazia"); else{ int qtde = 0; String date; System.out.println("Data: "); date = leia.next(); for (Relatorio lista1 : lista) { if (lista1 instanceof Relatorio) { Relatorio x = (Relatorio) lista1; if(x.getdata().equals(date)){ qtde++; DecimalFormat f =new DecimalFormat("0.00"); percent = (double) ((qtde*1.0)/lista.size())*100; System.out.println("A porcentagem de acessos pela data escolhida é de"+f.format(percent)+"%"); private static class Syste { private static Readable in; public Syste() {