cs6461-object oriented programming laboratory - … semester/cs6461-object... · cs6461-object...

49
CS6461- Object Oriented Programming Lab Manual VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR – 603 203 Private circulation only ( IV Semester B.E./EEE Students for the Academic Year 2017-18 ) Mr. M. Mayuranathan, Asst. Professor (Sr.G) Mr. T. Rajasekaran, Asst. Professor (O.G) Ms. N. Poornima, Asst. Professor (O.G) Department of Computer Science & Engineering Prepared by

Upload: vuhanh

Post on 13-May-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

               

 

CS6461- Object Oriented Programming Lab Manual

VALLIAMMAI ENGINEERING COLLEGE 

SRM NAGAR, KATTANKULATHUR – 603 203 

Private circulation only

( IV Semester B.E./EEE Students for the Academic Year 2017-18 ) 

Mr. M. Mayuranathan, Asst. Professor (Sr.G) Mr. T. Rajasekaran, Asst. Professor (O.G)

Ms. N. Poornima, Asst. Professor (O.G)

Department of Computer Science & Engineering

Prepared by 

Page 2: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY

OBJECTIVES:

• To get a clear understanding of object-oriented concepts. • To understand object oriented programming through C++ & JAVA.

LIST OF EXPERIMENTS: Ex.No. Name of the Exercise Page No.

C++ PROGRAMMING

1

Program using FunctionsA (i). Functions with Default Arguments 1A (ii).Functions with Default Arguments 2B (i).Implementation of Call by Value 3B (ii).Implementation of Call by Address 4

2

Simple Classes for understanding Objects, Member Functions & Constructors A. Classes with Primitive Data Members 5B. Classes with Arrays as Data Members 7C. Classes with Pointers as Data Members 9D. Classes with Constant Data Members 10E. Classes with Static Member Functions 11

3

Compile Time PolymorphismA (i). Unary Operator Overloading 12A (ii). Binary Operator Overloading 14B. Function Overloading 16

4

Run Time Polymorphism A. Inheritance 17B. Virtual Functions 19C. Templates 20D. Virtual Base Classes 22

5 File Handling A. Sequential Access 24 B. Random Access 25

JAVA PROGRAMMING

6 Simple Java ApplicationsA. Understanding References to an Instant of a Class 26B. Handling Strings 27

7 Simple Package Creation A. Creating User Defined Packages 29B. Creating User Defined Packages - Array of Objects 30

8 Interfaces A. Implementing User Defined Interfaces 31B. Implementing Pre Defined Exceptions 32

9 Threading A. Creation of Threading 34B. Multi Threading 36

10 Exception Handling Mechanism in JavaA. Implementing Predefined Exceptions 38B. Implementing User Defined Exceptions 39

11 Additional Exercises in Java 40

OUTCOMES: • Gain the basic knowledge on Object Oriented concepts. • Ability to develop applications using Object Oriented Programming Concepts. • Ability to implement features of object oriented programming to solve real

world problems

Page 3: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 1

Ex. No: 1.A.(i) DEFAULT ARGUMENTS IN C++

AIM: To write a C++ program to find the sum for the given variables using function with default

arguments. ALGORITHM:

1) Start 2) Declare the variables and functions. 3) Give the values for two arguments in the function declaration itself. 4) Call function sum() with three values such that it takes one default arguments. 5) Call function sum() with two values such that it takes two default arguments. 6) Call function sum() with one values such that it takes three default arguments 7) Inside the function sum(), calculate the total. 8) Return the value to the main() function. 9) Display the result. 10) Stop.

SOURCE CODE: #include<iostream.h> #include<conio.h> void main() { float sum(float p, int q=10, int r=15, int s=20); int a=2,b=3,c=4,d=5; clrscr(); cout<<"\n sum="<<sum(0); cout<<"\n sum="<<sum(a,b,c,d); cout<<"\n sum="<<sum(a,b,c); cout<<"\n sum="<<sum(a,b); cout<<"\n sum="<<sum(a); cout<<"\n sum="<<sum(b,c,d); getch(); } float sum(float i, int j, int k, int l) { return(i+j+k+l); } OUTPUT: sum=45 sum=14 sum=29 sum=40 sum=47 sum=32 RESULT: Thus, the given program for function with default arguments has been written and executed successfully.

Page 4: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 2

Ex. No: 1.A.(ii) DEFAULT ARGUMENTS IN C++

AIM: To implement function with default arguments. ALGORITHM: 1. Start 2. Declare the default function. 3. Invoke the default function. 4. Display the result 5. Stop SOURCE CODE: #include<iostream.h> #include<conio.h> void printLine(char =’_’, int =70); void main() { printLine(); printLine(‘/’); printLine(‘*’,40); printLine(‘R’,55); getch(); } void printLine(char ch, int count) { int i; cout<<endl; for(i=0;i<count;i++) { cout<<ch; } } OUTPUT: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * * * * * * * * * * * * * * * * * * * * * * * * * * * * R R R R R R R R R R R R R R R R R R R R R R R RESULT: Thus, the given program for function with default arguments has been written and executed successfully

Page 5: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 3

Ex. No: 1.B.(i) IMPLEMENTATION OF CALL BY VALUE AIM:

To write a C++ program to find the value of a number raised to its power that demonstrates a function using call by value. ALGORITHM:

1) Start the program. 2) Declare the variables. 3) Get two numbers as input 4) Call the function power to which a copy of the two variables is passed . 5) Inside the function, calculate the value of x raised to power y and store it in p. 6) Return the value of p to the main function. 7) Display the result. 8) Stop the program.

SOURCE CODE:

#include<iostream.h> #include<conio.h> void main() { int x,y; double power(int, int); clrscr(); cout<<"Enter X, Y:"<<endl; cin>>x>>y; cout<<x<<" to the power "<<y <<" is "<< power(x,y); getch(); }

double power(int x, int y) { double p; p=1.0; if(y>=0) { while(y--) p=p*x; } else { while(y++) p=p/x; } return(p); } OUTPUT:

Enter X , Y: 2 3 2 to the power 3 is 8 RESULT: Thus, the given program for implementation of call by value has been written and executed successfully.

Page 6: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 4

