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()));
}
}