0% found this document useful (0 votes)
23 views15 pages

Programming Assignments Solutions

The document contains programming assignment solutions for a course, covering various topics in Java such as object-oriented programming, interfaces, and data structures. Each section includes code snippets for different assignments, demonstrating concepts like class creation, method overriding, and data manipulation. The assignments range from simple calculations to more complex implementations involving singleton patterns and collections.

Uploaded by

Rituparna Das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views15 pages

Programming Assignments Solutions

The document contains programming assignment solutions for a course, covering various topics in Java such as object-oriented programming, interfaces, and data structures. Each section includes code snippets for different assignments, demonstrating concepts like class creation, method overriding, and data manipulation. The assignments range from simple calculations to more complex implementations involving singleton patterns and collections.

Uploaded by

Rituparna Das
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

BSCCS2005: Practice Programming Assignment Solutions

Week {2-6}

1. Week 2 PPA1

import java.util.*;
class Rectangle{
int w; //width
int h; //height

public void setw(int _w) {


w = _w;
}

public void seth(int _h) {


h = _h;
}

public int area() {


return w * h;
}
}
public class FClass{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int w = Integer.parseInt(sc.nextLine());
int h = Integer.parseInt(sc.nextLine());
Rectangle r = new Rectangle();
r.setw(w);
r.seth(h);
int area = r.area();
System.out.print(area);
}
}
2. PPA2

import java.util.*;
class FClass {

public static void main(String[] args){


Scanner sc = new Scanner(System.in);
String s1 = sc.next();
evenDisplay(s1);
}
public static void evenDisplay(String str1){
String str3 = "";
for (int i = 0; i < str1.length(); i++) {
if(i % 2 == 0) {
str3 = str3 + str1.charAt(i);
}

}
System.out.println(str3);

}
}

Page 2
3. Week 3 PPA1

import java.util.*;
class Calculator{
public void sum(double a, double b){
System.out.println(a+b);
}
public void subtraction(double a, double b){
System.out.println(a-b);
}
public void multiply(double a, double b){
System.out.println(a*b);
}
public void division(double a, double b){
System.out.println(a/b);
}
}
class UpdatedCalculator extends Calculator{
public void remainder(double a, double b){
System.out.println(a%b);
}
}
public class CalculatorCheck{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double n1 = sc.nextDouble();
double n2 = sc.nextDouble();
Calculator c = new Calculator();
c.sum(n1, n2);
c.subtraction(n1, n2);
c.multiply(n1, n2);
c.division(n1, n2);
UpdatedCalculator uc = new UpdatedCalculator();
uc.remainder(n1, n2);
}

Page 3
4. PPA2

import java.util.*;
class Point{
private int x, y;
Point(int x, int y){
this.x = x;
this.y = y;
}
public String toString() {
return "("+x+", "+y+")";
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
Point other = (Point) obj;
return x == other.x && y == other.y;
}
}

class FClass{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x1 = sc.nextInt();
int y1 = sc.nextInt();
int x2 = sc.nextInt();
int y2 = sc.nextInt();

Point p1 = new Point(x1, y1);


Point p2 = new Point(x2, y2);

if(p1.equals(p2))
System.out.println(p1 + "==" + p2);
else
System.out.println(p1 + "!=" + p2);
}
}

Page 4
5. Week 4 PPA1

import java.util.*;
interface Searchable{
public int search(int start_index, Object key);
}
class Char{
private char c;
public Char(char c_) {
c = c_;
}
public boolean equals(Object d) {
if (d instanceof Char) {
Char otherChar = (Char) d;
return this.c == otherChar.c;
}
return false;
}
}
class CharArray implements Searchable{
private Char[] carr;
public CharArray(Char[] carr_){
carr = carr_;
}
public int search(int start_index, Object key) {
if (key instanceof Char) {
Char searchKey = (Char) key;
for (int i = start_index; i < carr.length; i++) {
if (carr[i].equals(searchKey)) {
return i;
}
}
}
return -1;
}
}

