Java Lab Manual

36
 1 EX.NO:01 DATE: IMPLEMENTATION OF RATIONAL NUMBERS  AIM: To develop Rational number class in Java. Use JavaDoc comment for documentation. Your implementation should use efficient representation for a rational number, i.e. (500 / 1000) should be represented as (½).  ALGORITHM: STEP 1: Get two inputs from the user through co mmand line arguments. STEP 2: Store the numerator to variable a and denominator to variable b. STEP 3: If both a and b are either positive o r negative, set the flag as 0. STEP 4: If either a or b is negative, set flag as 1. STEP 5: Compare the values of a and b and assign the lowest value to c. STEP 6: Set the for loop for i=2. STEP 7: If both a and b values are divisible by i, then perform (i) a=a/i; (ii) b=b/i; (ii) i=1; STEP 8: Repeat the loop if the value of i is less than c. Break the loop if the condition fails. STEP 9: If flag is 1, display the result as negative number; else display it as positive number. PROGRAM: import java.io.*; public class rat { public static void main(String[] args) { Rational a=new Rational(500,1000); System.out.println("\na="+a); } } class Rational { public Rational(int num,int denum) { numerator=num; if(denum==0) denuminator=1; else denuminator=denum; makeRational();

description

dffs

Transcript of Java Lab Manual

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 1/36

  1

EX.NO:01DATE:

IMPLEMENTATION OF RATIONAL NUMBERS

 AIM:

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

 ALGORITHM:

STEP 1: Get two inputs from the user through command line arguments.

STEP 2: Store the numerator to variable a and denominator to variable b.

STEP 3: If both a and b are either positive or negative, set the flag as 0.

STEP 4: If either a or b is negative, set flag as 1.

STEP 5: Compare the values of a and b and assign the lowest value to c.

STEP 6: Set the for loop for i=2.

STEP 7: If both a and b values are divisible by i, then perform

(i) a=a/i;

(ii) b=b/i;

(ii) i=1;

STEP 8: Repeat the loop if the value of i is less than c. Break the loop if the condition

fails.

STEP 9: If flag is 1, display the result as negative number; else display it as positive

number.

PROGRAM:

import java.io.*;public class rat 

{public static void main(String[] args){

Rational a=new Rational(500,1000);

System.out.println("\na="+a);}}

class Rational{public Rational(int num,int denum){numerator=num;if(denum==0)denuminator=1;else

denuminator=denum;makeRational();

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 2/36

  2

}private void makeRational(){int gcd;int divisor=0;if(denuminator<0){numerator=numerator*-1;denuminator=denuminator*-1;}gcd=greatestCommonDivisor(Math.abs(numerator),denuminator);numerator=numerator/gcd;denuminator=denuminator/gcd;}private int greatestCommonDivisor(int n,int d){int remainder=n %d;

while(remainder!=0){n=d;d=remainder;remainder=n%d;}return d;}public String toString(){String result=EMPTY_STRING;if(denuminator==1)result=String.valueOf(numerator);else{result=result.concat(String.valueOf(numerator));result=result.concat("/");result=result.concat(String.valueOf(denuminator));}return result;}

private static final String EMPTY_STRING="";private int numerator;private int denuminator;}

OUTPUT:

C:\jdk1.6.0_17\bin>javac rat.javaC:\jdk1.6.0_17\bin>java rat a=7/10C:\jdk1.6.0_17\bin> 

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 3/36

  3

RESULT:

Thus the program Implementation of rational numbers has been successfully

executed verified and successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 4/36

  4

EX.NO:02

DATE:

IMPLEMENTATION OF DATE CLASS

 AIM:

To develop Date class in Java similar to the one available in java.util package. UseJavaDoc comments.

 ALGORITHM:

STEP 1: Create a package which consists of constructors with the following arguments:i) Default 

ii)Taking 3 arguments year, day and monthiii)Taking 5 arguments year, day, month, hours and minutesiv)Taking 6 arguments year, day, month, hour, minutes and seconds

STEP 2: Get the year, month, date, hours, minutes, seconds using the getYear(),getMonth(), getDate(), getHours(), getMinutes(), getSeconds() methods.

