Você está na página 1de 6

Trabalho Prtico Ordenao, Busca, Herana e abstrao

Professor: Paulo Gomide Aluno: Thiago Henrique Cortes

Classe Web_Store:
A classe Web_Store deve ser utilizada como classe controladora (logo apresentar o mtodo main), que atravs da utilizao de objetos das outras duas classes criadas, ficar responsvel por permitir que N (inteiro positivo a ser informado pela entrada padro) clientes possam se cadastrar no sistema, garantindo que seus cadastros sero corretamente representados atravs de um objeto da classe Clients_Database. Variveis de instncia:

- Lista_Registros: o objeto da classe Clients_Database que vai ser usado para guardar e
manipular todos os registros cadastrados. Mtodos:

- sets e gets. - init(): Este mtodo recebe como parmetro um inteiro positivo que vai representar o
numero total de registros que podem ser cadastrados na Lista_Registros.

Classe Register:
A classe Register responsvel por representar o registro de cada cliente. Esta classe deve conter o(s) mtodo(s) responsvel (is) por cadastrar (construir) um novo cliente, a partir de uma interface grfica onde seja permitido ao mesmo preencher todos os seus atributos. O registro de um cliente deve armazenar pelo menos os seguintes dados: login, senha, email, nome, sexo e telefone. Variveis de instncia:

- login, senha, email, nome, sexo e telefone: variveis que vo ser usadas para guardar os
dados do registro cadastrado.

- pronto: Este atributo serve para guardar um registro cuja suas variveis login, senha e etc j
esto preenchidas e que posteriormente vai ser adiciona no Objeto da classe Clients_Database, o Lista_Registros.

Mtodos:

- Construtores - sets e gets - ini(): Este mtodo pega um Registro pronto, com todos os campos j preenchidos e adiciona
este registro no vetor de registro contido no objeto Lista_Registros.

- mostra (): Mostra todos os atributos de um certo objeto da classe Register em uma caixa de
JOptionPane.

- toString():Retorna todos os atributos de um certo objeto da classe Register organizados em


uma String.

- jButton1ActionPerformed: Este mtodo executado quando se clica no boto relacionado


a ele, ento tudo que ele faz s acontece quando se clica nele. Ento quando se clica nele ele pega as variveis que o usurio preencheu e vai colocar essas variveis dentro de um objeto do tipo Register e guardar esse registro na varivel de instancia pronto.

Clients_Database:
A Clients_Database deve implementar a estrutura de dados que armazenar os cadastros de todos os clientes registrados na loja virtual. Esta classe no apresenta qualquer limite quanto quantidade de atributos, porm a presena de dois atributos imprescindvel. Esses atributos so os clients_records e number_of_clients. Esta classe que deve ser um (ou ser do tipo de um) conjunto ordenvel e pesquisvel para que seja possvel tanto buscar o registro de um cliente atravs do seu login, quanto ordenar esses clientes pelo mesmo critrio. Variveis de instncia:

clients_records_: conjunto que ser usado para armazenar os registros de todos os clientes
cadastrados na loja virtual.

number_of_clients_: inteiro representando o nmero total de clientes que podem ser


cadastrados na loja virtual.

-- clients_registered: inteiro representando o nmero de clientes cadastrados na loja virtual.


Mtodos:

- Construtor

- sets e gets - adicionar (): Este mtodo recebe como parmetro um Objeto da classe Register e armazena
este Objeto no vetor de Register, clients_records.

- deleta(): Este mtodo recebe como parmetro um login(do tipo String) que vai ser
procurado no vetor de Register, clients_records, atravs do mtodo de busca sequencial, se ele achar um registro com esse login, este registro excludo, caso no seja achado, ele retorna a mensagem de que o registro com esse login no existe.

- compare (): Este mtodo concretiza um mtodo abstrato da sua classe pai, que compara
dois objetos do mesmo tipo. No caso deste programa ele compara dois objetos do tipo Register atravs do login, e como na classe pai especifica, ele retorna 0 se os login forem iguais, -1 se o login do primeiro objeto for menor que o login do segundo e 1 se o login do primeiro objeto for maior que o login do segundo.

- igual (): Este mtodo concretiza um mtodo abstrato da sua classe pai, que compara um
objeto qualquer com um tipo primitivo de java. No caso deste programa ele compara o campo login de um objeto do tipo Register, com uma String qualquer, se os dois forem iguais o mtodo retorna 0, se a string for maior que o campo login o mtodo retorna 1 e se ela for menor que o campo login o mtodo retorna -1.

Searchable_Sortable_Set:
Esta classe uma classe que serve para ordenar e buscar um elemento em um certo vetor de objetos, para que ela possa ser mais geral possvel e possa ordenar e buscar qualquer tipo de objeto foi usado a classe pai Object, para que qualquer objeto possa ser aceito como parmetro dos mtodos. Para ordenar e buscar, esta classe tem dois mtodos abstratos que comparam dois objetos e retornam um valor inteiro, assim possvel ordenar qualquer coisa.

