SlideShare ist ein Scribd-Unternehmen logo
1 von 43
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C.COLLEGE OF ENGINEERING
MANNAMPANDAL, MAYILADUTHURAI-609 305
Department of Computer Science & Engineering
LAB MANUAL
FOR THE SUBJECT OF
JAVA LAB
Subject Code : CS 2309
Semester : V SEMESTER
Department : B.E CSE
Academic Year : 2013-2014
Name of the Faculty : Ms. M. Parvathi, Asst. Prof
Mrs. H.Prabavathi, Asst. Prof.
Signature of the Staff Signature of the HOD
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C College of Engineering
Mannampandal – 609 305
Department of Computer Science & Engineering
LAB MANUAL -Academic Year 2013 – 2014 Odd Semester
Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof.
Branch/ Year/ Sem: CSE / III / V
Subject : CS2309 Java Lab
SYLLABUS
CS2309 JAVA LAB L T P C
0 0 3 2
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 (½).
2. Develop Date class in Java similar to the one available in java.util package. Use
JavaDoc comments.
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].
4. Design a Java interface for ADT Stack. Develop two different classes that implement
this interface, one using array and the other using linked-list. Provide necessary
exception handling in both the implementations.
5. Design a Vehicle class hierarchy in Java. Write a test program to demonstrate
polymorphism.
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.
7. Design a scientific calculator using event-driven programming paradigm of Java.
8. Write a multi-threaded Java program to print all numbers below 100,000 that are
both prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design a
thread that generates prime numbers below 100,000 and writes them into a pipe.
Design another thread that generates fibonacci numbers and writes them to another
pipe. The main thread should read both the pipes to identify numbers common to
both.
1
AVCCE CSE/V CS2309 JAVA LAB MANUAL
9. Develop a simple OPAC system for library using even-driven and concurrent
programming paradigms of Java. Use JDBC to connect to a back-end database.
10. Develop multi-threaded echo server and a corresponding GUI client in Java.
11. [Mini-Project] Develop a programmer's editor in Java that supports syntaxhighlighting,
compilation support, debugging support, etc.
TOTAL= 45 PERIODS
Requirement for a Batch of 30 Students
S.No. Description of Equipment Quantity Required
1 PC’s 30
2 JUM & J2SE(Freeware) 30
3 MYSQL or any other DB 30
2
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C College of Engineering
Mannampandal – 609 305
Department of Computer Science & Engineering
LAB PLAN -Academic Year 2013 – 2014 Odd Semester
Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof.
Branch/ Year/ Sem: CSE / III / V
Subject : CS2309 Java Lab
S.
No
Name of the Exercise Reference Batch
1. IMPLEMENTATION OF RATIONAL
NUMBERS
Lab Manual Batch –
B1(6,7,8) &
B2(6,7,8)
2. IMPLEMENTATION OF DATE CLASS
3. IMPLEMENTATION OF LISP-LIKE-
LIST
4.
IMPLEMENTATION OF JAVA
INTERFACE FOR ADT STACK
6. IMPLEMENTATION OF
POLYMORPHISM
8. IMPLEMENTATION OF OBJECT
SERILIZATION
10. IMPLEMENTATION OF SCENTIFIC
CALCULATOR USING EVENT
DRIVEN PROGRAMMING
3
AVCCE CSE/V CS2309 JAVA LAB MANUAL
11. IMPLEMENTATION OF MULTI
THREADED PROGRAM
12. PROGRAM FOR SIMPLE OPAC
SYSTEM FOR LIBRARY
13. IMPLEMENTATION OF MULTI-
THREADED ECHO SERVER
Tentative No. of Lab Periods : 30
EX.NO:01 IMPLEMENTATION OF RATIONAL NUMBERS
AIM:
4
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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(35,50);
System.out.println("na="+a);
}
}
class Rational
{
public Rational(int num,int denum)
{
numerator=num;
if(denum==0)
denuminator=1;
else
denuminator=denum;
makeRational();
}
private void makeRational(
{
int gcd;
int divisor=0;
if(denuminator<0)
{
5
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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_17bin>javac rat.java
C:jdk1.6.0_17bin>java rat
a=7/10
C:jdk1.6.0_17bin>
RESULT:
6
AVCCE CSE/V CS2309 JAVA LAB MANUAL
Thus the program Implementation of rational numbers has been successfully executed
verified and successfully.
EX.NO:02 IMPLEMENTATION OF DATE CLASS
AIM:
7
AVCCE CSE/V CS2309 JAVA LAB MANUAL
To develop Date class in Java similar to the one available in java.util package. Use JavaDoc
comments.
ALGORITHM:
STEP 1: Create a package which consists of constructors with the following arguments:
i) Default
ii)Taking 3 arguments year, day and month
iii)Taking 5 arguments year, day, month, hours and minutes
iv)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 false
STEP 5: Before()-the before()method returns true if the current date comes before the
specified date else it returns false
STEP 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)
System.out.println("First date is before second date");
8
AVCCE CSE/V CS2309 JAVA LAB MANUAL
else
System.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_17bin>javac DateClass.java
C:jdk1.6.0_17bin>java DateClass
First date:Wed Sep 29 20:23:17 GMT+05:30 2010
Second date:Wed Sep 29 20:23:17 GMT+05:30 2010
In second date after first:true
First date is before second date
Fri Jan 01 05:30:00 GMT+05:30 1971
Milli 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.
EX.NO:03 IMPLEMENTATION OF LISP-LIKE-LIST
AIM:
9
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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 the
concept 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;
}
public static void main(String[] args)
{
10
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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_17bin>javac Lisp.java
C:jdk1.6.0_17bin>java Lisp
3
[0, 2, 5]
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation of lisp-like-list has been successfully executed verified and
successfully.
EX.NO:04 IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK
AIM:
11
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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. Provide necessary exception handling in
both the implementations.
ALGORITHM:
STEP 1: Create an interface which consists of three methods namely PUSH, POP and
DISPLAY
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 top
element and to display the elements present in the stack.
STEP 4: Create another class which implements the same interface to implement the
concept 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;
}
public void display()
12
AVCCE CSE/V CS2309 JAVA LAB MANUAL
{
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");
13
AVCCE CSE/V CS2309 JAVA LAB MANUAL
}
}
while(choice!=4);
}
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_17bin>javac ListStack.java
C:jdk1.6.0_17bin>java ListStack
------------------------------------------------------------------
STACK IMPLEMENTATION USING LINKED LIST
------------------------------------------------------------------
1. PUSH
14
AVCCE CSE/V CS2309 JAVA LAB MANUAL
2. POP
3. DISPLAY
4. EXIT
ENTER YOUR OPTION:1
Enter the element to push:100
-------------------------------------------------------------------
STACK IMPLEMENTATION USING LINKED LIST
-------------------------------------------------------------------
1. PUSH
2. POP
3. DISPLAY
4. EXIT
ENTER YOUR OPTION:3
100
-------------------------------------------------------------------
STACK IMPLEMENTATION USING LINKED LIST
-------------------------------------------------------------------
1. PUSH
2. POP
3. DISPLAY
4. EXIT
ENTER YOUR OPTION:2
100is deleted
-------------------------------------------------------------------
STACK IMPLEMENTATION USING LINKED LIST
-------------------------------------------------------------------
1. PUSH
2. POP
3. DISPLAY
4. EXIT
ENTER YOUR OPTION:3
-------------------------------------------------------------------
STACK IMPLEMENTATION USING LINKED LIST
-------------------------------------------------------------------
1. PUSH
2. POP
3. DISPLAY
4. EXIT
RESULT:
Thus the program Implementation of java interface for ADT stack has been successfully executed
verified and successfully.
EX.NO:05 IMPLEMENTATION OF POLYMORPHISM
15
AVCCE CSE/V CS2309 JAVA LAB MANUAL
AIM:
To design a Vehicle class hierarchy in Java. Write a test program to demonstrate
Polymorphism.
ALGORITHM:
STEP 1: Create an abstract class named vehicle with abstract method Display and a
concrete 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 the
inputs 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()+"nn");
System.out.println("Name="+bettle.getName()+"nColor="+bettle.getColor()
+"nPrice="+bettle.getPrice()+"nn");
System.out.println("Name="+porsche.getName()+"nColor="+porsche.getColor()
+"nPrice="+porsche.getPrice()+"nn");
16
AVCCE CSE/V CS2309 JAVA LAB MANUAL
}
}
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);
}
}
17
AVCCE CSE/V CS2309 JAVA LAB MANUAL
class Porsche extends Vehicle
{
public Porsche(String name,String color,double price)
{
super(name,color,price);
}
}
OUTPUT:
C:jdk1.6.0_17bin>javac VehicleTest.java
C:jdk1.6.0_17bin>java VehicleTest
Name=Corvette
Color=red
Price=545000.0
Name=Bettle
Color=blue
Price=445000.0
Name=Porsche
Color=black
Price=625000.0
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation of polymorphism has been successfully executed verified and
successfully.
EX.NO:06 IMPLEMENTATION OF OBJECT SERILIZATION
18
AVCCE CSE/V CS2309 JAVA LAB MANUAL
AIM:
To 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.
ALGORITHM :
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 ObjectOutputStream to open a file in write mode using
FileOutputStream.
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 otherwise
print 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";
19
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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)
{
20
AVCCE CSE/V CS2309 JAVA LAB MANUAL
System.out.println("Select Input Type");
System.out.println("n1.Dollarn2.Rupeenn");
Scanner input=new Scanner(System.in);
int choice=input.nextInt();
if(choice==1)
{
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_17bin>javac Currency.java
C:jdk1.6.0_17bin>java Currency
21
AVCCE CSE/V CS2309 JAVA LAB MANUAL
C:jdk1.6.0_17bin>javac CurrencyTest.java
C:jdk1.6.0_17bin>java CurrencyTest
Select Input Type
1.Dollar
2.Rupee
1
Enter No of Dollar:
45
The Equal Rupee is:2025
C:jdk1.6.0_17bin>java CurrencyTest
Select Input Type
1.Dollar
2.Rupee
2
Enter Rupee:
45
The Rupee is:45
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation object serialization has been successfully executed verified and
successfully.
EX.NO:07 IMPLEMENTATION OF SCENTIFIC CALCULATOR USING
EVENT DRIVEN PROGRAMMING
AIM:
22
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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);
add(display, BorderLayout.NORTH);
23
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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);
24
AVCCE CSE/V CS2309 JAVA LAB MANUAL
button.addActionListener(listener);
panel.add(button);
}
private class InsertAction implements ActionListener
{
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()));
else
if(input.equals("SQRT"))
display.setText(""+Math.sqrt(Double.parseDouble(display.getText())));
else
if(input.equals("log"))
display.setText(""+Math.log(Double.parseDouble(display.getText())));
else
if(input.equals("x2"))
display.setText(""+Double.parseDouble(display.getText())*
Double.parseDouble(display.getText()));
else
if(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));
}
else
if(input.equals("tan"))
{
Double angle=Double.parseDouble(display.getText())*2.0*Math.PI/360.0;
display.setText(""+Math.tan(angle));
}
else
25
AVCCE CSE/V CS2309 JAVA LAB MANUAL
display.setText(display.getText() + input);
}
}
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command = event.getActionCommand();
if (start==true)
{
if (command.equals("-"))
{
display.setText(command);
start = false;
}
else
lastCommand = 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);
}
26
AVCCE CSE/V CS2309 JAVA LAB MANUAL
private JButton display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
}
OUTPUT:
C:jdk1.6.0_17bin>javac Calculator.java
C:jdk1.6.0_17bin>java Calculator
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation of scientific calculator using event driven programming has
been successfully executed verified and successfully.
EX.NO:08 IMPLEMENTATION OF MULTI THREADED PROGRAM
AIM:
27
AVCCE CSE/V CS2309 JAVA LAB MANUAL
To write a multi-threaded Java program to print all numbers below 100,000 that are
both prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design a
thread that generates prime numbers below 100,000 and writes them into a pipe.
Design another thread that generates fibonacci numbers and writes them to another
pipe. The main thread should read both the pipes to identify numbers common to
both.
ALGORITHM:
STEP 1: CreateThread1 which generates prime numbers below 100,000 and store in
pipe1.
STEP 2: Create Thread2 which generates Fibonacci numbers below 100,000 and store in
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();
break;
}
out.write(fibo);
28
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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);
}
} }
29
AVCCE CSE/V CS2309 JAVA LAB MANUAL
public boolean isPrime(int n)
{
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:
30
AVCCE CSE/V CS2309 JAVA LAB MANUAL
C:jdk1.6.0_17bin>javac PipedIo.java
C:jdk1.6.0_17bin>java PipedIo
Main:Thread sorted......
Fibonacci:Thread stored......
Prime:Thread stored.......
The Numbers Common To PRIME and FIBONACCI:
1
2
3
5
13
89
233
1597
28657
Fibonacci:Thread exiting.
Main:Thread exiting.
Prime:Thread exiting.
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation of multi threaded program to find Fibonacci series has been
Successfully executed and verified successfully.
EX.NO:09 PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY
AIM:
31
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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, Fine
STEP 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);
next = new JButton("Next BOOK");
p = new JPanel();
c.add(new JLabel("ISBN",JLabel.CENTER));
32
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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 Name
stat = conn.createStatement();
res = stat.executeQuery("Select * from Customers"); // Customers is the table name
res.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));
}
33
AVCCE CSE/V CS2309 JAVA LAB MANUAL
catch(Exception e) {}
}
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: Javajdk1.5.0_03bin>javac Datas.java
D: Javajdk1.5.0_03bin>java Datas
34
AVCCE CSE/V CS2309 JAVA LAB MANUAL
CONCURRENT PROGRAMMING:
import java.sql.*;
import java.sql.DriverManager.*;
class Ja
{
String bookid,bookname;
int booksno;
Connection con;
Statement stmt;
ResultSet rs;
Ja()
{
try
35
AVCCE CSE/V CS2309 JAVA LAB MANUAL
{
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[])
{
Ja j=new Ja();
j.myput();
}
}
OUTPUT:
D: Javajdk1.5.0_03bin>javac Ja.java
D: Javajdk1.5.0_03bin>java prog1
36
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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 successfully
37
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:10 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();
38
AVCCE CSE/V CS2309 JAVA LAB MANUAL
}
}
private void listen()
{
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();
}
}
39
AVCCE CSE/V CS2309 JAVA LAB MANUAL
}
}
//CLIENT
import java .io.*;
import java .awt.*;
import java .awt.event.*;
import java .net.*;
import javax.swing.*;
public class SimpleClient extends JFrame implements ActionListener
{
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)
{
40
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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();
}
}
else
{
out.println(message);
out.flush();
tf.setText("");
}
}
public static void main(String[] args)
{
new SimpleClient();
}
}
OUTPUT:
C:jdk1.6.0_17bin>javac SimpleClient.java
C:jdk1.6.0_17bin>java SimpleClient
Client:Socket[addr=localhost/127.0.0.1,port=8888,localport=1040]
C:jdk1.6.0_17bin>javac SimpleThreadedSocketListener.java
C:jdk1.6.0_17bin>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]
41
AVCCE CSE/V CS2309 JAVA LAB MANUAL
HELLOW
raja
ramu
rajesh
ramki
C:jdk1.6.0_17bin>
RESULT:
Thus the program Implementation of multi threaded echo server has been successfully executed
verified and successfully.
42

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Java interface
Java interfaceJava interface
Java interface
 