STEP 3: Set all these details using set methods.STEP 4: After()-the after() method returns true if the current date comes after the

specified date else it returns falseSTEP 5: Before()-the before()method returns true if the current date comes before the

specified date else it returns falseSTEP 6: Compare()-the compare() method compares the current date with the specified

date and returns 0 if it is equal,if after it returns 1 and if before it returns -1.

PROGRAM:

import java.io.*;import java.util.Date;public class Dateclass{public static void main(String args[]){Date d1=new Date();try{

Thread.sleep(10);}catch(Exception e){}Date d2=new Date();System.out.println("First date:"+d1);System.out.println("Second date:"+d2);System.out.println("In second date after first:"+d2.after(d1));int result=d1.compareTo(d2);if(result>0)

System.out.println("First date is after second date");else if(result<0)

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 5/36

  5

System.out.println("First date is before second date");elseSystem.out.println("Both are equal");Date d=new Date(365L*24L*60L*60L*1000L);System.out.println(d);System.out.println("Milli Second since jan-1-1970 00:00:00:IST:"+d.getTime());}}

OUTPUT:

C:\ jdk1.6.0_17\bin>javac DateClass.javaC:\jdk1.6.0_17\bin>java DateClassFirst date:Wed Sep 29 20:23:17 GMT+05:30 2010Second date:Wed Sep 29 20:23:17 GMT+05:30 2010In second date after first:true

First date is before second dateFri Jan 01 05:30:00 GMT+05:30 1971Milli Second since jan-1-1970 00:00:00:IST:31536000000

RESULT:

Thus the program Implementation of date class has been successfully executed

verified and successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 6/36

  6

EX.NO:03

DATE:

IMPLEMENTATION OF LISP-LIKE-LIST

 AIM:

To 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].

 ALGORITHM:

STEP 1: Create a node of a list having data part and link part.STEP 2: Create a menu having the following choices : insert, car, cdr, adjoin and

display.STEP 3: Read the choice from the user and call the respective m ethods.

STEP 4: Create another class which implements the same interface to implement theconcept of stack through linked list.

INSERT

STEP 1: Create an object of node and append to the list.

CAR

STEP 1: Return the first node data.

CDR

STEP 1: Return all the node (data part) in the list except the first node.

 ADJOIN

STEP 1: Check if the node to be inserted is already present in the list, if not present append to the list.

PROGRAM:

import java.util.*;class Lisp

{public int car(List l){Object ob=l.get(0);String st=ob.toString();return Integer.parseInt(st);}public List cdr(List l){Object ob=l.remove(0);Object obj[]=l.toArray();

List list=Arrays.asList(obj);return list;

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 7/36

  7

}public static void main(String[] args){List <Integer>l=new ArrayList<Integer>();l.add(3);l.add(0);l.add(2);l.add(5);Lisp L=new Lisp();int val=L.car(l);System.out.println(val);List list=L.cdr(l);System.out.println(list);}}

OUTPUT:

C:\jdk1.6.0_17\bin>javac Lisp.javaC:\jdk1.6.0_17\bin>java Lisp3[0, 2, 5]C:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation of lisp-like-list has been successfully executedverified and successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 8/36

  8

EX.NO:04

DATE:

IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK 

 AIM:

To design a Java interface for ADT Stack. Develop two different classes that implement this interface, one using array and the other using linked-list. Providenecessary exception handling in both the implementations.

 ALGORITHM:

STEP 1: Create an interface which consists of three methods namely PUSH, POP andDISPLAY

STEP 2: Create a class which implements the above interface to implement the concept of stack through Array

STEP 3: Define all the methods of the interface to push any element, to pop the topelement and to display the elements present in the stack.

STEP 4: Create another class which implements the same interface to implement theconcept of stack through linked list.

STEP 5: Repeat STEP 4 for the above said class also.STEP 6: In the main class, get the choice from the user to choose whether array

implementation or linked list implementation of the stack.STEP 7: Call the methods appropriately according to the choices made by the user in the

previous step.STEP 8: Repeat step 6 and step 7 until the user stops his/her execution

PROGRAM:

