java labmanual latest for java programming and its laboratory

Upload: suganya-periasamy

Post on 02-Mar-2016

20 views

Category:

Documents


0 download

DESCRIPTION

Java Labmanual Latest for java programming and its laboratory

TRANSCRIPT

1

1. Develop Rational number class in Java. Use JavaDoc comments for documentation. Your implementation should use efficient representation for a rational number, i.e. (500 / 1000) should be represented as ().

import java.util.Scanner;public class Rational { /** * The Numerator part of Rational */private int numerator; /** * The Denominator part of Rational */ private int denominator; /** * create and initialize a new Rational object */ public Rational(int numerator, int denominator) { if (denominator == 0) { throw new RuntimeException("Denominator is zero"); } int g = gcd(numerator, denominator); if (g == 1) { System.out.println("No Common Divisor for Numerator and Denominator"); this.numerator = numerator; this.denominator = denominator; } else { this.numerator = numerator / g; this.denominator = denominator / g; }

} /** * return string representation of (this) */ public String toString() { return numerator + "/" + denominator; } /** * * @param m * @param n * @return Greatest common divisor for m and n */ private static int gcd(int m, int n) { if (0 == n) return m; else return gcd(n, m % n); } /************************************************************************* * Test client *************************************************************************/ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter Numerator : "); int numerator = scanner.nextInt(); System.out.print("Enter Denominator : "); int denominator = scanner.nextInt(); Rational rational; rational = new Rational(numerator, denominator); System.out.println("Efficient Representation for the rational number :" + rational); }}

2. Develop Date class in Java similar to the one available in java.util package. Use JavaDoc comments.

import java.util.*; public class Datedemo{ public static void main(String args[]){ /* Create date object with current date and time. */ Date date = new Date(); System.out.println("Today is " + date); } }

3. Implement Lisp-like list in Java. Write basic operations such as 'car', 'cdr', and 'cons'. If L is a list [3, 0, 2, 5], L.car() returns 3, while L.cdr() returns [0,2,5].

import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.StringTokenizer;

import java.util.logging.Logger;

public class LispCommands {private String[] tokenList;private static Logger LOGGER = Logger.getLogger(LispCommands.class.getName());public LispCommands() {}private void car() {LOGGER.info(tokenList[0]);}private void cdr() {List list = Arrays.asList(tokenList);ArrayList slist = new ArrayList(list);slist.remove(0);display(slist);}private void cons(String args) {List arrayList = new ArrayList(Arrays.asList(tokenList));arrayList.add(args);Collections.reverse(arrayList);display(arrayList);}private void parse(String args) {ArrayList tokenList = new ArrayList();if(args != null){StringTokenizer tokens = new StringTokenizer(args,"[]");while (tokens.hasMoreElements()) {StringTokenizer commaTokens = new StringTokenizer(tokens.nextToken(),",");while (commaTokens.hasMoreElements()) {String token = commaTokens.nextToken();if(token != null && !token.trim().equals("")){tokenList.add(token.trim());}}}}this.tokenList = tokenList.toArray(new String[0]);}private void display(Object result) {System.out.println();if(result instanceof String){LOGGER.info(result.toString());} else if(result.getClass().getName().equals("java.util.ArrayList")){LOGGER.info(result.toString());}}public static void main(String[] args) {LispCommands L = new LispCommands();L.parse("[3, 0, 2, 5]");L.car();L.cdr();L.cons("7");}}

5. Design a Vehicle class hierarchy in Java. Write a test program to demonstrate polymorphism.

import java.io.*;class Vehicle{String regno;int model;Vehicle(String r, int m){regno=r;model=m;}void display(){System.out.println("registration no:"+regno);System.out.println("model no:"+model); }}

class Twowheeler extends Vehicle{int noofwheel;Twowheeler(String r,int m,int n){super(r,m);noofwheel=n;}void display(){System.out.println("Two wheeler tvs");super.display();System.out.println("no of wheel" +noofwheel);}}

class Threewheeler extends Vehicle{int noofleaf;Threewheeler(String r,int m,int n){super(r,m);noofleaf=n;}void display(){System.out.println("three wheeler auto");super.display();System.out.println("no of leaf" +noofleaf);}}

class Fourwheeler extends Vehicle{int noofleaf;Fourwheeler(String r,int m,int n){super(r,m);noofleaf=n;}void display(){System.out.println("four wheeler car");super.display();System.out.println("no of leaf" +noofleaf);}}public class Vehicledemo{public static void main(String arg[]){Twowheeler t1;Threewheeler th1;Fourwheeler f1;t1=new Twowheeler("TN74 12345", 1,2);th1=new Threewheeler("TN74 54321", 4,3);f1=new Fourwheeler("TN34 45677",5,4);t1.display();th1.display();f1.display();}}

6. Design classes for Currency, Rupee, and Dollar. Write a program that randomly generates Rupee and Dollar objects and write them into a file using object serialization. Write another program to read that file, convert to Rupee if it reads a Dollar, while leave the value as it is if it reads a Rupee.

import java.io.Serializable;

public abstract class Currency implements Serializable {

protected static final Double DOLLAR_RUPEE_EXCHAGERATE = 44.445D;

public Currency(Double money) {super();this.money = money;}

protected Double money;public abstract Double getValue ();public abstract String getPrintableValue();}/** * * @author Jana * */public class Rupee extends Currency {

public Rupee(Double amount) {super(amount);}

@Overridepublic Double getValue() {return this.money;}

@Overridepublic String getPrintableValue() {String strValue = "Object Name : Rupee \nINR : Rs " + getValue() + "\n------------------\n";return strValue;}

}

public class Dollar extends Currency {

public Dollar(Double money) {super(money);}

@Overridepublic Double getValue() {return (this.money * DOLLAR_RUPEE_EXCHAGERATE);}@Overridepublic String getPrintableValue() {String strValue = "Object Name : Dollar \nUSD : $" + this.money + " \nINR : Rs" + getValue() + "\n------------------\n";return strValue;}

}

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.util.Random;

public class StoreCurrency {

/** * * @param args * @throws FileNotFoundException * @throws IOException */public static void main(String[] args) throws FileNotFoundException, IOException {Currency currency = null;ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File("currency.dat")));Random random = new Random();for (int i = 0; i < 10; i++) {// Random generation of dollar or Rupee Objects int decide = random.nextInt();

// Random Generation of Dollar or Rupee valuesDouble value = (random.nextDouble() *10);if ( (decide%2)==0 ) {currency = new Rupee(value);} else {currency = new Dollar(value);}out.writeObject(currency);}out.writeObject(null);// To detect the end of the fileout.close();}

}import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.ObjectInputStream;

public class ReadCurrency {

/** * @param args * @throws ClassNotFoundException * @throws IOException * @throws IOException */public static void main(String[] args) throws IOException, ClassNotFoundException {Currency currency = null;ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File("currency.dat")));while ((currency = (Currency) in.readObject()) != null) {System.out.println(currency.getPrintableValue());}in.close();

}

}

