66
1 SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE AND ENGINEERING) Prepared by S.VARADHARAJAN ASSISTANT PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

  • Upload
    lamdan

  • View
    223

  • Download
    5

Embed Size (px)

Citation preview

Page 1: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

1

SURYA GROUP OF INSTITUTIONS

SCHOOL OF ENGINEERING AND TECHNOLOGY

VIKIRAVANDI-605602

CS2309 JAVA LAB

LAB MANUAL

III YEAR B.E (COMPUTER SCIENCE AND

ENGINEERING)

Prepared by

S.VARADHARAJAN

ASSISTANT PROFESSOR

DEPARTMENT OF COMPUTER SCIENCE AND

ENGINEERING

Page 2: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

2

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.

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 syntax highlighting,

compilation support, debugging support, etc.

TOTAL= 45

PERIODS

Page 3: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

3

REQUIREMENTS

HARDWARE:

Pentium IV with 2 GB RAM,

160 GB HARD Disk,

Monitor 1024 x 768 colour

60 Hz.

30 Nodes

SOFTWARE:

Windows /Linux operating system

JDK 1.6(or above)

30 user license

Page 4: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

4

TABLE OF CONTENTS

LIST OF EXPERIMENTS

1 Rational number

2 Date class in Java

3 Implement Lisp-like list in Java.

4 Java interface for ADT Stack using array and the sing linked-

list.

5 Polymorphism

6 object serialization

7 scientific calculator

8

Multi-threaded Java program

Fibonacci number (some examples are 2, 3, 5, 13, etc.).

prime numbers below 100,000 and writes them into a pipe

Main thread should read both the pipes.

9 A Simple OPAC system for library

10 Multi-threaded echo server GUI client.

11 [Mini-Project] programmer’s editor.

Page 5: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

5

Ex No1: Rational Numbers

AIM

To write a Java Program to develop a class for Rational numbers.

ALGORITHM:

Step 1:-Declare a class called Rational and invoke a function called gcd(a,b).

Step 2:-Find out the reminder when a is divided by b and pass it as a parameter to the function.

Step 3:-Create an object for the class and declare the required string and integer variables.

Step 4:-Create an object of class DataInputStream .Read the numbers through the ReadLine() method

into the object.

Step 5:-Convert the input accepted into Integers through the parseInt method and store them in

variables a and b.

Step 6:-store the value returned by the function GCD in variable l.

Step 7:-Divide a by l and b by l and store them in variables x and y.

Program:-

import java.io.*;

class rational1

{

public rational1(){}

public long gcd(long a,long b)

{

if(b==0)

return a;

else

return gcd(b,a%b);

}

}

public class rational

Page 6: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

6

{

public static void main(String args[])throws IOException

{

/**

* create and initialize a new Rational object

*/

rational1 r=new rational1();

/**

* The Numerator and Denominator part of Rational

*/

long a,b,x,y;

String str;

DataInputStream in= new DataInputStream(System.in);

System.out.println("Enter the value for A");

str=in.readLine();

a=Integer.parseInt(str);

System.out.println("Enter the value for B");

str=in.readLine();

b=Integer.parseInt(str);

long l=r.gcd(a,b);

System.out.println();

System.out.println("The GCD of the number is:"+l);

x=a/l;

y=b/l;

System.out.println();

System.out.println("The resultant value is: "+x+"/"+y);

}

}

Page 7: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

7

Output

Enter the value for A

500

Enter the value for B

1000

The GCD of the number is:500

The resultant value is: 1/2

Result

Thus the above program was executed and verified successfully.

Page 8: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

8

Ex No 2: Date Class in Java

AIM

To design a Date class in Java.

ALGORITHM:-

Step 1: Declare a class called Date example and create an object called date.

Step 2:- Display the Date and Time through these objects with the Methods in Date Class.

Step 3:- Declare two objects called start time and end time for this class .

Step 4:- Create another object called changed object and display the changed time with the calculation

Step 5:- In the main function create object for the class Date and display the time and date

accordingly.

Page 9: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

9

SOURCE CODE

import java.util.Date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

public class DateExample {

private static void DateExample() {

Date date = new Date();

System.out.println("Current Date and Time is : " + date);

System.out.println();

System.out.println("Date object showing specific date and time");

Date particulardate1 = new Date(2000,3,12);

Date particulardate2 = new Date(2000,4,12,9,10);

System.out.println();

System.out.println("First Particular date : " + particulardate1);

System.out.println("Second Particular date: " + particulardate2);

System.out.println();

System.out.println("Demo of getTime() method returning milliseconds");

System.out.println();

Date strtime = new Date();

System.out.println("Start Time: " + strtime);

Date endtime = new Date();

System.out.println("End Time is: " + endtime);

long elapsed_time = endtime.getTime() - strtime.getTime();

System.out.println("Elapsed Time is:" + elapsed_time + "milliseconds");

System.out.println();

System.out.println("Changed date object using setTime() method");

System.out.println();

Date chngdate = new Date();

System.out.println("Date before change is: " + chngdate);

chngdate.setHours(12);

System.out.println("Now the Changed date is: " + chngdate);

System.out.println();

}

Page 10: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

10

public static void main(String[] args) {

System.out.println();

DateExample();

}

}

OUTPUT

D:\java>java DateExample

Current Date and Time is : Thu May 05 09:56:18 IST 2011

Date object showing specific date and time

First Particular date : Thu Apr 12 00:00:00 IST 3900

Second Particular date: Sat May 12 09:10:00 IST 3900

Demo of getTime() method returning milliseconds

Start Time: Thu May 05 09:56:18 IST 2011

End Time is: Thu May 05 09:56:18 IST 2011

Elapsed Time is:0 milliseconds

Changed date object using setHours() method

Date before change is: Thu May 05 09:56:18 IST 2011

Now the Changed date is: Thu May 05 12:56:18 IST 2011

Result

Thus the above program was executed and verified successfully.

Page 11: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

11

3.Implement Lisp-like list in Java.

Aim:

To Implement basic operations such as 'car', 'cdr', and 'cons' using Lisp-like list in Java. If L is a list

[3, 0, 2, 5], L.car() returns 3, while L.cdr() returns [0,2,5]

Procedure:

Page 12: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

12

Program:

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.StringTokenizer;

import java.util.logging.Logger;

