17/5/2014 Apostila 2 de Exercícios JAVA

http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 1/11
Esta é a versão 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 versões em texto de documentos à medida que vasculha a web.
Page 1
Apostila 2 de Exercícios JAVA
Sistema: Cadastro de Funcionários
17/5/2014 Apostila 2 de Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 2/11
Page 2
Histórico de Revisões
Data Versão Descrição Autor
23/04/2009 1.0 Criação da primeira versão da apostila HEngholmJr
03/05/2009 1.1 Correção da classe Funcionario HEngholmJr
10/05/2009 1.2 Inclusão método administraFuncionario() na classe Funcionario
Inclusão classe Empresa
HEngholmJr
Sumário
Histórico de Revisões........................................................................................................................... 2
1 Exercícios ..................................................................................................................................... 3
1.1 Classe MngString .................................................................................................................. 3
1.2 Classe Funcionario ................................................................................................................ 5
1.3 Classe FuncionarioMain ........................................................................................................ 7
1.4 Exercício - Classe Empresa ................................................................................................... 7
17/5/2014 Apostila 2 de Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 3/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 23/04/2009 Página 2 de 9
Page 3
1 Exercícios
1.1 Classe MngString
/*
*Classe MngString
* Finalidade: Obter valores digitados pelo usuário realizando consistência na entrada de dados
*
* Métodos
* solicitaString(String mensagem): recebe string a ser exibida na tela de entrada
* retornando string digitada pelo usuário, 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 Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 4/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 3 de 9
* retornando número real digitado. Faz consistência na entrada de dados e só é
* finalizada
* quando usuário digita valor numérico válido
*/
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(){
//Método getter para recuperar o conteúdo armazenado no membro de dado s
return s;
}
public String solicitaString(String mensagem) {
//Método setter que solicita a string a ser digitada e retorna o valor da mesma
//Caso não seja digitada string, ou seja digitada string apenas com espaços,
//o método pede ao usuário para digitar novamente
for(;;){
//Laço infinito. Somente é interrompido pelo comando break
try{
s = JOptionPane.showInputDialog(mensagem);
//Caso a string digitada seja diferente de string vazia, o laço infinito
//é interrompido
if(!s.trim().equals(""))
break;
//Mostrando mensagem de erro ao usuário
Page 4
JOptionPane.showMessageDialog(null, "Por favoir, digite valor válido!",
"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 Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 5/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 4 de 9
}
}
//Retornando a string digitada pelo usuário
return s;
}
public double solicitaNumeroReal(String mensagem){
//Exercício: implemente este método que solicita número real e valida
//se usuário realmente digitou valor real.
//Utilize try catch e Double.parseDouble() no mesmo
//Método setter que solicita número real ao usuário e retorna o valor do mesmo
//Caso não seja digitado valor real válido, o método pede ao usuário digitar novamente
//Utiliza o método solicitaString() para verificar se usuário digitou string não vazia
//e try catch para verificar se valor digitado é número válido
for(;;){
//Laço infinito. Somente é interrompido pelo comando break
try{
//Tenta transformar a string digitada para valor real
//Caso a string não seja valor real, o programa gerará uma exceção
//tratada pelo catch
numero = Double.parseDouble(solicitaString(mensagem));
break;
} catch (java.lang.NumberFormatException e) { // Catch exceções
//Mostra mensagem indicando o erro
JOptionPane.showMessageDialog(null, "Na foi digitado valor valido!\nDigite
novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE);
}
}
//Retornando valor numérico digitado pelo usuário
return numero;
}
}
Page 5
17/5/2014 Apostila 2 de Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 6/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 5 de 9
1.2 Classe Funcionario
/*
*Classe Funcionario
* Finalidade: Armazenar dados de funcionário
*
* Métodos
* setNome(): solicita e armazena nome do funcionário
* setsalario (): solicita e armazena salário do funcionário
* getNome(): retorna nome armazenado no membro de dado nome
* getSalario (): retorna salário armazenado no membro de dado salario
* setDadosFuncionario(): Chama métodos getNome() e getSalario ()
* mostraDadosFuncionario():Mostra dados do funcionário 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 funcionário:");
}
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 Exercícios 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\nSalário:" +
getSalario(), "Dados do funcionário", JOptionPane.INFORMATION_MESSAGE);
}
public void administraFuncionario(){
String s="", mensagem = "Opcoes de adiministracao do funcionario - " + nome+ "\n1-alterar
nome\n2-alterar salário\n3-visualizar dados do funcionario\n4-encerrar administracao do
funcionário";
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 Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 8/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 6 de 9
}
Page 7
1.3 Classe FuncionarioMain
Implemente classe aplicação de console para testar a classe Funcionario chamando métodos setters
e getter para alterar os membros de dados e em seguida, chamando método administraFuncionario()
/*
*Classe FuncionarioMain
* Finalidade: Testar, via aplicação de console, classe Funcionario
*/
public class FuncionarioMain{
public static void main(String[] args) {
//Declarando objeto da classe Funcionario
Funcionario f = new Funcionario();
//Chamando método que solicita os dados do objeto Funcionario
f. setDadosFuncionario();
//Chamando método que mostra os dados do funcionário
f. mostraDadosFuncionario();
f. administraFuncionario();
}
}
1.4 Exercício - Classe Empresa
• Implemente a classe Empresa contendo Collection de objetos tipo Funcionario
private ArrayList funcionarios;
• Implemente método para adicionar funcionarios para a empresa
public void adicionaFuncionario() {
Funcionario f = new Funcionario();
f. setDadosFuncionario();
funcionarios.add(f);
17/5/2014 Apostila 2 de Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 9/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 7 de 9
}
• Implemente método administraEmpresa () que permite ao usuário, administrar o
cadastro de funcionários da empresa. Baseie-se no exemplo abaixo.
• Implemente método que retorna String contendo dados de todos os funcionários 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("\nFuncionário " + (m+1));
f = (Funcionario) funcionarios.get(m);
Page 8
listaFuncionarios += "\nNome:" + cc.getNome() +" Salário: "+
doisDigitos.format(cc. getSalario ());
}
return listaFuncionarios;
}
Implemente método administraEmpresa() que mostra menu de opções de administração ao
usuário:
public void administraEmpresa(){
17/5/2014 Apostila 2 de Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 10/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 8 de 9
String s="", mensagem = "Opcoes de adiministracao da empresa - " +
nomeDaEmpresa + "\n1-adicionar Funcionario\n2-visualizar funcionarios e salários\n3-localizar
funcionário\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 Exercícios JAVA
http://webcache.googleusercontent.com/search?q=cache:http://www.cybertechcse.com.br/java/ApostilasDeexercicio/Apostila%25202%2520Exerc%25C3… 11/11
Apostila 2 Exercícios JAVA - HEngholmJr vr 1.1.doc Vr: 1.0 10/05/2009 Página 9 de 9

Sign up to vote on this title
UsefulNot useful