Mtodos:

sequential_search():
Analise de complexidade: melhor caso= O(1) Pior caso= O(n) Caso mdio= O(n/2) Utilizando o algoritmo da busca sequencial, pesquisa o registro desired_record no arranjo de Objetos que ele recebe. Caso o registro seja encontrado, retorna o ndice do arranjo onde ele se encontra, caso contrrio retorna -1

binary_search():

Analise de complexidade: melhor caso= O(1) Pior caso= O(log n) Caso mdio= O(log n) Utilizando o algoritmo da busca binria, pesquisa o registro desired_record no arranjo de Objetos que ele recebeu. Caso o registro seja encontrado, retorna o ndice do arranjo onde ele se encontra, caso contrrio retorna -1;

selection_sort():
Analise de complexidade: 2 melhor caso= O(n ) Pior caso= O(n ) 2 Caso mdio= O(n ) Utilizando o algoritmo de seleo, ordena o arranjo de Objetos que ele recebeu, respeitando a ordem lexicogrfica crescente;
2

insertion_sort():
Analise de complexidade: melhor caso= O(n) Pior caso= O(n ) 2 Caso mdio= O(n )
2

Utilizando o algoritmo de insero, ordena o arranjo de Objetos que ele recebeu, respeitando a ordem lexicogrfica crescente

quick_sort():
melhor caso= O(n log n) Pior caso= O(n ) Caso mdio= O(n log n) Utilizando o algoritmo quicksort, ordena o arranjo de Objetos que ele recebeu, respeitando a ordem lexicogrfica crescente;
2

partition(): Parte complementar do algoritmo de ordenao quick sort. Esta parte do


algoritmo define uma parte muito importante do quick_sort que definir quem o piv, depois a partir deste piv ele divide o vetor em 2, os elementos maiores que o piv e os menores e ele vai fazendo isso recursivamente at "percorrer" todo o vetor.

is_sorted():
melhor caso= O(1) Pior caso= O(n) Caso mdio= O(n/2)

Verifica se o arranjo de Objetos que ele recebeu, est em ordem crescente respeitando a ordem lexicogrfica. Caso esteja retorna true, caso contrrio retorna false.

- Abstract compare(): Este mtodo trabalha parecido com o mtodo CompareTo, pois ele
recebe dois objetos quaisquer e compara se os objetos forem iguais ele retorna 0, se o primeiro objeto for maior que o segundo ele retorna 1, e se o primeiro objeto for menor que o segundo ele retorna -1.

- abstract igual(): Este mtodo trabalha do mesmo modo que o compare, s que o compare
serve para comparar objetos da mesma classe, j este mtodo serve para comparar um certo objeto, com um tipo primitivo de java. Fora isso eles trabalham exatamente do mesmo modo.

Frame_Principal:
Esta classe um frame para controlar e separar as funes do programa, ele da 4 opes de escolha, o primeiro boto sobre Administra lista, onde ele vai abrir outro frame com opes relacionadas a administrao da lista, o segundo sobre ordenao, o terceiro sobre busca e o ultimo mostra todos os registros. Botes: Administrar Lista -> chama o frame Administra_lista. Ordena lista -> chama o frame Ordena_lista. Buscar na lista -> chama o frame Busca_lista. Mostrar a lista -> chama o frame Mostra_lista.

Administra_lista:
Esta classe um frame que basicamente controla a estrutura do vetor de Registro. Ela adiciona, mostra e exclui elementos do objeto da classe Clients_Database, Lista_Registros, que criado na classe principal Web_Store. Botes: Adicionar elemento -> chama o frame Register onde se preenche todos os dados de um registro e adiciona este registro no vetor de Register. Excluir elemento -> pergunta qual o login do registro a ser excludo, e manda este login para o mtodo deleta() da classe Clients_Records. Mostra um elemento -> pergunta qual login do registro a ser mostrado, depois pesquisa esse login no vetor de Register; se ele for achado, o mtodo mostra qual a posio do registro com

esse login, caso no for achado ele mostra uma mensagem falando que aquele registro no existe. Voltar -> volta para o menu principal.

Ordena_lista:
Este frame contem as opes relacionadas busca no vetor de registros, ele possibilita ordenao por seleo, insero e quick sort.

Busca_lista:
Este frame o frame que controla a busca de registro na Lista_Registros, ele possibilita buscar registros atravs da busca binria e da busca sequencial.

Mostra_lista:
Esta classe contem uma rea de texto onde vai se mostrar todos os registros que esto no Lista_Registros quando se clicar no boto mostra.

Você também pode gostar