(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
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
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
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
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
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