public class LispCommands {

private String[] tokenList;

private static Logger LOGGER = Logger.getLogger(LispCommands.class.getName());

public LispCommands() {

}

private void car() {

LOGGER.info(tokenList[0]);

}

private void cdr() {

List<String> list = Arrays.asList(tokenList);

ArrayList<String> slist = new ArrayList<String>(list);

slist.remove(0);

display(slist);

}

private void cons(String args) {

List<String> arrayList = new ArrayList<String>(Arrays.asList(tokenList));

arrayList.add(args);

Collections.reverse(arrayList);

display(arrayList);

Page 13: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

13

}

private void parse(String args) {

ArrayList<String> tokenList = new ArrayList<String>();

if(args != null){

StringTokenizer tokens = new StringTokenizer(args,"[]");

while (tokens.hasMoreElements()) {

StringTokenizer commaTokens = new StringTokenizer(tokens.nextToken(),",");

while (commaTokens.hasMoreElements()) {

String token = commaTokens.nextToken();

if(token != null && !token.trim().equals("")){

tokenList.add(token.trim());

}

}

}

}

this.tokenList = tokenList.toArray(new String[0]);

}

private void display(Object result) {

System.out.println();

if(result instanceof String){

LOGGER.info(result.toString());

} else if(result.getClass().getName().equals("java.util.ArrayList")){

LOGGER.info(result.toString());

}

}

public static void main(String[] args) {

LispCommands L = new LispCommands();

L.parse("[3, 0, 2, 5]");

L.car();

Page 14: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

14

L.cdr();

L.cons("7");

}}

Output:

Result:

Thus the above program was executed and verified successfully

Page 15: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

15

Ex.No:4 Implementation of Stack ADT

AIM

To write a Java Program to design an interface for Stack ADT.and implement Stack ADT

using both Array and Linked List.

Procedure:

Page 16: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

16

Program:

public class ADTArray implements ADTStack

{

Object[] array;

int index;

public ADTArray() {

this.array = new Object[128];

this.index = 0;

}

//@Override

public Object pop() {

index--;

return array[index];

}

//@Override

public void push(Object item) {

array[index] = item;

index++;

}

public static void main(String[] args) {

ADTStack stack = new ADTArray();

stack.push("Hi");

stack.push(new Integer(100));

System.out.println(stack.pop());

System.out.println(stack.pop());

}

}

public class ADTList implements ADTStack {

private StackElement top;

private int count = 0;

public void push(Object obj) {

StackElement stackElement = new StackElement(obj);

stackElement.next = top;

top = stackElement;

count++;

Page 17: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

17

}

//@Override

public Object pop() {

if (top == null) return null;

Object obj = top.value;

top = top.next;

count--;

return obj;

}

class StackElement {

Object value;

StackElement next;

public StackElement(Object obj) {

value = obj;

next = null;

}

}

public static void main(String[] args) {

ADTStack stack = new ADTList();

stack.push("Hi");

stack.push(new Integer(100));

System.out.println(stack.pop());

System.out.println(stack.pop());

}

}

public interface ADTStack {

public void push (Object item);

public Object pop ();

}

Page 18: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

18

Output:- C:\>java ADTArray 100 Hi C:\>java ADTList 100 Hi C:\>java ADTStack Exception in thread “main” java.lang.NoSuchMethodError:main

Result:

Thus the above program was executed and verified successfully.

Page 19: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

19

Ex no: 5 Polymorphism

Aim:-

To develop a vehicle class hierarchy in Java to demonstrate the concept of polymorphism.

Algorithm:-

Step 1:-Declare a super class called vehicle with data elements doors,wheels and seats.

Step 2:-Derive another class called car and invoke a function tostring() to display the variables.

Step 3:-Derive another class called motorcycle with same data and method called setseats() .

Step 4:-Declare another sub class called Truck with 2 constructors and finally assign values to

variables.

Step 5:-In the main function, create an object for class motorcycle and display all details of sub classes

through object.

Page 20: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

20

Sourcecode:-

//This is the class that will be inherited

public class Vehicle

{

public int doors;

public int seats;

public int wheels;

Vehicle()

{

wheels=4;

doors=4;

seats=4;

}

}

//This class inherits Vehicle.java

public class Car extends Vehicle

{

public String toString()

{

return "This car has "+seats+" Seats, "+doors+" Doors "+

"and "+wheels+" wheels.";

}

}

//This class inherits Vehicle.java

public class MotorCycle extends Vehicle

{

MotorCycle()

{

wheels=2;

doors=0;

seats=1;

}

Page 21: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

21

void setSeats(int num)

{

seats=num;

}

public String toString()

{

return "This motorcycle has "+seats+" Seats, "+doors+" Doors "+

"and "+wheels+" wheels.";

}

}

//This class inherits Vehicle.java

public class Truck extends Vehicle

{

boolean isPickup;

Truck()

{

isPickup=true;

}

Truck(boolean aPickup)

{

this();

isPickup=aPickup;

}

Truck(int doors, int seats, int inWheels, boolean isPickup)

{

this.doors=doors;

this.seats=seats;

wheels=inWheels;

this.isPickup=isPickup;

}

public String toString()

{

return "This "+(isPickup?"pickup":"truck")+

" has "+seats+" Seats, "+doors+" Doors "+"and "+wheels+" wheels.";

Page 22: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

22

}

}

//This class tests the classes that inherit Vehicle.java

public class VehiclesTest

{

public static void main(String args[])

{

MotorCycle mine = new MotorCycle();

System.out.println(mine);

Car mine2 = new Car();

System.out.println(mine2);

mine2.doors=2;

System.out.println(mine2);

Truck mine3 = new Truck();

System.out.println(mine3);

Truck mine4 = new Truck(false);

mine4.doors=2;

System.out.println(mine4);

}

}

Page 23: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

23

Output

This motorcycle has 1 Seats, 0 Doors and 2 wheels

This car has 4 Seats, 4 Doors and 4 wheels

This car has 4 Seats, 2 Doors and 4 wheels

This pickup has 4 Seats, 4 Doors and 4 wheels

This truck has 4 Seats, 2 Doors and 4 wheels

Result:

Thus the above program was executed and verified successfully.

Page 24: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

24

Ex No:-6 Object Serialization

Aim:-To write a Java Program to randomly generate objects and write them into a file using concept

of Object Serialization.

Algorithm:-

Step 1:Declare a class called Currency .Open a file in output mode with a name.

Step 2:-Write new data into the object using writeobject() method.

Step 3:-Similarly create an input stream object .Read it both in terms of Dollars and Rupees.close the

output object.

Step 4:-derive a class called Dollar which implements serializable interface.Invoke a constructor and

function to display the data.

Step 5:Similarly declare a class called Rupee with private variables and use print function to display

the variables.

Step 6: terminate the execution. The output is displayed as dollar to rupee conversion and vice versa.

Sourcecode:-

// Currency conversion

import java.io.*;

public class Currency

