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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C.COLLEGE OF ENGINEERING
MANNAMPANDAL, MAYILADUTHURAI-609 305
Department of Computer Science & Engineering
LAB MANUAL
FOR THE SUBJECT OF
JAVA LAB
Subject Code : CS 2309
Semester : V SEMESTER
Department : B.E CSE
Academic Year : 2013-2014
Name of the Faculty : Ms. M. Parvathi, Asst. Prof
Mrs. H.Prabavathi, Asst. Prof.
Signature of the Staff Signature of the HOD
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C College of Engineering
Mannampandal – 609 305
Department of Computer Science & Engineering
LAB MANUAL -Academic Year 2013 – 2014 Odd Semester
Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof.
Branch/ Year/ Sem: CSE / III / V
Subject : CS2309 Java Lab
SYLLABUS
CS2309 JAVA LAB L T P C
0 0 3 2
1. Develop Rational number class in Java. Use JavaDoc comments for documentation.Your implementation should use efficient representation for a rational number, i.e.(500 / 1000) should be represented as (½).
2. Develop Date class in Java similar to the one available in java.util package. UseJavaDoc 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 implementthis interface, one using array and the other using linked-list. Provide necessaryexception handling in both the implementations.
5. Design a Vehicle class hierarchy in Java. Write a test program to demonstratepolymorphism.
6. Design classes for Currency, Rupee, and Dollar. Write a program that randomlygenerates Rupee and Dollar objects and write them into a file using objectserialization. Write another program to read that file, convert to Rupee if it reads aDollar, while leave the value as it is if it reads a Rupee.
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 areboth prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design athread that generates prime numbers below 100,000 and writes them into a pipe.Design another thread that generates fibonacci numbers and writes them to anotherpipe. The main thread should read both the pipes to identify numbers common toboth.
1
AVCCE CSE/V CS2309 JAVA LAB MANUAL
9. Develop a simple OPAC system for library using even-driven and concurrentprogramming 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 PERIODSRequirement for a Batch of 30 Students
S.No. Description of Equipment Quantity Required1 PC’s 302 JUM & J2SE(Freeware) 303 MYSQL or any other DB 30
2
AVCCE CSE/V CS2309 JAVA LAB MANUAL
A.V.C College of Engineering
Mannampandal – 609 305
Department of Computer Science & Engineering
LAB PLAN -Academic Year 2013 – 2014 Odd Semester
Name of the Staff: Ms. M. Parvathi, Asst. Prof , Mrs. H.Prabavathi, Asst. Prof.
Branch/ Year/ Sem: CSE / III / V
Subject : CS2309 Java Lab
S. No
Name of the Exercise Reference Batch
1. IMPLEMENTATION OF RATIONAL NUMBERS
Lab Manual Batch – B1(6,7,8) &
B2(6,7,8)
2. IMPLEMENTATION OF DATE CLASS
3. IMPLEMENTATION OF LISP-LIKE-LIST
4.IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK
5. IMPLEMENTATION OF POLYMORPHISM
6. IMPLEMENTATION OF OBJECT SERILIZATION
3
AVCCE CSE/V CS2309 JAVA LAB MANUAL
7. IMPLEMENTATION OF SCENTIFIC CALCULATOR USING EVENT DRIVEN PROGRAMMING
8. IMPLEMENTATION OF MULTI THREADED PROGRAM
9. PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY
10. IMPLEMENTATION OF MULTI-THREADED ECHO SERVER
Tentative No. of Lab Periods : 30
4
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:01 IMPLEMENTATION OF RATIONAL NUMBERS
AIM:
To develop Rational number class in Java. Use JavaDoc comment for documentation. Your implementation should use efficient representation for a rational number, i.e. (500 / 1000) should be represented as (½).
ALGORITHM:
STEP 1: Get two inputs from the user through command line arguments.STEP 2: Store the numerator to variable a and denominator to variable b.STEP 3: If both a and b are either positive or negative, set the flag as 0.STEP 4: If either a or b is negative, set flag as 1.STEP 5: Compare the values of a and b and assign the lowest value to c.STEP 6: Set the for loop for i=2.STEP 7: If both a and b values are divisible by i, then perform
(i) a=a/i;(ii) b=b/i;(ii) i=1;
STEP 8: Repeat the loop if the value of i is less than c. Break the loop if the condition fails.STEP 9: If flag is 1, display the result as negative number; else display it as positive number.PROGRAM:
Thus the program Implementation of rational numbers has been successfully executed verified and successfully.
7
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:02 IMPLEMENTATION OF DATE CLASS
AIM:
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 secondsSTEP 2: Get the year, month, date, hours, minutes, seconds using the getYear(),
getMonth(), getDate(), getHours(), getMinutes(), getSeconds() methods.STEP 3: Set all these details using set methods.STEP 4: After()-the after() method returns true if the current date comes after the specified date else it returns falseSTEP 5: Before()-the before()method returns true if the current date comes before the specified date else it returns falseSTEP 6: Compare()-the compare() method compares the current date with the specified date and returns 0 if it is equal,if after it returns 1 and if before it returns -1.
PROGRAM:
import java.io.*;import java.util.Date;public class Dateclass{public static void main(String args[]){Date d1=new Date();try{Thread.sleep(10);}catch(Exception e){}Date d2=new Date();System.out.println("First date:"+d1);System.out.println("Second date:"+d2);System.out.println("In second date after first:"+d2.after(d1));int result=d1.compareTo(d2);
8
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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");elseSystem.out.println("Both are equal");Date d=new Date(365L*24L*60L*60L*1000L);System.out.println(d);System.out.println("Milli Second since jan-1-1970 00:00:00:IST:"+d.getTime());}}
OUTPUT:
C:\ jdk1.6.0_17\bin>javac DateClass.javaC:\jdk1.6.0_17\bin>java DateClassFirst date:Wed Sep 29 20:23:17 GMT+05:30 2010Second date:Wed Sep 29 20:23:17 GMT+05:30 2010In second date after first:trueFirst date is before second dateFri Jan 01 05:30:00 GMT+05:30 1971Milli Second since jan-1-1970 00:00:00:IST:31536000000
RESULT:
Thus the program Implementation of date class has been successfully executed verified and successfully.
9
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:03 IMPLEMENTATION OF LISP-LIKE-LIST
AIM:
To implement Lisp-like list in Java. Write basic operations such as 'car', 'cdr', and'cons'. If L is a list [3, 0, 2, 5], L.car() returns 3, while L.cdr() returns [0,2,5].
ALGORITHM:
STEP 1: Create a node of a list having data part and link part.STEP 2: Create a menu having the following choices : insert, car, cdr, adjoin and display.STEP 3: Read the choice from the user and call the respective m ethods.STEP 4: Create another class which implements the same interface to implement the concept of stack through linked list.
INSERTSTEP 1: Create an object of node and append to the list.
CARSTEP 1: Return the first node data.
CDRSTEP 1: Return all the node (data part) in the list except the first node.
ADJOINSTEP 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);
Thus the program Implementation of lisp-like-list has been successfully executed verified and successfully.
11
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:04 IMPLEMENTATION OF JAVA INTERFACE FOR ADT STACK
AIM:
To design a Java interface for ADT Stack. Develop two different classes that implement this interface, one using array and the other using linked-list. 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 ArraySTEP 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("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;
------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:1Enter the element to push:100-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:3100-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:2100is deleted-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITENTER YOUR OPTION:3-------------------------------------------------------------------STACK IMPLEMENTATION USING LINKED LIST-------------------------------------------------------------------1. PUSH2. POP3. DISPLAY4. EXITRESULT:
Thus the program Implementation of java interface for ADT stack has been successfully executed verified and successfully.
15
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:05 IMPLEMENTATION OF POLYMORPHISM
AIM:
To design a Vehicle class hierarchy in Java. Write a test program to demonstratePolymorphism.
ALGORITHM:
STEP 1: Create an abstract class named vehicle with abstract method Display and 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.
Thus the program Implementation of polymorphism has been successfully executed verified and successfully.
18
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:06 IMPLEMENTATION OF OBJECT SERILIZATION
AIM: To design classes for Currency, Rupee, and Dollar. Write a program that randomlygenerates Rupee and Dollar objects and write them into a file using objectserialization. Write another program to read that file, convert to Rupee if it reads aDollar, while leave the value as it is if it reads a Rupee.
ALGORITHM :
STEP 1: Create a class named currency that implements the serializable interface 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.
C:\jdk1.6.0_17\bin>javac CurrencyTest.javaC:\jdk1.6.0_17\bin>java CurrencyTestSelect Input Type
1.Dollar2.Rupee
1Enter No of Dollar:45The Equal Rupee is:2025C:\jdk1.6.0_17\bin>java CurrencyTestSelect Input Type
1.Dollar2.Rupee
2Enter Rupee:45The Rupee is:45C:\jdk1.6.0_17\bin>
RESULT:
Thus the program Implementation object serialization has been successfully executed verified and successfully.
22
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:07 IMPLEMENTATION OF SCENTIFIC CALCULATOR USINGEVENT DRIVEN PROGRAMMING
AIM:
To develop a scientific calculator using even-driven programming paradigm of Java.
ALGORITHM:
STEP 1: Create a panel consisting of Buttons for various scientific operations.STEP 2: Create Button actions.STEP 3: Place the panel onto a frame.STEP 4: Associate each Button click with the corresponding actionlistener.
if (start==true){if (command.equals("-")){display.setText(command);start = false;}elselastCommand = command;}else{calculate(Double.parseDouble(display.getText()));lastCommand = command;start = true;}}}public void calculate(double x){if (lastCommand.equals("+")) result += x;else if (lastCommand.equals("-")) result -= x;else if (lastCommand.equals("*")) result *= x;else if (lastCommand.equals("/")) result /= x;else if (lastCommand.equals("=")) result = x;else if (lastCommand.equals("CE")) result = 0.0;else if (lastCommand.equals("m+")) result = result;else if (lastCommand.equals("m-")) result = 0.0;else if (lastCommand.equals("pow")){double powval=1.0;for(double i=0.0;i<x;i++)powval*=result;
Thus the program Implementation of scientific calculator using event driven programming has been successfully executed verified and successfully.
27
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:08 IMPLEMENTATION OF MULTI THREADED PROGRAM
AIM: To write a multi-threaded Java program to print all numbers below 100,000 that areboth prime and fibonacci number (some examples are 2, 3, 5, 13, etc.). Design athread that generates prime numbers below 100,000 and writes them into a pipe.Design another thread that generates fibonacci numbers and writes them to anotherpipe. The main thread should read both the pipes to identify numbers common toboth.
ALGORITHM:
STEP 1: CreateThread1 which generates prime numbers below 100,000 and store 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.
System.out.println(t.getName()+"Thread exiting.");System.exit(0);}} }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.");} }
30
AVCCE CSE/V CS2309 JAVA LAB MANUAL
OUTPUT:
C:\jdk1.6.0_17\bin>javac PipedIo.java
C:\jdk1.6.0_17\bin>java PipedIoMain:Thread sorted......Fibonacci:Thread stored......Prime:Thread stored.......The Numbers Common To PRIME and FIBONACCI:12351389233159728657Fibonacci:Thread exiting.Main:Thread exiting.Prime:Thread exiting.
C:\jdk1.6.0_17\bin>
RESULT:
Thus the program Implementation of multi threaded program to find Fibonacci series has been Successfully executed and verified successfully.
31
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:09 PROGRAM FOR SIMPLE OPAC SYSTEM FOR LIBRARY
AIM:
To develop a simple OPAC system for library using event-driven and concurrentProgramming paradigms of Java. Use JDBC to connect to a back-end database.
ALGORITHM:
STEP 1: Create a Master Database1(Book Details) having the following fields: BookNo., Book Name, Author, No. of pages, Name of Publisher, Cost.STEP 2: Create a Master Database2(User Details) having the following fields : UserID, Department STEP 3: Create a Transaction Database having the following fields: UserID, Book No., Date of Renewal / Date of Return, FineSTEP 4: Create a panel consisting of buttons ADD, UPDATE, DELETE. Associate these button actions with listeners(with Master Database 1)STEP 5: Create a panel consisting of buttons ADD, UPDATE, DELETE. Associate these button actions with listeners(with Master Database 2)STEP 6: Create another panel consisting of buttons UserID, BookID, Return/Renewal, Fine.STEP 7: Associate these buttons with listeners(with Transaction Database).
EVENT DRIVEN:
import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Datas extends JFrame implements ActionListener { JTextField id; JTextField name; JButton next; JButton addnew; JPanel p; static ResultSet res; static Connection conn; static Statement stat; public Datas() { super("Our Application"); Container c = getContentPane(); c.setLayout(new GridLayout(5,1)); id = new JTextField(20);
32
AVCCE CSE/V CS2309 JAVA LAB MANUAL
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"); // 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
33
AVCCE CSE/V CS2309 JAVA LAB MANUAL
{ id.setText(res.getString(1)); name.setText(res.getString(2)); } 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
Thus the program Implementation of simple OPAC system for library has been Successfully executed and verified successfully
37
AVCCE CSE/V CS2309 JAVA LAB MANUAL
EX.NO:10 IMPLEMENTATION OF MULTI-THREADED ECHO SERVERAIM: 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.