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
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
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…
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.