Vim Editor And Basic Scripting (Ch-7)
Vim Editor And Basic Scripting (Ch-7)Vim Editor And Basic Scripting (Ch-7)
Vim Editor And Basic Scripting (Ch-7)
 
Static Data Members and Member Functions
Static Data Members and Member FunctionsStatic Data Members and Member Functions
Static Data Members and Member Functions
 
C# Lab Programs.pdf
C# Lab Programs.pdfC# Lab Programs.pdf
C# Lab Programs.pdf
 
Postman
PostmanPostman
Postman
 
Kotlin for Android Development
Kotlin for Android DevelopmentKotlin for Android Development
Kotlin for Android Development
 
Junit
JunitJunit
Junit
 
c++ project on restaurant billing
c++ project on restaurant billing c++ project on restaurant billing
c++ project on restaurant billing
 
Java
JavaJava
Java
 
File handling in c++
File handling in c++File handling in c++
File handling in c++
 
Abstract class in java
Abstract class in javaAbstract class in java
Abstract class in java
 
OOP Assignment 03.pdf
OOP Assignment 03.pdfOOP Assignment 03.pdf
OOP Assignment 03.pdf
 
C# programming language
C# programming languageC# programming language
C# programming language
 
Android async task
Android async taskAndroid async task
Android async task
 
