Preciso fazer um trabalho que estou com muita dificuldade. Até sei mais ou menos como fazer o programa em si… mas estou perdida nos comandos do Java. Acredito que vocês irão perceber isto no meu código.
O enunciado:
Programe a classe Cofrinho, supondo um cofrinho que só aceita moedas de 10, 25
e 50 centavos. A classe deve ter quatro atributos para armazenar: o nome do dono do
cofrinho, a quantidade de moedas de 50 centavos, a quantidade de moedas de 25
centavos e a quantidade de moedas de 10 centavos que foram colocadas no cofrinho.
Faça um construtor para criar um cofrinho vazio.
Faça os seguintes métodos:
depositaUmaMoedaDezCentavos ? o método é acionado a cada moeda de 10
centavos depositada no cofrinho. Atualiza o atributo;
depositaUmaMoedaVinteCincoCentavos ? o método é acionado a cada moeda de
25 centavos depositada no cofrinho. Atualiza o atributo;
-depositaUmaMoedaCinquentaCentavos ? o método é acionado a cada moeda de
50 centavos depositada no cofrinho. Atualiza o atributo;
setNome ? altera o nome do dono do cofrinho;
getNome ? retorna o nome do dono do cofrinho;
calculaTotal - retorna o valor total em reais, armazenado no cofrinho;
calculaTotal - retorna o valor total em dólares, armazenado no cofrinho. O método
recebe como parâmetro o valor do dólar. Obs. Este método é uma sobrecarga do
anterior.
Programe a classe TesteCofrinho, sem atributos, contendo apenas o método main.
Esta classe deve usar a classe Teclado (copie-a para dentro do seu projeto). A classe
de teste deve realizar as seguintes operações, chamando os métodos adequados:
i. Ler do teclado o nome do dono do primeiro cofrinho e criar um cofrinho vazio
para ele.
ii. Depositar duas moedas de 10 centavos no primeiro cofrinho.
iii. Depositar quatro moedas de 25 centavos no primeiro cofrinho.
iv. Depositar três moedas de 50 centavos no primeiro cofrinho.
v. Ler do teclado o nome do dono do segundo cofrinho e criar um cofrinho vazio
para ele.
vi. Depositar quatro moedas de 10 centavos no segundo cofrinho.
vii. Depositar duas moedas de 25 centavos no segundo cofrinho.
viii. Depositar quatro moedas de 50 centavos no segundo cofrinho.
ix. Ler do teclado o valor do dólar e armazenar em uma variável.
x. Alterar o nome do dono do primeiro cofrinho, lendo o novo nome do teclado
xi. Criar um terceiro cofrinho para o mesmo dono do segundo
xii. Depositar duas moedas de 50 centavos no terceiro cofrinho.
xiii. Exibir, na tela o nome do dono do primeiro cofrinho e o valor total contido no
cofrinho em reais e em dólares.
xiv. Exibir, na tela o nome do dono do segundo cofrinho e o valor total contido no
cofrinho em reais e em dólares.
xv. Exibir, na tela a diferença em reais entre os dois cofrinhos. Obs. o valor deve ser
positivo. Use o método abs da classe Math.
xvi. Exibir, na tela, a soma de valores, em reais, depositado nos três cofrinhos.
olá,
pelo que entendi dando uma lida rapida no seu enunciado…
vc nunca vai precisar retirar as moedas do cofrinho, vai apenas adicionar e exibir o valor total…
logo, vc nao precisa de metodos get e set para as variaveis moedas10/25/50
siga oq foi dito no enunciado…
crie apenas os metodos fundamentais:
-construtor
-getNome/setNome
-depositaUmaMoedaDezCentavos
" VinteCinco "
" Cinquenta "
calculaTotal / calculaTotal(double dolar)
e por exemplo…
o metodo depositaUmaMoedaDezCentavos deveria ser o seguinte:
public void depositaUmaMoedaDezCentavos(){
this.moedas10++;
}
Muito, muito obrigada por me responderem… estou com muitos problemas, pois a professora está passando matéria nova toda semana, sem que tenhamos tempo de praticar ou fazer uma correção de exercícios / dúvidas.
Esta parte de sobrecarga não entendi bulufas… o resto ta tranquilo até agora.
Estou fazendo as correções conforme vocês enviaram e depois posto o resultado… Mas agora entendi também o método get e set… Como é fácil de entender com as palavras certas… hehhe
O problema é que no enunciado pediu sobrecarga… =/
Funciona como se fosse o “sobrenome” de uma pessoa…
Eu e vc podemos nos chamar ‘joao’, mas meu sobrenome e diferente do seu, logo somos coisas diferentes… [exemplo idiota mas foi tudo que consegui pensar]
uma funçao é identificada nao so por seu nome, mas por seus parametros tbmm…
[quote]Na verdade não se usa muito isso…
Mas tem que saber que existe neh… [/quote]
Como assim isto não se usa muito? Baseado em que você tirou esta informação?
Exemplo println
public void println(boolean x)
public void println(char x)
public void println(int x)
Exemplo valueOf
public static String valueOf(boolean b)
public static String valueOf(int i)
public static String valueOf(long l)
Exemplo split
public String[] split(String regex, int limit)
public String[] split(String regex)
Sobrecarga é muito utilizada, veja estes exemplos todos tirados da API java, e se procurar tem infinitos desets !!!
É importante conhecer, pois você vai ver muito código e vai desenvolver muito código utilizando sobrecarga.
estava me referindo a programação voltada a faculdade, que é o caso deo amigo que criou o topico… eu particulamente prefiro criar metodos com nomes diferentes por exemplo…
cristhianetais, você quer saber a quantidade de moedas certo, bom foi isto que entendi.
Mas você já sabe a quantidade, o que acho que está errado é o valor total.
Repare que aqui, você tem a quantidade de moedas de 10, 25, 50
[code] public void depositaUmaMoeda10Centavos(){
this.moedas10++;
}
public void depositaUmaMoeda25Centavos(){
this.moedas25++;
}
public void depositaUmaMoeda50Centavos(){
this.moedas50++;
} [/code]
O que precisa ser alterado é a parte do total. Pois o seu método está somando a quantidade e não os valores que cada moeda representa… imagino que seria algo assim
[code] public double total (){
return (moedas10 * 0.10) + (moedas25 * 0.25) + (moedas50 * 0.50);
}
[quote=cristhianetais]Pessoal, fui até aqui… mas pelo enunciado preciso saber no final quantas moedas de 10 eu coloquei, assim como as demais (25 e 50 centavos)
Isso terei que fazer no método main?
[/quote]
Sim, a quantidade é digitada no main.
Cade o seu método main?
A quantidade começa em 0, depois quando você utilizar dos métodos depositarUmaMoedaDezCentavos() ele irá incrementar o numero de moedas do cofrinho, ou seja, incrementará moedas10.
Ja que vc precisa saber a quantidade de moedas depositadas, da uma olhada neste código se ajuda
public class Cofrinho {
// atributos
private String dono;
private double moedas10;// Qtde moedas de 10
private double moedas25;// Qtde moedas de 25
private double moedas50;// Qtde moedas de 50
// construtor
public Cofrinho (String d) {
dono = d;
moedas10 = 0;
moedas25 = 0;
moedas50 = 0;
}
// Métodos
public void setDono (String d){
dono = d;
}
public String getDono() {
return dono;
}
public void depositaUmaMoeda10Centavos(){
this.moedas10++; // isto é a mesma coisa que moedas10 = moedas10 + 1;
}
public void depositaUmaMoeda25Centavos(){
this.moedas25++;
}
public void depositaUmaMoeda50Centavos(){
this.moedas50++;
}
// Retorna o valor em reais
public double total (){
return (moedas10*0.10 + moedas25*0.25 + moedas50*0.50);
}
// Retorna o valor em Dolar
public double total (double valorDolar){
return (moedas10*0.10 + moedas25*0.25 + moedas50*0.50) / valorDolar;
}
// Retorna a quantidade de moedas de 10
public double getMoedas10() {
return moedas10;
}
// Retorna a quantidade de moedas de 25
public double getMoedas25() {
return moedas25;
}
// Retorna a quantidade de moedas de 50
public double getMoedas50() {
return moedas50;
}
}
public class Cofrinho {
//Atributos
private String nome; // -> Dono!
private int m10; // Quantidade
private int m25; // de
private int m50; // moedas.
//Construtor
public Cofrinho(String n){
n = nome;
m10 = 0;
m25 = 0;
m50 = 0;
}
//Métodos
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int depositaUmaMoeda10(){
return this.m10++;
}
public int depositaUmaMoeda25(){
return this.m25++;
}
public int depositaUmaMoeda50(){
return this.m50++;
}
public double calculaTotal(){
return (double)((m10*0.1)+(m25*0.25)+(m50*0.5));
}
public double calculaTotal(double dollar){
return (double)(((m10*0.1)+(m25*0.25)+(m50*0.5))*dollar);
}
}
[/code] TesteCofrinhos:
package br.guj.cofrinho;
import java.util.Scanner;
public class TesteCofrinho {
public static void main(String[]args){
Scanner scan = new Scanner(System.in);
System.out.println("Primeiro Dono: ");
Cofrinho c1 = new Cofrinho(null); //1º Dono.
c1.setNome(scan.next());
c1.depositaUmaMoeda10();
c1.depositaUmaMoeda10();
c1.depositaUmaMoeda25();
c1.depositaUmaMoeda25();
c1.depositaUmaMoeda25();
c1.depositaUmaMoeda50();
c1.depositaUmaMoeda50();
c1.depositaUmaMoeda50();
c1.depositaUmaMoeda50();
System.out.println("Segundo Dono: ");
Cofrinho c2 = new Cofrinho(null); //2º Dono.
c2.setNome(scan.next());
c2.depositaUmaMoeda10();
c2.depositaUmaMoeda10();
c2.depositaUmaMoeda10();
c2.depositaUmaMoeda10();
c2.depositaUmaMoeda25();
c2.depositaUmaMoeda25();
c2.depositaUmaMoeda50();
c2.depositaUmaMoeda50();
c2.depositaUmaMoeda50();
c2.depositaUmaMoeda50();
System.out.println("Valor do Dollar: ");
double d = scan.nextDouble();
System.out.println("Novo dono do Cofrinho 1: ");
c1.setNome(scan.next());
Cofrinho c3 = new Cofrinho(null);
c3.setNome(c2.getNome()); //Mesmo donos...
c3.depositaUmaMoeda50();
c3.depositaUmaMoeda50();
System.out.println(c1.getNome()+" R$"+c1.calculaTotal()+" - $"+c1.calculaTotal(d));
System.out.println(c2.getNome()+" R$"+c2.calculaTotal()+" - $"+c2.calculaTotal(d));
System.out.println("Diferença: "); //Não fiz porque não sei usar esse método abs (math).
System.out.println("Soma de valores: "+(c1.calculaTotal()+c2.calculaTotal()+c3.calculaTotal()));
}
}
Espero ter entendi bem o enunciado…
OBS: Claro que tem como aprimorar para diminuir os numeros de linhas do código, eu apenas fiz passo-a-passo do enunciado.
Abraço
[quote=alucardeck]parabens, agora ela pode copiar o de vcs e mostrar pro professor… aff
:evil: [/quote]
Torço por isto, sabe porque? É de profissionais/estudantes assim que eu quero no mercado, assim ganharei deles facilmente… Cada um sabe o que faz! :lol:
Eu apenas tentei ajuda-lo, cabe a ele entender ou não. =)
P.S.: O código nem está 100% feito e está totalmente em rabisco…
[quote=felipebonezi][quote=alucardeck]parabens, agora ela pode copiar o de vcs e mostrar pro professor… aff
:evil: [/quote]
Torço por isto, sabe porque? É de profissionais/estudantes assim que eu quero no mercado, assim ganharei deles facilmente… Cada um sabe o que faz! :lol:
Eu apenas tentei ajuda-lo, cabe a ele entender ou não. =)
P.S.: O código nem está 100% feito e está totalmente em rabisco…
Abraço,[/quote]
Parece um antigo professor meu que disse:
“Tomara que vcs tenham dificuldade na minha matéria, pq qto menos pessoas no mercado, mais eu ganho dinheiro”