Soution Q1:

-----------

import javax.swing.*;

import java.awt.*;

 

public class RollDie {

   public static void main( String args[] )

   {

      final int MAX = 100;

      int side, frequency[] = new int[7];

      String output = "Side\tFrequency\tHistogram", info = "";

 

      for (int roll=0; roll<MAX; roll++)

      {

         side = (int) (1 + Math.random() * 6);

         ++frequency[side]; 

      }

 

  

      for (side=1; side<frequency.length; side++)

      {

         info += side + "\t" + frequency[side] +"\t";

          for (int star = 1; star <= frequency[side]; star++)

            info += "*";

          if(side != (frequency.length - 1))

            info +=" \n";     

          else

            info +=" ";//optionel

      }

 

      JTextArea outputArea[] = {new JTextArea(output), new JTextArea(info)};

 

      outputArea[0].setFont(new Font("Courier", Font.BOLD, 12));

 

      JOptionPane.showMessageDialog(null, outputArea,

         "Rolling a Die 100 Times", JOptionPane.INFORMATION_MESSAGE);

 

   }

}

 

 

Solution Q2:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class BorderLayoutDemo extends JFrame implements ActionListener {

  

   private JButton b[];

   private String names[] = { "Hide North", "Hide South", "Hide East",

                                       "Hide West", "Hide Center" };

  

   private BorderLayout layout;

 

   public BorderLayoutDemo()

   {

      super("BorderLayout Demo");

 

      layout = new BorderLayout();

 

      Container c = getContentPane();

      c.setLayout(layout);

 

      // instantiate button objects

      b = new JButton[names.length];

 

      for (int i = 0; i < names.length; i++)

      {

         b[i] = new JButton(names[i]);

         b[i].addActionListener(this);

      }

 

      // order not important

      c.add(b[0], BorderLayout.NORTH);  // North position

      c.add(b[1], BorderLayout.SOUTH);  // South position

      c.add(b[2], BorderLayout.EAST);   // East position

      c.add(b[3], BorderLayout.WEST);   // West position

      c.add(b[4], BorderLayout.CENTER); // Center position

 

      setSize(300,200);

      show();

   }           

 

   public void actionPerformed(ActionEvent e)

   {

      for (int i = 0; i < b.length; i++)

      {

         if (e.getSource() == b[i])

            b[i].setVisible(false);

         else

            b[i].setVisible(true);

      }

 

      // re-layout the content pane

      layout.layoutContainer(getContentPane());

   }

 

   public static void main(String args[])

   {

      BorderLayoutDemo app = new BorderLayoutDemo();

 

   }

}

 

 

Solution Q3:

 

class Account

{

      //private NumberFormat fmt = NumberFormat.getCurrencyInstance();

     

      // Balance accessible by Account, and subclasses of Account

      protected double balance;

 

      // Constructor to initialise balance

      public Account(double amount)

      {

            balance = amount;

      }

 

      // Overloaded constructor for empty balance

      public Account()

      {

            balance = 0.0;

      }

 

      public void deposit(double amount)

      {

            balance += amount;

      }

 

      public double withdraw(double amount)

      {

            // See if amount can be withdrawn

            if (balance >= amount)

            {

                  balance -= amount;

                  return amount;

            }

            else

            // Withdrawal not allowed

                  {

                        System.out.println("Insufficient fund: Withdrawal denied!");

                        return 0.0;

                  }

      }

 

      public double getbalance()

      {

            return balance;

      }

}

 

 

 

 

class InterestBearingAccount extends Account

{

      // Default interest rate of 2.5 percent (const)

      private static double default_interest = 2.5;

 

      // Current interest rate

      private double interest_rate;

 

      // Overloaded constructor accepting balance and an interest rate

      public InterestBearingAccount(double amount, double interest)

      {

            balance = amount;

            interest_rate = interest;

      }

 

      // Overloaded constructor accepting balance with a default interest rate

      public InterestBearingAccount(double amount)

      {

            balance = amount;

            interest_rate = default_interest;

      }

 

      // Overloaded constructor with empty balance and a default interest rate

      public InterestBearingAccount()

      {

            balance = 0.0;

            interest_rate = default_interest;

      }

     

      void add_monthly_interest()

      {

            // Add interest to our account

            balance = balance +          

                        (balance * interest_rate / 100) / 12;

      }

 

}

 

 

import java.text.DecimalFormat;

class AccountDemo

{

      public static void main(String args[])

      {    

 

            DecimalFormat precision = new DecimalFormat( "0.00" );

           

            // Create accounts:

            InterestBearingAccount my_account1 = new InterestBearingAccount();

            InterestBearingAccount my_account2 = new InterestBearingAccount(250);

            InterestBearingAccount my_account3 = new InterestBearingAccount(300, 8.5);

 

            // Deposit money in first account:

            my_account1.deposit(150.00);

 

            // Print current balance of first account:

            System.out.println ("Current balance in account1 $" +

                 precision.format(my_account1.getbalance()));

           

 

            // Withdraw money

            my_account2.withdraw(275.0);

            my_account3.withdraw(15.0);

 

            // Allow a month to pass

            my_account1.add_monthly_interest();

            my_account2.add_monthly_interest();

            my_account3.add_monthly_interest();

           

           

            // Print new balances

            System.out.println ("New balance in account1 $" +

                     precision.format(my_account1.getbalance()));

            System.out.println ("New balance in account2 $" +

                     precision.format(my_account2.getbalance()));

            System.out.println ("New balance in account2 $" +

                     precision.format(my_account3.getbalance()));

 

      }

}