1.11M Members

Coin Problem java

 
0
 

Implement in Java a class Coin that describes a coin with a name (e.g. dime) and a value (e.g. 10 cents).

Also implement a class Wallet that describes a collection of coins. Supply a method add() to add a coin to a purse, and a method printContent() that prints out to standard output the contents of a purse in the following format:
coinName (coinValue): numberOfCoins

Example

penny (1 cent): 11
dime (10 cents): 3
nickel (5 cents): 2
euro (100 eurocents): 5
In order to test your Wallet class you'll also implement a class WalletTest whose main() method does the following:

Constructs an empty wallet
Prompts the user to enter the name of a coin (e.g. dime), or an empty string to quit
Prompts the user to enter the value of a coin (e.g. 10 cents)
Adds the coin to the wallet
Prints the contents of the wallet
Goes to the 2nd bullet point above

 
0
 

And? Where is your code so far? Have you tried to do something?
Our members and rules topic says this:
Do provide evidence of having done some work yourself if posting questions from school or work assignments.

We won't do your homework for you, we'll help you on a specific point from your homework, and which gives you trouble.

Come back when you have something specific to ask, rather than "heres the problem... I'm waiting for the full solution."

 
3
 

your first java-homework ... I'm soooooo proud!!
they do grow up so fast, don't they?

 
0
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package serviceClass;

/**
 *
 * 
 */
public class Coin {
    String name="";
    String value="";
    public Coin(){
        name="";
        value="";
    }
    public Coin(String name1,String value1){
        name=name1;
        value=value1;
    }
    public void setName(String name1){
       name=name1;
        }
     public void setValue(String value1){
       value=value1;
        }
     public String getName(){
         return name;
     }
     public String getValue(){
         return value;
     }
     public String toString(){
         return "The coin name is "+name+" and the value is "+value;
     }

}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package serviceClass;

/**
 *
 * 
 */
import java.util.Scanner;
import java.util.StringTokenizer;
import java.io.File;
import java.io.IOException;
import java.text.NumberFormat;
public class Wallet {
     int coinNumber=0;
   Coin c=new Coin();
   String a="penny";
   String b="dime";
   String d="quarters";
   String name="";
    String value="";

   public Wallet(){
       name="";
        value="";
   }
   public Wallet(String name1,String value1){
        name=name1;
        value=value1;
    }


    public void setName(String name1){
       name=name1;
        }
     public void setValue(String value1){
       value=value1;
        }
     public String getName(){
         return name;
     }
     public String getValue(){
         return value;
     }
    public void add(){
      coinNumber++;  
    }
    String[] purse=new String[coinNumber];
    public void printContent(){
        System.out.println( name +"("+value+")"+":" +coinNumber);
    }
    public boolean equals(Coin c){
        if(this.getName().equals(c.getName()) && this.getValue().equals(c.getValue())){
            return true;
        }
        return false;
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package serviceClass;

import java.util.Scanner;

/**
 *
 * 
 */
public class WalletTest {

  public static void main(String[] args){
      Wallet w=new Wallet();
      boolean b=true;
      Scanner scan=new Scanner(System.in);
       Scanner scan1=new Scanner(System.in);
      System.out.println(" Enter the name of the coin or an empty string to quit>");
      String name=scan.next();
      while(!name.equals("")){
      System.out.println(" Enter the value of the coin> ");
      String value=scan1.next();

      w=new Wallet(name,value);
      w.add();
      w.printContent();
      System.out.println(" Enter the name of the coin or an empty string to quit>");
      name=scan.next();
  }  
  }
}
 
0
 

It's strange, but from the requirements of WalletTest it seems that you will need to keep track of possible 2-cent pennies and 7-cent dimes. But at least there's no reason to change the name or value of a coin, so you shouldn't have those setters in Coin. Instead you should add an Coin.equals and a Coin.hashCode so that you can use your coins as keys in a java.util.HashMap<Coin,Integer>.

You are creating a new Wallet every time through the loop but your instructions say to only do that once at the beginning. Your Wallet.add method should take a coin as an argument, otherwise it won't know what to add to the wallet.

 
0
 

Should wallet extend coin?

 
1
 

Should wallet extend coin?

Whenever in doubt apply the IS A-test: Wallet IS A Coin? (or rephrased: IS Wallet A Coin?) If the answer to that question is no, then you shouldn't.

You
This article has been dead for over six months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article