{

Page 25: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

25

public static void main(String args[])

{

Dollar dr=new Dollar('$',40);

dr.printDollar();

Rupee re=new Rupee("Rs.",50);

re.printRupee();

try

{

File f=new File("rd.txt");

FileOutputStream fos=new FileOutputStream(f);

ObjectOutputStream oos=new ObjectOutputStream(fos);

oos.writeObject(dr);

oos.writeObject(re);

oos.flush();

oos.close();

ObjectInputStream ois=new ObjectInputStream(new FileInputStream("rd.txt"));

Dollar d1;

d1=(Dollar)ois.readObject();

d1.printDollar();

Rupee r1;

r1=(Rupee)ois.readObject();

r1.printRupee();

ois.close();

}

catch(Exception e)

{

}

}

}

class Dollar implements Serializable

{

private float dol;

private char sym;

Page 26: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

26

public Dollar(char sm,float doll)

{

sym=sm;

dol=doll;

}

void printDollar()

{

System.out.print(sym);

System.out.println(dol);

}

}

class Rupee implements Serializable

{

private String sym;

private float rs;

public Rupee(String sm,float rup)

{

sym=sm;

rs=rup;

}

void printRupee()

{

System.out.print(sym);

System.out.println(rs);

}

}

Output:-

Page 27: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

27

E:\java>java Currency

$40.0

Rs.50.0

$40.0

Rs.50.0

Result:

Thus the above program was executed and verified successfully.

Page 28: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

28

EX NO: 7 Scientific Calculator

AIM:

To design a scientific calculator using event-driven programming paradigm of Java.

ALGORITHM:

Step1: Define a class CalcFrame for creating a calculator frame and added windolistener to close the

calculator

Step2: create instance of object for View menu and various other objects

Step3: add a listener to receive item events when the state of an item changes

Step4: Define the methods for all operations of stientific calculator

Step5::Get the input and display the result

PROGRAM

/** Scientific calculator*/

import java.awt.*;

import java.awt.event.*;

// class CalcFrame for creating a calculator frame and added windolistener to

// close the calculator

class CalcFrame extends Frame {

CalcFrame( String str) {

// call to superclass

super(str);

// to close the calculator(Frame)

addWindowListener(new WindowAdapter() {

public void windowClosing (WindowEvent we) {

System.exit(0);

}

});

}

}

// main class Calculator implemnets two

// interfaces ActionListener

// and ItemListener

public class Calculator implements ActionListener, ItemListener {

// creating instances of objects

Page 29: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

29

CalcFrame fr;

TextField display;

Button key[] = new Button[20]; // creates a button object array of 20

Button clearAll, clearEntry, round;

Button scientificKey[] = new Button[10]; // creates a button array of 8

// declaring variables

boolean addButtonPressed, subtractButtonPressed, multiplyButtonPressed;

boolean divideButtonPressed, decimalPointPressed, powerButtonPressed;

boolean roundButtonPressed = false;

double initialNumber;// the first number for the two number operation

double currentNumber = 0; // the number shown in the screen while it is being pressed

int decimalPlaces = 0;

// main function

public static void main (String args[]) {

// constructor

Calculator calc = new Calculator();

calc.makeCalculator();

}

public void makeCalculator() {

// size of the button

final int BWIDTH = 25;

final int BHEIGHT = 25;

int count =1;

// create frame for the calculator

fr = new CalcFrame("Scientific Calculator");

// set the size

fr.setSize(300,350);

fr.setBackground(Color.blue);;

fr.setLayout(null);

// set the initial numbers that is 1 to 9

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

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

// this will set the key from 1 to 9

key[count] = new Button(Integer.toString(count));

key[count].addActionListener(this);

// set the boundry for the keys

key[count].setBounds(30*(col + 1), 30*(row + 4),BWIDTH,BHEIGHT);

key[count].setBackground(Color.yellow);

// add to the frame

fr.add(key[count++]);

}

}

// Now create, addlistener and add to frame all other keys

//0

key[0] = new Button("0");

key[0].addActionListener(this);

key[0].setBounds(30,210,BWIDTH,BHEIGHT);

Page 30: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

30

key[0].setBackground(Color.yellow);

fr.add(key[0]);

//decimal

key[10] = new Button(".");

key[10].addActionListener(this);

key[10].setBounds(60,210,BWIDTH,BHEIGHT);

key[10].setBackground(Color.yellow);

fr.add(key[10]);

//equals to

key[11] = new Button("=");

key[11].addActionListener(this);

key[11].setBounds(90,210,BWIDTH,BHEIGHT);

key[11].setBackground(Color.yellow);

fr.add(key[11]);

//multiply

key[12] = new Button("*");

key[12].addActionListener(this);

key[12].setBounds(120,120,BWIDTH,BHEIGHT);

key[12].setBackground(Color.yellow);

fr.add(key[12]);

//divide

key[13] = new Button("/");

key[13].addActionListener(this);

key[13].setBounds(120,150,BWIDTH,BHEIGHT);

key[13].setBackground(Color.yellow);

fr.add(key[13]);

//addition

key[14] = new Button("+");

key[14].addActionListener(this);

key[14].setBounds(120,180,BWIDTH,BHEIGHT);

key[14].setBackground(Color.yellow);

fr.add(key[14]);

//subtract

key[15] = new Button("-");

key[15].addActionListener(this);

key[15].setBounds(120,210,BWIDTH,BHEIGHT);

key[15].setBackground(Color.yellow);

fr.add(key[15]);

//reciprocal

key[16] = new Button("1/x");

key[16].addActionListener(this);

key[16].setBounds(150,120,BWIDTH,BHEIGHT);

key[16].setBackground(Color.yellow);

fr.add(key[16]);

//power

key[17] = new Button("x^n");

key[17].addActionListener(this);

key[17].setBounds(150,150,BWIDTH,BHEIGHT);

key[17].setBackground(Color.yellow);

fr.add(key[17]);

Page 31: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

31

//change sign

key[18] = new Button("+/-");

key[18].addActionListener(this);

key[18].setBounds(150,180,BWIDTH,BHEIGHT);

key[18].setBackground(Color.yellow);

fr.add(key[18]);

//factorial

key[19] = new Button("x!");

key[19].addActionListener(this);

key[19].setBounds(150,210,BWIDTH,BHEIGHT);

key[19].setBackground(Color.yellow);

fr.add(key[19]);

// CA

clearAll = new Button("CA");

clearAll.addActionListener(this);

clearAll.setBounds(30, 240, BWIDTH+20, BHEIGHT);

clearAll.setBackground(Color.yellow);

fr.add(clearAll);

// CE

clearEntry = new Button("CE");

clearEntry.addActionListener(this);

clearEntry.setBounds(80, 240, BWIDTH+20, BHEIGHT);

clearEntry.setBackground(Color.yellow);

fr.add(clearEntry);