class FrequencyCounter{
public static int getFrequency(Searchable ob, Object key){
if (ob instanceof CharArray) {
if (ob instanceof CharArray) {
int frequency = 0;
int index = 0;
while (true) {

Page 5
index = ob.search(index, key);
if (index == -1) {
break;
}
frequency++;
index++;
}
return frequency;
}
}
return 0;
}
}
class FClass{
public static void main(String[] args) {
String str;
char c;
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
c = sc.next().charAt(0);
Char key = new Char(c);
Char[] cA = new Char[str.length()];
for(int i = 0; i < str.length(); i++) {
cA[i] = new Char(str.charAt(i));
}
CharArray caObj = new CharArray(cA);
System.out.println(FrequencyCounter.getFrequency(caObj, key));
}
}

Page 6
6. PPA2

import java.util.Scanner;

class Voter{

public static int total_no_of_voters;


private static Voter new_voter;
private static int current_voter_count = 0;

private Voter() {
current_voter_count++;
}
public static Voter getVoter() {
if(new_voter == null) {
new_voter = new Voter();
return new_voter;
}
else {
return null;
}
}

public void firstVoter(){


if(new_voter != null) {
EVM new_machine = EVM.getEVM(new_voter);
new_machine.startVoting();
}
}
public void callNewVoter() {
new_voter = null;

System.out.println("Voting completed for voter " +


current_voter_count);

// Calling new voter and allocating EVM for him


if(current_voter_count < total_no_of_voters) {

//EVM - Voter mapping is bijective


EVM new_machine = EVM.getEVM(getVoter());

try {
EVM x = EVM.getEVM(null);
x.startVoting();

Page 7
} catch(NullPointerException e) {
System.out.println("EVM is Singleton");
}
new_machine.startVoting();
}
}
}
class EVM{
private Voter current_voter;
private static int evm_count = 0;
private static EVM current_evm;

private EVM(Voter v) {
current_voter = v;
evm_count++;
}
public static EVM getEVM(Voter v) {
if(current_evm == null) {
current_evm = new EVM(v);
return current_evm;
//this particular evm is binded to the current voter
}
else
return null;

}
public void startVoting() {

System.out.println("voting under process on EVM number "+ evm_count);


current_evm = null; //voting on current evm is done
current_voter.callNewVoter();
}
}

public class Election{


public static void main(String args[]) {
Scanner s = new Scanner(System.in);
Voter.total_no_of_voters = s.nextInt();
// Assume input is always non zero
Voter v = Voter.getVoter();

//Trying to create another voter when one voter is in the middle of


//voting process, students can ignore this try-catch block of code

Page 8
try {
Voter x = Voter.getVoter();
x.callNewVoter();
} catch(NullPointerException e) {
System.out.println("Voter is Singleton");
}

//Starting the first vote of the day


v.firstVoter();
}
}

Page 9
7. Week 5 PPA1

import java.lang.reflect.*;
import java.util.*;
class ClassStats{
public static int getPubMethodCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);
Method[] methods = clazz.getMethods();
return methods.length;
}catch(Exception e) { return -1; }
}
public static int getAllMethodCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);
Method[] methods = clazz.getDeclaredMethods();
return methods.length;
}catch(Exception e) { return -1; }
}
public static int getPubFieldCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);
Field[] fields = clazz.getFields();
return fields.length;

}catch(Exception e) { return -1; }


}
public static int getAllFieldCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);
Field[] fields = clazz.getDeclaredFields();
return fields.length;
}catch(Exception e) { return -1; }
}
public static int getPubContCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);
Constructor<?>[] constructors = clazz.getConstructors();
return constructors.length;
}catch(Exception e) { return -1; }
}
public static int getAllContCount(String cname) {
try {
Class<?> clazz = Class.forName(cname);

Page 10
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
return constructors.length;
}catch(Exception e) { return -1; }
}
}

