Professional Documents
Culture Documents
Java Lab Manual With Java Installation Guide
Java Lab Manual With Java Installation Guide
LAB MANUAL
A Helpful Hand
Copyright
cserockz08, 2009
www.cserockz.com
Page 1
LAB MANUAL
OOP Concepts: The object oriented paradigm is built on the foundation laid by the structured programming concepts. The fundamental change in OOP is that a program is designed around the data being operated upon rather upon the operations themselves. Data and its functions are encapsulated into a single entity.OOP facilitates creating reusable code that can eventually save a lot of work. A feature called polymorphism permits to create multiple definitions for operators and functions. Another feature called inheritance permits to derive new classes from old ones. OOP introduces many new ideas and involves a different approach to programming than the procedural programming. Benefits of object oriented programming: Data security is enforced. Inheritance saves time. User defined data types can be easily constructed. Inheritance emphasizes inventions of new data types.
Copyright
cserockz08, 2009
www.cserockz.com
Page 2
LAB MANUAL
Large complexity in the software development cn be easily managed. Basic C++ Knowledge: C++ began its life in Bell Labs, where Bjarne Stroustrup developed the language in the early 1980s. C++ is a powerful and flexible programming language. Thus, with minor exceptions, C++ is a superset of the C Programming language. The principal enhancement being the object oriented concept of a class. A Class is a user defined type that encapsulates many important mechanisms. Classes enable programmers to break an application up into small, manageable pieces, or objects. Basic concepts of Object oriented programming: Object: Objects are the basic run time entities in an object-oriented system. thy may represent a person, a place, a bank account, a table of data or any item that the program has to handle. Class: The entire set of data and code of an object can be made of a user defined data type with the help of a class. I fact, Objects are variables of the type class. Once a class has been defined, we can create any number of objects belonging to that class A class is thus a collection of objects of similar type. for example: mango, apple, and orange are members of the class fruit. ex: fruit mango; will create an object mango belonging to the class fruit. Data Abstraction and Encapsulation: The wrapping up of data and functions in to a single unit is known as encapsulation. Data encapsulation is the most striking feature of a class. The data is not accessible to the outside world, and only those functions which are wrapped in the class can access. This insulation of the data from direct access by the program is called data hiding.
Copyright
cserockz08, 2009
www.cserockz.com
Page 3
LAB MANUAL
Abstraction : Abstraction referes to the act of representing essential features without including the background details or explanations. since the classes use the concept of data abstraction ,thy are known as abstraction data type(ADT). Inheritance : Inheritance is the process by which objects of one class acquire the properties of objects of another class. Inheritance supports the concept of hierarchical classification. for example:
Bird
Attributes: Feathers Lay eggs
Flying bird
Attributes: --------------------
Robin
Attributes: _________
Swallow
Attributes: _________
Penguin
Attributes: _________
Kiwi
Attributes: _________
The bird 'robin ' is a part of the class 'flying bird' which is agian a part of the class 'bird'. The concept of inheritance provide the idea of reusability.
Copyright
cserockz08, 2009
www.cserockz.com
Page 4
LAB MANUAL
POLYMORPHISM: Polymorphism is another important oop concept. Polymorphism means the ability to take more than one form. an operation may exhibit different instances. The behavior depends upon the types of data used in the operation. The process of making an operator to exhibit different behaviors in different instance is known as operator overloading. Polymorphism plays an important role in allowing objects having different internal structures to share the same external interface. Polymorphism is extensively used if implementing inheritance.
Shape Draw()
The Object-Oriented Approach The fundamental idea behind object-oriented languages is to combine into a single program entity both data and the functions that operate on that data. Such an entity is called an object. An object's functions, called member functions in C++ (because they belong to a particular class of objects), typically provide the only way to access its data. If you want to read a data item in an object, you call a member function in the object. It will read the item and return the value to you. You can't access the data directly. The data is hidden, so it is safe from accidental alteration. Data and its functions are said to be encapsulated into a single entity. Encapsulation and data hiding are key terms in the description of object-oriented languages.
Copyright
cserockz08, 2009
www.cserockz.com
Page 5
LAB MANUAL
Java is a general-purpose; object oriented programming language developed by Sun Microsystems of USA in 1991. Originally called oak by James Gosling, one of the inventors if the language. This goal had a strong impact on the development team to make the language simple, portable, highly reliable and powerful language. Java also adds some new features. While C++ is a superset of C. Java is neither a superset nor a subset of C or C++.
C++ C
Java
Copyright
cserockz08, 2009
www.cserockz.com
Page 6
LAB MANUAL
Text Editor
Javadoc
HTML files
Javac
Javah
Header Files
Jdb (database)
The way these tools are applied to build and run application programs is create a program. We need create a source code file using a text editor. The source code is then compiled using the java compiler javac and executed using the java interpreter java. The java debugger jdb is used to find errors. A complied java program can be converted into a source code.
Copyright
cserockz08, 2009
www.cserockz.com
Page 7
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 8
LAB MANUAL
12. Write an Applet that displays a simple message. 13. Write an Applet that computes the payment of a loan based on the amount of the loan, the interest rate and the number of months. It takes one parameter from the browser: Monthly rate; if true, the interest rate is per month, otherwise the interest rate is annual. 14. WAJP that works as a simple calculator. Use a grid layout to arrange buttons for the digits and for the + - x / % operations. Add a text field to display the result. 15. WAJP for handling mouse events. 16. WAJP for creating multiple threads. 17. WAJP that correctly implements Producer-Consumer problem using the concept of Inter Thread Communication. 18. WAJP that lets users create Pie charts. Design your own user interface (with Swings & AWT). 19. WAJP that allows user to draw lines, rectangles and ovals. 20. WAJP that implements a simple client/server application. The client sends data to a server. The server receives the data, uses it to produce a result and then sends the result back to the client. The client displays the result on the console. For ex: The data sent from the client is the radius of a circle and the result produced by the server is the area of the circle. 21. WAJP that illustrates how runtime polymorphism is achieved. 22. WAJP to generate a set of random numbers. Find its sum and average. The program should also display * based on the random numbers generated. 23. WAJP to create an abstract class named Shape, that contains an empty method named numberOfSides(). Provide three classes named Trapezoid, Triangle and
Copyright
cserockz08, 2009
www.cserockz.com
Page 9
LAB MANUAL
Hexagon, such that each one of the classes contains only the method numberOfSides(), that contains the number of sides in the given geometrical figure. 24. WAJP to implement a Queue, using user defined Exception Handling (also make use of throw, throws). 25. WAJP that creates 3 threads by extending Thread class. First thread displays Good Morning every 1 sec, the second thread displays Hello every 2 seconds and the third displays Welcome every 3 seconds. (Repeat the same by implementing Runnable) 26. WAJP that will compute the following series: (a) 1 + 1/2 + 1/3+ .+ 1/n (b) 1 + 1/2 + 1/ 22 + 1/ 23 + + 1/ 2n (c) ex = 1 + x/1! + x2/2! + x3/3! +
27. WAJP to do the following: (a) To output the question Who is the inventor of Java? (b) To accept an answer (c) To printout GOOD and then stop if the answer is correct (d) To output the message TRY AGAIN, if the answer is wrong (e) To display the correct answer, when the answer is wrong even at the third attempt 28. WAJP to transpose a matrix using arraycopy command. 29. Create an inheritance hierarchy of Rodent, Mouse, Gerbil, Hamster etc. In the base class provide methods that are common to all Rodents and override these in the derived classes to perform different behaviors, depending on the specific type of Rodent. Create an array of Rodent, fill it with different specific types of Rodents and call your base class methods. 30. WAJP to print a chessboard pattern.
Copyright
cserockz08, 2009
www.cserockz.com
Page 10
LAB MANUAL
Write a Java program that prints all real solutions to the quadratic equation ax2+bx+c = 0. Read in a, b, c and use the quadratic formula. If the discriminant b2-4ac is negative, display a message stating that there are no real solutions. Program : import java.io.*; class Quadratic { public static void main(String args[])throws IOException { double x1,x2,disc,a,b,c; InputStreamReader obj=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(obj); System.out.println("enter a,b,c values"); a=Double.parseDouble(br.readLine()); b=Double.parseDouble(br.readLine()); c=Double.parseDouble(br.readLine()); disc=(b*b)-(4*a*c); if(disc==0) { System.out.println("roots are real and equal "); x1=x2=-b/(2*a); System.out.println("roots are "+x1+","+x2); } else if(disc>0) { System.out.println("roots are real and unequal");
Copyright
cserockz08, 2009
www.cserockz.com
Page 11
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 12
LAB MANUAL
The Fibonacci sequence is defined by the following rule. The first 2 values in the sequence are 1, 1. Every subsequent value is the sum of the 2 values preceding it. Write a Java program that uses both recursive and non-recursive functions to print the nth value of the Fibonacci sequence. Program : /*Non Recursive Solution*/ import java.util.Scanner; class Fib { public static void main(String args[ ]) { Scanner input=new Scanner(System.in); int i,a=1,b=1,c=0,t; System.out.println("Enter value of t:"); t=input.nextInt(); System.out.print(a); System.out.print(" "+b); for(i=0;i<t-2;i++) { c=a+b; a=b; b=c; System.out.print(" "+c); } System.out.println(); System.out.print(t+"th value of the series is: "+c); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 13
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 14
LAB MANUAL
class RecFibDemo { public static void main(String args[])throws IOException { InputStreamReader obj=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(obj); System.out.println("enter last number"); int n=Integer.parseInt(br.readLine()); Demo ob=new Demo(); System.out.println("fibonacci series is as follows"); int res=0; for(int i=1;i<=n;i++) { res=ob.fib(i); System.out.println(" "+res); } System.out.println(); System.out.println(n+"th value of the series is "+res); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 15
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 16
LAB MANUAL
WAJP that prompts the user for an integer and then prints out all the prime numbers up to that Integer. Program : Import java.util.* class Test { void check(int num) { System.out.println ("Prime numbers up to "+num+" are:"); for (int i=1;i<=num;i++) for (int j=2;j<i;j++) { if(i%j==0) break; else if((i%j!=0)&&(j==i-1)) System.out.print( +i); } } } //end of class Test class Prime { public static void main(String args[ ]) { Test obj1=new Test(); Scanner input=new Scanner(System.in); System.out.println("Enter the value of n:"); int n=input.nextInt(); obj1.check(n); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 17
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 18
LAB MANUAL
WAJP that checks whether a given string is a palindrome or not. Ex: MADAM is a palindrome. Program : import java.io.*; class Palind { public static void main(String args[ ])throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the string to check for palindrome:"); String s1=br.readLine(); StringBuffer sb=new StringBuffer(); sb.append(s1); sb.reverse(); String s2=sb.toString(); if(s1.equals(s2)) System.out.println("palindrome"); else System.out.println("not palindrome"); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 19
LAB MANUAL
Output
Copyright
cserockz08, 2009
www.cserockz.com
Page 20
LAB MANUAL
String[ ] getArray()throws IOException { BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); System.out.println ("Enter the strings U want to sort----"); for (int i=0;i<len;i++) arr[i]=br.readLine(); return arr; } String[ ] check()throws ArrayIndexOutOfBoundsException { for (i=0;i<len-1;i++) { for(int j=i+1;j<len;j++) { if ((arr[i].compareTo(arr[j]))>0) { String s1=arr[i]; arr[i]=arr[j]; arr[j]=s1; } } } return arr; } void display()throws ArrayIndexOutOfBoundsException {
Copyright
cserockz08, 2009
www.cserockz.com
Page 21
LAB MANUAL
class Ascend { public static void main(String args[ ])throws IOException { Test obj1=new Test(4); obj1.getArray(); obj1.check(); obj1.display(); } } Input & Output :
Copyright
cserockz08, 2009
www.cserockz.com
Page 22
LAB MANUAL
int[ ][ ] getArray(int r,int c) { int arr[][]=new int[r][c]; System.out.println("Enter the elements for "+r+"X"+c+" Matrix:"); Scanner input=new Scanner(System.in); for(int i=0;i<r;i++) for(int j=0;j<c;j++) arr[i][j]=input.nextInt(); return arr; } int[ ][ ] findMul(int a[ ][ ],int b[ ][ ]) { int c[][]=new int[r1][c2]; for (int i=0;i<r1;i++) for (int j=0;j<c2;j++) { c[i][j]=0; for (int k=0;k<r2;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } return c; } void putArray(int res[ ][ ]) {
Copyright
cserockz08, 2009
www.cserockz.com
Page 23
LAB MANUAL
System.out.println ("The resultant "+r1+"X"+c2+" Matrix is:"); for (int i=0;i<r1;i++) { for (int j=0;j<c2;j++) System.out.print(res[i][j]+" "); System.out.println(); } } } //end of Test class class MatrixMul { public static void main(String args[ ])throws IOException { Test obj1=new Test(2,3,3,2); Test obj2=new Test(2,3,3,2); int x[ ][ ],y[ ][ ],z[ ][ ]; System.out.println("MATRIX-1:"); x=obj1.getArray(2,3); //to get the matrix from user System.out.println("MATRIX-2:"); y=obj2.getArray(3,2); z=obj1.findMul(x,y); //to perform the multiplication obj1.putArray(z); // to display the resultant matrix } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 24
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 25
LAB MANUAL
WAJP that reads a line of integers and then displays each integer and the sum of all integers. (use StringTokenizer class) Program : // Using StringTokenizer class import java.lang.*; import java.util.*; class tokendemo { public static void main(String args[ ]) { String s="10,20,30,40,50"; int sum=0; StringTokenizer a=new StringTokenizer(s,",",false); System.out.println("integers are "); while(a.hasMoreTokens()) { int b=Integer.parseInt(a.nextToken()); sum=sum+b; System.out.println(" "+b); } System.out.println("sum of integers is "+sum); } } // Alternate solution using command line arguments class Arguments { public static void main(String args[ ]) { int sum=0; int n=args.length; System.out.println("length is "+n); int arr[]=new int[n]; for(int i=0;i<n;i++) arr[i]=Integer.parseInt(args[i]); System.out.println("The enterd values are:");
Copyright
cserockz08, 2009
www.cserockz.com
Page 26
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 27
LAB MANUAL
WAJP that reads on file name from the user, then displays information about whether the file exists, whether the file is readable, wheteher the file is writable, the type of file and the length of the file in bytes. Program : import java.io.File; class FileDemo { static void p(String s) { System.out.println(s); } public static void main(String args[ ]) { File f1 = new File(args[0]); p("File Name: " + f1.getName()); p("Path: " + f1.getPath()); p("Abs Path: " + f1.getAbsolutePath()); p("Parent: " + f1.getParent()); p(f1.exists() ? "exists" : "does not exist"); p(f1.canWrite() ? "is writeable" : "is not writeable"); p(f1.canRead() ? "is readable" : "is not readable"); p("is " + (f1.isDirectory() ? "" : "not" + " a directory")); p(f1.isFile() ? "is normal file" : "might be a named pipe"); p(f1.isAbsolute() ? "is absolute" : "is not absolute"); p("File last modified: " + f1.lastModified()); p("File size: " + f1.length() + " Bytes"); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 28
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 29
LAB MANUAL
WAJP that reads a file and displays the file on the screen, with a line number before each line. Program : import java.io.*; class LineNum{ public static void main(String args[]){ String thisline; for(int i=0;i<args.length;i++) { try{ LineNumberReader br=new LineNumberReader(new FileReader(args[i])); while((thisline=br.readLine())!=null) { System.out.println(br.getLineNumber()+"."+thisline); } }catch(IOException e){ System.out.println("error:"+e); } } } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 30
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 31
LAB MANUAL
Program Statement : WAJP that displays the number of characters, lines and words in a text file. Program : import java.io.*; public class FileStat { public static void main(String args[ ])throws IOException { long nl=0,nw=0,nc=0; String line; BufferedReader br=new BufferedReader(new FileReader(args[0])); while ((line=br.readLine())!=null) { nl++; nc=nc+line.length(); int i=0; boolean pspace=true; while (i<line.length()) { char c=line.charAt(i++); boolean cspace=Character.isWhitespace(c); if (pspace&&!cspace) nw++; pspace=cspace; } } System.out.println("Number of Characters"+nc); System.out.println("Number of Characters"+nw); System.out.println("Number of Characters"+nl); }} // Alternate solution using StringTokenizer import java.io.*; import java.util.*; public class FileStat { public static void main(String args[ ])throws IOException { long nl=0,nw=0,nc=0; String line; BufferedReader br=new BufferedReader(new FileReader(args[0])); while ((line=br.readLine())!=null) { nl++;
Copyright
cserockz08, 2009
www.cserockz.com
Page 32
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 33
LAB MANUAL
Program : import java.io.*; interface stack { void push(int item); int pop(); } class Stackimpl { private int stck[]; private int top; Stackimpl(int size) { stck=new int[size]; top=-1; } void push(int item) { if(top==stck.length-1) System.out.println("stack is full insertion is not possible"); else stck[++top]=item; } int pop()
Copyright
cserockz08, 2009
www.cserockz.com
Page 34
LAB MANUAL
if(top==-1) { System.out.println("stack is empty deletion is not possible"); return 0; } else return stck[top--]; } }
class Stackdemo { public static void main(String args[])throws IOException { int a[]; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("enter the size of the array"); int n=Integer.parseInt(br.readLine()); Stackimpl obj1=new Stackimpl(n); a=new int[n]; System.out.println("enter numbers into the stack"); for(int i=0;i<n;i++) a[i]=Integer.parseInt(br.readLine()); System.out.println("numbers are inserted"); for(int i=0;i<n;i++) obj1.push(a[i]); System.out.println("The following numbers are poped out.");
Copyright
cserockz08, 2009
www.cserockz.com
Page 35
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 36
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 37
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 38
LAB MANUAL
Write an Applet that computes the payment of a loan based on the amount of the loan, the interest rate and the number of months. It takes one parameter from the browser: Monthly rate; if true, the interest rate is per month, otherwise the interest rate is annual. Program : import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code = "LoanPayment" width=500 height=300 > <param name = monthlyRate value=true> </applet> */ public class LoanPayment extends Applet implements ActionListener { TextField amt_t, rate_t, period_t; Button compute = new Button("Compute"); boolean monthlyRate; public void init() { Label amt_l = new Label("Amount: "); Label rate_l = new Label("Rate: ", Label.CENTER); Label period_l = new Label("Period: ", Label.RIGHT);
amt_t = new TextField(10); rate_t = new TextField(10); period_t = new TextField(10); add(amt_l); add(amt_t); add(rate_l); add(rate_t); add(period_l); add(period_t);
Copyright
cserockz08, 2009
www.cserockz.com
Page 39
LAB MANUAL
monthlyRate = Boolean.valueOf(getParameter("monthlyRate")); amt_t.addActionListener(this); rate_t.addActionListener(this); period_t.addActionListener(this); compute.addActionListener(this); } public void paint(Graphics g) { double amt=0, rate=0, period=0, payment=0; String amt_s, rate_s, period_s, payment_s; g.drawString("Input the Loan Amt, Rate and Period in each box and press Compute", 50,100); try { amt_s = amt_t.getText(); amt = Double.parseDouble(amt_s); rate_s = rate_t.getText(); rate = Double.parseDouble(rate_s); period_s = period_t.getText(); period = Double.parseDouble(period_s); } catch (Exception e) { } if (monthlyRate) payment = amt * period * rate * 12 / 100; else payment = amt * period * rate / 100; payment_s = String.valueOf(payment); g.drawString("The LOAN PAYMENT amount is: ", 50, 150); g.drawString(payment_s, 250, 150);
Copyright
cserockz08, 2009
www.cserockz.com
Page 40
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 41
LAB MANUAL
WAJP that works as a simple calculator. Use a grid layout to arrange buttons for the digits and for the + - x / % operations. Add atext field to display the result. Program : import javax.swing.*; import java.awt.*; import java.awt.event.*; //<applet code=Calculator height=300 width=200></applet> public class Calculator extends JApplet { public void init() { CalculatorPanel calc=new CalculatorPanel(); getContentPane().add(calc); } } class CalculatorPanel extends JPanel implements ActionListener { JButton n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,plus,minus,mul,div,dot,equal; static JTextField result=new JTextField("0",45); static String lastCommand=null; JOptionPane p=new JOptionPane(); double preRes=0,secVal=0,res; private static void assign(String no) { if((result.getText()).equals("0")) result.setText(no); else if(lastCommand=="=") { result.setText(no); lastCommand=null; } else result.setText(result.getText()+no); } public CalculatorPanel() {
Copyright
cserockz08, 2009
www.cserockz.com
Page 42
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 43
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 44
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 45
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 46
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 47
LAB MANUAL
// Handle mouse dragged. public void mouseDragged(MouseEvent me) { // save coordinates mouseX = me.getX(); mouseY = me.getY(); msg = "*"; showStatus("Dragging mouse at " + mouseX + ", " + mouseY); repaint();
Copyright
cserockz08, 2009
www.cserockz.com
Page 48
LAB MANUAL
// Handle mouse moved. public void mouseMoved(MouseEvent me) { // show status showStatus("Moving mouse at " + me.getX() + ", " + me.getY()); } // Display msg in applet window at current X,Y location. public void paint(Graphics g) { g.drawString(msg, mouseX, mouseY); } } Input & Output :
Copyright
cserockz08, 2009
www.cserockz.com
Page 49
LAB MANUAL
Program Statement : WAJP for creating multiple threads. Program : class NewThread implements Runnable { String name; // name of thread Thread t; NewThread(String threadname) { name = threadname; t = new Thread(this, name); System.out.println("New thread: " + t); t.start(); // Start the thread } // This is the entry point for thread. public void run() { try {
Copyright
cserockz08, 2009
www.cserockz.com
Page 50
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 51
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 52
LAB MANUAL
WAJP that correctly implements Producer-Consumer problem using the concept of Inter Thread Communication. Program : class Q { int n; boolean valueSet = false; synchronized int get() { if (!valueSet) try { wait(); } catch (InterruptedException e) { } System.out.println(Got: + n); valueSet = false; notify(); return n; } synchronized void put(int n) { if (valueSet) try { wait(); } catch (InterruptedException e) { } this.n = n; valueSet = true; System.out.println(Put: + n); notify(); } } class Producer implements Runnable { Q q;
Copyright
cserockz08, 2009
www.cserockz.com
Page 53
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 54
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 55
LAB MANUAL
WAJP that lets users create Pie charts. Design your own user interface (with Swings & AWT). Program : import java.awt.*; import java.applet.*; /*<applet code=PiChart.class width=600 height=600></applet>*/ public class PiChart extends Applet { public void paint(Graphics g) { setBackground(Color.green); g.drawString("PI CHART",200,40); g.setColor(Color.blue); g.fillOval(50,50,150,150); g.setColor(Color.white); g.drawString("40%",130,160); g.setColor(Color.magenta); g.fillArc(50,50,150,150,0,90); g.setColor(Color.white); g.drawString("25%",140,100); g.setColor(Color.yellow); g.fillArc(50,50,150,150,90,120); g.setColor(Color.black); g.drawString("35%",90,100); g.setColor(Color.yellow); g.fillOval(250,50,150,150); g.setColor(Color.black); g.drawString("15%",350,150); g.setColor(Color.magenta); g.fillArc(250,50,150,150,0,30); g.setColor(Color.black); g.drawString("5%",360,120); g.setColor(Color.blue);
Copyright
cserockz08, 2009
www.cserockz.com
Page 56
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 57
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 58
LAB MANUAL
public class choice extends JApplet { int i,ch; public void init() { String input; input=JOptionPane.showInputDialog("enter your rectangles,3-ovals)"); ch=Integer.parseInt(input); } public void paint(Graphics g) { switch(ch) { case 1:{ for(i=1;i<=10;i++) { g.drawLine(10,10,250,10*i); } break; }
choice(1-lines,2-
cserockz08, 2009
www.cserockz.com
Page 59
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 60
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 61
LAB MANUAL
WAJP that implements a simple client/server application. The client sends data to a server. The server receives the data, uses it to produce a result and then sends the result back to the client. The client displays the result on the console. For ex: The data sent from the client is the radius of a circle and the result produced by the server is the area of the circle. Program : // Server Program import java.io.*; import java.net.*; import java.util.*; public class Server { public void static main (String args [ ] ) { try { // create a server socket ServerSocket s = new ServerSocket(8000); // start listening for connections on srver socket Socket connectToClient = s.accept(); // create a buffered reader stream to get data from client BufferedReader isFromClient = new BufferedReader(new InputStreamReader (connectToClient.getInputStream())); // create a buffer reader to send result to client PrintWriter osToClient = new PrintWriter(connectToClient.getOutputStream(), true); // continuously read from client, process, send back while (true) { // read a line and create string tokenizer StringTokenizer st = new StringTokenizer(isFromClient.readLine()); //convert string to double
Copyright
cserockz08, 2009
www.cserockz.com
Page 62
LAB MANUAL
// display radius on console System.out.println(Radius received from client: + radius); // comput area double area = radius * radius *Math.PI; // send result to client osToClient.println(area); // print result on console System.out.println(Area found: +area); } } catch (IOException e) { System.err.println(e); } } }
// Client Program import java.io.*; import java.net.*; import java.util.*; public class Client { public void static main (String args [ ] ) { try { // create a socket to connect to server Socket connectToServer = new Socket(local host, 8000); // create a buffered input stream to get result from server BufferedReader isFromServer = new BufferedReader(new InputStreamReader (connectToServer.getInputStream()));
Copyright
cserockz08, 2009
www.cserockz.com
Page 63
LAB MANUAL
// create a buffer output stream to send data to server PrintWriter osToServer = new PrintWriter(connectToClient.getOutputStream(), true); // continuously send radius and get area while (true) { Scanner input=new Scanner(System.in); System.out.print(Please enter a radius: ); double radius =input.nextDouble(); // display radius on console osToServer.println(radius); // get area from server StringTokenizer st = new StringTokenizer(isFromServer.readLine()); // convert string to double Double area = new Double(st.nextToken()).doubleValue(); // print result on console System.out.println(Area received from the server is: +area); } } catch (IOException e) { System.err.println(e); } } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 64
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 65
LAB MANUAL
WAJP that illustrates how runtime polymorphism is achieved. Program : class Figure { double dim1; double dim2; Figure(double a, double b) { dim1 = a; dim2 = b; } double area() { System.out.println("Area for Figure is undefined."); return 0; } } class Rectangle extends Figure { Rectangle(double a, double b) { super(a, b); } // override area for rectangle double area() { System.out.println("Inside Area for Rectangle."); return dim1 * dim2; } } class Triangle extends Figure { Triangle(double a, double b) { super(a, b); } // override area for right triangle
Copyright
cserockz08, 2009
www.cserockz.com
Page 66
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 67
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 68
LAB MANUAL
Program Statement : WAJP to generate a set of random numbers. Find its sum and average. The program should also display * based on the random numbers generated. Program : import java.util.*; class RandNum { public static void main(String ax[ ]) { int a[ ]=new int[5]; int sum=0; Random r=new Random(); for (int i=0;i<5;i++) { a[i]=r.nextInt(10); System.out.print(a[i]); for(int y=0;y<a[i];y++) System.out.print(" *"); System.out.println(""); } for(int i=0;i<5;i++) sum=sum+a[i]; System.out.println("Sum="+sum); System.out.println("Avg="+(double)sum/a.length); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 69
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 70
LAB MANUAL
WAJP to create an abstract class named Shape, that contains an empty method named numberOfSides(). Provide three classes named Trapezoid, Triangle and Hexagon, such that each one of the classes contains only the method numberOfSides(), that contains the number of sides in the given geometrical figure. Program : abstract class Shape { abstract void numberOfSides(); } class Trapezoid extends Shape{ void numberOfSides() { System.out.println(" Trapezoidal has four sides"); } } class Triangle extends Shape { void numberOfSides() { System.out.println("Triangle has three sides"); } } class Hexagon extends Shape { void numberOfSides() { System.out.println("Hexagon has six sides"); } } class ShapeDemo { public static void main(String args[ ]) { Trapezoid t=new Trapezoid(); Triangle r=new Triangle(); Hexagon h=new Hexagon(); Shape s; s=t; s.numberOfSides();
Copyright
cserockz08, 2009
www.cserockz.com
Page 71
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 72
LAB MANUAL
WAJP to implement a Queue, using user defined Exception Handling (also make use of throw, throws). Program : import java.util.Scanner; class ExcQueue extends Exception { ExcQueue(String s) { super(s); } } class Queue { int front,rear; int q[ ]=new int[10]; Queue() { rear=-1; front=-1; } void enqueue(int n) throws ExcQueue { if (rear==9) throw new ExcQueue("Queue is full"); rear++; q[rear]=n; if (front==-1) front=0; } int dequeue() throws ExcQueue { if (front==-1) throw new ExcQueue("Queue is empty"); int temp=q[front]; if (front==rear) front=rear=-1;
Copyright
cserockz08, 2009
www.cserockz.com
Page 73
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 74
LAB MANUAL
WAJP that creates 3 threads by extending Thread class. First thread displays Good Morning every 1 sec, the second thread displays Hello every 2 seconds and the third displays Welcome every 3 seconds. (Repeat the same by implementing Runnable) Program : // Using Thread class class One extends Thread { public void run() { for ( ; ; ) { try{ sleep(1000); }catch(InterruptedException e){} System.out.println("Good Morning"); } } } class Two extends Thread { public void run() { for ( ; ; ) { try{ sleep(2000); }catch(InterruptedException e){} System.out.println("Hello"); } } } class Three extends Thread { public void run() { for ( ; ; ) { try{ sleep(3000); }catch(InterruptedException e){} System.out.println("Welcome");
Copyright
cserockz08, 2009
www.cserockz.com
Page 75
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 76
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 77
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 78
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 79
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 80
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 81
LAB MANUAL
WAJP to do the following: (a) To output the question Who is the inventor of Java? (b) To accept an answer (c) To printout GOOD and then stop if the answer is correct (d) To output the message TRY AGAIN, if the answer is wrong (e) To display the correct answer, when the answer is wrong even at the third attempt Program : import java.io.*; class Ask { public static void main(String a[ ])throws Exception { String str1,str2; int count=0; str1="James Gosling"; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Who is the inventor of Java ?"); while(count!=3) { str2=br.readLine(); if(str1.equalsIgnoreCase(str2)) { System.out.println("!!! GOOD !!!"); break; } else { if(count<2) System.out.println("TRY AGAIN !"); count++; } } if(count==3) System.out.println("Correct Answer is : "+str1); } }
Copyright
cserockz08, 2009
www.cserockz.com
Page 82
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 83
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 84
LAB MANUAL
OUTPUT :
Copyright
cserockz08, 2009
www.cserockz.com
Page 85
LAB MANUAL
Create an inheritance hierarchy of Rodent, Mouse, Gerbil, Hamster etc. In the base class provide methods that are common to all Rodents and override these in the derived classes to perform different behaviors, depending on the specific type of Rodent. Create an array of Rodent, fill it with different specific types of Rodents and call your base class methods. Program : import java.util.Random; class Rodent{ void place() {} void tail() {} void eat() {} public static Rodent randRodent(){ Random rr=new Random(); switch (rr.nextInt(4)) { case 0: return new Mouse(); case 1: return new Gerbil (); case 2: return new Hamster (); case 3: return new Beaver (); } return new Rodent(); } } class Mouse extends Rodent { void place() { System.out.println(Mice are found all over the world); } void tail() { System.out.println(Mice have long and hairless tail); } void eat() { System.out.println(Mice eat cardboards, papers, clothes); }
Copyright
cserockz08, 2009
www.cserockz.com
Page 86
LAB MANUAL
class Gerbil extends Rodent { void place() { System.out.println(Gerbils are found in arid parts of Africa and Asia); } void tail() { System.out.println(Gerbils have long tail); } void eat() { System.out.println(Gerbils eat seeds, roots, insects, parts of plants); } } class Hamster extends Rodent { void place() { System.out.println(Hamsters are found in Western Europe to China Dry regions only); } void tail() { System.out.println(Hamsters have short tail); } void eat() { System.out.println(Hamsters eat cereals); } } class Beaver extends Rodent { void place() { System.out.println(Beavers are found in Northern Europe and North America); } void tail() { System.out.println(Beavers have broad tail); } void eat() { System.out.println(Beavers eat bark);
Copyright
cserockz08, 2009
www.cserockz.com
Page 87
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 88
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 89
LAB MANUAL
public class ChessBoard extends Applet { /* This applet draws a red-and-black checkerboard. It is assumed that the size of the applet is 160 by 160 pixels. */ /* <applet code="ChessBoard.class" width=200 height=160> </applet> */ public void paint(Graphics g) { int row; // Row number, from 0 to 7 int col; // Column number, from 0 to 7 int x,y; // Top-left corner of square for ( row = 0; row < 8; row++ ) { for ( col = 0; col < 8; col++) { x = col * 40; y = row * 40; if ( (row % 2) == (col % 2) ) g.setColor(Color.white); else g.setColor(Color.black); g.fillRect(x, y, 40, 40); } } // end for row } // end paint() } // end class
Copyright
cserockz08, 2009
www.cserockz.com
Page 90
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 91
LAB MANUAL
cserockz08, 2009
www.cserockz.com
Page 92
LAB MANUAL
19) . When I subclass Applet, why should I put setup code in the init() method? Why not just a constructor for my class? 20). Can I use an http URL to write to a file on the server from an applet?
21) . Can applets launch programs on the server? 22) . Can applets launch programs on the client? 23) . How do you do file I/O from an applet? 24) . How do I access remote machine's file system through Java Applet? 25) What is a thread? 26) . How do I create a thread and start it running? 27) . How many threads can I create? 28) . How does Thread's stop method work--can I restart a stopped thread? 29) . If I create a thread, and then null out the reference to it, what happens to the thread? Does it get interrupted or what? 30) . How should I stop a thread so that I can start a new thread later in its place? 31) .How do I specify pause times in my program? 32) Why is thread synchronization important for multithreaded programs? 33) . What is a monitor? 34) . How does the synchronized keyword work? 35) . What objects do static synchronized methods use for locking? 36) . How do the wait and notifyAll/notify methods enable cooperation between threads?
Copyright
cserockz08, 2009
www.cserockz.com
Page 93
LAB MANUAL
37) . How do I achieve the effect of condition variables if the Java platform provides me with only wait and notifyAll/notify methods? 38) . How do I make one thread wait for one or more other threads to finish? 39) . What do I use the yield method for? 40) . Does the Java Virtual Machine protect me against deadlocks? 41) . I have several worker threads. I want my main thread to wait for any of them to complete, and take action as soon as any of them completes. I don't know which will complete soonest, so I can't just call Thread.join on that one. How do I do it? 42) How do I do keyboard (interactive) I/O in Java? 43) . Is there a way to read a char from the keyboard without having to type carriage-return? 44). How do I read a line of input at a time? 45) . How do I read input from the user (or send output) analogous to using standard input and standard output in C or C++? 46) . Is there a standard way to read in int, long, float, and double values from a string representation? 47) . How do I read a String/int/boolean/etc from the keyboard? 48) . I try to use "int i = System.in.read();" to read in an int from the standard input stream. It doesn't work. Why? 49) . I use the following to read an int. It does not work. Why? 50). I'm trying to read in a character from a text file using the DataInputStream's readChar() method. However, when I print it out, I get?s. 51) . Why do I get garbage results when I use DataInputStream's readInt or readFloat methods to read in a number from an input string? 52). How do I read data from a file? 53) . How do I write data to a file? 54). How do I append data to a file? 55). When do I need to flush an output stream?
Copyright
cserockz08, 2009
www.cserockz.com
Page 94
LAB MANUAL
56) . Why do I see no output when I run a simple process, such as r.exec("/usr/bin/ls")? 57) . Can I write objects to and read objects from a file or other stream? 58) . How do I format numbers like C's printf()? 59). How do I do file I/O in an applet? 60) . How do I do I/O to the serial port on my computer
61) . How do I do formatted I/O like printf and scanf in C/C++? 62). How do I read a file containing ASCII numbers? 63) . Why do I have trouble with System.out.println()? 64). How do I write to the serial port on my PC using Java? 65) . Is it possible to lock a file using Java ? 66) . How do I make the keyboard beep in Java? 67). How do I make I/O faster? My file copy program is slow. 68). How do I do formatted I/O of floating point numbers? 69). How do I read numbers in exponential format in Java? 70) . How do I delete a directory in Java? 71). How do I tell how much disk space is free in Java? 71) . How do I get a directory listing of the root directory C:\ on a PC? 72). I did a read from a Buffered stream, and I got fewer bytes than I specified 73) . How do I redirect the System.err stream to a file? 74) . What are the values for the Unicode encoding schemes? 75) . How do I print from a Java program? 76) . What are the properties that can be used in a PrintJob? 77) . How do I get Java talking to a Microsoft Access database? 78). How do I do I/O redirection in Java using exec()? cserockz08, 2009
Copyright
www.cserockz.com
Page 95
LAB MANUAL
81) How do I create an instance of a class? 82) . Why do I get the java.lang.UnsatisfiedLinkError when I run my Java program containing Native Method invocations? 83) Given a method that doesn't declare any exceptions, can I override that method in a subclass to throw an exception? 84) What's the difference between a runtime exception and a plain exception-why don't runtime exceptions have to be declared? 85) Why do methods have to declare the exceptions they can throw? 86) Why does the compiler complain about Interrupted Exception when I try to use Thread's sleep method? 87) What is an exception? 88) I can't seem to change the value of an Integer object once created. 89) How can I safely store particular types in general containers? 90) Why is the String class final? I often want to override it. 91) . How do static methods interact with inheritance? 92) Where can I find examples of the use of the Java class libraries? 93) How can I find the format of a .class file/any file? 94) What are "class literals"? 95) What is an object reference? 96) What does it mean that a method or class is abstract? 97) What is an abstract class? 98) What is an abstract method? 99) How do I create an instance of a class? 100) What is an object reference? 101) What are "class literals"? 102) What are the values for the Unicode encoding schemes? 103) How do I print from a Java program? 104) How do I get a directory listing of the root directory C:\ on a PC?
Copyright
cserockz08, 2009
www.cserockz.com
Page 96
LAB MANUAL
106) How do I read numbers in exponential format in Java? 107) How do I do formatted I/O of floating point numbers? 108) How do I make I/O faster? My file copy program is slow. 109) Is it possible to lock a file using Java ? 110) How do I write to the serial port on my PC using Java? . 111) 112) 113) 114) 115) Why do I have trouble with System.out.println()? How do I read a file containing ASCII numbers? How do I do formatted I/O like printf and scanf in C/C++? How do I do I/O to the serial port on my computer? How do I do file I/O in an applet?
116) Can I write objects to and read objects from a file or other stream? 117) Why do I see no output when I run a simple process, such as r.exec("/usr/bin/ls")? 118) When do I need to flush an output stream? 119) How do I append data to a file? 120) How do I write data to a file? 121) How do I read data from a file? 122) Explain the Polymorphism principle. 123) Why do methods have to declare the exceptions they can throw? 124) Explain the different forms of Polymorphism. 125) Describe the principles of OOPS 126) What is the difference between encapsulation datahiding.explain with example 127) What is the use/advantage of function overloading 128) Explain the Inheritance Principle 129) Can we inherit private members of class ? 130) Why do you need abstraction?
Copyright
and
cserockz08, 2009
www.cserockz.com
Page 97
LAB MANUAL
132) What is size of class having no variable & 1 function which returns int 133) Difference between object-oriented programming and procedure oriented programming 134) What do you mean by realization in oops, what is presistent,transient object. 135)What is the use of procedure overriding
136) What are enumerators? and what are in-line functions? giv ans with eg. 137) Is it possible to change the address of an array? 138) What is the race condition? 139) What are the advantages of Object Oriented Modeling?
Copyright
cserockz08, 2009
www.cserockz.com
Page 98
LAB MANUAL
WEBSITES:
Copyright
cserockz08, 2009
www.cserockz.com
Page 99
LAB MANUAL
PROCEDURE FOR INSTALLING JAVA 1.5/1.6 VERSION STEP 1: First install the java version (1.5/1.6) Ur having..!
STEP 2: GO TO MY COMPUTER
Copyright
cserockz08, 2009
www.cserockz.com
Page 100
LAB MANUAL
1. Go to c:drive
Copyright
cserockz08, 2009
www.cserockz.com
Page 101
LAB MANUAL
2. In PROGRAM FILES
3. GO TO JAVA
Copyright
cserockz08, 2009
www.cserockz.com
Page 102
LAB MANUAL
4. GO tojdk (1.5/1.6).0_01
Copyright
cserockz08, 2009
www.cserockz.com
Page 103
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 104
LAB MANUAL
5. Go to bin.
6. Go to lib.
Copyright
cserockz08, 2009
www.cserockz.com
Page 105
LAB MANUAL
Properties--- Advanced
Copyright
cserockz08, 2009
www.cserockz.com
Page 106
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 107
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 108
LAB MANUAL
Variable name: PATH Variable value: C:\Program Files\Java\jdk1.6.0_01\bin; **NOTE: For this go to step 2:-- 5th step!
Copyright
cserockz08, 2009
www.cserockz.com
Page 109
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 110
LAB MANUAL
Variable name: CLASSPATH Variable value: C:\Program Files\Java\jdk1.6.0_01\lib\rt.jre; **NOTE: For this go to step 2:-- 6th step!
Copyright
cserockz08, 2009
www.cserockz.com
Page 111
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 112
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 113
LAB MANUAL
EMAIL:
cserockz08@gmail.com srinivas30k@gmail.com
cserockz08, 2009
www.cserockz.com
Page 114
LAB MANUAL
Copyright
cserockz08, 2009
www.cserockz.com
Page 115