Buscar

lab3 lab

Prévia do material em texto

UNESP/FEG/DMA	
Programação	de	Computadores	II	-	Prof.	Senne	
Aula	de	Laboratório	3		
ATENÇÃO:	Não	esquecer	de	incluir	os	nomes	dos	alunos	da	turma	em	cada	classe.		
Atividade	1.	Codificar,	em	Java,	a	seguinte	classe:	
 
MinhaData	
−	int	DT	+	MinhaData()	+	MinhaData(int	x)	+	MinhaData(int	dd,	int	mm,	int	aa)	+	void	setDT(int	x)	+	int	getDT()	+	int	getDia()	+	int	getMes()	+	int	getAno()	+	void	avancar(int	x)	+	void	voltar(int	x)	+	String	toString()	−	int	anoBissexto(int	ano)	−	int	diasDoAno(int	ano)	−	int	diasDoMes(int	mes,	int	ano)		Observar	os	seguintes	pontos:		
• O	campo	DT	armazena	o	número	de	dias	transcorridos	desde	01/01/1900.	
• O	construtor	sem	parâmetros	deve,	por	meio	do	setter,	atribuir	ao	campo	DT	o	valor	
1.	
• O	 construtor	 com	 1	 parâmetro	 deve,	 por	 meio	 do	 setter,	 atribuir	 ao	 campo	DT	 o	
valor	do	parâmetro.	
• O	construtor	com	3	parâmetros	deve,	por	meio	do	setter,	atribuir	ao	campo	DT	um	valor	que	corresponda	à	data	dd/mm/aa.	
• Os	 métodos	 getDia(),	 getMes()	 e	 getAno()	 devem	 retornar,	 respectivamente,	 o	valor	do	dia,	o	valor	do	mês	e	o	valor	do	ano,	da	data	correspondente	ao	valor	de	DT.	
• O	método	avancar()	deve	avançar	a	data	correspondente	ao	valor	de	DT	em	x	dias.	
• O	método	voltar()	deve	retroceder	a	data	correspondente	ao	valor	de	DT	em	x	dias.	
• O	método	toString()	deve	retornar	um	string	da	forma	dd/mm/aaaa. 
• O	método	anoBissexto(int	ano)	deve	retornar	1	se:	((ano % 100 != 0) && (ano 
% 4 == 0)) || ((ano % 100 == 0) && (ano % 400 == 0)).	Caso contrário, 
deve retornar 0. 
• O	método	diasDoAno(int	ano)	deve	retornar	(365	+	anoBissexto(ano)).	
• O	método	diasDoMes(int	mes,	 int	 ano)	 deve	 retornar	 o	 número	de	 dias	 de	mes,	levando	em	conta	se	ano	é	bissexto	ou	não.			Observar	que	o	construtor	MinhaData(int	dd,	int	mm,	int	aa)	deve	atribuir	ao	campo	DT	o	número	de	dias	transcorridos	desde	o	dia	01/01/1900	até	o	dia	dd/mm/aa.	Isto	pode	ser	feito	da	seguinte	maneira:		
 
 2 
	
public MinhaData(int dd, int mm, int aa) 
{ 
 int x = 0; 
 int ano = 1900; 
 while (ano < aa) 
 { 
 x = x + diasDoAno(ano); 
 ano++; 
 } 
 int mes = 1; 
 while (mes < mm) 
 { 
 x = x + diasDoMes(mes,aa); 
 mes++; 
 } 
 x = x + dd; 
 setDT(x); 
} 	Observar	 que	 os	 métodos	 getDia(),	 getMes()	 e	 getAno()	 devem	 fazer	 exatamente	 o	contrário,	 ou	 seja,	 conhecido	 o	 valor	 de	 DT	 (número	 de	 dias	 transcorridos	 desde	01/01/1900),	retornar	o	valor	do	dd,	mm	e	aa,	respectivamente.				
Atividade	2.	Codificar,	em	Java,	a	classe	principal	Lab3,	para	utilizar	todos	os	recursos	da	classe	MinhaData.	Os	dados	necessários	devem	ser	 fornecidos	pelo	usuário.	A	 leitura	dos	dados	deve	utilizar	métodos	da	classe	Scanner.

Continue navegando