class FClass{
public static void main(String[] args) {
String cname;
Scanner sc = new Scanner(System.in);
cname = sc.nextLine();
System.out.println("Constructor: " +
ClassStats.getPubContCount(cname) + ", " +
ClassStats.getAllContCount(cname));
System.out.println("Fields: " +
ClassStats.getPubFieldCount(cname) + ", " +
ClassStats.getAllFieldCount(cname));
System.out.println("Methods: " +
ClassStats.getPubMethodCount(cname) + ", " +
ClassStats.getAllMethodCount(cname));
}
}

Page 11
8. PPA2

import java.util.Scanner;
class ConvertArrays{
public Double doubleArr[]=new Double[3];
public Integer intArr[]=new Integer[3];
public int x=0,y=0,z=0;
public void convert(String[] arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i].contains("."))
{
doubleArr[y]=Double.parseDouble(arr[i]);
y++;
}
else
{
intArr[z]=Integer.parseInt(arr[i]);
z++;
}
}
}
public <T> void display(T[] arr){
for(T elements:arr)
System.out.print(elements+" ");
System.out.println();
}
}
public class Programming {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String arr[]= new String[6];
for (int i = 0; i < arr.length; i++) {
arr[i]=scanner.next();
}
ConvertArrays conArrays=new ConvertArrays();
conArrays.convert(arr);
System.out.println("===After conversion Arrays===");
conArrays.display(conArrays.doubleArr);
conArrays.display(conArrays.intArr);
}
}

Page 12
9. Week 6 PPA1

import java.util.*;
class RemoveStudent{
public boolean property(Double value) {
if(value<65)
return true;
return false;
}
public void detained(Map<String, Double> obj) {
Collection<Double> values=obj.values();
Iterator<Double> iterator=values.iterator();
while (iterator.hasNext()) {
if(property(iterator.next()))
iterator.remove();
}
display(obj);
}
public void display(Map<String, Double> obj) {
System.out.println(obj);
}
}
public class Test {
public static void main(String[] args) {
Map<String,Double> map=new TreeMap<String,Double>();
Scanner scanner=new Scanner(System.in);
for (int i=0; i<6; i++) {
map.put(scanner.next(),scanner.nextDouble());
}
RemoveStudent obj=new RemoveStudent();
obj.detained(map);
}
}

Page 13
10. PPA2

import java.util.*;
abstract class Account implements Comparable<Account>{
String acc_no;
double balance;
public Account(String no,double bal){
acc_no = no;
balance = bal;
}
public int compareTo(Account obj) {
if(obj.balance > this.balance)
return 1;
else if(obj.balance < this.balance)
return -1;
else
return 1;
}
public boolean equals(Object o) {
Account obj = (Account)o;
return this.acc_no.equals(obj.acc_no);
}
public int hashCode() {
return Integer.parseInt(acc_no);
}
}
class SavingsAccount extends Account{
public SavingsAccount(String acc_no, double bal) {
super(acc_no,bal);
}
public String toString() {
return "Savings Account:"+acc_no+" , Balance:"+balance;
}
}
class CurrentAccount extends Account{
double overdraft_limit;
public CurrentAccount(String acc_no, double bal, double odl) {
super(acc_no,bal);
overdraft_limit = odl;
}
public String toString() {
return "Current Account:"+acc_no+" , Balance:"+balance;
}
}

Page 14
public class Test4 {
public static void accountProcessor(ArrayList<Account> unprocessed_acc) {
Set<Account> unique_accounts;
unique_accounts = new LinkedHashSet<Account>(unprocessed_acc);
Set<Account> sorted_accounts = new TreeSet<Account>(unique_accounts);
for(Account a : sorted_accounts) {
System.out.println(a);
}
}
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
ArrayList<Account> acc = new ArrayList<Account>();
int s_acc_count = s.nextInt();
for(int i=1;i<=s_acc_count;i++) {
String no = s.next();
double bal = s.nextDouble();
acc.add(new SavingsAccount(no,bal));
}
int c_acc_count = s.nextInt();
for(int i=1;i<=c_acc_count;i++) {

String no = s.next();

double bal = s.nextDouble();


double lim = s.nextDouble();
acc.add(new CurrentAccount(no,bal,lim));
}

accountProcessor(acc);
}
}

Page 15

You might also like