Buscar

lab7 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
UNESP/FEG/DMA	
Programação	de	Computadores	II	-	Prof.	Senne	
Exercício	de	Laboratório	7.2	
 
ATENÇÃO:	Não	esquecer	de	incluir	os	nomes	dos	alunos	da	turma	em	cada	classe.	
 Implementar,	nas	GUIs	já	disponíveis,	as	funcionalidades	descritas	a	seguir.		
Atividade	1:	Classe	Banco.	
 Suponha	 uma	 instituição	 bancária	 com	 um	 único	 caixa.	 Considere	 que	 os	 clientes	chegam	ao	banco,	regularmente,	a	cada	3	minutos	e	que	o	tempo	de	atendimento	é	um	inteiro	 gerado	 aleatoriamente	 no	 intervalo	 [1,	 5].	 Considere	 que,	 ao	 chegar,	 o	 cliente	espera	pacientemente	numa	fila	até	que	o	caixa	esteja	disponível.	Por	exemplo:		 Instante	de	chegada	 Tempo	de	atendimento	 Início	do	atendimento	 Fim	do	atendimento	 Tempo	de	espera	 Tamanho	da	fila	0	 2	 0	 2	 0	 0	3	 4	 3	 7	 0	 0	6	 5	 7	 12	 1	 1	9	 4	 12	 16	 3	 1	12	 4	 16	 20	 3	 1	15	 3	 20	 23	 5	 2		Esta	estrutura	de	dados	pode	ser	armazenada	em	um	componente	JTable,	que	organiza	os	dados	em	linhas	e	colunas.		
 
O	 click	 no	 botão	 Novo	 Cliente	 deve	exibir	uma	nova	linha	na	tabela,	com	os	valores	adequados	para	cada	uma	das	colunas,	 e	 atualizar	 os	 valores	 das	caixas	de	texto.		Para	incluir	um	valor	(v)	na	tabela,	usar	o	método:	tabela.setValueAt(v,	linha,	coluna);		Para	recuperar	um	valor	(v)	da	tabela,	usar	o	método:	v	=	tabela.getValueAt(linha,	coluna);		O	 click	 no	 botão	 Limpar	 Janela	 deve	mostrar	 a	 janela	 exatamente	 como	aparece	na	figura	ao	lado.		O	 tempo	 médio	 de	 espera	 deve	 ser	 calculado	 pelo	 método	 private	 double	
atualizarTempoEspera()	 e	 o	 tamanho	médio	 da	 fila	 deve	 ser	 calculado	 pelo	método	
private	 double	 atualizarTamanhoFila().	 Observar	 que	 o	 tamanho	 da	 fila,	 a	 cada	instante,	é	igual	ao	número	de	valores	de	início	de	atendimento	que	são	maiores	do	que	o	instante	de	chegada	do	novo	cliente.		
 2 
Atividade	2:	Classe	Jogo.		Um	jogo	consiste	de	3	pilhas	de	fichas.	O	número	inicial	de	fichas	em	cada	pilha	é	gerado	aleatoriamente	 no	 intervalo	 [5,	 15].	 Dois	 jogadores	 (A	 e	 B)	 se	 revezam	 nas	 jogadas.	Perde	o	jogo	quem	não	consegue	fazer	uma	jogada	possível.	As	jogadas	possíveis	são:	
• retirar	1	ou	2	fichas	da	pilha	1;	
• retirar	1	ou	3	fichas	da	pilha	2;	
• retirar	2	ou	3	fichas	da	pilha	3.		
 
O	click	no	botão	Novo	deve	gerar	um	novo	jogo,	ou	seja,	inicializar	a	tabela	com	valores	adequados	para	cada	 uma	das	 colunas	 da	 primeira	 linha	 e	 exibir	 a	mensagem	"Quem	vai	vencer:	A	ou	B?"	no	painel	inferior.		O	click	no	botão	Jogar	deve	verificar	se	a	seleção	dos	botões	de	rádio	corresponde	a	uma	jogada	possível.	Observar	que	uma	jogada	só	é	possível	após	o	jogo	ter	 sido	 gerado.	 Caso	 seja,	 deve	 exibir	 uma	 nova	linha	na	tabela,	com	os	valores	adequados	para	cada	uma	das	colunas,	de	acordo	com	a	jogada	realizada.	Observar	 que	 a	 cada	 jogada,	 o	 valor	 exibido	 na	coluna	JOGADOR	deve	revezar	entre	"A"	e	"B".		Caso	não	seja	uma	jogada	possível,	deve	executar	o	método:		
JOptionPane.showMessageDialog(jf,	"Jogada	ilegal.");		O	 método	 associado	 ao	 click	 no	 botão	 Jogar	 deve,	 após	 a	 realização	 de	 uma	 jogada,	verificar	 se	 ainda	 existe	 a	 possibilidade	 de	 uma	 nova	 jogada.	 Caso	 não	 exista,	 o	 jogo	acabou	 e	 o	método	deve	 exibir	 a	mensagem	 "O	 jogador	 "	 +	 jogador	 +	 "	 perdeu!"	 no	painel	 inferior,	 onde	 jogador	 corresponde	 ao	 valor	 da	 coluna	 JOGADOR	 exibido	 na	última	linha	da	tabela.

Outros materiais