Você está na página 1de 11

17/5/2014 Apostila 2 de Exerccios JAVA

http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 1/11
Esta a verso em html do arquivo
http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%202%20Exerc%C3%ADcios%20JAVA%20-
%20HEngholmJr%20vr%201.1.pdf.
G o o g l e cria automaticamente verses em texto de documentos medida que vasculha a web.
Page 1
Apostila 2 de Exerccios JAVA
Sistema: Cadastro de Funcionrios
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 2/11
Page 2
Histrico de Revises
Data Verso Descrio Autor
23/04/2009 1.0 Criao da primeira verso da apostila HEngholmJr
03/05/2009 1.1 Correo da classe Funcionario HEngholmJr
10/05/2009 1.2 Incluso mtodo administraFuncionario() na classe Funcionario
Incluso classe Empresa
HEngholmJr
Sumrio
Histrico de Revises........................................................................................................................... 2
1 Exerccios ..................................................................................................................................... 3
1.1 Classe MngString .................................................................................................................. 3
1.2 Classe Funcionario ................................................................................................................ 5
1.3 Classe FuncionarioMain ........................................................................................................ 7
1.4 Exerccio - Classe Empresa ................................................................................................... 7
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 3/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 23/04/2009 Pgina 2 de 9
Page 3
1 Exerccios
1.1 Classe MngString
/*
*Classe MngString
* Finalidade: Obter valores digitados pelo usurio realizando consistncia na entrada de dados
*
* Mtodos
* solicitaString(String mensagem): recebe string a ser exibida na tela de entrada
* retornando string digitada pelo usurio, garantindo que a mesma diferente de vazio
* solicitaNumeroreal(String mensagem): recebe string a ser exibida na tela de entrada
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 4/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 3 de 9
* retornando nmero real digitado. Faz consistncia na entrada de dados e s
* finalizada
* quando usurio digita valor numrico vlido
*/
import javax.swing.*;
public class MngString{
//Membro de dado da classe
private String s;
private double numero;
public MngString() {
//Construtor inicializando o membro de dado s
s="";
numero = 0;
}
public String getString(){
//Mtodo getter para recuperar o contedo armazenado no membro de dado s
return s;
}
public String solicitaString(String mensagem) {
//Mtodo setter que solicita a string a ser digitada e retorna o valor da mesma
//Caso no seja digitada string, ou seja digitada string apenas com espaos,
//o mtodo pede ao usurio para digitar novamente
for(;;){
//Lao infinito. Somente interrompido pelo comando break
try{
s = JOptionPane.showInputDialog(mensagem);
//Caso a string digitada seja diferente de string vazia, o lao infinito
// interrompido
if(!s.trim().equals(""))
break;
//Mostrando mensagem de erro ao usurio
Page 4
JOptionPane.showMessageDialog(null, "Por favoir, digite valor vlido!",
"Mensagem de erro", JOptionPane.ERROR_MESSAGE);
} catch (java.lang.NumberFormatException e) { // Catch any IO exceptions.
//Mostra mensagem indicando o erro
JOptionPane.showMessageDialog(null, "Na foi digitado valor valido!\nDigite
novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 5/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 4 de 9
}
}
//Retornando a string digitada pelo usurio
return s;
}
public double solicitaNumeroReal(String mensagem){
//Exerccio: implemente este mtodo que solicita nmero real e valida
//se usurio realmente digitou valor real.
//Utilize try catch e Double.parseDouble() no mesmo
//Mtodo setter que solicita nmero real ao usurio e retorna o valor do mesmo
//Caso no seja digitado valor real vlido, o mtodo pede ao usurio digitar novamente
//Utiliza o mtodo solicitaString() para verificar se usurio digitou string no vazia
//e try catch para verificar se valor digitado nmero vlido
for(;;){
//Lao infinito. Somente interrompido pelo comando break
try{
//Tenta transformar a string digitada para valor real
//Caso a string no seja valor real, o programa gerar uma exceo
//tratada pelo catch
numero = Double.parseDouble(solicitaString(mensagem));
break;
} catch (java.lang.NumberFormatException e) { // Catch excees
//Mostra mensagem indicando o erro
JOptionPane.showMessageDialog(null, "Na foi digitado valor valido!\nDigite
novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
//Retornando valor numrico digitado pelo usurio
return numero;
}
}
Page 5
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 6/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 5 de 9
1.2 Classe Funcionario
/*
*Classe Funcionario
* Finalidade: Armazenar dados de funcionrio
*
* Mtodos
* setNome(): solicita e armazena nome do funcionrio
* setsalario (): solicita e armazena salrio do funcionrio
* getNome(): retorna nome armazenado no membro de dado nome
* getSalario (): retorna salrio armazenado no membro de dado salario
* setDadosFuncionario(): Chama mtodos getNome() e getSalario ()
* mostraDadosFuncionario():Mostra dados do funcionrio em interface javax
*/
import javax.swing.*;
public class Funcionario {
String nome;
double salario;
MngString s;
public Funcionario(){
s = new MngString();
nome = "";
salario = 0;
}
public void setDadosFuncionario(){
setNome();
setSalario();
}
public void setNome(){
nome = s.solicitaString("Digite o nome do funcionrio:");
}
public void setSalario(){
salario = s.solicitaNumeroReal("Digite o salario:");
}
public String getNome(){
return nome;
}
public double getSalario(){
return salario;
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 7/11
Page 6
}
public void mostraDadosFuncionario(){
JOptionPane.showMessageDialog(null, "Nome:" + getNome() + "\n\nSalrio:" +
getSalario(), "Dados do funcionrio", JOptionPane.INFORMATION_MESSAGE);
}
public void administraFuncionario(){
String s="", mensagem = "Opcoes de adiministracao do funcionario - " + nome+ "\n1-alterar
nome\n2-alterar salrio\n3-visualizar dados do funcionario\n4-encerrar administracao do
funcionrio";
int opcao=0;
for(;;){
try{
s = JOptionPane.showInputDialog(mensagem);
opcao = Integer.parseInt(s);
switch(opcao){
case 1:
setNome();
break;
case 2:
setSalario();
break;
case 3:
mostraDadosFuncionario();
break;
case 4:
return;
default:
JOptionPane.showMessageDialog(null, "Na foi digitada opcao
valida!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
catch (java.lang.NumberFormatException e) { // Catch any IO exceptions.
JOptionPane.showMessageDialog(null, "Na foi digitada opcao
valida!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
}
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 8/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 6 de 9
}
Page 7
1.3 Classe FuncionarioMain
Implemente classe aplicao de console para testar a classe Funcionario chamando mtodos setters
e getter para alterar os membros de dados e em seguida, chamando mtodo administraFuncionario()
/*
*Classe FuncionarioMain
* Finalidade: Testar, via aplicao de console, classe Funcionario
*/
public class FuncionarioMain{
public static void main(String[] args) {
//Declarando objeto da classe Funcionario
Funcionario f = new Funcionario();
//Chamando mtodo que solicita os dados do objeto Funcionario
f. setDadosFuncionario();
//Chamando mtodo que mostra os dados do funcionrio
f. mostraDadosFuncionario();
f. administraFuncionario();
}
}
1.4 Exerccio - Classe Empresa
Implemente a classe Empresa contendo Collection de objetos tipo Funcionario
private ArrayList funcionarios;
Implemente mtodo para adicionar funcionarios para a empresa
public void adicionaFuncionario() {
Funcionario f = new Funcionario();
f. setDadosFuncionario();
funcionarios.add(f);
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 9/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 7 de 9
}
Implemente mtodo administraEmpresa () que permite ao usurio, administrar o
cadastro de funcionrios da empresa. Baseie-se no exemplo abaixo.
Implemente mtodo que retorna String contendo dados de todos os funcionrios da
empresa
public String retornaDadosFuncionarios(){
Funcionario f;
String listaFuncionarios = "";
DecimalFormat doisDigitos = new DecimalFormat("0.00");
for(int m=0; m< funcionarios.size(); m++){
System.out.println("\nFuncionrio " + (m+1));
f = (Funcionario) funcionarios.get(m);
Page 8
listaFuncionarios += "\nNome:" + cc.getNome() +" Salrio: "+
doisDigitos.format(cc. getSalario ());
}
return listaFuncionarios;
}
Implemente mtodo administraEmpresa() que mostra menu de opes de administrao ao
usurio:
public void administraEmpresa(){
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 10/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 8 de 9
String s="", mensagem = "Opcoes de adiministracao da empresa - " +
nomeDaEmpresa + "\n1-adicionar Funcionario\n2-visualizar funcionarios e salrios\n3-localizar
funcionrio\n4-gravar dados em arquivo\n5-carregar dados de arquivo\n6-encerrar
administracao da empresa";
int opcao=0;
for(;;){
try{
s = JOptionPane.showInputDialog(mensagem);
opcao = Integer.parseInt(s);
switch(opcao){
case 1:
adicionaFuncionario();
break;
case 2:
visualizaListaDefuncionarios();
break;
case 3:
JOptionPane.showMessageDialog(null, "Opcao nao
implementada!", "Alerta", JOptionPane.INFORMATION_MESSAGE);
break;
case 4:
JOptionPane.showMessageDialog(null, "Opcao nao
implementada!", "Alerta", JOptionPane.INFORMATION_MESSAGE);
break;
case 5:
Page 9
JOptionPane.showMessageDialog(null, "Opcao nao
implementada!", "Alerta", JOptionPane.INFORMATION_MESSAGE);
break;
case 6:
return;
default:
JOptionPane.showMessageDialog(null, "Na foi digitada
opcao valida!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
catch (java.lang.NumberFormatException e) { // Catch any IO exceptions.
JOptionPane.showMessageDialog(null, "Na foi digitada opcao
valida!\nDigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
}
17/5/2014 Apostila 2 de Exerccios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3 11/11
Apostila 2 Exerccios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Pgina 9 de 9