Top Banner

of 38

Java Labmanual Latest for java programming and its laboratory

Mar 02, 2016

Download

Documents

Java Labmanual Latest for java programming and its laboratory
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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)