import java.util.*;public class ListStack implements Stack {public ListStack(){topOfStack=null;}public boolean isEmpty()

{return topOfStack==null;}public void push(Object x){topOfStack=new ListNode(x,topOfStack);}public void pop(){if(isEmpty())throw new UnderflowException("ListStack pop");

System.out.println(topOfStack.element+"is deleted");topOfStack=topOfStack.next;

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 9/36

  9

}public void display(){DispNode=topOfStack;while(DispNode!=null){System.out.println(DispNode.element+" ");DispNode=DispNode.next;}}public static void main(String[] args){Scanner in=new Scanner(System.in);ListStack theList=new ListStack();int data=10;int choice;do

{System.out.println();System.out.println("-------------------------------------------------------------------");

System.out.println("STACK IMPLEMENTATION USING LINKED LIST");System.out.println("-------------------------------------------------------------------");System.out.println();System.out.println("1.PUSH");System.out.println("2.POP");System.out.println("3.DISPLAY");System.out.println("4.EXIT");System.out.println("\n ENTER YOUR CHOICE:");choice=in.nextInt();switch(choice){case 1:System.out.println("\n enter the element to push:");data=in.nextInt();theList.push(data);break;case 2:

theList.pop();break;case 3:System.out.println("the Stack elements are:");theList.display();break;case 4:break;default:System.out.println("wrong choice");}

}while(choice!=4);

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 10/36

  10

}private ListNode topOfStack;private ListNode DispNode;}class UnderflowException extends RuntimeException{public UnderflowException(String message){super(message);}}interface Stack {void push(Object x);void pop();void display();boolean isEmpty();

}class ListNode{public ListNode(Object theElement){this(theElement,null);}public ListNode(Object theElement,ListNode n){element=theElement;next=n;}public Object element;public ListNode next;}

OUTPUT:

C:\jdk1.6.0_17\bin>javac ListStack.java

C:\jdk1.6.0_17\bin>java ListStack ------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:1Enter the element to push:100-------------------------------------------------------------------

STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 11/36

  11

1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:3100-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:2100is deleted-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST

-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:3-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXIT

RESULT:

Thus the program Implementation of java interface for ADT stack has been successfullyexecuted verified and successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 12/36

  12

EX.NO:05

DATE:

IMPLEMENTATION OF POLYMORPHISM

 AIM:

To design a Vehicle class hierarchy in Java. Write a test program to demonstratePolymorphism. 

 ALGORITHM:

STEP 1: Create an abstract class named vehicle with abstract method Display and aconcrete method Input.

STEP 2: Define the input method by prompting the user to enter the values for name,

owner, type, number, engine capacity, seating capacity for the vehicle; all theinputs taken in the form string.

STEP 3: Extend three classes namely Air, Water and Land from the base class.STEP 4: Define the method display under the class Air by displaying all the entered

values.STEP 5: Repeat step 4 for the class Water.STEP 6: Extend the input method for the class Land by taking in the value of wheeling

capacity for the vehicle in the form of string.STEP 7: In the main method create a reference for the abstract class and create a switch

case to perform operations on the opted class.STEP 8: Under each class create a switch case to either enter the data or to display the

transport report.STEP 9: Repeat the main menu on the user's choice.STEP 10: Create array of objects under each class and call the methods by assigning the

values of the created objects to the reference object, to show polymorphism.

PROGRAM:

import java.io.*;public class VehicleTest 

