OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
ASSIGNMENT-01
Program:1
Given two sorted arrays nums1 and num2 of size m and n
respectively, return the median of the two sorted arrays.
Program
[Link];
public class Median Of Two Sorted Arrays
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S");
[Link]("4YG25CS002");
[Link](“------OUTPUT ------ “);
Scanner sc=new Scanner([Link]);
[Link]("Entersizeofnums1:");
int m = [Link] Int();
int[]nums1=new int[m];
[Link]("Entersortedelements:");
for (int i = 0; i < m; i++)
{
nums1[i]=[Link]();
}
[Link]("Entersizeofnums2:");
[Link],NCEH AbhishekB S(4YG24CS002) 1
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
intn=[Link]();
int[]nums2=newint[n];
[Link]("Entersortedelements:");
for (int i = 0; i < n; i++)
{
nums2[i]=[Link]();
}
doublemedian=findMedian(nums1,nums2);
[Link]("Median = %.5f\n", median);
[Link]();
}
publicstaticdoublefindMedian(int[]nums1,int[]nums2)
{
intm=[Link]; int
n = [Link];
int[]merged=newint[m+n]; int i
= 0, j = 0, k = 0;
while(i<m&&j<n)
{
if(nums1[i]<nums2[j])
{
merged[k++]=nums1[i++];
[Link],NCEH Abhishek B S(4YG24CS002) 2
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
}
else
{
merged[k++]=nums2[j++];
}
}
while(i< m)
{
merged[k++]=nums1[i++];
}
while(j<n)
{
merged[k++]=nums2[j++];
}
inttotal=[Link]; if
(total % 2 == 1)
{
returnmerged[total/2];
}
else
{
return(merged[total/2-1]+merged[total/2])/2.0;
[Link],NCEH Abhishek B S(4YG24CS002) 3
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
}
}
}
Program:2
Given an integer,print its first [Link](where) should
be printed on a new line in the form: N x i = result.
Program
import [Link];
publicclassPrintMultiples
{
publicstaticvoidmain(String[]args);
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scannersc=newScanner([Link]);
[Link],NCEH AbhishekB S(4YG24CS002) 4
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link]("Enteraninteger:");
intN=[Link]();
for(inti=1;i<=10;i++)
{
[Link](N+"x"+i+"="+(N*i));
}
[Link]();
}
}
Output
[Link],NCEH AbhishekB S(4YG24CS002) 5
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link],NCEH AbhishekB S(4YG24CS002 ) 6
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Program:3
You are given a 6*6 2D array. An hourglass in an array is a portion
shaped like this: a b c d e f g For example, if we create an hourglass
usingthenumber1withinanarrayfullofzeros,itmaylooklikethis:
111000
010000
111000
000000
000000
000000
Actually, there are many hourglasses in the array above. The three
leftmosthourglassesarethefollowing:11111010010011111 0 1 0 0 The
sum of an hourglass is the sum of all the numbers within it. The sum
for the hourglasses above are 7, 4, and 2, respectively. In this
problem you have to print the largest sum among all the
hourglassesinthearray.
Program
[Link];public
class HourglassSum
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
[Link],NCEH Abhishek B S(4YG24CS002) 7
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Scannersc=newScanner([Link]);
int[][] arr = new int[6][6];
[Link]("Enterelementsof6x6array:");
for (int i = 0; i < 6; i++)
{
for(int j=0;j<6;j++)
{
arr[i][j]=[Link]();
}
}
intmaxSum=Integer.MIN_VALUE;
for (int i = 0; i <= 3; i++)
{
for(intj=0;j<=3;j++)
{
inthourglassSum=arr[i][j]+arr[i][j+1]+arr[i][j+ 2]+arr[i+1][j+ 1]+
arr[i + 2][j] + arr[i + 2][j + 1] + arr[i + 2][j + 2];
if(hourglassSum>maxSum)
{
maxSum=hourglassSum;
[Link],NCEH AbhishekB S(4YG24CS002) 8
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
}
}
}
[Link]("Maximum Hourglass Sum: " + maxSum);
[Link]();
}
}
OutPut:
[Link],NCEH AbhishekB S(4YG24CS002) 9
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Program4
AclassnamedArithmeticwithamethodnamedaddthattakes
integersasparametersandreturnsanintegerdenotingtheirsum.A class
named Adder that inherits from a superclass named
[Link].
Program
[Link];
public class Solution
{
Public static void main(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scannersc=newScanner([Link]); Adder
adder = new Adder();
[Link]("Enterfirstnumber:"); int
a = [Link]();
[Link]("Entersecondnumber:"); int
b = [Link]();
[Link],NCEH AbhishekB S(4YG24CS002 10
Abhishek b
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link]("Mysuperclassis:
"[Link]().getSuperclass().getName());
[Link]([Link](a,b));
[Link]();
}
}
classArithmetic
{
intadd(inta,intb)
{
returna+b;
}}
classAdderextendsArithmetic
{
}
OutPut:
[Link],NCEH AbhishekB S(4YG24CS002) 11
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Program:5
Consider the following Sports class:
Class Sports{String get Name()
{
return"Generic Sports";
}
Void get NumberOfTeamMembers()
{
[Link]("Each team has nplayesin"+getName());
}
}
[Link],NCEH AbhishekB S(4YG24CS002) 12
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Next,we create a Soccer class that in her its from [Link]
override the getName method and return a different, subclass-specific
string: class Soccer extends Sports{
@Override
StringgetName(){return"SoccerClass";}}
TaskCompletethecodeinyoureditorbywritinganoverridden
getNumberOfTeamMembers method that prints the same
statementasthesuperclass'getNumberOfTeamMembersmethod,
except that it replaces with (the number of players on a Soccer
team).
Program
[Link];
public class Solution
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scanner sc = new Scanner([Link]);
Sports sports = new Sports();
[Link]([Link]());
[Link]("EnternumberofplayersforGenericSports:"); int
genericPlayers = [Link]();
[Link],NCEH AbhishekB S(4YG24CS002) 13
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link](genericPlayers);
Soccer soccer = new Soccer();
[Link]([Link]());
[Link]("EnternumberofplayersforSoccer:"); int
soccerPlayers = [Link]();
[Link](soccerPlayers);
[Link]();
}
}
classSports
{
StringgetName()
{
return"GenericSports";
}
voidgetNumberOfTeamMembers(intplayers)
{
[Link]("Eachteamhas"+players+"playersin"+ getName());
}
}
classSoccerextendsSports
{
[Link],NCEH AbhishekB S(4YG24CS002) 14
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
@Override
StringgetName()
{
return"SoccerClass";
}
@Override void
getNumberOfTeamMembers(intplayers)
{
[Link]("Eachteamhas"+players+ "
players in " + getName());
}
}
Output
[Link],NCEH AbhishekB S(4YG24CS002) 15
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link],NCEH AbhishekB S(4YG24CS002) 16
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
ASSIGNMENT-02
Program:1
You are required to demonstrate the concept of Java Packages by
[Link].
Insidethepackage,createaclass:[Link]
contain:Privatevariables:accountNumber,balanceAconstructorto
initialize values Methods: deposit(amount) withdraw(amount)
getBalance() In the main class (outside the package), import the
packageandperformtheoperations.
Program
[Link];
public class Main
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scannersc=newScanner([Link]);
[Link]("EnterAccountNumber:");
int accNo = [Link]();
[Link]("EnterInitialBalance:");
double bal = [Link]();
Accountacc=newAccount(accNo,bal);
[Link],NCEH AbhishekB S(4YG24CS002) 17
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link]("Enterdepositamount:");
double dep = [Link]();
[Link](dep);
[Link]("Enterwithdrawalamount:");
double wit = [Link]();
[Link](wit);
[Link]("CurrentBalance:"+
[Link]());
[Link]();
}
}
classAccount
{
private int accountNumber; private
double balance;
Account(int account Number,double balance)
{
[Link] Number=account Number; [Link]
=balance;
}
voiddeposit(doubleamount)
[Link],NCEH AbhishekB S(4YG24CS002) 18
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
{
if(amount>0)
{
balance+=amount;
[Link]("AmountDeposited: "+ amount);
}else
{
[Link]("Invaliddepositamount");
}
}
voidwithdraw(doubleamount)
{
if(amount>0&&amount<=balance)
{
balance-=amount;
[Link]("AmountWithdrawn:"+amount);
}else
{
[Link]("Insufficientbalance");
}
}
[Link],NCEH AbhishekB S(4YG24CS002) 19
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
doublegetBalance()
{
returnbalance;
}
}
Output
[Link],NCEH AbhishekB S(4YG24CS002) 20
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Program:2
You are require do compute the power of a number by
Implementing [Link] a class My Calculator which
consists of a single method long power(int, int). This method takes
twointegers,nandp,[Link]
negative,then the method must throwanexception whichsays "n
and p should not be negative". Also, if both n and p are zero, then
themethodmustthrowanexceptionwhichsays"nandpshouldnot be
zero."
Program
[Link];
public class Main
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scanner sc = new Scanner([Link]);
MyCalculatorcalc=newMyCalculator();
while ([Link]())
{
intn=[Link]();
intp= [Link]();
[Link],NCEH AbhishekB S(4YG24CS002) 21
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
try
{
[Link]([Link](n,p));
}catch(Exceptione)
{
[Link]("[Link]:
"[Link]());
}
}
[Link]();
}
}
classMyCalculator
{
longpower(intn,intp)throwsException
{
if(n==0&&p==0)
{
thrownewException("nandpshouldnotbezero.");
}
[Link],NCEH AbhishekB S(4YG24CS002) 22
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
if(n<0||p<0)
{
thrownewException("norpshouldnotbenegative.");
}
longresult= 1;
for(inti=1;i<=p; i++)
{
result=result* n;
}
returnresult;
}
}
[Link],NCEH AbhishekB S(4YG24CS002) 23
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Output
Program:3
You are given N tasks,each task must print as pecific
Message .However,tasks must runconcurrentlyusingthreads,and still
ensure that: Each task prints a start message, Then prints its
assigned number, Then prints a completion message, Outputs for
each task should appear in order of task deven thoughthreadsrun
concurrently You must ensure correct synchronization so output
order remains consistent.
Program
[Link];
public class Main
{
publicstaticvoidmain(String[]args)
[Link],NCEH AbhishekB S(4YG24CS002) 24
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scannersc=newScanner([Link]); int
n = [Link]();
int[]numbers=newint[n];
for(inti=0;i<n;i++)
{
numbers[i]=[Link]();
}
for(inti=0;i<n;i++)
{
Threadt=newThread(newTask(i+1,numbers[i]));
[Link]();
}
[Link]();
}
}
classTaskimplementsRunnable
{
privatestaticintcurrentTask=1;
private int taskId;
[Link],NCEH AbhishekB S(4YG24CS002) 25
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
privateintnumber;
Task(inttaskId,intnumber)
{
[Link]=taskId;
[Link]=number; }
@Override
publicvoidrun()
{
synchronized([Link])
{
while(taskId!=currentTask)
{
try
{
[Link]();
}catch(InterruptedExceptione)
{
[Link]();
}
}
[Link]("Task"+taskId+"started");
[Link],NCEH AbhishekB S(4YG24CS002) 26
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
[Link]("Number:"+ number);
[Link]("Task " + taskId + " completed");
currentTask++;
[Link]();
}
}
}
Output
[Link],NCEH AbhishekB S(4YG24CS002) 27
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Program:4
MultipleHydrogen(H)andOxygen(O)threadsarecreatedrandomly. A
valid water molecule must always be formed as: H H O Two H must
print before one O. You must synchronize threads so output
repeatedly prints: HHO HHO HHO… No extra H or O should print
withoutcompletingamolecule.
Program
[Link];
public class Main
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
Scannersc=newScanner([Link]); int
n = [Link]();
Waterwater=newWater();
for (int i = 0; i < 2 * n; i++)
{
newThread(()->[Link]()).start();
}
for(inti=0;i<n;i++)
{
[Link],NCEH AbhishekB S(4YG24CS002) 28
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
newThread(()->[Link]()).start();
}
[Link]();
}
}
classWater
{
private int hCount = 0; public
synchronized void hydrogen()
{
while(hCount==2)
{
try
{
wait();
}catch(InterruptedExceptione)
{
[Link]();
}
}
[Link]("H");
hCount++;
[Link],NCEH AbhishekB S(4YG24CS002) 29
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
notifyAll();
}
publicsynchronizedvoidoxygen()
{
while(hCount<2)
{
try
{
wait();
}catch(InterruptedExceptione)
{
[Link]();
}
}
[Link]("O");
hCount = 0;
notifyAll();
}
}
[Link],NCEH AbhishekB S(4YG24CS002) 30
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Output
Program:5
Define an enumeration for the 12 months of the year starting with
JAN=[Link],[Link] not
entered properly i.e other than 1-12 is entered print a suitable
message (invalid month)
Program
[Link];
public class Main
{
publicstaticvoidmain(String[]args)
{
[Link]("ABHISHEK B S ");
[Link]("4YG25CS002");
[Link],NCEH AbhishekB S(4YG24CS002) 31
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Scannersc=newScanner([Link]); int
monthNumber = [Link]();
Stringresult=[Link](monthNumber); if
([Link]("Invalid month"))
{
[Link]("Invalidmonth");
}else
{
[Link]([Link](0,1) +
[Link](1).toLowerCase());
}
[Link]();
}
}
enumMonth
{
JANUARY(1),FEBRUARY(2),MARCH(3),APRIL(4),MAY(5),
JUNE(6),
JULY(7),AUGUST(8),SEPTEMBER(9),OCTOBER(10),
NOVEMBER(11), DECEMBER(12);
privateintvalue;
Month(intvalue)
[Link],NCEH AbhishekB S(4YG24CS002) 32
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
{
[Link]=value;
}
publicintgetValue()
{
returnvalue;
}
public staticStringgetMonthName(intnum)
{
for(Monthm:[Link]())
{
if([Link]()==num)
{
[Link]();
}
}
return"Invalidmonth";
}
}
[Link],NCEH AbhishekB S(4YG24CS002) 33
OBJECTORIENTEDPROGRAMMING
WITHJAVA(BCS306A)ASSIGNMENT 2025-26
Output
[Link],NCEH AbhishekB S(4YG24CS002) 34