Impressao de empregados em JAVA

11 respostas
C

Bom dia pessoal, tenho este exercicio que pretendo imprimir todos os empregados da empresa no fixeiro "impressao.txt"
O que esta a acontecer é que so esta a imprimir o ultimo empregado
Agradecia que me respondessem ainda hoje

import javax.swing.<em>;

import java.util.</em>;

import <a href="http://java.io">java.io</a>.*;

public class Empregado

{

private String nome;

private String endereco;

private double salario;

public Empregado(String nome, String endereco, double salario)

{

this.nome=nome;

this.endereco=endereco;

this.salario=salario;
}

public String getNome()

{

return this.nome;

}

public String getEndereco()

{

return this.endereco;

}
public Double getSalario()

{

salario=salario+150;

return this.salario;

}

public static void main(String[]args)

{

int tamanho = 3; // 3 empregados que ira criar

for(int i=1; i<=tamanho;i++)

{

String nome=JOptionPane.showInputDialog(" Introduza o nome do abastardo :");

String endereco=JOptionPane.showInputDialog(" Introduza o endereco do abastardo :");

String sal=JOptionPane.showInputDialog(" Introduza o salario do abastardo :");

double salario=Double.parseDouble(sal);

mostraDados(nome,endereco,salario);

Empregado[] empregados = new Empregado[tamanho];

Empregado temp; imprimir(nome,endereco,salario);

}

}

public static void imprimir(String nome, String endereco, double salario)

{

System.out.println(nome+" endereco :"+endereco+" salario :"+ salario);
String fileName=impressao.txt;

try

{ FileWriter writer=new FileWriter(fileName);

writer.write(nome+"endereco "+endereco+ “salario” + salario);

}writer.close();

catch (IOException iox)

{

System.out.println(Problema criando+fileName);

}

}
public static void mostraDados(String nome,String endereco,double salario)

{

System.out.println(nome+" endereco :"+endereco+" salario :"+ salario);

}

}

11 Respostas

Hellmanss

Coloca seu codigo entre as tags Code fica mais legível.

Quanto ao seu problema, se está aparecendo somente o ultimo nome digitado, essa lógica está sobreescrevendo a cada inserção.

C

Hellmanss nao entendi sobre "colocar o codigo entre Tags"
Se é sobre a organizacao, nao é o mais importante, pois depois de eu mudar podera aparecer outra pessoa a pedir de outra forma

Agradecia que me desses solucao ,pois imaginar o que deve estar a acontecer, imagino, so que nao sei o que fazer
, apresente a solucao

Andre_Fonseca

http://www.guj.com.br/posts/list/50115.java

gustavobs

coloque assim

fantomas
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JOptionPane;

public class Empregado

{
	private String nome;
	private String endereco;
	private double salario;

	public Empregado(String nome, String endereco, double salario)

	{
		this.nome = nome;
		this.endereco = endereco;
		this.salario = salario;

	}

	public String getNome() {
		return this.nome;
	}

	public String getEndereco()

	{
		return this.endereco;
	}

	public Double getSalario() {
		salario = salario + 150;
		return this.salario;
	}

	public static void main(String[] args)

	{
		int tamanho = 3; // 3 empregados que ira criar
		
		Empregado[] empregados = new Empregado[tamanho]; // aqui
		
		for (int i = 0; i < tamanho; i++) { // aqui

			String nome = JOptionPane.showInputDialog(" Introduza o nome do abastardo :");

			String endereco = JOptionPane.showInputDialog(" Introduza o endereco do abastardo :");

			String sal = JOptionPane.showInputDialog(" Introduza o salario do abastardo :");
			double salario = Double.parseDouble(sal);
			mostraDados(nome, endereco, salario);
			
			Empregado temp = new Empregado(nome, endereco, salario); // aqui
			empregados[i] = temp; // aqui
		}
		
		imprimir(empregados); // aqui
	}

	public static void imprimir(Empregado[] empregados) { // aqui
	
		String fileName="impressao.txt";
		
		try{ 
			FileWriter writer=new FileWriter(fileName);
			
			for( int i=0; i < empregados.length; i++) { // aqui
				writer.write("nome="+empregados[i].getNome()+" endereco="+empregados[i].getEndereco()+ " salario="+empregados[i].getSalario()+"\n"); // aqui
			}
			
			writer.close();
		}catch (IOException iox){
			System.out.println("Problema criando"+fileName);
			iox.printStackTrace(); // aqui
		}
	}