7. Design a scientific calculator using event-driven programming paradigm of Java.

import java.awt.*;import java.awt.event.*; // class CalcFrame for creating a calcul // ator frame and added windolistener to // close the calculator

class CalcFrame extends Frame {

CalcFrame( String str) { // call to superclass super(str); // to close the calculator(Frame)

addWindowListener(new WindowAdapter() {

public void windowClosing (WindowEvent we) { System.exit(0); }

});

}

}

// main class Calculator implemnets two // interfaces ActionListener // and ItemListener

public class Calculator implements ActionListener, ItemListener { // creating instances of objects CalcFrame fr; MenuBar mb; Menu view, font, about; MenuItem bold, regular, author; CheckboxMenuItem basic, scientific; CheckboxGroup cbg; Checkbox radians, degrees; TextField display; Button key[] = new Button[20]; // creates a button object array of 20 Button clearAll, clearEntry, round;Button scientificKey[] = new Button[10]; // creates a button array of 8 // declaring variablesboolean addButtonPressed, subtractButtonPressed, multiplyButtonPressed;boolean divideButtonPressed, decimalPointPressed, powerButtonPressed;boolean roundButtonPressed = false;double initialNumber;// the first number for the two number operationdouble currentNumber = 0;//the number shown in the screen while it is //being pressedint decimalPlaces = 0; // main function

public static void main (String args[]) { // constructor Calculator calc = new Calculator(); calc.makeCalculator(); }

public void makeCalculator() { // size of the button final int BWIDTH = 25; final int BHEIGHT = 25; int count =1; // create frame for the calculator fr = new CalcFrame("Basic Calculator"); // set the size fr.setSize(200,270); fr.setBackground(Color.blue);; // create a menubar for the frame mb = new MenuBar(); // add menu the menubar view = new Menu("View"); font = new Menu ("Font"); about = new Menu("About"); // create instance of object for View me // nu basic = new CheckboxMenuItem("Basic",true); // add a listener to receive item events // when the state of an item changes basic.addItemListener(this); scientific = new CheckboxMenuItem("Scientific"); // add a listener to receive item events // when the state of an item changes scientific.addItemListener(this); // create instance of object for font me // nu bold = new MenuItem("Arial Bold"); bold.addActionListener(this); regular = new MenuItem("Arial Regular"); regular.addActionListener(this); // for about menu author = new MenuItem("Author"); author.addActionListener(this); // add the items in the menu view.add(basic); view.add(scientific); font.add(bold); font.add(regular); about.add(author); // add the menus in the menubar mb.add(view); mb.add(font); mb.add(about); // add menubar to the frame fr.setMenuBar(mb); // override the layout manager fr.setLayout(null); // set the initial numbers that is 1 to // 9

for (int row = 0; row < 3; ++row) {

for (int col = 0; col < 3; ++col) { // this will set the key from 1 to 9 key[count] = new Button(Integer.toString(count)); key[count].addActionListener(this); // set the boundry for the keys key[count].setBounds(30*(col + 1), 30*(row + 4),BWIDTH,BHEIGHT); key[count].setBackground(Color.yellow); // add to the frame fr.add(key[count++]); }

}

// Now create, addlistener and add to fr // ame all other keys //0 key[0] = new Button("0"); key[0].addActionListener(this); key[0].setBounds(30,210,BWIDTH,BHEIGHT); key[0].setBackground(Color.yellow); fr.add(key[0]); //decimal key[10] = new Button("."); key[10].addActionListener(this); key[10].setBounds(60,210,BWIDTH,BHEIGHT); key[10].setBackground(Color.yellow); fr.add(key[10]); //equals to key[11] = new Button("="); key[11].addActionListener(this); key[11].setBounds(90,210,BWIDTH,BHEIGHT); key[11].setBackground(Color.yellow); fr.add(key[11]); //multiply key[12] = new Button("*"); key[12].addActionListener(this); key[12].setBounds(120,120,BWIDTH,BHEIGHT); key[12].setBackground(Color.yellow); fr.add(key[12]); //divide key[13] = new Button("/"); key[13].addActionListener(this); key[13].setBounds(120,150,BWIDTH,BHEIGHT); key[13].setBackground(Color.yellow); fr.add(key[13]); //addition key[14] = new Button("+"); key[14].addActionListener(this); key[14].setBounds(120,180,BWIDTH,BHEIGHT); key[14].setBackground(Color.yellow); fr.add(key[14]); //subtract key[15] = new Button("-"); key[15].addActionListener(this); key[15].setBounds(120,210,BWIDTH,BHEIGHT); key[15].setBackground(Color.yellow); fr.add(key[15]); //reciprocal key[16] = new Button("1/x"); key[16].addActionListener(this); key[16].setBounds(150,120,BWIDTH,BHEIGHT); key[16].setBackground(Color.yellow); fr.add(key[16]); //power key[17] = new Button("x^n"); key[17].addActionListener(this); key[17].setBounds(150,150,BWIDTH,BHEIGHT); key[17].setBackground(Color.yellow); fr.add(key[17]); //change sign key[18] = new Button("+/-"); key[18].addActionListener(this); key[18].setBounds(150,180,BWIDTH,BHEIGHT); key[18].setBackground(Color.yellow); fr.add(key[18]); //factorial key[19] = new Button("x!"); key[19].addActionListener(this); key[19].setBounds(150,210,BWIDTH,BHEIGHT); key[19].setBackground(Color.yellow); fr.add(key[19]); // CA clearAll = new Button("CA"); clearAll.addActionListener(this); clearAll.setBounds(30, 240, BWIDTH+20, BHEIGHT); clearAll.setBackground(Color.yellow); fr.add(clearAll); // CE clearEntry = new Button("CE"); clearEntry.addActionListener(this); clearEntry.setBounds(80, 240, BWIDTH+20, BHEIGHT); clearEntry.setBackground(Color.yellow); fr.add(clearEntry); // round round = new Button("Round"); round.addActionListener(this); round.setBounds(130, 240, BWIDTH+20, BHEIGHT); round.setBackground(Color.yellow); fr.add(round); // set display area display = new TextField("0"); display.setBounds(30,90,150,20); display.setBackground(Color.white); // key for scientific calculator // Sine scientificKey[0] = new Button("Sin"); scientificKey[0].addActionListener(this); scientificKey[0].setBounds(180, 120, BWIDTH + 10, BHEIGHT); scientificKey[0].setVisible(false); scientificKey[0].setBackground(Color.yellow); fr.add(scientificKey[0]); // cosine scientificKey[1] = new Button("Cos"); scientificKey[1].addActionListener(this); scientificKey[1].setBounds(180, 150, BWIDTH + 10, BHEIGHT); scientificKey[1].setBackground(Color.yellow); scientificKey[1].setVisible(false); fr.add(scientificKey[1]); // Tan scientificKey[2] = new Button("Tan"); scientificKey[2].addActionListener(this); scientificKey[2].setBounds(180, 180, BWIDTH + 10, BHEIGHT); scientificKey[2].setBackground(Color.yellow); scientificKey[2].setVisible(false); fr.add(scientificKey[2]); // PI scientificKey[3] = new Button("Pi"); scientificKey[3].addActionListener(this); scientificKey[3].setBounds(180, 210, BWIDTH + 10, BHEIGHT); scientificKey[3].setBackground(Color.yellow); scientificKey[3].setVisible(false); fr.add(scientificKey[3]); // aSine scientificKey[4] = new Button("aSin"); scientificKey[4].addActionListener(this); scientificKey[4].setBounds(220, 120, BWIDTH + 10, BHEIGHT); scientificKey[4].setBackground(Color.yellow); scientificKey[4].setVisible(false); fr.add(scientificKey[4]); // aCos scientificKey[5] = new Button("aCos"); scientificKey[5].addActionListener(this); scientificKey[5].setBounds(220, 150, BWIDTH + 10, BHEIGHT); scientificKey[5].setBackground(Color.yellow); scientificKey[5].setVisible(false); fr.add(scientificKey[5]); // aTan scientificKey[6] = new Button("aTan"); scientificKey[6].addActionListener(this); scientificKey[6].setBounds(220, 180, BWIDTH + 10, BHEIGHT); scientificKey[6].setBackground(Color.yellow); scientificKey[6].setVisible(false); fr.add(scientificKey[6]); // E scientificKey[7] = new Button("E"); scientificKey[7].addActionListener(this); scientificKey[7].setBounds(220, 210, BWIDTH + 10, BHEIGHT); scientificKey[7].setBackground(Color.yellow); scientificKey[7].setVisible(false); fr.add(scientificKey[7]); // to degrees scientificKey[8] = new Button("todeg"); scientificKey[8].addActionListener(this); scientificKey[8].setBounds(180, 240, BWIDTH + 10, BHEIGHT); scientificKey[8].setBackground(Color.yellow); scientificKey[8].setVisible(false); fr.add(scientificKey[8]); // to radians scientificKey[9] = new Button("torad"); scientificKey[9].addActionListener(this); scientificKey[9].setBounds(220, 240, BWIDTH + 10, BHEIGHT); scientificKey[9].setBackground(Color.yellow); scientificKey[9].setVisible(false); fr.add(scientificKey[9]); cbg = new CheckboxGroup(); degrees = new Checkbox("Degrees", cbg, true); radians = new Checkbox("Radians", cbg, false); degrees.addItemListener(this); radians.addItemListener(this); degrees.setBounds(185, 75, 3 * BWIDTH, BHEIGHT); radians.setBounds(185, 95, 3 * BWIDTH, BHEIGHT); degrees.setVisible(false); radians.setVisible(false); fr.add(degrees); fr.add(radians); fr.add(display); fr.setVisible(true); } // end of makeCalculator

public void actionPerformed(ActionEvent ae) { String buttonText = ae.getActionCommand(); double displayNumber = Double.valueOf(display.getText()).doubleValue(); // if the button pressed text is 0 to 9

if((buttonText.charAt(0) >= '0') & (buttonText.charAt(0)