Ex. No: 1.B.(ii) IMPLEMENTATION OF CALL BY ADDRESS AIM:

To write a c++ program and to implement the concept of Call by Address ALGORITHM:

1. Start the program 2. Include suitable header file 3. Declare a function swap with two pointes variables arguments 4. Declare and initialize the value as two variable in main() 5. Print the value of two variable before swapping 6. Call the swap function by passing address of the two variable as arguments 7. Print the value of two variable after swapping 8. Stop the program

SOURCE CODE: #include<iostream.h> #include<conio.h> void swap(int *x, int *y); void main() { clrscr(); int i,j; i=10; j=20; cout<<"\n the value of i before swapping is:"<<i; cout<<"\n the value of j before swapping is:"<<j; swap (&i,&j); cout<<"\n the value of i after swapping is:"<<i; cout<<"\n the value of j after swapping is:"<<j; getch(); } void swap(int *x, int *y) { int temp=*x; *x=*y; *y=temp; } OUTPUT: The value of i before swapping is: 20 The value of j before swapping is: 10 The value of i after swapping is: 10 The value of j after swapping is: 20 RESULT: Thus to write a C++ program and to implement the concept of Call by Address was successfully completed.

Page 7: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 5

Ex.No: 2.A CLASSES WITH PRIMITIVE DATA MEMBERS AIM:

To write a program in C++ to prepare a student Record using class and object. ALGORITHM: 1. Start

2. Create a class record. 3. Read the name, Regno ,mark1,mark2,mark3 of the student. 4. Calculate the average of mark as Avg=mark1+mark2+mark3/3 5. Display the student record. 6. Stop.

SOURCE CODE: #include<iostream.h> #include<conio.h> class record { public: char name[20]; int regno; int m1,m2,m3; float avg; void getdata() { cout<<"\nenter the name: " ; cin>>name; cout<<"enter the regno: "; cin>>regno; cout<<"enter the m1,m2,m3: \n"; cin>>m1>>m2>>m3; } void calculate() { avg=(m1+m2+m3)/3; } void display() { cout<<"\nName: "<<name; cout<<"\nRegno: "<<regno; cout<<"\nMark1: "<<m1; cout<<"\nMark2: "<<m2; cout<<"\nMark3: "<<m3; cout<<"\nAvg: "<<avg; } }; void main() { record r; clrscr(); r.getdata(); r.calculate(); r.display(); getch(); }

Page 8: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 6

OUTPUT: Enter the name: Arun Enter the reg no: 101 Enter the m1, m2, m3: 90 90 90 Name: Arun Regno: 101 Mark1: 90 Mark2: 90 Mark3: 90 Average:90 RESULT:

Thus the C++ program for implementation of classes and objects was created, executed and

output was verified successfully.

Page 9: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 7

Ex.No: 2.B CLASSES WITH ARRAYS AS DATA MEMBERS AIM: To write a program in C++ to prepare product information using arrays. ALGORITHM:

1. Stop 2. Create a class product. 3. Read the product name and cost. 4. Calculate the sum 5. Display the product information. 6. Stop the program.

PROGRAM:

#include<iostream.h> #include<conio.h> #include<process.h> class product { int pro_code[50]; float pro_price[50]; int count; public: void cnt() { count=0; } void getproduct(); void displaysum(); void displayproducts(); }; void product::getproduct() { cout<<"Enter Product Code: "; cin>>pro_code[count]; cout<<"Enter Product Cost: "; cin>>pro_price[count]; count++; } void product::displaysum() { float sum=0; for(int i=0;i<count;i++) { sum=sum+pro_price[i]; } cout<<"Total Value:"<<sum<<"\n"; } void product::displayproducts() { cout<<"\n Code Price\n"; for(int i=0;i<count;i++) { cout<<"\n"<<pro_code[i]; cout<<" "<<pro_price[i]; } cout<<"\n"; }

Page 10: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 8

void main() { product p; p.cnt(); int x; clrscr(); do { cout<<"\n1. Add a product"; cout<<"\n2. Display the product total value"; cout<<"\n3. Display all products"; cout<<"\n4. Quit "; cout<<"\n Enter your choice: "; cin>>x; switch(x) { case 1: p.getproduct();break; case 2: p.displaysum();break; case 3: p.displayproducts(); break; case 4: exit(0); default: cout<<"\n Invalid choice"; } }while(x!=5); } OUTPUT: 1. Add a product 2. Display the product total value 3. Display all products 4. Quit Enter choice: 1 Enter Product Code : 101 Enter Product Cost : 1000 1. Add a product 2. Display the product total value 3. Display all products 4. Quit Enter choice: 1 Enter Product Code : 102 Enter Product Cost : 2000 1. Add a product 2. Display the product total value 3. Display all products 4. Quit Enter choice: 3 Code Price 101 1000 102 2000 RESULT:

Thus the C++ program for implementing arrays as data members was created, executed and output was verified successfully.

Page 11: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 9

Ex.No: 2.C CLASSES WITH POINTERS AS DATA MEMBERS AIM: To implement classes with pointers as data members ALGORITHM: 1. Start 2. Create a class called pointer

3. Define a function called getdata() and display() the variable called r, a and pointer *ptr. 4. Declare a pointer to object in main function 5. Call the function with the help of getdata() and display the result with the help of display() 6. Stop

SOURCE CODE: #include<iostream.h> #include<conio.h> class pointer { private: int r; float a, *ptr; public: void getdata(); void display(); }; void pointer::getdata() { cout<<"\n Enter the radius of the Circle: "; cin>>r; a=3.14*r*r; ptr=&a; } void pointer::display() { cout<<" Value of a = "<<a; cout<<"\n Address of a = "<<&a; cout<<"\n Address of ptr = "<<ptr; cout<<"\n Value stored at ptr = "<<*ptr; } void main() { clrscr(); cout<<" Area of Circle \n"; pointer obj; obj.getdata(); obj.display(); getch(); } OUTPUT: Enter the radius of the circle: 4 Value of a = 50.24 Address of a = 0x8fa2ffec Address of ptr = 0x8fa2ffec Value stored at ptr = 50.24 RESULT:

Thus the C++ program for implementing classes with pointers as data members was created, executed and output was verified successfully.