// round

round = new Button("Round");

round.addActionListener(this);

round.setBounds(130, 240, BWIDTH+20, BHEIGHT);

round.setBackground(Color.yellow);

fr.add(round);

// set display area

display = new TextField("0");

display.setBounds(30,90,150,20);

display.setBackground(Color.white);

// key for scientific calculator

// Sine

scientificKey[0] = new Button("Sin");

scientificKey[0].addActionListener(this);

scientificKey[0].setBounds(180, 120, BWIDTH + 10, BHEIGHT);

scientificKey[0].setVisible(true);

scientificKey[0].setBackground(Color.yellow);

fr.add(scientificKey[0]);

// cosine

scientificKey[1] = new Button("Cos");

scientificKey[1].addActionListener(this);

scientificKey[1].setBounds(180, 150, BWIDTH + 10, BHEIGHT);

scientificKey[1].setBackground(Color.yellow);

scientificKey[1].setVisible(true);

Page 32: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

32

fr.add(scientificKey[1]);

// Tan

scientificKey[2] = new Button("Tan");

scientificKey[2].addActionListener(this);

scientificKey[2].setBounds(180, 180, BWIDTH + 10, BHEIGHT);

scientificKey[2].setBackground(Color.yellow);

scientificKey[2].setVisible(true);

fr.add(scientificKey[2]);

// PI

scientificKey[3] = new Button("Pi");

scientificKey[3].addActionListener(this);

scientificKey[3].setBounds(180, 210, BWIDTH + 10, BHEIGHT);

scientificKey[3].setBackground(Color.yellow);

scientificKey[3].setVisible(true);

fr.add(scientificKey[3]);

// aSine

scientificKey[4] = new Button("aSin");

scientificKey[4].addActionListener(this);

scientificKey[4].setBounds(220, 120, BWIDTH + 10, BHEIGHT);

scientificKey[4].setBackground(Color.yellow);

scientificKey[4].setVisible(true);

fr.add(scientificKey[4]);

// aCos

scientificKey[5] = new Button("aCos");

scientificKey[5].addActionListener(this);

scientificKey[5].setBounds(220, 150, BWIDTH + 10, BHEIGHT);

scientificKey[5].setBackground(Color.yellow);

scientificKey[5].setVisible(true);

fr.add(scientificKey[5]);

// aTan

scientificKey[6] = new Button("aTan");

scientificKey[6].addActionListener(this);

scientificKey[6].setBounds(220, 180, BWIDTH + 10, BHEIGHT);

scientificKey[6].setBackground(Color.yellow);

scientificKey[6].setVisible(true);

fr.add(scientificKey[6]);

// E

scientificKey[7] = new Button("E");

scientificKey[7].addActionListener(this);

scientificKey[7].setBounds(220, 210, BWIDTH + 10, BHEIGHT);

scientificKey[7].setBackground(Color.yellow);

scientificKey[7].setVisible(true);

fr.add(scientificKey[7]);

// to degrees

scientificKey[8] = new Button("todeg");

scientificKey[8].addActionListener(this);

scientificKey[8].setBounds(180, 240, BWIDTH + 10, BHEIGHT);

scientificKey[8].setBackground(Color.yellow);

scientificKey[8].setVisible(true);

fr.add(scientificKey[8]);

Page 33: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

33

// to radians

scientificKey[9] = new Button("torad");

scientificKey[9].addActionListener(this);

scientificKey[9].setBounds(220, 240, BWIDTH + 10, BHEIGHT);

scientificKey[9].setBackground(Color.yellow);

scientificKey[9].setVisible(true);

fr.add(scientificKey[9]);

fr.add(display);

fr.setVisible(true);

} // end of makeCalculator