VTU Design and Analysis of Algorithms(DAA) Lab Manual by Nithin, VVCE, Mysuru...
VTU Design and Analysis of Algorithms(DAA) Lab Manual by Nithin, VVCE, Mysuru...VTU Design and Analysis of Algorithms(DAA) Lab Manual by Nithin, VVCE, Mysuru...
VTU Design and Analysis of Algorithms(DAA) Lab Manual by Nithin, VVCE, Mysuru...
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
compiler ppt on symbol table
 compiler ppt on symbol table compiler ppt on symbol table
compiler ppt on symbol table
 
Java introduction
Java introductionJava introduction
Java introduction
 
Java I/o streams
Java I/o streamsJava I/o streams
Java I/o streams
 
C# basics
 C# basics C# basics
C# basics
 

Andere mochten auch

66781291 java-lab-manual
66781291 java-lab-manual66781291 java-lab-manual
66781291 java-lab-manualLaura Popovici
 
Java programming lab manual
Java programming lab manualJava programming lab manual
Java programming lab manualsameer farooq
 
Java programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarJava programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarROHIT JAISWAR
 
tL20 event handling
tL20 event handlingtL20 event handling
tL20 event handlingteach4uin
 
Webdesing lab part-b__java_script_
Webdesing lab part-b__java_script_Webdesing lab part-b__java_script_
Webdesing lab part-b__java_script_Shivanand Algundi
 