Page 12: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 10

Ex.No: 2.D CLASSES WITH CONSTANT DATA MEMBER AIM:

To implement classes with constant data member. ALGORITHM: 1. Start 2. Create the class called test 3. Declare the integer const variable called i 4. Initialization is occurred during constructor 5. i is a const data member in every object its independent copy is present. 6. Initialize using constructor and the value of i cannot be changed 7. Display the result. SOURCE CODE: #include<iostream.h> #include<conio.h> class Test { const int i; public: Test (int x) { i=x; } }; int main() { Test t(10); Test s(20); getch(); } RESULT:

Thus the C++ program for implementing classes with constant data members was created, executed and output was verified successfully.

Page 13: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 11

Ex.No:2.E CLASSES WITH STATIC MEMBER FUNCTION AIM:

To implement static member function in class. ALGORITHM:

1. Create class count with static data member as total. 2. Create a member function to increment the count. 3. Declare the static data member using scope resolution operator. 4. Display the count and total value.

SOURCE CODE: #include <iostream.h> #include<conio.h> class count { private: int number; static int total; public: count(); int get_number(); static int get_total(); }; count::count() { number=100+ total++; } int count::get_number() { return number; } int count::get_total() { return total; } int count::total=0; void main () { clrscr(); cout<<" Total count = "<<count::get_total() <<endl; count a, b, c; cout<<" a="<<a.get_number() << endl; cout<<" b="<<b.get_number() << endl; cout<<" b="<<c.get_number() << endl; cout<<" Total count="<<count::get_total() << endl; getch(); } OUTPUT: Total count = 0 a=100 b=101 c=102 Total count = 3 RESULT:

Thus to write a c++ program and to implement the concept of Static Data member function was successfully completed.

Page 14: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 12

EX NO 3.A(1) COMPILE TIME POLYMORPHISM-UNARY OPERATOR OVERLOADING AIM

To implement the concept of unary operator overloading by creating a C++ program. ALGORITHM

1. Start the Program 2. Create a class named space and declare necessary data members and member functions and

operator function as member function 3. The operator unary minus is overloaded to perform the operation of changing sign 4. Define member function getdata(), to get three values that is passed as arguments. 5. The operator function is defined where the sign of values is changed. 6. Function display() is defined where the values is displayed before and after sign change. 7. Stop the program.

SOURCE CODE: #include<iostream.h> #include<conio.h> class space { int x,y,z; public: void getdata(int a,int b,int c); void display(void); void operator-(); }; void space::getdata(int a,int b,int c) { x=a; y=b; z=c; } void space::display(void) { cout<<x<<" "; cout<<y<<" "; cout<<z<<"\n"; } void space::operator-() { x=-x; y=-y; z=-z; } void main() { clrscr(); space s; s.getdata(10,-20,30); cout<<"s:"; s.display(); -s; cout<<"s:"; s.display(); getch(); }

Page 15: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 13

OUTPUT: S = 10 -20 30 S = -10 20 -30 RESULT:

Thus to write a C++ program and to implement the concept of unary operator overloading was

successfully completed.

Page 16: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 14

EX No 3.A.(2) COMPILE TIME POLYMORPHISM - BINARY OPERATOR OVERLAODING AIM :

To write a C++ program to implement the concept of Binary operator overloading.

ALGORITHM:

Step 1: Start the program.

Step 2: Declare the class.

Step 3: Declare the variables and its member function.

Step 4: Using the function getvalue() to get the two numbers.

Step 5: Define the function operator +() to add two complex numbers.

Step 6: Define the function operator –()to subtract two complex numbers.

Step 7: Define the display function.

Step 8: Declare the class objects obj1,obj2 and result.

Step 9: Call the function getvalue using obj1 and obj2

Step 10: Calculate the value for the object result by calling the function operator + and operator -.

Step 11: Call the display function using obj1 and obj2 and result.

Step 12: Return the values.

Step 13: Stop the program

SOURCE CODE: #include<iostream.h> #include<conio.h> class complex { float x; float y; public: complex(){} complex(float real,float imag) { x=real;y=imag; } complex operator+(complex c); void display(void); }; complex complex::operator+(complex c) { complex temp; temp.x=x+c.x; temp.y=y+c.y; return(temp); } void complex::display(void) { cout<<x<<"+j"<<y<<"\n"; }

Page 17: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 15

void main() { clrscr(); complex c1,c2,c3; c1=complex(2.5,3.5); c2=complex(1.6,2.7); c3=c1+c2; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"c3="; c3.display(); getch(); } OUTPUT:

C1 = 2.5+j3.5 C2 = 1.6+j2.7 C3 = 4.1+j6.2 RESULT:

Thus to write a C++ program and to implement the concept of binary operator overloading was

successfully completed.

Page 18: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 16

Ex.No:3.B FUNCTION OVERLOADING AIM :

To write a C++ program to implement the concept of Function Overloading ALGORITHM:

1. Start the program.

2. Create the class printData and functions.

3. In the main(),create the objects.

4. Use print() function to print different values.

5. The values that are passed inside the function call will be matched with the definition

part and appropriate calculations are done.

6. Stop

SOURCE CODE: #include<iostream.h> #include<conio.h> class printData { public: void print(int i) { cout << "Printing int: " << i << endl; } void print(double f) { cout << "Printing float: " << f << endl; } void print(char* c) { cout << "Printing character: " << c << endl; } }; void main() { clrscr(); printData pd; pd.print(5); // Call print to print integer pd.print(10.5); // Call print to print float pd.print("Hello C++"); // Call print to print character getch(); } OUTPUT: Printing int:5 Printing float: 10.5 Printing character: Hello C++ RESULT:

Thus to write a C++ program and to implement the concept of function overloading was successfully completed.

Page 19: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 17

Ex.No:4.A INHERITANCE AIM:

To write a C++ program for implementing the inheritance concept. ALGORITHM:

1. Start the process. 2. Define the base class with variables and functions. 3. Define the derived class with variables and functions. 4. Get two values in main function. 5. Define the object for derived class in main function. 6. Access member of derived class and base class using the derived class object. 7. Stop the process.