{public static void main(String[] args){Vehicle corvette=new Corvette("Corvette","red",545000);Vehicle bettle=new Bettle("Bettle","blue",445000);Vehicle porsche=new Porsche("Porsche","black",625000);Vehicle vehicle=new Vehicle();vehicle=porsche;System.out.println("Name="+corvette.getName()+"\nColor="+corvette.getColor()+"\nPrice="+corvette.getPrice()+"\n\n");System.out.println("Name="+bettle.getName()+"\nColor="+bettle.getColor()+"\nPrice=

"+bettle.getPrice()+"\n\n");

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 13/36

  13

System.out.println("Name="+porsche.getName()+"\nColor="+porsche.getColor()+"\nPrice="+porsche.getPrice()+"\n\n");}}class Vehicle{String name;String color;double price;public Vehicle(){name="";color=" ";price=0;}public Vehicle(String name,String color,double price){

this.name=name;this.color=color;this.price=price;}public String getName(){return name;}public String getColor(){return color;}public double getPrice(){return price;}}class Bettle extends Vehicle{public Bettle(String name,String color,double price){

super(name,color,price);}}class Corvette extends Vehicle{public Corvette(String name,String color,double price){super(name,color,price);}}class Porsche extends Vehicle

{public Porsche(String name,String color,double price)

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 14/36

  14

{super(name,color,price);}}

OUTPUT:

C:\jdk1.6.0_17\bin>javac VehicleTest.javaC:\jdk1.6.0_17\bin>java VehicleTest Name=CorvetteColor=redPrice=545000.0

Name=Bettle

Color=bluePrice=445000.0

Name=PorscheColor=black Price=625000.0C:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation of polymorphism has been successfully executedverified and successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 15/36

  15

EX.NO:06 DATE:

IMPLEMENTATION OF OBJECT SERILIZATION

 AIM:

To design classes for Currency, Rupee, and Dollar. Write a program that randomlygenerates 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 aDollar, while leave the value as it is if it reads a Rupee.

 ALGORITHM :

STEP 1: Create a class named currency that implements the serializable interface andalso it is the base class for rupee and dollar classes.

STEP 2: Create an object for ObjectOutputStream to open a file in write mode usingFileOutputStream.

STEP 3: Read the user choice to enter rupee or dollar amount.STEP 4: Generate random numbers as the value of rupee or dollar.STEP 5: If choice is rupee then, append "Rs" to the value generated, else if choice is

dollar append "$" to the value generated.STEP 6: Display the appended String and also write it into the file opened using the

writeObject() method.STEP 7: Close the file.

 ALGORITHM FOR PROGRAM 2: STEP 1: Create a class named currency that implements the serializable interface and

also it is the base class for rupee and dollar classes.STEP 2: Create an object for ObjectInputStream to open the file created in program1 in

read mode using FileInputStream.STEP 3: If the file does not exist or if it is empty show exceptions.STEP 4: While the End of file is not reached, do the following...

(i) If the value read is a dollar convert into rupee and print to the user otherwiseprint the rupee as such.

STEP 5: End the program.

PROGRAM:

import java.util.*;import java.io.ObjectOutput;import java.io.FileOutputStream;import java.io.ObjectOutputStream;

class Rupee{public Rupee(){try{

Object object=new Object();object="45";

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 16/36

  16

ObjectOutput out=new ObjectOutputStream(new FileOutputStream("Rupees.dat"));out.writeObject(object);out.close();}catch(Exception e){e.printStackTrace();}}}class Dollar{public Dollar(){try{Object object=new Object();

object="45";ObjectOutput out=new ObjectOutputStream(new FileOutputStream("Dollar.dat"));out.writeObject(object);out.close();}catch(Exception e){e.printStackTrace();}}}public class Currency{public static void main(String args[]){new Rupee();new Dollar();}}//CURRENCY TEST

import java.io.FileInputStream;

import java.io.IOException;import java.io.ObjectInputStream;import java.util.ArrayList;import java.util.*;public class CurrencyTest {public static void main(String[] args){System.out.println("Select Input Type");System.out.println("\n1.Dollar\n2.Rupee\n\n");Scanner input=new Scanner(System.in);

int choice=input.nextInt();if(choice==1)

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 17/36

  17

{System.out.println("Enter No of Dollar:");int noDollar=input.nextInt();String value="";String filename="Dollar.dat";FileInputStream fis=null;ObjectInputStream in=null;try{fis=new FileInputStream(filename);in=new ObjectInputStream(fis);value=(String)in.readObject();in.close();}catch(IOException ex){ex.printStackTrace();

}catch(ClassNotFoundException ex){ex.printStackTrace();}System.out.println("The Equal Rupee is:"+noDollar*(Integer.parseInt(value)));System.out.println();}else if(choice==2){System.out.println("Enter Rupee:");int noRupee=input.nextInt();System.out.println("The Rupee is:"+noRupee);System.out.println();}}}

OUTPUT:

C:\jdk1.6.0_17\bin>javac Currency.javaC:\jdk1.6.0_17\bin>java Currency

C:\jdk1.6.0_17\bin>javac CurrencyTest.javaC:\jdk1.6.0_17\bin>java CurrencyTest Select Input Type

1.Dollar2.Rupee

1Enter No of Dollar:

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 18/36

  18

45The Equal Rupee is:2025C:\jdk1.6.0_17\bin>java CurrencyTest Select Input Type

1.Dollar2.Rupee

2Enter Rupee:45The Rupee is:45C:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation object serialization has been successfully executedverified and successfully.

EX.NO:07

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 19/36

  19

DATE:

IMPLEMENTATION OF SCENTIFIC CALCULATOR USING

EVENT DRIVEN PROGRAMMING

 AIM:

To develop a scientific calculator using even-driven programming paradigm of Java.

 ALGORITHM:

STEP 1: Create a panel consisting of Buttons for various scientific operations.STEP 2: Create Button actions.STEP 3: Place the panel onto a frame.STEP 4: Associate each Button click with the corresponding actionlistener.

PROGRAM:

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.*;public class Calculator{public static void main(String[] args){CalculatorFrame frame = new CalculatorFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}class CalculatorFrame extends JFrame{public CalculatorFrame(){setTitle("Calculator");CalculatorPanel panel = new CalculatorPanel();add(panel);

pack();}}class CalculatorPanel extends JPanel{public CalculatorPanel(){setLayout(new BorderLayout());result = 0;lastCommand = "=";start = true;

display = new JButton("0");display.setEnabled(false);

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 20/36

  20

add(display, BorderLayout.NORTH);ActionListener insert = new InsertAction();ActionListener command = new CommandAction();panel = new JPanel();panel.setLayout(new GridLayout(6,5));

addButton("7", insert);addButton("8", insert);addButton("9", insert);addButton("/", command);addButton("CE", command);

addButton("4", insert);addButton("5", insert);addButton("6", insert);addButton("*", command);addButton("m+", command);

addButton("1", insert);addButton("2", insert);addButton("3", insert);addButton("-", command);addButton("m-", command);

addButton("0", insert);addButton(".", insert);addButton("+/-", command);addButton("+", command);addButton("n!", command);

addButton("pow", command);addButton("1/x", insert);addButton("SQRT", insert);addButton("log", insert);addButton("%", command);

addButton("sin", insert);addButton("cos", insert);

addButton("tan", insert);addButton("x2", insert);addButton("=", command);

add(panel, BorderLayout.CENTER);}private void addButton(String label, ActionListener listener){JButton button = new JButton(label);button.addActionListener(listener);panel.add(button);

}private class InsertAction implements ActionListener

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 21/36

  21

{public void actionPerformed(ActionEvent event){String input = event.getActionCommand();if (start==true){display.setText("");start = false;}if(input.equals("1/x"))display.setText(""+1/Double.parseDouble(display.getText()));elseif(input.equals("SQRT"))display.setText(""+Math.sqrt(Double.parseDouble(display.getText())));

elseif(input.equals("log"))

display.setText(""+Math.log(Double.parseDouble(display.getText())));

elseif(input.equals("x2"))display.setText(""+Double.parseDouble(display.getText())*Double.parseDouble(display.getText()));

elseif(input.equals("sin")){Double angle=Double.parseDouble(display.getText())*2.0*Math.PI/360.0;display.setText(""+Math.sin(angle));}else if(input.equals("cos")){Double angle=Double.parseDouble(display.getText())*2.0*Math.PI/360.0;display.setText(""+Math.cos(angle));}elseif(input.equals("tan")){

Double angle=Double.parseDouble(display.getText())*2.0*Math.PI/360.0;display.setText(""+Math.tan(angle));}elsedisplay.setText(display.getText() + input);}}private class CommandAction implements ActionListener{public void actionPerformed(ActionEvent event){

String command = event.getActionCommand();

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 22/36

  22

if (start==true){if (command.equals("-")){display.setText(command);start = false;}elselastCommand = command;}else{calculate(Double.parseDouble(display.getText()));lastCommand = command;start = true;}}

}public void calculate(double x){if (lastCommand.equals("+")) result += x;else if (lastCommand.equals("-")) result -= x;else if (lastCommand.equals("*")) result *= x;else if (lastCommand.equals("/")) result /= x;else if (lastCommand.equals("=")) result = x;else if (lastCommand.equals("CE")) result = 0.0;else if (lastCommand.equals("m+")) result = result;else if (lastCommand.equals("m-")) result = 0.0;else if (lastCommand.equals("pow")){double powval=1.0;for(double i=0.0;i<x;i++)powval*=result;result=powval;}display.setText(""+ result);}private JButton display;

private JPanel panel;private double result;private String lastCommand;private boolean start;}

OUTPUT:

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 23/36

  23

C:\jdk1.6.0_17\bin>javac Calculator.javaC:\jdk1.6.0_17\bin>java CalculatorC:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation of scientific calculator using event drivenprogramming has been successfully executed verified and successfully.EX.NO:08

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 24/36

  24

DATE:

IMPLEMENTATION OF MULTI THREADED PROGRAM

 AIM:

To write a multi-threaded Java program to print all numbers below 100,000 that areboth prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design athread that generates prime numbers below 100,000 and writes them into a pipe.Design another thread that generates fibonacci numbers and writes them to anotherpipe. The main thread should read both the pipes to identify numbers common toboth.

 ALGORITHM:

STEP 1: CreateThread1 which generates prime numbers below 100,000 and store inpipe1.

STEP 2: Create Thread2 which generates Fibonacci numbers below 100,000 and storein

pipe 2.STEP 3: Write a main program which does the following:

(i)  Call the two threads created in step1 and step2.(ii)  Read the data from pipe1 and pipe 2 and print the numbers common to

both.

PROGRAM:

import java.util.*;import java.io.*;class Fibonacci extends Thread{private PipedWriter out=new PipedWriter();public PipedWriter getPipedWriter(){return out;}public void run()

{Thread t=Thread.currentThread();t.setName("Fibonacci:");System.out.println(t.getName()+"Thread stored......");int fibo1=0,fibo2=1,fibo=0;while(true){try{fibo=fibo1+fibo2;if(fibo>100000)

{out.close();

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 25/36

  25

break;}out.write(fibo);sleep(1000);

}catch(Exception e){System.out.println("Fibonacci:"+e);}fibo1=fibo2;fibo2=fibo;}System.out.println(t.getName()+"Thread exiting.");}}class Prime extends Thread

{private PipedWriter out1=new PipedWriter();public PipedWriter getPipedWriter(){return out1;}public void run(){Thread t=Thread.currentThread();t.setName("Prime:");System.out.println(t.getName()+"Thread stored.......");int prime=1;while(true){try{if(prime>100000){out1.close();break;}

if(isPrime(prime))out1.write(prime);prime++;sleep(0);}catch(Exception e){System.out.println(t.getName()+"Thread exiting.");System.exit(0);}} }

public boolean isPrime(int n){

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 26/36

  26

int m=(int)Math.round(Math.sqrt(n));if(n==1||n==2)return true;for(int i=2;i<=m;i++)if(n%i==0)return false;return true;}}public class PipedIo{public static void main(String[] args)throws Exception{Thread t=Thread.currentThread();t.setName("Main:");System.out.println(t.getName()+"Thread sorted......");Fibonacci fibonacci=new Fibonacci();

Prime prime=new Prime();PipedReader fpr=new PipedReader(fibonacci.getPipedWriter());PipedReader ppr=new PipedReader(prime.getPipedWriter());fibonacci.start();prime.start();int fib=fpr.read(),prm=ppr.read();System.out.println("The Numbers Common To PRIME and FIBONACCI:");while ((fib!=-1)&&(prm!=-1)){while(prm<=fib){if(fib==prm)System.out.println(prm);prm=ppr.read();}fib=fpr.read();}System.out.println(t.getName()+"Thread exiting.");} }

OUTPUT: 

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 27/36

  27

C:\jdk1.6.0_17\bin>javac PipedIo.java

C:\jdk1.6.0_17\bin>java PipedIoMain:Thread sorted......Fibonacci:Thread stored......Prime:Thread stored.......The Numbers Common To PRIME and FIBONACCI:12351389233159728657

Fibonacci:Thread exiting.Main:Thread exiting.Prime:Thread exiting.

C:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation of multi threaded program to find Fibonacci series

has been Successfully executed and verified successfully.

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 28/36

  28

EX.NO:09

DATE:

PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY 

 AIM:

To develop a simple OPAC system for library using event-driven and concurrent Programming paradigms of Java. Use JDBC to connect to a back-end database.

 ALGORITHM:

STEP 1: Create a Master Database1(Book Details) having the following fields: BookNo.,Book Name, Author, No. of pages, Name of Publisher, Cost.

STEP 2: Create a Master Database2(User Details) having the following fields : UserID,

Department STEP 3: Create a Transaction Database having the following fields: UserID,

Book No., Date of Renewal / Date of Return, FineSTEP 4: Create a panel consisting of buttons ADD, UPDATE, DELETE. Associate these

button actions with listeners(with Master Database 1)STEP 5: Create a panel consisting of buttons ADD, UPDATE, DELETE. Associate these

button actions with listeners(with Master Database 2)STEP 6: Create another panel consisting of buttons UserID, BookID, Return/Renewal,

Fine.STEP 7: Associate these buttons with listeners(with Transaction Database).

EVENT DRIVEN:

import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Datas extends JFrame implements ActionListener{JTextField id;JTextField name;

JButton next;JButton addnew;JPanel p;static ResultSet res;static Connection conn;static Statement stat;public Datas(){super("Our Application");Container c = getContentPane();c.setLayout(new GridLayout(5,1));

id = new JTextField(20);name = new JTextField(20);

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 29/36

  29

next = new JButton("Next BOOK");p = new JPanel();c.add(new JLabel("ISBN",JLabel.CENTER));c.add(id);c.add(new JLabel("Book Name",JLabel.CENTER));c.add(name);c.add(p);p.add(next);next.addActionListener(this);pack();setVisible(true);addWindowListener(new WIN());}public static void main(String args[]){Datas d = new Datas();try

{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn = DriverManager.getConnection("jdbc:odbc:custo"); // custo is the DSN Namestat = conn.createStatement();res = stat.executeQuery("Select * from Customers"); // Customers is the table nameres.next();}catch(Exception e){System.out.println("Error" +e);}d.showRecord(res);}public void actionPerformed(ActionEvent e){if(e.getSource() == next){try{res.next();}

catch(Exception ee) {}showRecord(res);}}public void showRecord(ResultSet res){try{id.setText(res.getString(1));name.setText(res.getString(2));}

catch(Exception e) {}}

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 30/36

  30

class WIN extends WindowAdapter{public void windowClosing(WindowEvent w){JOptionPane jop = new JOptionPane();jop.showMessageDialog(null,"Database","Thanks",JOptionPane.QUESTION_MESSAGE);}} //end of WIN class}//end of Datas class

OUTPUT: 

D:\ Java\jdk1.5.0_03\bin>javac Datas.javaD:\ Java\jdk1.5.0_03\bin>java Datas

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 31/36

  31

CONCURRENT PROGRAMMING:

import java.sql.*;import java.sql.DriverManager.*;class Ja{String bookid,bookname;int booksno;Connection con;Statement stmt;ResultSet rs;Ja(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:cust");}catch(Exception e){System.out.println("connection error");}}void myput(){try{stmt=con.createStatement();rs=stmt.executeQuery("SELECT * FROM cust1");while(rs.next()){booksno=rs.getInt(1);bookid=rs.getString(2);bookname=rs.getString(3);System.out.println("\n"+ booksno+"\t"+bookid+"\t"+bookname);}rs.close();

stmt.close();con.close();}catch(SQLException e){System.out.println("sql error");}}}

class prog1

{public static void main(String arg[])

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 32/36

  32

{Ja j=new Ja();j.myput();}}

OUTPUT:

D:\ Java\jdk1.5.0_03\bin>javac Ja.javaD:\ Java\jdk1.5.0_03\bin>java prog1

1 10 JAVA

2 20 C++

3 30 C#

RESULT:

Thus the program Implementation of simple OPAC system for library has been

Successfully executed and verified successfullyEX.NO:10 

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 33/36

  33

DATE:

IMPLEMENTATION OF MULTI-THREADED ECHO SERVER

 AIM:

To develop multi-threaded echo server and a corresponding GUI client in Java.

 ALGORITHM FOR SERVER:

STEP 1: Establish the connection of socket.STEP 2: Assign the local Protocol address to the socket.STEP 3: Move the socket from closed to listener state and provide maximum no. of 

Connections.STEP 4: Create a new socket connection using client address.STEP 5: Read the data from the socket.STEP 6: Write the data into socket.STEP 7: Close the socket.

 ALGORITHM FOR CLIENT:STEP 1: Open the socket.STEP 2: Get the host name and port number from client.STEP 3: Write a request to the buffer that contain the request number as a byte to the

output stream.STEP 4: Get the message from the user.STEP 5: Write to the socket.STEP 6: Set the write operation for success.STEP 7: Read the contents from the socket / Buffer.STEP 8: Close the socket.

PROGRAM:

//SERVER

import java .io.*;import java.net.ServerSocket;import java.net.Socket;public class SimpleThreadedSocketListener{ServerSocket server;int serverPort=8888;public SimpleThreadedSocketListener()

{try{server=new ServerSocket(serverPort);System.out.println("ServerSocket:"+server);}catch(IOException e){e.printStackTrace();}}

private void listen(){

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 34/36

  34

while(true){try{Socket socket=server.accept();System.out.println("Socket:"+socket);new ClientThread(socket).start();}catch(IOException e){e.printStackTrace();}}}public static void main(String[]args){new SimpleThreadedSocketListener().listen();

}class ClientThread extends Thread{Socket socket;public ClientThread(Socket socket){this.socket=socket;}public void run(){InputStream in;try{in=socket.getInputStream();int byteRead;while((byteRead=in.read())!=-1){System.out.print((char)byteRead);}}catch(IOException e)

{e.printStackTrace();}}}}//CLIENT

import java .io.*;import java .awt.*;import java .awt.event.*;import java .net.*;

import javax.swing.*;public class SimpleClient extends JFrame implements ActionListener

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 35/36

  35

{Socket client=null;String serverAddr="localhost";int serverPort=8888;PrintWriter out;JTextField tf;public SimpleClient(){Try{client=new Socket(serverAddr,serverPort);System.out.println("Client:"+client);out=new PrintWriter(client.getOutputStream());out.println("HELLOW");out.flush();}catch(UnknownHostException e)

{e.printStackTrace();}catch(IOException e){e.printStackTrace();}Container cp=this.getContentPane();cp.setLayout(new FlowLayout(FlowLayout.LEFT,15,15));cp.add(new JLabel("Enter your message or\"quit\""));tf=new JTextField(40);tf.addActionListener(this);cp.add(tf);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setTitle("simple Client");this.setVisible(true);}public void actionPerformed(ActionEvent e){String message=tf.getText();

System.out.println(message);if(message.equals("quit")){try{out.close();client.close();System.exit(0);}catch(IOException e1){

e1.printStackTrace();}

7/14/2019 Java Lab Manual

http://slidepdf.com/reader/full/java-lab-manual-5631087ff2aac 36/36

}else{out.println(message);out.flush();tf.setText("");}}public static void main(String[] args){new SimpleClient();}}

OUTPUT: 

C:\jdk1.6.0_17\bin>javac SimpleClient.javaC:\jdk1.6.0_17\bin>java SimpleClient Client:Socket[addr=localhost/127.0.0.1,port=8888,localport=1040]

C:\jdk1.6.0_17\bin>javac SimpleThreadedSocketListener.javaC:\jdk1.6.0_17\bin>java SimpleThreadedSocketListener

ServerSocket:ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8888]Socket:Socket[addr=/127.0.0.1,port=1040,localport=8888]

HELLOWrajaramurajeshramki

C:\jdk1.6.0_17\bin>

RESULT:

Thus the program Implementation of multi threaded echo server has been successfullyexecuted verified and successfully