Cs2312 OOPS LAB MANUAL
Cs2312 OOPS LAB MANUALCs2312 OOPS LAB MANUAL
Cs2312 OOPS LAB MANUALPrabhu D
 
Event Handling in java
Event Handling in javaEvent Handling in java
Event Handling in javaGoogle
 
Java J2EE Interview Questions Part-1
Java J2EE Interview Questions Part-1Java J2EE Interview Questions Part-1
Java J2EE Interview Questions Part-1javatrainingonline
 
Advanced Java - Praticals
Advanced Java - PraticalsAdvanced Java - Praticals
Advanced Java - PraticalsFahad Shaikh
 
Java Applet and Graphics
Java Applet and GraphicsJava Applet and Graphics
Java Applet and GraphicsOXUS 20
 
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesOXUS 20
 
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaFal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaOXUS 20
 
Java Regular Expression PART I
Java Regular Expression PART IJava Regular Expression PART I
Java Regular Expression PART IOXUS 20
 
Java Regular Expression PART II
Java Regular Expression PART IIJava Regular Expression PART II
Java Regular Expression PART IIOXUS 20
 
Java Unicode with Cool GUI Examples
Java Unicode with Cool GUI ExamplesJava Unicode with Cool GUI Examples
Java Unicode with Cool GUI ExamplesOXUS 20
 
TKP Java Notes for Teaching Kids Programming
TKP Java Notes for Teaching Kids ProgrammingTKP Java Notes for Teaching Kids Programming
TKP Java Notes for Teaching Kids ProgrammingLynn Langit
 
PHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail ExplanationPHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail ExplanationOXUS 20
 

Andere mochten auch (20)

Java Lab Manual
Java Lab ManualJava Lab Manual
Java Lab Manual
 
66781291 java-lab-manual
66781291 java-lab-manual66781291 java-lab-manual
66781291 java-lab-manual
 
Java programming lab manual
Java programming lab manualJava programming lab manual
Java programming lab manual
 
Java lab-manual
Java lab-manualJava lab-manual
Java lab-manual
 
Java programming-examples
Java programming-examplesJava programming-examples
Java programming-examples
 
Java programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswarJava programming lab_manual_by_rohit_jaiswar
Java programming lab_manual_by_rohit_jaiswar
 
tL20 event handling
tL20 event handlingtL20 event handling
tL20 event handling
 
Webdesing lab part-b__java_script_
Webdesing lab part-b__java_script_Webdesing lab part-b__java_script_
Webdesing lab part-b__java_script_
 
Cs2312 OOPS LAB MANUAL
Cs2312 OOPS LAB MANUALCs2312 OOPS LAB MANUAL
Cs2312 OOPS LAB MANUAL
 
Event Handling in java
Event Handling in javaEvent Handling in java
Event Handling in java
 
Java J2EE Interview Questions Part-1
Java J2EE Interview Questions Part-1Java J2EE Interview Questions Part-1
Java J2EE Interview Questions Part-1
 
Advanced Java - Praticals
Advanced Java - PraticalsAdvanced Java - Praticals
Advanced Java - Praticals
 