	public static void mostraDados(String nome, String endereco, double salario) {
		System.out.println(nome + " endereco :" + endereco + " salario :" + salario);
	}

}

Oi Cinthyakaiana seu código com os ajustes necessários para ser executado sem erros esta logo acima, basta copiar para seu editor, compilar e executar. Ao termino da execução verifique o arquivo impressao.txt, talvez você queira o conteúdo em uma formato um pouco diferente.

Os pontos onde fiz as alterações estão marcados com // aqui, faça uma revisão para você ver onde errou.

Bem vinda ao GUJ.

De que país vc é?

Um grande abraço (aqui no Brasil, abraço é uma coisa boa não interprete mau rsrsrsr).

robinsonbsilva

Agora dá para ler seu código! 8)

import javax.swing.*; 
import java.util.*; 
import java.io.*; 

public class Empregado{ 

	private String nome; 
	private String endereco; 
	private double salario; 

	public Empregado(String nome, String endereco, double salario){ 
		this.nome=nome; 
		this.endereco=endereco; 
		this.salario=salario; 
	} 

	public String getNome(){ 
		return this.nome; 
	} 

	public String getEndereco(){ 
		return this.endereco; 
	} 

	public Double getSalario(){ 
		salario=salario+150; 
		return this.salario; 
	} 

	public static void main(String[]args){

		int tamanho = 3; // 3 empregados que ira criar 
		for(int i=1; i&lt;=tamanho;i++){ 

			String nome=JOptionPane.showInputDialog(" Introduza o nome do abastardo :"); 
			String endereco=JOptionPane.showInputDialog(" Introduza o endereco do abastardo :"); 
			String sal=JOptionPane.showInputDialog(" Introduza o salario do abastardo :"); 

			double salario=Double.parseDouble(sal); 
			mostraDados(nome,endereco,salario); 
			Empregado[] empregados = new Empregado[tamanho]; 
			Empregado temp; imprimir(nome,endereco,salario); 
		} 
	}

	public static void imprimir(String nome, String endereco, double salario){

		System.out.println(nome+" endereco :"+endereco+" salario :"+ salario); 
		String fileName="impressao.txt"; 
		try{ 
			FileWriter writer=new FileWriter(fileName); 
			writer.write(nome+"endereco "+endereco+ "salario" + salario); 
			writer.close();
		}catch (IOException iox){ 
			System.out.println("Problema criando"+fileName); 
		} 
	} 

	public static void mostraDados(String nome,String endereco,double salario){ 
		System.out.println(nome+" endereco :"+endereco+" salario :"+ salario); 
	} 

}
C

Ola Fantomas

Eu sou de Moçambique

Muito obrigada pela ajuda, era isso que eu queria
Pelos vistos eu nao estava adicionando os empregados ao Array

O que estava acontecendo somente neste trexo?

  1. Empregado[] empregados = new Empregado[tamanho];
    
  2. Empregado temp;//estava declarando uma variavel temp a empregado?
    

Para que serve este trexo?

  1. iox.printStackTrace();
    

Obrigada a todos , fiquem bem

fantomas

Cinthyakaiana:
Para que serve este trexo?

  1. iox.printStackTrace();

Esta linha serve para, quando ocorrer um erro (exception), imprimir a mensagem de erro e a sequencia de execução (stack trace); isto ajuda a encontrar a falha com mais facilidade e rapidez. Por isso sempre que você utilizar Try/catch utilize este método para ajudar a encontrar os erros.

:smiley: Bem vindo ao guj Moçambique :smiley:

C

Thanks,

ao visualizar as respostas em “Dia” verifiquei que aqui sao bem mais activos as preocupacoes das pessoas em relacao ao outro forum que tou, que as vezes leva mesmo meses pra uma resposta, acho que vou gostar de partilhar conhecimentos aqui

Por falar nas Excepcoes, onde ou como posso visualizar os tais Erros das excepcoes?

este pra aquele caso serviria? catch (IOException iox)

fantomas

Você visualiza na janela CMD do windows ou na aba com o titulo de “Console” do editor eclipse.

O seu editor deve ter alguma aba ou janela que mostras os erros é nela que vc visualiza.

fantomas

Naquela caso você foi obrigada a utilizar porque estava sendo utilizada operações (você estava criando o arquivo) com alta brobalidade de erros que precisavam ser controlados.

Criado 29 de maio de 2009
Ultima resposta 29 de mai. de 2009
Respostas 11
Participantes 6