PROGRAM: #include<iostream.h> #include<conio.h> class base { public: int x; void set_x(int n) { x=n; } void show_x() { cout<<"\n\t Base class..."; cout<<"\n\t x="<<x; } }; class derived:public base { int y; public: void set_y(int n) { y=n; } void show_xy() { cout<<"\n\n\t Derived class..."; cout<<"\n\t x="<<x; cout<<"\n\t y="<<y; } }; void main() { derived obj; int x,y; clrscr(); cout<<"\n Enter the value of x: "; cin>>x; cout<<"\n Enter the value of y: "; cin>>y; obj.set_x(x); // inherits the base class

Page 20: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 18

obj.set_y(y); // access the member of derived class obj.show_x(); // inherits the base class obj.show_xy(); // access the member of derived class getch(); } OUTPUT: Enter the value of x: 10 Enter the value of y: 20 Base class…. x=10 Derived class….. x=10 y=20 RESULT:

Thus the C++ program for inheritance was created, executed and output was verified

successfully.

Page 21: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 19

Ex No 4.B VIRTUAL FUNCTION AIM:

To write a C++ program to implement the concept of Virtual functions ALGORITHM:

1. Start the program. 2. Define a base class called base and define a function called display as virtual in it. 3. Derive a new class called derv1,derv2 using a base class called base and define a function

‘display’ in the respective classes. 4. Declare a base class pointer in main function and objects for derv1 and derv2 classes. 6. Assign derv1 and derv2 obj to base pointer 7. Now display function shows the derv1 and derv2 class’ function respectively.

PROGRAM: #include<iostream.h> #include<conio.h> class base {

public: virtual void display() {

cout<<"Base class display function is called \n"; }

}; class derv1:public base {

public: void display() {

cout<<"\n Derived1's class display function is called \n"; }

}; class derv2:public base {

public: void display() {

cout<<"\n Derived2's class display function is called \n"; }

}; void main() {

clrscr(); base *ptr, b; ptr=&b; ptr->display(); derv1 d1; derv2 d2; ptr=&d1; ptr->display(); ptr=&d2; ptr->display(); getch();

} OUTPUT: Base class display function is called Derived1's class display function is called Derived2's class display function is called RESULT:

Thus the C++ program for virtual function was created, executed and output was verified successfully

Page 22: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 20

EX. NO:4.C FUNCTION TEMPLATE AIM: To write a C++ program for sorting elements by bubble sort using function templates ALGORITHM: 1. Start the program 2. Create a class with templates. 3. Create a class for sort functions. 4. Swap the values for using bubble sort 5. Display the result. SOURCE CODE: #include<iostream.h> #include<conio.h> #define size 10 template <class T> void bubble(T A[size], int n) { T temp; int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(A[i]>A[j]) { temp=A[i]; A[i]=A[j]; A[j]=temp; } } } cout<<"\nThe Sorted List is..."; for(i=0;i<n;i++) cout<<A[i]<<" "; } void main() { clrscr(); int A1[size]; float A2[size]; char A3[size]={'s','r','m'}; int i,n; cout<<"\n\t\t Bubble Sort\n"; cout<<"\t\t-------------------\n"; cout<<"\n Enter the no. of Integer elements: "; cin>>n; cout<<"\n Enter the Integer array elements: "; for(i=0;i<n;i++) cin>>A1[i]; bubble(A1,n); cout<<"\n\n Enter the no. of Float elements: "; cin>>n; cout<<"\n Enter the Float array elements: "; for(i=0;i<n;i++) cin>>A2[i]; bubble(A2,n); bubble(A3,3); getch(); }

Page 23: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 21

OUTPUT: Bubble Sort -------------- Enter the no. of Integer elements: 4 Enter the Integer array elements: 12 11 15 13 The Sorted List is...11 12 13 15 Enter the no. of Float elements: 4 Enter the Float array elements: 10.6 7.5 15.2 13.5 The Sorted List is...7.5 10.6 13.5 15.2 The Sorted List is...m r s RESULT:

Thus the C++ program for function template was created, executed and output was verified successfully.

Page 24: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 22

EX. NO: 4.D. VIRTUAL BASE CLASS AIM:

To write a C++ program to implement the concept of virtual base class. ALGORITHM:

1. Start the program 2. Include suitable header files 3. Create a base class student and sports 4. In the base class student define the function void get number and put number 5. In the base class sports define the function void get score and void put score 6. Derive a class test form base student and define the function get mark and put mark 7. Derive a class result from test and sports class and define function void display 8. Get the value for get number, get marks and get score function through main function 9. Call the display function in class result 10. Stop the program

PROGRAM: #include<iostream.h> #include<conio.h> class student { protected: int roll_number; public: void get_number(int a) { roll_number=a; } void put_number() { cout<<"ROLL NO:"<<roll_number<<"\n"; } }; class test:public virtual student { protected: int part1,part2; public: void get_marks(int x, int y) { part1=x; part2=y; } void put_marks() { cout<<"MARKS:"<<"\n"<<"Part1="<<part1<<"\n"<<"Part2="<<part2<<"\n"; } }; class sports: public virtual student { protected: float score; public: void get_score(int s) { score=s; }

Page 25: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 23

void put_score() { cout<<"Sports:"<<score<<"\n\n"; } }; class result: public test, public sports { int total; public: void display() { total=part1+part2+score; put_number(); put_marks(); put_score(); cout<<"TOTAL SCORE:"<<total<<"\n"; } }; void main() { clrscr(); result student; student.get_number(1234); student.get_marks(80,70); student.get_score(20); student.display(); getch(); } OUTPUT: ROLL NO: 1234 MARKS: Part1=80 Part2=70 Sports:20 Total score: 170 RESULT:

Thus the C++ program for virtual base class was created, executed and output was verified successfully.

Page 26: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 24

EX.NO: 5.A. FILE HANDLING-SEQUENTIAL ACCESS AIM: To write a C++ program to implement a file handling concept using sequential access. ALGORITHM: 1. Start 2. Get the input string 3. Write the input string character by character into a file called “sample” using put() function 4. Read the input string character by character from the file called “sample” using get() function 5. Display the result SOURCE CODE: #include<iostream.h> #include<fstream.h> #include<string.h> #include<conio.h> void main() { clrscr(); char str[100],ch; int i,len; cout<<"Enter a string:"; cin>>str; len=strlen(str); // to find the length of the string fstream file; file.open("D:\\sample.txt",ios::in|ios::out); // to create a file for(i=0;i<len;i++) { file.put(str[i]); // to write string to a file } file.seekg(0); while(file) { file.get(ch); //to read string from the file cout<<ch; } getch(); } RESULT:

Thus the C++ program for file handling- sequential access concept was created, executed and

output was verified successfully

Page 27: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 25

EX.NO: 5.B. FILE HANDLING-RANDOM ACCESS AIM: To implement file handling concept using random access ALGORITHM:

1. Start 2. Get the input file called random.txt and check the file’s presence 3. Seek the input file to a particular(random) location and get the specified output 4. Display the result SOURCE CODE: #include<iostream.h> #include<fstream.h> #include<conio.h> void main() { clrscr(); fstream fp; char buf[100]; int pos; fp.open("D:\\random.txt", ios :: out | ios :: ate); // open a file in write mode with 'ate' flag cout << "\nWriting to a file ... " << endl; fp << "This is a line" << endl; // write a line to a file fp << "This is a another line" << endl; // write another line pos = fp.tellp(); cout << "Current position of put pointer : " << pos << endl; fp.seekp(-10, ios :: cur); // move the pointer 10 bytes backward from current position fp << endl << "Writing at a random location "; fp.seekp(7, ios :: beg); // move the pointer 7 bytes forward from beginning of the file fp << " Hello World "; fp.close(); // file write complete cout << "Writing Complete ... " << endl; getch(); fp.open("D:\\random.txt", ios :: in | ios :: ate); // open a file in read mode with 'ate' flag cout << "\nReading from the file ... " << endl; fp.seekg(0); // move the get pointer to the beginning of the file while (!fp.eof()) // read all contents till the end of file { fp.getline(buf, 100); cout << buf << endl; } pos = fp.tellg(); cout << "\n Current Position of get pointer : " << pos << endl; getch(); } OUTPUT: Writing to a file Current position of put pointer : 40 Writing Complete Reading from the file This is Hello World is a anot Writing at a random location Current position of gut pointer : 62 RESULT:

Thus the C++ program for file handling- random access concept was created, executed and output was verified successfully.

random.txt This is Hello World is a anot Writing at a random location

Page 28: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 26

Ex.No: 6(A). SIMPLE JAVA PROGRAM AIM: To write a java program to find area of Rectangle by using an instance of a class. ALGORITHM:

1. Declare the class Rectangle. 2. Declare data members height & width and a method area() to calculate area. 3. Declare another class example. 4. Create an object to Rectangle class and access the area() metod. 5. Print the output.

PROGRAM:

import java.util.Scanner; class Rectangle // class which contains attributes and methods { int height,width; void area() // method to calculate area { int a = height*width; System.out.println("The Area of Rectangle is :" +a); } }

public class example // class which contains main() { public static void main(String args[]) { Rectangle r = new Rectangle(); //creating object for Rectangle class Scanner s = new Scanner(System.in); // Scanner class to receive input from keyboard. System.out.println("Enter height of the Rectangle:"); r.height = s.nextInt(); // nextInt() method to get integer type value from keyboard. System.out.println("Enter width of the Rectangle:"); r.width = s.nextInt(); // nextInt() method to get integer type value from keyboard. r.area(); // invoking area() method of Rectangle class } } OUTPUT: C:\> cd vec C:\vec> set PATH=“C:\Program Files\Java\jdk1.7.0_75\bin”;

C:\vec> javac example.java

C:\vec> java example

Enter height of the Rectangle: 10

Enter width of the Rectangle: 5

The Area of Rectangle is: 50 RESULT: Thus the java program to find the area of rectangle was created, executed and output was verified successfully.

Page 29: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 27

Ex.No: 6(B). HANDLING STRINGS IN JAVA AIM: To write a java program to perform various operations using string function.

ALGORITHM: 1. Start 2. Declare the class called stringUse 3. Initialize two strings and using the two strings manipulate string operation 4. Perform the operation like concat(),length(),chatAt(),startsWith(),endsWith(),etc 5. Display the result PROGRAM:

import java.util.*; public class stringUse { public static void main (String args []) { Scanner scanner = new Scanner (System. in); // Scanner class to receive input from keyboard.

System.out.println ("Enter the First Name :"); String fname=scanner.nextLine(); // nextLine () method to get integer type value from keyboard.

System.out.println ("Enter the Last Name :"); String lname=scanner.nextLine(); // nextLine () method to get integer type value from keyboard.

String name= fname+lname; // concatenates two strings int len = name.length(); // Returns the length of string System.out.println ("First Name: " + fname); System.out.println ("Last Name: " + lname); System.out.println ("Length of Name: " + len); String cname =name; // copying string to another string System.out.println ("Copied Name:" + cname); System.out.println ("Name in Lowercase: "+ name.toLowerCase()); // Converts all the char(s) to lower case System.out.println ("Name in Uppercase: " + name.toUpperCase()); // Converts all the char(s) to upper case

char c = name. charAt(0); // Returns the character at the specified index System.out.println ("Character at position 0:" + c);

boolean b=fname.startsWith("v"); // Tests the string starts with the specified character. System.out.println ("Checks First name starts with character v :"+b);

if(cname == name) // checks ‘name’ and ‘cname’ shares the same location { System.out.println ("Same memory location = true"); } else System.out.println ("Same memory location = false");

String substr= cname.substring (0, 3); // It returns new String containing the substring of the given string from specified startIndex to endIndex(exclusive). System.out.println ("Substring: " + substr);

boolean b1=name.equals(cname); // Compares string by considering case System.out.println ("Name equality with case checking:" + b1);

boolean b2=name.equalsIgnoreCase(cname); // Compares string by ignoring case System.out.println ("Name equality without case checking:" + b2); } }

Page 30: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 28

OUTPUT: C:\> cd vec C:\vec> javac stringUse.java C:\vec> java stringUse Enter the First Name: sam

Enter the Last Name: daniel

First Name: sam

Last Name: daniel

Length of Name: 9

Copied Name: samdaniel

Name in Lowercase: samdaniel

Name in Uppercase: SAMDANIEL

Character at position 0: s

Checks First name starts with character v: false

Same memory location = true

Substring: sam

Name equality with case checking: true

Name equality without case checking: true

RESULT: Thus a java program for handling strings was created, executed and output was verified successfully.

Page 31: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 29

Ex. NO: 7(A). SIMPLE PACKAGE CREATION AIM:

To write a java program to create a package.

ALGORITHM:

1. Start 2. Declare the class called Balance and two methods read(), show() in a file 3. Declare the class called AccountBalance and create an object in another file 4. Import the package and invoke the method show() using the object of class Balance. 5. Display the result PROGRAM:

Balance.java

package mypackage; public class Balance { String name; int bal; public void read(String n, int b) { name = n; bal = b; } public void show() { if(bal>0) { System.out.println(name +":$"+bal); } } }

AccountBalance.java

import mypackage.Balance; class AccountBalance { public static void main(String arg[]) throws NoClassDefFoundError { Balance obj = new Balance(); // creating object of class A obj.read("Sachin", 10000); // values are instr obj.show(); //invoking show() method in the balance class } } OUTPUT: C:\vec>javac mypackage\Balance.java C:\vec>javac AccountBalance.java C:\vec>java AccountBalance Sachin : $10000 RESULT: Thus a java program to create a package was created, executed and output was verified successfully.

Instructions: 1. Create a folder named mypackage 2. Go to the folder mypackage 3. Create a java program - Balance.java 4. Create a java program - AccountBalance.java and save

it under the vec folder. 5. Open the command prompt

Start Run cmd 6. C:\vec> set PATH=”C:\jdk1.7\bin”; 7. C:\vec> set CLASSPATH=”C:\jdk1.7\lib”; 8. C:\vec\javac mypackage\Balance.java (Balance.class file will be created in mypackage folder) 9. C:\vec>javac AccountBalance.java

(AccountBalance.class file will be created) 10. C:\vec>java AccountBalance 11. Now the output will be displayed.

Page 32: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 30

Ex. NO: 7(B). SIMPLE PACKAGE CREATION AIM: To write a java program to find the account balance by array of objects using package. ALGORITHM:

1. Declare class Balance and pass parameterized constructor. 2. Initialize name and balance as n and b. 3. Use member function to check balance greater than 0 and print the result. 4. Declare another class account import package. 5. Access show() function and print result.

PROGRAM:

Balance.java

package pack; public class Balance { String name; double bal; public Balance(String n, double b) { name=n; bal=b; } public void show() { if(bal>0) { System.out.println(name +":$"+bal); } } }

AccountBalance.java

import pack.Balance; class AccountBalance { public static void main(String arg[]) { Balance current[]=new Balance[3]; current[0]=new Balance("Steve Jobs",123.23); current[1]=new Balance("Will Smith",157.10); current[2]=new Balance("Tom Jackson",-12.55); for(int i=0;i<3;i++) { current[i].show(); } } } OUTPUT: C:\vec>javac pac\Balance.java C:\vec>javac AccountBalance.java C:\vec>java AccountBalance Steve Jobs : $123.33 Will Smith : $157.10 RESULT: Thus java program to find the balance amount using packages was created, executed and output was verified successfully.

Page 33: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 31

Ex.No: 8(A) INTERFACES - DEVELOPING USER DEFINED INTERFACES AIM: To write a java program to develop user defined interfaces. ALGORITHM: 1. Start the program 2. Declare the interface called Area and declare the function called compute in it. 3. Define the class called Rectangle and implement the interface Area. 4. Define the class called Circle and implement the interface Area. 5. Display the result. PROGRAM: import java.io.*; interface Area { final static float pi=3.14F; float compute(float x, float y); } class Rectangle implements Area { public float compute(float x, float y) { return(x*y); } } class Circle implements Area { public float compute(float x, float y) { return(pi*x*x); } } class MainClass { public static void main(String args[]) { Rectangle rect=new Rectangle(); // Object to class ‘Rectangle’ Circle cir=new Circle(); // Object to class ‘Circle’ System.out.println("Area of Rectangle ="+ rect.compute(10,20)); System.out.println("Area of Circle ="+ cir.compute(10,0)); } } OUTPUT:

C:\vec>javac MainClass.java C:\vec>java MainClass Area of Rectangle = 200.0 Area of Circle=314.0

RESULT: Thus java program to implement user defined interface was created, executed and output was verified successfully.

Page 34: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 32

Ex.No: 8(B) INTERFACES – USING PRE-DEFINED INTERFACES AIM: To write a java program using pre defined interfaces ALGORITHM: 1. Create a class called ‘Person’ which implements predefined interface ‘Comparable’ 2. Declare data members name and age in a constructor. 3. Define the member function getName() and getAge() 4. compareTo() is the method of ‘Comparable’ interface 5. Display the result. PROGRAM:

public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; }

public int compareTo(Person per) { if(this.age == per.age) return 0; else return this.age > per.age ? 1 : -1; }

public static void main(String args[]) { Person e1 = new Person("Adam", 50); Person e2 = new Person("Steve", 60); int val = e1.compareTo(e2); switch(val) { case -1: { System.out.println("The " + e2.getName() + " is older!"); break; } case 1: { System.out.println("The " + e1.getName() + " is older!"); break; } default: System.out.println("The two persons are of the same age!"); } } }

Page 35: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 33

OUTPUT: C:\vec>javac Person.java C:\vec>java Person The Steve is older! RESULT: Thus a java program for pre defined interface was created, executed and output was verified successfully.

Page 36: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 34

Ex.No: 9(A) CREATION OF THREADING IN JAVA AIM: To implement threading and exception handling using java program. ALGORITHM:

1. Declare class Th1 that extends from Thread 2. Declare try, catch with data. 3. Declare another two classes Th2 & Th3 and define method run(). 4. Declare main class ThreadDemo and create object t1, t2 and t3 for each class and Access it. 5. Display the result.

PROGRAM: import java.io.*; class Th1 extends Thread { public void run() { try { Thread.sleep(1000); System.out.println("Name: Alex"); System.out.println("Age: 20"); } catch(InterruptedException i) {} } } class Th2 extends Thread { public void run() { try { Thread.sleep(2000); System.out.println("Class: B.E-CSE"); System.out.println("College: VEC"); } catch(InterruptedException i) {} } } class Th3 extends Thread { public void run() { try { Thread.sleep(3000); System.out.println("City: Chennai"); System.out.println("State: Tamilnadu"); } catch(InterruptedException i) {} } }

Page 37: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 35

class ThreadDemo { public static void main(String args[ ]) { Th1 t1=new Th1(); t1.start( ); Th2 t2=new Th2(); t2.start( ); Th3 t3=new Th3( ); t3.start( ); } } OUTPUT: C:\javaprg>javac ThreadDemo.java C:\javaprg>java ThreadDemo Name : Alex Age : 20 Class : B.E.-CSE College : VEC City : Chennai State : Tamilnadu RESULT:

Thus a java program for threading was created, executed and output was verified successfully.

Page 38: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 36

Ex.No: 9(B) MULTITHREADING IN JAVA AIM: To write a java program on multithreading concept. ALGORITHM: 1. Start the program 2. Create a main thread called ThreadDemo and starts its execution

3. Invoke the child thread class called newThread 3. newThread() invokes the superclass constructor and starts the child thread execution. 4. Main thread and child thread runs parallelly. 5. Display the result. PROGRAM: import java.io.*;

class Newthread extends Thread

{

Newthread()

{

super("DemoThread");

System.out.println("Child Thread:" +this);

start();

}

public void run()

{

try

{

for(int i=5;i>0;i--)

{

System.out.println("Child Thread:" +i);

Thread.sleep(500);

}

}

catch(InterruptedException e)

{

System.out.println("Child Thread Interrupted");

}

System.out.println("Exiting Child Thread");

}

}

Page 39: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 37

class MultiThreadDemo

{

public static void main(String args[])

{

new Newthread();

try

{

for(int i=5;i>0;i--)

System.out.println("Main Thread:" +i);

Thread.sleep(1000);

}

catch(InterruptedException e)

{

System.out.println("Main Thread Interrupted");

}

System.out.println("Exiting Main Thread");

}

}

OUTPUT:

C:\javaprg>javac MultiThreadDemo.java C:\javaprg>java MultiThreadDemo Child Thread:Thread[DemoThread,5,main] Main Thread:5 Main Thread:4 Main Thread:3 Main Thread:2 Child Thread:5 Main Thread:1 Child Thread:4 Exiting Main Thread Child Thread:3 Child Thread:2 Child Thread:1 Exiting Child Thread RESULT:

Thus a java program for multi threading was created, executed and output was verified successfully.

Page 40: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 38

Ex.No: 10(A) HANDLING PREDEFINED EXCEPTION

AIM:

To implement the pre defined exception concept in java

ALGORITHM:

1. Start the program

2. Create the called error.

3. Declare and Initialize the data members.

4. Use the try and catch block to handle the exception

5. If the exception exists, corresponding catch block will be executed or else control goes out of

the catch block.

6. Display the result.

PROGRAM:

class Exception { public static void main(String args[]) { int a=10, b=5, c=5, result; try { result =a/(b-c); } catch(ArithmeticException e) { System.out.println("Exception occurs: Division by Zero"); } result =a/(b+c); System.out.println("Result =" + result); } } OUTPUT: C:\javaprg> javac Exception.java C:\javaprg> java Exception Exception occurs: Division by Zero Result = 1 RESULT:  

Thus a java program for pre defined exception was created, executed and output was verified successfully.

Page 41: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 39

Ex.No: 10(B) HANDLING USERDEFINED EXCEPTION AIM: To implement the user defined exception concept in java ALGORITHM: 1. Create a user defined exception class called MyException 2. Throw an exception of user defined type as an argument in main() 3. Exception is handled using try, catch block 4. Display the user defined exception PROGRAM: import java.lang.Exception; class MyException extends Exception { int a; MyException(int b) { a=b; } public String toString() { return ("Exception Number = " +a) ; } } class JavaException { public static void main(String args[]) { try { throw new MyException(2); // throw is used to create a new exception and throw it. } catch(MyException e) { System.out.println(e) ; } } } OUTPUT

C:\javaprg >javac JavaException.java C:\javaprg >java JavaException Exception Number = 2 RESULT:

Thus a java program for user defined exception was created, executed and output was verified successfully.

Page 42: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 40

ADDITIONAL EXERCISES IN JAVA Ex.No: 11(A) DRAW SMILEY USING JAVA APPLET Aim: To create a java applet program for drawing smiley face Algorithm: Step 1: Create a java program Smiley.java Step 2: import awt an applet package and create a class that extends Applet Step 3: Using various methods in awt and applet class draw a face. Step 4: Create a html file called Smiley.html and write the applet code. Step 5: Stop Program: // Smiley.java

import java.awt.*; import java.applet.*; public class Smiley extends Applet { public void paint(Graphics g) { Font f = new Font("Helvetica", Font.BOLD, 20); g.setFont(f); g.drawString("Keep Smiling!!!", 50, 30); g.drawOval(60, 60, 200, 200); g.fillOval(90, 120, 50, 20); g.fillOval(190, 120, 50, 20); g.drawLine(165, 125, 165, 175); g.drawArc(110, 130, 95, 95, 0, -180); } } //Smiley.html </html> <body> <applet code="Smiley.class" width=300 height=300></applet> </body> </html> Output: C:\vec>javac Smiley.java C:\vec>appletviewer Smiley.html

RESULT:

Thus a java applet program for drawing smiley face was created, executed and output was verified successfully.

Page 43: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 41

Ex.No: 11(B) ADDING TWO NUMBERS USING JAVA APPLET Aim: To create a java applet program for adding two numbers by getting input from the user Algorithm: Step 1: Create a java program Sum.java Step 2: import awt an applet package and create a Sum that extends Applet Step 3: Using various methods in awt and applet class draw a face. Step 4: Create a html file called Sum.html and write the applet code. Step 5: Stop Program: // Sum.java

import java.awt.*; import java.applet.*; public class Sum extends Applet { TextField T1,T2; public void init() { T1 = new TextField(10); T2 = new TextField(10); add(T1); add(T2); T1.setText("0"); T2.setText("0"); } public void paint(Graphics g) { int a, b, result; String str; g.drawString("Enter Number in TextField to find addition of 2 Numbers ",10,50); g.setColor(Color.red); str=T1.getText(); a=Integer.parseInt(str); str=T2.getText(); b=Integer.parseInt(str); result=a+b; g.drawString("THE SUM = " + result,10,80); showStatus("Addition of 2 Numbers"); } public boolean action(Event e, Object o) { repaint(); return true; } } //Sum.html <html> <body> <applet code="Sum.class" width=350 height=150></applet> </body> </html>

Page 44: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 42

Output: C:\vec>javac Sum.java C:\vec>appletviewer Sum.html

RESULT:

Thus a java applet program for adding two numbers was created, executed and output was verified successfully.

Page 45: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 43

Ex.No: 11(C) DRAW ARCS USING JAVA APPLET Aim: To create a java applet program for drawing Arcs. Algorithm: Step 1: Create a java program Arcs.java Step 2: import awt an applet package and create a class that extends Applet Step 3: Using various methods in awt and applet class draw a face. Step 4: Create a html file called Arcs.html and write the applet code. Step 5: Stop Program: // Arcs.java

import java.awt.*; import java.applet.*; public class Arcs extends Applet { public void init() { setBackground(Color.black); setForeground(Color.green); } public void paint(Graphics g) { g.drawArc(10, 40, 70, 70, 0, 75); g.fillArc(100, 40, 70, 70, 0, 75) ; g.drawArc(10, 100, 70, 80, 0, 175); g.fillArc(100, 100, 70, 90, 0, 270); g.drawArc(200, 80, 80, 80, 0, 180); } } //Arcs.html <html> <body> <applet code="Arcs.class" width=300 height=250></applet> </body> </html> Output: C:\vec>javac Arcs.java C:\vec>appletviewer Arcs.html

RESULT:

Thus a java applet program for drawing arcs was created, executed and output was verified successfully.

Page 46: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 44

Ex.No: 11(D) DRAW BUTTONS USING JAVA APPLET Aim: To create a java applet program for drawing Buttons. Algorithm: Step 1: Create a java program ButtonDemo.java Step 2: import awt an applet package and create a class that extends Applet Step 3: Using various methods in awt and applet class draw a face. Step 4: Create a html file called ButtonsDemo.html and write the applet code. Step 5: Stop Program: // ButtonDemo.java

import java.awt.*; import java.awt.event.*; public class ButtonDemo extends Frame implements ActionListener { Button redBut, greenBut, blueBut, closeBut; public ButtonDemo() { setLayout(new FlowLayout()); redBut = new Button("RED"); greenBut = new Button("GREEN"); blueBut = new Button("BLUE"); closeBut = new Button("CLOSE"); redBut.addActionListener(this); greenBut.addActionListener(this); blueBut.addActionListener(this); closeBut.addActionListener(this); closeBut.setForeground(Color.red); add(redBut); add(greenBut); add(blueBut); add(closeBut); setTitle("Buttons in Action"); setSize(300, 300); setVisible(true); } public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if(str.equals("RED")) setBackground(Color.red); else if(str.equals("GREEN")) setBackground(Color.green); else if(str.equals("BLUE")) setBackground(Color.blue); else if(str.equals("CLOSE")) System.exit(0); } public static void main(String args[]) { new ButtonDemo(); } }

Page 47: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 45

// ButtonDemo.html <html> <body> <applet code=" ButtonDemo.class" width=300 height=250></applet> </body> </html> Output: C:\vec>java ButtonDemo.java C:\vec>appletviewer ButtonDemo.html

RESULT:

Thus a java applet program for creating buttons was created, executed and output was verified successfully.

Page 48: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 46

Ex.No: 11(E) CHAT APPLICATION USING JAVA APPLET Aim: To create a java applet program for chatting. Algorithm: Step 1: Create a java program called Server.java Step 2: import java.io and java.net package and create a class Server Step 3: Using various methods in java.io and java.net package initiate chat , send and receive text from Client program. Step 4: Create another java program called Client.java Step 5: import java.io and java.net package and create a class Client Step 6: Using various methods in java.io and java.net package initiate chat, send and receive text from Server program. Step 7: Stop Program: // Server.java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket sersock = new ServerSocket(3000); System.out.println("Server ready for chatting..."); Socket sock = sersock.accept( ); // reading from keyboard BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in)); // sending to client (pwrite object) OutputStream ostream = sock.getOutputStream(); PrintWriter pwrite = new PrintWriter(ostream, true); // receiving from server ( receiveRead object) InputStream istream = sock.getInputStream(); BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream)); String receiveMessage, sendMessage; while(true) { if((receiveMessage = receiveRead.readLine()) != null) { System.out.println(receiveMessage); } sendMessage = keyRead.readLine(); pwrite.println(sendMessage); pwrite.flush(); } } }

Page 49: CS6461-Object Oriented Programming Laboratory - … Semester/CS6461-Object... · CS6461-OBJECT ORIENTED PROGRAMMING LABORATORY OBJECTIVES: • To get a clear understanding of object-oriented

Prepared by T.Rajasekaran, AP/CSE Page 47

// Client.java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) throws IOException { Socket sock = new Socket("127.0.0.1", 3000); // reading from keyboard (keyRead object) BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in)); // sending to client (pwrite object) OutputStream ostream = sock.getOutputStream(); PrintWriter pwrite = new PrintWriter(ostream, true); // receiving from server ( receiveRead object) InputStream istream = sock.getInputStream(); BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream)); System.out.println("Client ready for hatting..."); System.out.println("To initiate Chat, type anything and press Enter key"); String receiveMessage, sendMessage; while(true) { sendMessage = keyRead.readLine(); // keyboard reading pwrite.println(sendMessage); // sending to server pwrite.flush(); // flush the data if((receiveMessage = receiveRead.readLine()) != null) //receive from server { System.out.println(receiveMessage); // displaying at DOS prompt } } } }

Output: C:\vec>javac Server.java C:\vec>java Server C:\vec>javac Client.java C:\vec>java Client

RESULT:

Thus a java applet program for chat application was created, executed and output was verified successfully.