Java Applet and Graphics
Java Applet and GraphicsJava Applet and Graphics
Java Applet and Graphics
 
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
 
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaFal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
 
Java Regular Expression PART I
Java Regular Expression PART IJava Regular Expression PART I
Java Regular Expression PART I
 
Java Regular Expression PART II
Java Regular Expression PART IIJava Regular Expression PART II
Java Regular Expression PART II
 
Java Unicode with Cool GUI Examples
Java Unicode with Cool GUI ExamplesJava Unicode with Cool GUI Examples
Java Unicode with Cool GUI Examples
 
TKP Java Notes for Teaching Kids Programming
TKP Java Notes for Teaching Kids ProgrammingTKP Java Notes for Teaching Kids Programming
TKP Java Notes for Teaching Kids Programming
 
PHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail ExplanationPHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail Explanation
 

Ähnlich wie Java lab 2

The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project AnalyzedPVS-Studio
 
Parallel and Async Programming With C#
Parallel and Async Programming With C#Parallel and Async Programming With C#
Parallel and Async Programming With C#Rainer Stropek
 
CSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptCSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptRashedurRahman18
 
Visual studio 2008
Visual studio 2008Visual studio 2008
Visual studio 2008Luis Enrique
 
c++ exp 1 Suraj...pdf
c++ exp 1 Suraj...pdfc++ exp 1 Suraj...pdf
c++ exp 1 Suraj...pdfayush616992
 
От Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовОт Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовYandex
 
Object Oriented Programming in Matlab
Object Oriented Programming in Matlab Object Oriented Programming in Matlab
Object Oriented Programming in Matlab AlbanLevy
 
What’s new in .NET
What’s new in .NETWhat’s new in .NET
What’s new in .NETDoommaker
 
Assignment Java Programming 2
Assignment Java Programming 2Assignment Java Programming 2
Assignment Java Programming 2Kaela Johnson
 
4CS4-25-Java-Lab-Manual.pdf
4CS4-25-Java-Lab-Manual.pdf4CS4-25-Java-Lab-Manual.pdf
4CS4-25-Java-Lab-Manual.pdfamitbhachne
 
Checking Clang 11 with PVS-Studio
Checking Clang 11 with PVS-StudioChecking Clang 11 with PVS-Studio
Checking Clang 11 with PVS-StudioAndrey Karpov
 
Data structures &amp;algorithms
Data structures &amp;algorithmsData structures &amp;algorithms
Data structures &amp;algorithmsNur Saleha
 
Presentation - Course about JavaFX
Presentation - Course about JavaFXPresentation - Course about JavaFX
Presentation - Course about JavaFXTom Mix Petreca
 

Ähnlich wie Java lab 2 (20)

JavaProgrammingManual
JavaProgrammingManualJavaProgrammingManual
JavaProgrammingManual
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project Analyzed
 
Java final lab
Java final labJava final lab
Java final lab
 
Python Manuel-R2021.pdf
Python Manuel-R2021.pdfPython Manuel-R2021.pdf
Python Manuel-R2021.pdf
 
C# 6.0
C# 6.0C# 6.0
C# 6.0
 
Parallel and Async Programming With C#
Parallel and Async Programming With C#Parallel and Async Programming With C#
Parallel and Async Programming With C#
 
CSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptCSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.ppt
 
Visual studio 2008
Visual studio 2008Visual studio 2008
Visual studio 2008
 
CS2309 JAVA LAB MANUAL
CS2309 JAVA LAB MANUALCS2309 JAVA LAB MANUAL
CS2309 JAVA LAB MANUAL
 
c++ exp 1 Suraj...pdf
c++ exp 1 Suraj...pdfc++ exp 1 Suraj...pdf
c++ exp 1 Suraj...pdf
 
От Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовОт Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей Родионов
 
Object Oriented Programming in Matlab
Object Oriented Programming in Matlab Object Oriented Programming in Matlab
Object Oriented Programming in Matlab
 
What’s new in .NET
What’s new in .NETWhat’s new in .NET
What’s new in .NET
 
Lambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter LawreyLambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter Lawrey
 
Assignment Java Programming 2
Assignment Java Programming 2Assignment Java Programming 2
Assignment Java Programming 2
 
4CS4-25-Java-Lab-Manual.pdf
4CS4-25-Java-Lab-Manual.pdf4CS4-25-Java-Lab-Manual.pdf
4CS4-25-Java-Lab-Manual.pdf
 
Checking Clang 11 with PVS-Studio
Checking Clang 11 with PVS-StudioChecking Clang 11 with PVS-Studio
Checking Clang 11 with PVS-Studio
 
Data structures &amp;algorithms
Data structures &amp;algorithmsData structures &amp;algorithms
Data structures &amp;algorithms
 
All experiment of java
All experiment of javaAll experiment of java
All experiment of java
 
Presentation - Course about JavaFX
Presentation - Course about JavaFXPresentation - Course about JavaFX
Presentation - Course about JavaFX
 

Mehr von AVC College of Engineering (6)

operating system lecture notes
operating system lecture notesoperating system lecture notes
operating system lecture notes
 
Ds lesson plan
Ds lesson planDs lesson plan
Ds lesson plan
 
Programming paradigms
Programming paradigmsProgramming paradigms
Programming paradigms
 
Dpsd lecture-notes
Dpsd lecture-notesDpsd lecture-notes
Dpsd lecture-notes
 
Software quality management lecture notes
Software quality management lecture notesSoftware quality management lecture notes
Software quality management lecture notes
 