public void actionPerformed(ActionEvent ae) {

String buttonText = ae.getActionCommand();

double displayNumber = Double.valueOf(display.getText()).doubleValue();

// if the button pressed text is 0 to 9

if((buttonText.charAt(0) >= '0') & (buttonText.charAt(0) <= '9')) {

if(decimalPointPressed) {

for (int i=1;i <=decimalPlaces; ++i)

currentNumber *= 10;

currentNumber +=(int)buttonText.charAt(0)- (int)'0';

for (int i=1;i <=decimalPlaces; ++i) {

currentNumber /=10;

}

++decimalPlaces;

display.setText(Double.toString(currentNumber));

}

else if (roundButtonPressed) {

int decPlaces = (int)buttonText.charAt(0) - (int)'0';

for (int i=0; i< decPlaces; ++i)

displayNumber *=10;

displayNumber = Math.round(displayNumber);

for (int i = 0; i < decPlaces; ++i) {

displayNumber /=10;

}

display.setText(Double.toString(displayNumber));

roundButtonPressed = false;

}

else {

currentNumber = currentNumber * 10 + (int)buttonText.charAt(0)-(int)'0';

display.setText(Integer.toString((int)currentNumber));

}

}

// if button pressed is addition

if(buttonText == "+") {

addButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

}

Page 34: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

34

// if button pressed is subtract

if (buttonText == "-") {

subtractButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

}

// if button pressed is divide

if (buttonText == "/") {

divideButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

}

// if button pressed is multiply

if (buttonText == "*") {

multiplyButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

}

// if button pressed is reciprocal

if (buttonText == "1/x") {

// call reciprocal method

display.setText(reciprocal(displayNumber));

currentNumber = 0;

decimalPointPressed = false;

}

// if button is pressed to change a sign

//

if (buttonText == "+/-") {

// call changesign meyhod to change the

// sign

display.setText(changeSign(displayNumber));

currentNumber = 0;

decimalPointPressed = false;

}

// factorial button

if (buttonText == "x!") {

display.setText(factorial(displayNumber));

currentNumber = 0;

decimalPointPressed = false;

}

Page 35: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

35

// power button

if (buttonText == "x^n") {

powerButtonPressed = true;

initialNumber = displayNumber;

currentNumber = 0;

decimalPointPressed = false;

}

// now for scientific buttons

if (buttonText == "Sin") {

display.setText(Double.toString(Math.sin(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "Cos") {

display.setText(Double.toString(Math.cos(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "Tan") {

display.setText(Double.toString(Math.tan(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "aSin") {

display.setText(Double.toString(Math.asin(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "aCos") {

display.setText(Double.toString(Math.acos(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "aTan") {

display.setText(Double.toString(Math.atan(displayNumber)));

currentNumber = 0;

decimalPointPressed = false;

}

// this will convert the numbers displayed to degrees

if (buttonText == "todeg")

display.setText(Double.toString(Math.toDegrees(displayNumber)));

// this will convert the numbers display

// ed to radians

Page 36: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

36

if (buttonText == "torad")

display.setText(Double.toString(Math.toRadians(displayNumber)));

if (buttonText == "Pi") {

display.setText(Double.toString(Math.PI));

currentNumber =0;

decimalPointPressed = false;

}

if (buttonText == "Round")

roundButtonPressed = true;

// check if decimal point is pressed

if (buttonText == ".") {

String displayedNumber = display.getText();

boolean decimalPointFound = false;

int i;

decimalPointPressed = true;

// check for decimal point

for (i =0; i < displayedNumber.length(); ++i) {

if(displayedNumber.charAt(i) == '.') {

decimalPointFound = true;

continue;

}

}

if (!decimalPointFound)

decimalPlaces = 1;

}

if(buttonText == "CA"){

// set all buttons to false

resetAllButtons();

display.setText("0");

currentNumber = 0;

}

if (buttonText == "CE") {

display.setText("0");

currentNumber = 0;

decimalPointPressed = false;

}

if (buttonText == "E") {

display.setText(Double.toString(Math.E));

currentNumber = 0;

decimalPointPressed = false;

Page 37: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

37

}

// the main action

if (buttonText == "=") {

currentNumber = 0;

// if add button is pressed

if(addButtonPressed)

display.setText(Double.toString(initialNumber + displayNumber));

// if subtract button is pressed

if(subtractButtonPressed)

display.setText(Double.toString(initialNumber - displayNumber));

// if divide button is pressed

if (divideButtonPressed) {

// check if the divisor is zero

if(displayNumber == 0) {

MessageBox mb = new MessageBox ( fr, "Error ", true, "Cannot divide by

zero.");

mb.show();

}

else

display.setText(Double.toString(initialNumber/displayNumber));

}

// if multiply button is pressed

if(multiplyButtonPressed)

display.setText(Double.toString(initialNumber * displayNumber));

// if power button is pressed

if (powerButtonPressed)

display.setText(power(initialNumber, displayNumber));

// set all the buttons to false

resetAllButtons();

}

} // end of action events

public void itemStateChanged(ItemEvent ie)

{

} // end of itemState

// this method will reset all the button

// Pressed property to false

public void resetAllButtons() {

addButtonPressed = false;

subtractButtonPressed = false;

multiplyButtonPressed = false;

divideButtonPressed = false;

decimalPointPressed = false;

powerButtonPressed = false;

roundButtonPressed = false;

}

Page 38: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

38

public String factorial(double num) {

int theNum = (int)num;

if (theNum < 1) {

MessageBox mb = new MessageBox (fr, "Facorial Error", true,

"Cannot find the factorial of numbers less than 1.");

mb.show();

return ("0");

}

else {

for (int i=(theNum -1); i > 1; --i)

theNum *= i;

return Integer.toString(theNum);

}

}

public String reciprocal(double num) {

if (num ==0) {

MessageBox mb = new MessageBox(fr,"Reciprocal Error", true,

"Cannot find the reciprocal of 0");

mb.show();

}

else

num = 1/num;

return Double.toString(num);

}

public String power (double base, double index) {

return Double.toString(Math.pow(base, index));

}

public String changeSign(double num) {

return Double.toString(-num);

}

}

class MessageBox extends Dialog implements ActionListener {

Button ok;

MessageBox(Frame f, String title, boolean mode, String message) {

super(f, title, mode);

Panel centrePanel = new Panel();

Label lbl = new Label(message);

centrePanel.add(lbl);

add(centrePanel, "Center");

Panel southPanel = new Panel();

ok = new Button ("OK");

ok.addActionListener(this);

southPanel.add(ok);

add(southPanel, "South");

pack();

addWindowListener (new WindowAdapter() {

public void windowClosing (WindowEvent we) {

Page 39: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

39

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent ae) {

dispose();

}

}

OUTPUT:

RESULT:

Thus a scientific calculator using even-driven programming paradigm of Java is

developed.

Page 40: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

40

EX NO:-8 Multithreading

Aim:-

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.

Procedure:

Page 41: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

41

Program: import java.io.IOException; import java.io.PipedWriter; public class FibonacciGenerator extends Thread { private PipedWriter fibWriter = new PipedWriter(); public PipedWriter getPipedWriter() { return fibWriter; } @Override public void run() { super.run(); generateFibonacci(); } private int f(int n) { if (n < 2) { return n; } else { return f(n-1)+ f(n-2); } } public void generateFibonacci() { /*do { fibValue = f(i); System.out.println("From Fibo : " + fibValue); try { fibWriter.write(fibValue); } catch (IOException e) { e.printStackTrace(); } i++; } while(fibValue < 10000); */ for (int i = 2, fibValue = 0; (fibValue = f(i)) < 10000; i++) { //System.out.println("From Fibo : " + fibValue); try { fibWriter.write(fibValue); } catch (IOException e) { // TODO Auto-generated catch block

Page 42: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

42

e.printStackTrace(); } } //suspend(); } public static void main(String[] args) { new FibonacciGenerator().generateFibonacci(); } }

import java.io.IOException; import java.io.PipedReader; class Receiver extends Thread { private PipedReader fibReader; private PipedReader primeReader; public Receiver(FibonacciGenerator fib, PrimeGenerator prime) throws IOException { fibReader = new PipedReader(fib.getPipedWriter()); primeReader = new PipedReader(prime.getPipedWriter()); } public void run() { int prime = 0; int fib = 0; try { prime = primeReader.read(); fib = fibReader.read(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } while (true) { //System.out.println("FROM PRIME PIPE ::" + prime); //System.out.println("FROM FIB PIPE::" + fib); try { if (prime == fib) { System.out.println("MATCH ::" + prime); prime = primeReader.read(); fib = fibReader.read(); } else if (fib < prime) { fib = fibReader.read(); } else { prime = primeReader.read(); } } catch (IOException e) {

Page 43: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

43

System.exit(-1); } } } }

import java.io.IOException; import java.io.PipedWriter; public class PrimeGenerator extends Thread { private PipedWriter primeWriter = new PipedWriter(); public PipedWriter getPipedWriter() { return primeWriter; } @Override public void run() { super.run(); generatePrime(); } public void generatePrime() { for (int i = 2; i < 10000; i++) { if (isPrime(i)) { try { //System.out.println("From Prime : " + i); primeWriter.write(i); } catch (IOException e) { e.printStackTrace(); } } } //suspend(); } private boolean isPrime(int n) { boolean prime = true; int sqrtValue = (int) Math.sqrt(n); for (int i = 2; i <= sqrtValue; i++) { if (n%i==0) { prime = false; } }

Page 44: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

44

return prime; } public static void main(String[] args) throws IOException { PrimeGenerator gene = new PrimeGenerator(); gene.generatePrime(); } }

import java.io.IOException; public class Main { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { FibonacciGenerator fibonacciGenerator = new FibonacciGenerator(); PrimeGenerator primeGenerator = new PrimeGenerator(); Receiver receiver = new Receiver(fibonacciGenerator, primeGenerator); fibonacciGenerator.start(); primeGenerator.start(); receiver.start(); /*fibonacciGenerator.stop(); primeGenerator.stop(); receiver.stop();*/ //fibonacciGenerator.run(); } }

Output:

C:\jdk1.5\bin>javac FibonacciGenerator.java

C:\jdk1.5\bin>javac PrimeGenerator.java

C:\jdk1.5\bin>javac Receiver.java

C:\jdk1.5\bin>javac Main.java

Page 45: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

45

MATCH ::2

MATCH ::3

MATCH ::5

MATCH ::13

MATCH ::89

MATCH ::233

MATCH ::1597

C:\jdk1.5\bin>

Result:

Thus the above program was executed and verified successfully.

Page 46: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

46

Ex.No: 9 A Simple OPAC system for library

Aim:-

To develop a simple OPAC System for library management system using event-driven and

concurrent programming paradigms and java database connectivity.

Algorithm:-

Step 1:Initiate a class and declare the driver for the Driver name required to connect to the database.

Step 2:-Enclose the coding in a try block to handle errors and trap the exception in a catch block.

Step 3:-Establish the connection object to connect to the backend.

Step 4:-Create an object for Statement object using createStatement() object.

Step 5:-Issue a query through executeQuery() method.

Program

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

Page 47: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

47

{

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));

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"); // cust is the DSN Name

stat = conn.createStatement();

res = stat.executeQuery("Select * from stu"); // 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 {

Page 48: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

48

id.setText(res.getString(2));

name.setText(res.getString(3));

}

catch(Exception e) {}

}//end of the main

//Inner class WIN implemented

class WIN extends WindowAdapter {

public void windowClosing(WindowEvent w) {

JOptionPane jop = new JOptionPane();

jop.showMessageDialog(null,"Database","Thanks",JOptionPane.QUESTION_MESSAGE);

}

} } //end of the class

Output:

Page 49: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

49

Page 50: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

50

Concurrent

import java.sql.*;

import java.sql.DriverManager.*;

class Ja

{

String bookid,bookname;

int booksno;

Connection con;

Statement stmt;

ResultSet rs;

Ja()

{

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:co");

}

catch(Exception e)

{

System.out.println("connection error");

}

}

void myput()

{

try

{

stmt=con.createStatement();

rs=stmt.executeQuery("SELECT * FROM opac");

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[])

Page 51: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

51

{

Ja j=new Ja();

j.myput();

}

}

Output:

Result:

Thus the above program was executed and verified successfully.

Page 52: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

52

Ex.No: 10 Multi-threaded echo server GUI clients

Aim:-

To develop a Java Program that supports multithreaded echo server and a GUI client.

Procedure:

Program:

/**************PROGRAM FOR MULTI-THREADED ECHO SERVER********************/

/******************************* chatclient .java**********************************/

import java.awt.*;

import java.awt.event.*;

import java.io.*; import java.net.*;

class chatclient extends Frame implements ActionListener,Runnable

{

TextArea ta;

TextField tf;

BufferedReader br;

PrintWriter pw;

public static void main(String args[])

{

Page 53: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

53

chatclient cc=new chatclient("ChatClient",args[0],4040);

cc.show();

cc.setSize(300,400);

}

chatclient(String title,String address,int port)

{

super(title);

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent we)

{

System.exit(0);

}

}

);

ta=new TextArea(10,60);

ta.setEditable(false);

add(ta,BorderLayout.CENTER);

tf=new TextField(" ",10);

tf.addActionListener(this);

add(tf,BorderLayout.SOUTH);

try

{

Socket s=new Socket(address,port);

InputStream is=s.getInputStream();

InputStreamReader isr=new InputStreamReader(is);

br=new BufferedReader(isr);

OutputStream os=s.getOutputStream();

pw=new PrintWriter(os,true);

}

catch(Exception e)

{

System.out.println(e);

}

Thread thread=new Thread(this);

thread.start();

}

public void actionPerformed(ActionEvent ae)

{

try { String str=tf.getText();

pw.println(str); tf.setText(" ");

}

catch(Exception e)

{

System.out.println(e);

}

}

public void run()

{

Page 54: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

54

try

{

while(true)

{

String str=br.readLine();

ta.append(str+"\n");

}

}

catch(Exception e)

{

System.out.println(e);

}

}

}

/*************************** chatserver.java***********************************/

import java.net.*;

import java.util.*;

class chatserver

{

static Vector serverthreads;

public static void main(String args[])

{

try

{

serverthreads=new Vector();

ServerSocket ss=new ServerSocket(4040);

while(true)

{

Socket s=ss.accept();

serverthread st=new serverthread(s);

st.start();

serverthreads.addElement(st);

}

}

catch(Exception e)

{

System.out.println(e);

}

}

public synchronized static void echoAll(String str)

{

Page 55: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

55

Enumeration e=serverthreads.elements();

while(e.hasMoreElements())

{

try

{

serverthread st=(serverthread)e.nextElement();

st.echo(str);

}

catch(Exception ae)

{

System.out.println(ae);

}

}

}

}

/****************************** serverthread.java*********************************/

import java.io.*;

import java.net.*;

class serverthread extends Thread

{

private BufferedReader br;

private PrintWriter pw;

public serverthread(Socket socket)

{

try

{

InputStream is=socket.getInputStream();

InputStreamReader isr=new InputStreamReader(is);

br=new BufferedReader(isr); OutputStream os=socket.getOutputStream();

pw=new PrintWriter(os,true);

}

catch(Exception e)

{

System.out.println(e);

}

}

public void run()

{

try

{

while(true)

{

Page 56: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

56

String str=br.readLine();

chatserver.echoAll(str);

}

}

catch(Exception e)

{

System.out.println(e);

}

}

public void echo(String str)

{

try

{

pw.println(str);

}

catch(Exception e)

{

System.out.println(e);

}

}

}

OUTPUT:

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

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

D:\Java\jdk1.5.0_03\bin>java chatserver

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

D:\Java\jdk1.5.0_03\bin>java chatclient 192.168.15.143

D:\Java\jdk1.5.0_03\bin>java chatclient 192.168.15.143

D:\Java\jdk1.5.0_03\bin>java chatclient 192.168.15.143

Page 57: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

57

Result:

Thus the above program was executed and verified successfully.

Page 58: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

58

MiniProject

Aim:

To Develop a programmer's editor in Java that supports syntax highlighting,

compilation support, debugging support, etc

Program:

/*********************** PROGAMMER’S EDITOR IN JAVA************************/ /*

Client Frame Design with width=600 & height=500*/

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.InputStreamReader;

import javax.swing.*;

import javax.swing.border.Border;

import javax.swing.text.Element;

import java.util.StringTokenizer;

public class Client implements ActionListener,MouseListener,MouseMotionListener

{

/************ Components *****************/

JFrame frame;

JTextArea jta1;

public JTextArea jta2;

JTextArea jta3;

JButton jb1;

JButton jb2;

JButton jb3;

JButton jb4;

JLabel jl1;

JLabel jl2;

JLabel jl3;

JScrollPane jsp1;

JScrollPane jsp2;

JScrollPane jsp3;

JTabbedPane jtp1;

JTabbedPane jtp2;

JTabbedPane jtp3;

JMenuBar jm;

JMenu open;

Page 59: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

59

JMenu exit;

JMenu file;

JMenu help;

JMenu compile;

JMenu run;

JMenu opt;

/************ Variables *****************/

String line;

String option;

String className;

String pureFile;

File f2;

File f3;

public Client()

{

frame=new JFrame("XDoS Compiler");

frame.setLayout(null);

frame.setBounds(300,10,200,200);

frame.setSize(900,650);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jta1=new JTextArea(300,400);

jsp1=new JScrollPane(jta1);

jsp1.setBounds(10, 10, 670, 200);

jsp1.setEnabled(false);

Border etchedBdr1 = BorderFactory.createEtchedBorder();

jta1.setBorder(etchedBdr1); //frame.add(jsp1);

jta2=new JTextArea(300,400);

jsp2=new JScrollPane(jta2);

jsp2.setBounds(10, 280, 670, 150);

Border etchedBdr2 = BorderFactory.createEtchedBorder();

jta2.setBorder(etchedBdr2);

jta2.setEditable(false);

//frame.add(jsp2);

jta3=new JTextArea(300,400);

jsp3=new JScrollPane(jta3);

jsp3.setBounds(10, 450, 670, 150);

Border etchedBdr3 = BorderFactory.createEtchedBorder();

jta3.setBorder(etchedBdr3);

//frame.add(jsp3);

jl1=new JLabel();

jl1.setBounds(500, 380, 670, 150);

frame.add(jl1);

jl2=new JLabel();

jl2.setBounds(550, 380, 670, 150);

frame.add(jl2); jl3=new JLabel();

jl3.setBounds(600, 380, 670, 150);

frame.add(jl3);

jb1=new JButton("Browse");

jb1.setBounds(50, 235, 100, 20);

jb1.addActionListener(this);

//frame.add(jb1);

Page 60: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

60

jb2=new JButton("compile");

jb2.setBounds(200, 235, 100, 20);

jb2.addActionListener(this);

//frame.add(jb2); jb3=new JButton("Send");

jb3.setBounds(550, 235, 100, 20);

jb3.addActionListener(this);

//frame.add(jb3);

jb4=new JButton("Run");

jb4.setBounds(400, 235, 100, 20);

jb4.addActionListener(this);

//frame.add(jb4);

jtp1=new JTabbedPane();

jtp1.addTab( "untitled.java", jsp1 );

jtp1.setBounds(10, 40, 670, 400);

UIManager.put("TabbedPane.selected", Color.green);

jtp1.set ForegroundAt(0,Color.BLUE);

jtp1.setBackgroundAt(0,Color.BLUE);

frame.add(jtp1); jtp2=new JTabbedPane();

jtp2.addTab( "Result", jsp2 );

jtp2.setBounds(10, 450, 670, 150);

frame.add(jtp2); jtp3=new JTabbedPane();

jtp3.addTab( "Reply", jsp3 );

jtp3.setBounds(700, 40, 180, 560);

frame.add(jtp3); jm=new JMenuBar();

file=new JMenu("File");

file.setMnemonic('F');

opt=new JMenu("Option");

opt.setMnemonic('O');

opt.setEnabled(false);

jm.add(file);

jm.add(opt);

compile=new JMenu("Compile");

compile.setMnemonic('C');

Action action3 = new AbstractAction("Compile")

{

public void actionPerformed(ActionEvent e)

{

compile();

}

};

JMenuItem item3 = file.add(action3);

opt.add(item3);

run=new JMenu("Run");

run.setMnemonic('R');

Action action4 = new AbstractAction("Run")

{

public void actionPerformed(ActionEvent e)

{

run();

}

};

Page 61: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

61

JMenuItem item4 = file.add(action4);

opt.add(item4); help=new JMenu("Help");

jm.add(help); open=new JMenu("open");

Action action1 = new AbstractAction("Open")

{

public void actionPerformed(ActionEvent e)

{ open(); } };

JMenuItem item1 = file.add(action1);

file.add(item1); exit=new JMenu("Exit");

Action action2 = new AbstractAction("Exit")

{

public void actionPerformed(ActionEvent e)

{

System.exit(0); } };

JMenuItem item2 = file.add(action2);

file.add(item2);

jm.setBounds(5, 0, 880, 30);

frame.add(jm);

frame.setResizable(false);

frame.setVisible(true);

jta1.addMouseListener(this);

jta1.addMouseMotionListener(this);

jtp1.addMouseListener(this); jtp2.addMouseListener(this);

}

public void mouseClicked(MouseEvent ew)

{

if(ew.getSource()==jta1)

{

jl3.setText("Line-No: "+Integer.toString(getCurrentLineNumber()));

}

else if(ew.getSource()==jtp2)

{

if(jtp1.isShowing())

{

frame.remove(jtp1);

jtp2.setBounds(10, 40, 670, 560);

jl1.setBounds(500, 535, 670, 150);

jl2.setBounds(550, 535, 670, 150);

jl3.setBounds(600, 535, 670, 150);

jta2.addMouseMotionListener(this);

jl3.setText("Line-No: "+Integer.toString(getCurrentLineNumber()));

}

else { frame.add(jtp1);

jtp2.setBounds(10, 450, 670, 150);

jl1.setBounds(500, 380, 670, 150);

jl2.setBounds(550, 380, 670, 150);

jl3.setBounds(600, 380, 670, 150);

jta2.removeMouseMotionListener(this);

} }

else if(ew.getSource()==jtp1)

Page 62: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

62

{

if(jtp2.isShowing())

{ frame.remove(jtp2);

frame.remove(jtp3); jtp1.setBounds(10, 40, 870, 560);

jl1.setBounds(500, 535, 670, 150);

jl2.setBounds(550, 535, 670, 150);

jl3.setBounds(600, 535, 670, 150);

}

else { frame.add(jtp2); frame.add(jtp3);

jtp1.setBounds(10, 40, 670, 400);

jl1.setBounds(500, 380, 670, 150);

jl2.setBounds(550, 380, 670, 150);

jl3.setBounds(600, 380, 670, 150); } } }

public void mouseEntered(MouseEvent ew)

{} public void mouseExited(MouseEvent ew) {}

public void mousePressed(MouseEvent ew) {}

public void mouseReleased(MouseEvent ew) {}

public void mouseMoved(MouseEvent e)

{ jl1.setText("X-: "+Integer.toString(e.getX()));

jl2.setText("Y-: "+Integer.toString(e.getY())); }

public void mouseDragged(MouseEvent e) {}

public void actionPerformed(ActionEvent ae) {}

public void open()

{

JFileChooser fileChooser = new JFileChooser();

fileChooser.addChoosableFileFilter(new MyFilter());

int select=fileChooser.showOpenDialog(frame);

if(select==JFileChooser.APPROVE_OPTION) {

File file=fileChooser.getSelectedFile();

String filename=fileChooser.getSelectedFile().getName();

try { FileInputStream fis=new FileInputStream(file);

int n=fis.available(); byte dat[]=new byte[n];

fis.read(dat); String data=new String(dat);

jtp1.setTitleAt(0, filename);

jta1.setText(data); opt.setEnabled(true); }

catch(Exception e)

{ e.printStackTrace(); } }

}

public int getCurrentLineNumber()

{

int line;

int caretPosition = jta1.getCaretPosition();

Element root = jta1.getDocument().getDefaultRootElement();

line = root.getElementIndex(caretPosition) + 1; return line;

}

public void compile() { try { jtp2.setTitleAt(0,"Compile");

String ta1=jta1.getText().trim();

StringBuffer sb=new StringBuffer(ta1);

int id1=ta1.indexOf("public class");

int id2=ta1.indexOf(" ",id1+13);

Page 63: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

63

String name=ta1.substring(id1, id2).trim();

StringTokenizer st3=new StringTokenizer(name,"\n");

System.out.println(st3.countTokens());

String word=st3.nextToken().toString().trim(); System.out.println(word+"*");

StringTokenizer st4=new StringTokenizer(word," "); System.out.println(st4.countTokens());

st4.nextToken(); st4.nextToken();

pureFile=st4.nextToken().toString().trim();

className=pureFile+".java"; //System.out.println(st4.nextElement().toString().trim()+"*");

FileOutputStream f=new FileOutputStream(className);

f.write(ta1.getBytes());

f.close();

f2=new File(className); f3=new File(pureFile+".class");

System.out.println(f2.getAbsolutePath());

String path=f2.getAbsolutePath(); int a1=path.indexOf("\\");

int a2=path.lastIndexOf("\\");

System.out.println(a1+" "+a2);

String colan=path.substring(0, a1).trim();

String location=path.substring(0, a2+1).trim();

System.out.println(colan);

System.out.println(location);

compiler(className); }

catch (Exception err)

{ err.printStackTrace();

} //option=JOptionPane.showInputDialog(null,"Enter Destination System

Name","Destination",1).toString(); //System.out.println(option); // jta2.setText(line); }

public void run() { jtp2.setTitleAt(0,"Run");

runer(pureFile); }

public static void main(String args[])

{

try

{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

}

catch (Exception e) { } new Client(); }

public void compiler(String name)

{ try { jta2.setText("");

jta2.append("Compilation Started.....\n");

jta2.append("Proceed.....\n");

jta2.setForeground(Color.blue);

String callAndArgs= "cmd /c compile.bat "+name; Process p =Runtime.getRuntime().exec(callAndArgs);

BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));

String str=br.readLine();

while(str!=null)

{

System.out.println(str);

str=br.readLine(); }

File f1 = new File("error.txt");

FileReader fr = new FileReader(f1);

BufferedReader br1 = new BufferedReader(fr);

Page 64: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

64

StringBuffer sb1 = new StringBuffer();

String eachLine = br1.readLine();

while (eachLine != null)

{

jta2.setForeground(Color.RED);

sb1.append(eachLine);

sb1.append("\n");

eachLine= br1.readLine(); }

jta2.append(sb1.toString());

//input.close(); if(f1.length()==0)

{

jta2.append("Compiled Successfully........\n");

jta2.append("Done........"); } } catch(Exception e)

{ e.printStackTrace(); } }

public void runer(String name)

{

try { jta3.setText("");

String callAndArgs= "cmd /c run.bat "+name;

Process p =Runtime.getRuntime().exec(callAndArgs);

BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream())); String

str=br.readLine(); while(str!=null)

{

System.out.println(str); str=br.readLine();

}

File f1 = new File("output.txt");

FileReader fr = new FileReader(f1);

BufferedReader br1 = new BufferedReader(fr);

StringBuffer sb1 = new StringBuffer();

String eachLine = br1.readLine();

while (eachLine != null)

{

sb1.append(eachLine);

sb1.append("\n");

eachLine = br1.readLine();

}

String sp=sb1.toString();

StringBuffer st=new StringBuffer(sp);

System.out.println(st.length()); int indx=sp.indexOf(">"); int r=1;

while(indx != -1)

{

System.out.println(Integer.toString(indx)+"*");

System.out.println(st);

st.insert(indx+r, "\n");

indx=sp.indexOf(">",indx+1);

r++;

System.out.println(Integer.toString(indx)+"#");

}

jta2.setText(st.toString()); f2.deleteOnExit();

f3.deleteOnExit(); }

catch(Exception e)

{ e.printStackTrace(); } } }

Page 65: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

65

class MyFilter extends javax.swing.filechooser.FileFilter

{

public boolean accept(File file)

{

return file.isDirectory() || file.getName().endsWith(".java");

}

public String getDescription()

{ return "*.java"; } }

/* Test Frame Design */

import javax.swing.*;

import java.awt.*;

public class Test {

public Test() { JFrame f = new JFrame("Test");

f.setLayout(new FlowLayout());

JTextField jt1 = new JTextField(25);

f.add(jt1); f.setVisible(true);

f.setSize(200,200);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String args[])

{

new Test();

}

}

OUTPUT:

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

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

D:\ Java\jdk1.5.0_03\bin>java Test

D:\ Java\jdk1.5.0_03\bin>java Client

Page 66: CS2309 JAVA LAB LAB MANUAL - WordPress.com SURYA GROUP OF INSTITUTIONS SCHOOL OF ENGINEERING AND TECHNOLOGY VIKIRAVANDI-605602 CS2309 JAVA LAB LAB MANUAL III YEAR B.E (COMPUTER SCIENCE

66

Result:

Thus the above program was executed and verified successfully.