Ponto Eletronico

:lol: :lol: Eita tremmm dificil

Owww povão é o seguinte… eu estou com este problemão para ser revolvido…

O programa devera armazenar a hora de entrada e de saída de cada pessoa. Respeite as seguintes
condições:
?Utilize como estrutura de armazenamento uma fila de prioridade, respeitando como prioridade a hora de
chegada e saída.
?Cada pessoa deve ter informações como: nome, CPF;
?Para registrar o ponto a pessoa deve somente informar seu CPF;

o que ta mais me confudindo é a fila de prioridade… aff

espero que me ajudem… :roll: :roll:

Queue

OLHA antes de mais nada deves dizer se sera lista com prioridade em relação a que?? ( altura, mais bonito, chefe, idade).
mas ve se das uma melhor explicada no geral

então pessoal…

aqui esta um modelo de uma fila de prioridade…

 
import java.util.PriorityQueue;
//Define uma pilha de prioridade. Os elementos são ordenados segundo uma ordem.
//A ordem dos elementos elemento pode ser definida pelo Comparator.
public class QueueEx1 {
  public static void main(String args[]) {
    PriorityQueue<Integer> PQ = new PriorityQueue<Integer>();
    for (int i = 0; i < 10; i++)
      PQ.add(new Integer(i));
    for (int i = 0; i < 10; i++) {
      System.out.println("Elemento na cabeça: " + PQ.poll());
    }
  }
}

blz ???

agora precisso de vossa ajudas para criar um objeto que armazene a hora de entrada e hora de saida…

Pessoal ajudar …

Este é o codigo que estamos desenvolvendo…

Grupo 3) Ponto eletrônico;
O programa devera armazenar a hora de entrada e de saída de cada pessoa. Respeite as seguintes
condições:
?Utilize como estrutura de armazenamento uma fila de prioridade, respeitando como prioridade a hora de
chegada e saída.
?Cada pessoa deve ter informações como: nome, CPF;
?Para registrar o ponto a pessoa deve somente informar seu CPF;
?O sistema deve emitir um relatório diário do horário de entrada e saída de cada pessoa.
?O sistema deve apresentar os 5 funcionários que chegam mais cedo e que saem mais tarde.
?Todo o programa deverá ser desenvolvido respeitando os conceitos de orientação em objetos e a
Linguagem Java.

//Fila de Prioridade
public class FilaPrioridade {
	
	private int tamanho;
	private long[] vetorFila;
	private int itens;
	
	public FilaPrioridade(int s){
	
	tamanho = s;
	vetorFila = new long[tamanho];
	itens = 0;
	
	}

	public long remover(){ 
	return vetorFila[itens];
	}
	public long peek(){ 
		
	return vetorFila[itens-1];
	}
	public boolean estaVazia(){ 
		
	return (itens==0); }
	public boolean estaCheia(){ 
		
	return (itens==tamanho); }
	
	
	public void inserir(long elemento){
		int i;
		if (itens==0)
		vetorFila[itens++] = elemento;
	else{
		for (i=itens-1;i>=0; i--){
	if (elemento > vetorFila[i])
		vetorFila[i+1] = vetorFila[i];
	else
	break;
	}
	vetorFila[i+1] = elemento;
	itens++;
	}
  }
	public void imprimir(Ponto ponto){
		   for (int i=itens; i<=tamanho; i++)
			   System.out.println(vetorFila[i]+" ");
	   }


}
//Ponto

public class Ponto extends Pessoa {
	
	private FilaPrioridade fp_entrada;
	private FilaPrioridade fp_saida;

	
	public Ponto(){
		fp_entrada = new FilaPrioridade(50);
		fp_saida = new FilaPrioridade(50);
	}

	public long getEntrada() {
		return fp_entrada.peek();
	}

	public void setEntrada(long entrada) {
		this.fp_entrada.inserir(entrada);
	}

	public long getSaida() {
		return fp_saida.peek();
	}

	public void setSaida(long saida) {
		this.fp_saida.inserir(saida);
	}
	
	}
//Pessoas e suas caracteristicas

public class Pessoa {

	public String nome;
	public String cpf;
	
	public Pessoa(){
		
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	
	
}

//MAIN
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class PontoEletronico {

	public static void main(String[] args) {

		PontoEletronico pontoeletronico = new PontoEletronico();
		List<Pessoa> lista = pontoeletronico.carregaPessoas();
		Scanner sc = new Scanner(System.in);
		Ponto ponto = new Ponto();
		
		// =============================================================

		Date data = Calendar.getInstance().getTime();
		SimpleDateFormat dft = new SimpleDateFormat("HH:mm");
		dft = new SimpleDateFormat("dd/MM/yyyy");
		String data_atual = dft.format(data);

		System.out.println("---- SISTEMA DE CONTROLE DE PONTO");
		System.out.println("DATA ATUAL:" + data_atual);

		// =============================================================
		
		
		dft = new SimpleDateFormat("HH");
		String hora_atual = dft.format(data);
		int h = Integer.parseInt(hora_atual);

		String cpf;
		for(int j = 0; j<= 3;j++){
		if (h >= 7 && h <= 8) {
			System.out.println("REGISTRO DE ENTRADA");

			do {
				System.out.println("Informe o CPF:");
				cpf = sc.nextLine();

			} while (pontoeletronico.verificarCpf(cpf, lista) == false);

			ponto.setEntrada(data.getTime());

			//Date novadata = new Date(pt.getEntrada());
			
		}

		if (h >8) {
			System.out.println("REGISTRO DA SAIDA");

			do {
				System.out.println("Informe o CPF:");
				cpf = sc.nextLine();

			} while (pontoeletronico.verificarCpf(cpf, lista) == false);

			if(data != null)
				ponto.setSaida(data.getTime());
			else
				System.out.println("Data Nula");
			//Date novadata = new Date(pt.getSaida());

		}
	}
		
		// ===========================================================

	}

	private List<Pessoa> carregaPessoas() {
		List<Pessoa> lista = new ArrayList<Pessoa>();
		String nomes[] = { "Maria silva", "Jose soares", "Joao das neves",
				"Juvenal mendes" };
		String cpfs[] = { "1234", "4321", "5678", "8765" };

		for (int i = 0; i < cpfs.length; i++) {
			Pessoa pessoa = new Pessoa();
			pessoa.setNome(nomes[i]);
			pessoa.setCpf(cpfs[i]);

			lista.add(pessoa);
		}
		return lista;
	}

	// =============================================================

	private boolean verificarCpf(String cpf, List<Pessoa> lista) {
		for (int i = 0; i < lista.size(); i++) {
			if (lista.get(i).getCpf().equals(cpf)) {
				return true;
			}
		}
		System.out.println("CPF INCORRETO");
		return false;

	}
		
		

		private void imprimir(Ponto pt){
		
		
		
		}

		
		private void MaiorMenor(){
			
			
		}
	// ================================================================

}

AGORA PRECISOS :
?O sistema deve emitir um relatório diário do horário de entrada e saída de cada pessoa.
?O sistema deve apresentar os 5 funcionários que chegam mais cedo e que saem mais tarde.

ALGUM PODE ME AJUDAR …