Data mining notes
Data mining notesData mining notes
Data mining notes
 

Kürzlich hochgeladen

High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 

Kürzlich hochgeladen (20)

High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 

Java lab 2

  • 1. AVCCE CSE/V CS2309 JAVA LAB MANUAL A.V.C.COLLEGE OF ENGINEERING MANNAMPANDAL, MAYILADUTHURAI-609 305 Department of Computer Science & Engineering LAB MANUAL FOR THE SUBJECT OF JAVA LAB Subject Code : CS 2309 Semester : V SEMESTER Department : B.E CSE Academic Year : 2013-2014 Name of the Faculty : Ms. M. Parvathi, Asst. Prof Mrs. H.Prabavathi, Asst. Prof. Signature of the Staff Signature of the HOD
  • 2. AVCCE CSE/V CS2309 JAVA LAB MANUAL A.V.C College of Engineering Mannampandal – 609 305 Department of Computer Science & Engineering LAB MANUAL -Academic Year 2013 – 2014 Odd Semester Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof. Branch/ Year/ Sem: CSE / III / V Subject : CS2309 Java Lab SYLLABUS CS2309 JAVA LAB L T P C 0 0 3 2 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 (½). 2. Develop Date class in Java similar to the one available in java.util package. Use JavaDoc comments. 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]. 4. Design a Java interface for ADT Stack. Develop two different classes that implement this interface, one using array and the other using linked-list. Provide necessary exception handling in both the implementations. 5. Design a Vehicle class hierarchy in Java. Write a test program to demonstrate polymorphism. 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. 7. Design a scientific calculator using event-driven programming paradigm of Java. 8. Write a multi-threaded Java program to print all numbers below 100,000 that are both prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design a thread that generates prime numbers below 100,000 and writes them into a pipe. Design another thread that generates fibonacci numbers and writes them to another pipe. The main thread should read both the pipes to identify numbers common to both. 1
  • 3. AVCCE CSE/V CS2309 JAVA LAB MANUAL 9. Develop a simple OPAC system for library using even-driven and concurrent programming paradigms of Java. Use JDBC to connect to a back-end database. 10. Develop multi-threaded echo server and a corresponding GUI client in Java. 11. [Mini-Project] Develop a programmer's editor in Java that supports syntaxhighlighting, compilation support, debugging support, etc. TOTAL= 45 PERIODS Requirement for a Batch of 30 Students S.No. Description of Equipment Quantity Required 1 PC’s 30 2 JUM & J2SE(Freeware) 30 3 MYSQL or any other DB 30 2
  • 4. AVCCE CSE/V CS2309 JAVA LAB MANUAL A.V.C College of Engineering Mannampandal – 609 305 Department of Computer Science & Engineering LAB PLAN -Academic Year 2013 – 2014 Odd Semester Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof. Branch/ Year/ Sem: CSE / III / V Subject : CS2309 Java Lab S. No Name of the Exercise Reference Batch 1. IMPLEMENTATION OF RATIONAL NUMBERS Lab Manual Batch – B1(6,7,8) & B2(6,7,8) 2. IMPLEMENTATION OF DATE CLASS 3. IMPLEMENTATION OF LISP-LIKE- LIST 4. IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK 6. IMPLEMENTATION OF POLYMORPHISM 8. IMPLEMENTATION OF OBJECT SERILIZATION 10. IMPLEMENTATION OF SCENTIFIC CALCULATOR USING EVENT DRIVEN PROGRAMMING 3
  • 5. AVCCE CSE/V CS2309 JAVA LAB MANUAL 11. IMPLEMENTATION OF MULTI THREADED PROGRAM 12. PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY 13. IMPLEMENTATION OF MULTI- THREADED ECHO SERVER Tentative No. of Lab Periods : 30 EX.NO:01 IMPLEMENTATION OF RATIONAL NUMBERS AIM: 4
  • 6. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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(35,50); System.out.println("na="+a); } } class Rational { public Rational(int num,int denum) { numerator=num; if(denum==0) denuminator=1; else denuminator=denum; makeRational(); } private void makeRational( { int gcd; int divisor=0; if(denuminator<0) { 5
  • 7. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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_17bin>javac rat.java C:jdk1.6.0_17bin>java rat a=7/10 C:jdk1.6.0_17bin> RESULT: 6
  • 8. AVCCE CSE/V CS2309 JAVA LAB MANUAL Thus the program Implementation of rational numbers has been successfully executed verified and successfully. EX.NO:02 IMPLEMENTATION OF DATE CLASS AIM: 7
  • 9. AVCCE CSE/V CS2309 JAVA LAB MANUAL To develop Date class in Java similar to the one available in java.util package. Use JavaDoc comments. ALGORITHM: STEP 1: Create a package which consists of constructors with the following arguments: i) Default ii)Taking 3 arguments year, day and month iii)Taking 5 arguments year, day, month, hours and minutes iv)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 false STEP 5: Before()-the before()method returns true if the current date comes before the specified date else it returns false STEP 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) System.out.println("First date is before second date"); 8
  • 10. AVCCE CSE/V CS2309 JAVA LAB MANUAL else System.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_17bin>javac DateClass.java C:jdk1.6.0_17bin>java DateClass First date:Wed Sep 29 20:23:17 GMT+05:30 2010 Second date:Wed Sep 29 20:23:17 GMT+05:30 2010 In second date after first:true First date is before second date Fri Jan 01 05:30:00 GMT+05:30 1971 Milli 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. EX.NO:03 IMPLEMENTATION OF LISP-LIKE-LIST AIM: 9
  • 11. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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 the concept 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; } public static void main(String[] args) { 10
  • 12. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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_17bin>javac Lisp.java C:jdk1.6.0_17bin>java Lisp 3 [0, 2, 5] C:jdk1.6.0_17bin> RESULT: Thus the program Implementation of lisp-like-list has been successfully executed verified and successfully. EX.NO:04 IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK AIM: 11
  • 13. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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. Provide necessary exception handling in both the implementations. ALGORITHM: STEP 1: Create an interface which consists of three methods namely PUSH, POP and DISPLAY 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 top element and to display the elements present in the stack. STEP 4: Create another class which implements the same interface to implement the concept 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; } public void display() 12
  • 14. AVCCE CSE/V CS2309 JAVA LAB MANUAL { 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"); 13
  • 15. AVCCE CSE/V CS2309 JAVA LAB MANUAL } } while(choice!=4); } 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_17bin>javac ListStack.java C:jdk1.6.0_17bin>java ListStack ------------------------------------------------------------------ STACK IMPLEMENTATION USING LINKED LIST ------------------------------------------------------------------ 1. PUSH 14
  • 16. AVCCE CSE/V CS2309 JAVA LAB MANUAL 2. POP 3. DISPLAY 4. EXIT ENTER YOUR OPTION:1 Enter the element to push:100 ------------------------------------------------------------------- STACK IMPLEMENTATION USING LINKED LIST ------------------------------------------------------------------- 1. PUSH 2. POP 3. DISPLAY 4. EXIT ENTER YOUR OPTION:3 100 ------------------------------------------------------------------- STACK IMPLEMENTATION USING LINKED LIST ------------------------------------------------------------------- 1. PUSH 2. POP 3. DISPLAY 4. EXIT ENTER YOUR OPTION:2 100is deleted ------------------------------------------------------------------- STACK IMPLEMENTATION USING LINKED LIST ------------------------------------------------------------------- 1. PUSH 2. POP 3. DISPLAY 4. EXIT ENTER YOUR OPTION:3 ------------------------------------------------------------------- STACK IMPLEMENTATION USING LINKED LIST ------------------------------------------------------------------- 1. PUSH 2. POP 3. DISPLAY 4. EXIT RESULT: Thus the program Implementation of java interface for ADT stack has been successfully executed verified and successfully. EX.NO:05 IMPLEMENTATION OF POLYMORPHISM 15
  • 17. AVCCE CSE/V CS2309 JAVA LAB MANUAL AIM: To design a Vehicle class hierarchy in Java. Write a test program to demonstrate Polymorphism. ALGORITHM: STEP 1: Create an abstract class named vehicle with abstract method Display and a concrete 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 the inputs 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()+"nn"); System.out.println("Name="+bettle.getName()+"nColor="+bettle.getColor() +"nPrice="+bettle.getPrice()+"nn"); System.out.println("Name="+porsche.getName()+"nColor="+porsche.getColor() +"nPrice="+porsche.getPrice()+"nn"); 16
  • 18. AVCCE CSE/V CS2309 JAVA LAB MANUAL } } 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); } } 17
  • 19. AVCCE CSE/V CS2309 JAVA LAB MANUAL class Porsche extends Vehicle { public Porsche(String name,String color,double price) { super(name,color,price); } } OUTPUT: C:jdk1.6.0_17bin>javac VehicleTest.java C:jdk1.6.0_17bin>java VehicleTest Name=Corvette Color=red Price=545000.0 Name=Bettle Color=blue Price=445000.0 Name=Porsche Color=black Price=625000.0 C:jdk1.6.0_17bin> RESULT: Thus the program Implementation of polymorphism has been successfully executed verified and successfully. EX.NO:06 IMPLEMENTATION OF OBJECT SERILIZATION 18
  • 20. AVCCE CSE/V CS2309 JAVA LAB MANUAL AIM: To 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. ALGORITHM : 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 ObjectOutputStream to open a file in write mode using FileOutputStream. 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 otherwise print 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"; 19
  • 21. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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) { 20
  • 22. AVCCE CSE/V CS2309 JAVA LAB MANUAL System.out.println("Select Input Type"); System.out.println("n1.Dollarn2.Rupeenn"); Scanner input=new Scanner(System.in); int choice=input.nextInt(); if(choice==1) { 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_17bin>javac Currency.java C:jdk1.6.0_17bin>java Currency 21
  • 23. AVCCE CSE/V CS2309 JAVA LAB MANUAL C:jdk1.6.0_17bin>javac CurrencyTest.java C:jdk1.6.0_17bin>java CurrencyTest Select Input Type 1.Dollar 2.Rupee 1 Enter No of Dollar: 45 The Equal Rupee is:2025 C:jdk1.6.0_17bin>java CurrencyTest Select Input Type 1.Dollar 2.Rupee 2 Enter Rupee: 45 The Rupee is:45 C:jdk1.6.0_17bin> RESULT: Thus the program Implementation object serialization has been successfully executed verified and successfully. EX.NO:07 IMPLEMENTATION OF SCENTIFIC CALCULATOR USING EVENT DRIVEN PROGRAMMING AIM: 22
  • 24. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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); add(display, BorderLayout.NORTH); 23
  • 25. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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); 24
  • 26. AVCCE CSE/V CS2309 JAVA LAB MANUAL button.addActionListener(listener); panel.add(button); } private class InsertAction implements ActionListener { 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())); else if(input.equals("SQRT")) display.setText(""+Math.sqrt(Double.parseDouble(display.getText()))); else if(input.equals("log")) display.setText(""+Math.log(Double.parseDouble(display.getText()))); else if(input.equals("x2")) display.setText(""+Double.parseDouble(display.getText())* Double.parseDouble(display.getText())); else if(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)); } else if(input.equals("tan")) { Double angle=Double.parseDouble(display.getText())*2.0*Math.PI/360.0; display.setText(""+Math.tan(angle)); } else 25
  • 27. AVCCE CSE/V CS2309 JAVA LAB MANUAL display.setText(display.getText() + input); } } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); if (start==true) { if (command.equals("-")) { display.setText(command); start = false; } else lastCommand = 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); } 26
  • 28. AVCCE CSE/V CS2309 JAVA LAB MANUAL private JButton display; private JPanel panel; private double result; private String lastCommand; private boolean start; } OUTPUT: C:jdk1.6.0_17bin>javac Calculator.java C:jdk1.6.0_17bin>java Calculator C:jdk1.6.0_17bin> RESULT: Thus the program Implementation of scientific calculator using event driven programming has been successfully executed verified and successfully. EX.NO:08 IMPLEMENTATION OF MULTI THREADED PROGRAM AIM: 27
  • 29. AVCCE CSE/V CS2309 JAVA LAB MANUAL To write a multi-threaded Java program to print all numbers below 100,000 that are both prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design a thread that generates prime numbers below 100,000 and writes them into a pipe. Design another thread that generates fibonacci numbers and writes them to another pipe. The main thread should read both the pipes to identify numbers common to both. ALGORITHM: STEP 1: CreateThread1 which generates prime numbers below 100,000 and store in pipe1. STEP 2: Create Thread2 which generates Fibonacci numbers below 100,000 and store in 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(); break; } out.write(fibo); 28
  • 30. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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); } } } 29
  • 31. AVCCE CSE/V CS2309 JAVA LAB MANUAL public boolean isPrime(int n) { 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: 30
  • 32. AVCCE CSE/V CS2309 JAVA LAB MANUAL C:jdk1.6.0_17bin>javac PipedIo.java C:jdk1.6.0_17bin>java PipedIo Main:Thread sorted...... Fibonacci:Thread stored...... Prime:Thread stored....... The Numbers Common To PRIME and FIBONACCI: 1 2 3 5 13 89 233 1597 28657 Fibonacci:Thread exiting. Main:Thread exiting. Prime:Thread exiting. C:jdk1.6.0_17bin> RESULT: Thus the program Implementation of multi threaded program to find Fibonacci series has been Successfully executed and verified successfully. EX.NO:09 PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY AIM: 31
  • 33. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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, Fine STEP 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); next = new JButton("Next BOOK"); p = new JPanel(); c.add(new JLabel("ISBN",JLabel.CENTER)); 32
  • 34. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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 Name stat = conn.createStatement(); res = stat.executeQuery("Select * from Customers"); // Customers is the table name res.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)); } 33
  • 35. AVCCE CSE/V CS2309 JAVA LAB MANUAL catch(Exception e) {} } 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: Javajdk1.5.0_03bin>javac Datas.java D: Javajdk1.5.0_03bin>java Datas 34
  • 36. AVCCE CSE/V CS2309 JAVA LAB MANUAL CONCURRENT PROGRAMMING: import java.sql.*; import java.sql.DriverManager.*; class Ja { String bookid,bookname; int booksno; Connection con; Statement stmt; ResultSet rs; Ja() { try 35
  • 37. AVCCE CSE/V CS2309 JAVA LAB MANUAL { 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[]) { Ja j=new Ja(); j.myput(); } } OUTPUT: D: Javajdk1.5.0_03bin>javac Ja.java D: Javajdk1.5.0_03bin>java prog1 36
  • 38. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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 successfully 37
  • 39. AVCCE CSE/V CS2309 JAVA LAB MANUAL EX.NO:10 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(); 38
  • 40. AVCCE CSE/V CS2309 JAVA LAB MANUAL } } private void listen() { 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(); } } 39
  • 41. AVCCE CSE/V CS2309 JAVA LAB MANUAL } } //CLIENT import java .io.*; import java .awt.*; import java .awt.event.*; import java .net.*; import javax.swing.*; public class SimpleClient extends JFrame implements ActionListener { 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) { 40
  • 42. AVCCE CSE/V CS2309 JAVA LAB MANUAL 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(); } } else { out.println(message); out.flush(); tf.setText(""); } } public static void main(String[] args) { new SimpleClient(); } } OUTPUT: C:jdk1.6.0_17bin>javac SimpleClient.java C:jdk1.6.0_17bin>java SimpleClient Client:Socket[addr=localhost/127.0.0.1,port=8888,localport=1040] C:jdk1.6.0_17bin>javac SimpleThreadedSocketListener.java C:jdk1.6.0_17bin>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] 41
  • 43. AVCCE CSE/V CS2309 JAVA LAB MANUAL HELLOW raja ramu rajesh ramki C:jdk1.6.0_17bin> RESULT: Thus the program Implementation of multi threaded echo server has been successfully executed verified and successfully. 42