mirror of
https://github.com/Manoj-HV30/OOPS-lab-codes.git
synced 2026-05-16 19:35:25 +00:00
Added Java lab programs
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,39 @@
|
|||||||
|
import accounts.Account;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import services.Interest;
|
||||||
|
|
||||||
|
public class BankDemo {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter Account Number: ");
|
||||||
|
int accNo = sc.nextInt();
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Enter Customer Name: ");
|
||||||
|
String name = sc.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Enter Initial Balance: ");
|
||||||
|
double balance = sc.nextDouble();
|
||||||
|
|
||||||
|
Account acc = new Account(accNo, name, balance);
|
||||||
|
|
||||||
|
System.out.print("Enter amount to deposit: ");
|
||||||
|
double dep = sc.nextDouble();
|
||||||
|
acc.deposit(dep);
|
||||||
|
|
||||||
|
System.out.print("Enter amount to withdraw: ");
|
||||||
|
double wd = sc.nextDouble();
|
||||||
|
acc.withdraw(wd);
|
||||||
|
|
||||||
|
Interest interest = new Interest();
|
||||||
|
double updatedBalance = interest.applyInterest(acc.getBalance());
|
||||||
|
|
||||||
|
System.out.println("\n--- Account Details After Interest ---");
|
||||||
|
acc.displayAccountDetails();
|
||||||
|
System.out.println("Balance after interest: " + updatedBalance);
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,38 @@
|
|||||||
|
package accounts;
|
||||||
|
|
||||||
|
public class Account {
|
||||||
|
|
||||||
|
private int accountNumber;
|
||||||
|
private String customerName;
|
||||||
|
private double balance;
|
||||||
|
|
||||||
|
public Account(int accountNumber, String customerName, double balance) {
|
||||||
|
this.accountNumber = accountNumber;
|
||||||
|
this.customerName = customerName;
|
||||||
|
this.balance = balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deposit(double amount) {
|
||||||
|
balance += amount;
|
||||||
|
System.out.println("Amount deposited: " + amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void withdraw(double amount) {
|
||||||
|
if (amount <= balance) {
|
||||||
|
balance -= amount;
|
||||||
|
System.out.println("Amount withdrawn: " + amount);
|
||||||
|
} else {
|
||||||
|
System.out.println("Insufficient balance!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getBalance() {
|
||||||
|
return balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayAccountDetails() {
|
||||||
|
System.out.println("Account Number: " + accountNumber);
|
||||||
|
System.out.println("Customer Name: " + customerName);
|
||||||
|
System.out.println("Balance: " + balance);
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
|||||||
|
package services;
|
||||||
|
|
||||||
|
public class Interest {
|
||||||
|
|
||||||
|
private static final double RATE = 0.05; // 5% interest
|
||||||
|
|
||||||
|
public double applyInterest(double balance) {
|
||||||
|
return balance + (balance * RATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,67 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
// -------- User-defined exception: TooOlder --------
|
||||||
|
class TooOlder extends Exception {
|
||||||
|
|
||||||
|
public TooOlder(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- User-defined exception: TooYounger --------
|
||||||
|
class TooYounger extends Exception {
|
||||||
|
|
||||||
|
public TooYounger(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Employee class --------
|
||||||
|
class Employee {
|
||||||
|
|
||||||
|
String name;
|
||||||
|
int age;
|
||||||
|
|
||||||
|
Employee(String name, int age) {
|
||||||
|
this.name = name;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method to validate age eligibility
|
||||||
|
void validateAge() throws TooOlder, TooYounger {
|
||||||
|
if (age > 45) {
|
||||||
|
throw new TooOlder("Candidate is too old for recruitment");
|
||||||
|
} else if (age < 18) {
|
||||||
|
throw new TooYounger("Candidate is too young for recruitment");
|
||||||
|
} else {
|
||||||
|
System.out.println("Eligible");
|
||||||
|
System.out.println("Candidate Name: " + name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Main class --------
|
||||||
|
public class EmployeeRecruitment {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter Candidate Name: ");
|
||||||
|
String name = sc.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Enter Candidate Age: ");
|
||||||
|
int age = sc.nextInt();
|
||||||
|
|
||||||
|
Employee emp = new Employee(name, age);
|
||||||
|
|
||||||
|
try {
|
||||||
|
emp.validateAge();
|
||||||
|
} catch (TooOlder e) {
|
||||||
|
System.out.println("Exception: " + e.getMessage());
|
||||||
|
} catch (TooYounger e) {
|
||||||
|
System.out.println("Exception: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,134 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
// ---------- SUPER CLASS ----------
|
||||||
|
class Car {
|
||||||
|
|
||||||
|
int speed;
|
||||||
|
double regularPrice;
|
||||||
|
String color;
|
||||||
|
|
||||||
|
Car(int speed, double regularPrice, String color) {
|
||||||
|
this.speed = speed;
|
||||||
|
this.regularPrice = regularPrice;
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
double getSalePrice() {
|
||||||
|
return regularPrice;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- SUB CLASS : TRUCK ----------
|
||||||
|
class Truck extends Car {
|
||||||
|
|
||||||
|
int weight;
|
||||||
|
|
||||||
|
Truck(int speed, double regularPrice, String color, int weight) {
|
||||||
|
super(speed, regularPrice, color);
|
||||||
|
this.weight = weight;
|
||||||
|
}
|
||||||
|
|
||||||
|
double getSalePrice() {
|
||||||
|
if (weight > 2000) return regularPrice * 0.90;
|
||||||
|
// 10% discount
|
||||||
|
else return regularPrice * 0.80; // 20% discount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- SUB CLASS : FORD ----------
|
||||||
|
class Ford extends Car {
|
||||||
|
|
||||||
|
int year;
|
||||||
|
int manufacturerDiscount;
|
||||||
|
|
||||||
|
Ford(
|
||||||
|
int speed,
|
||||||
|
double regularPrice,
|
||||||
|
String color,
|
||||||
|
int year,
|
||||||
|
int manufacturerDiscount
|
||||||
|
) {
|
||||||
|
super(speed, regularPrice, color);
|
||||||
|
this.year = year;
|
||||||
|
this.manufacturerDiscount = manufacturerDiscount;
|
||||||
|
}
|
||||||
|
|
||||||
|
double getSalePrice() {
|
||||||
|
return super.getSalePrice() - manufacturerDiscount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- SUB CLASS : SEDAN ----------
|
||||||
|
class Sedan extends Car {
|
||||||
|
|
||||||
|
int length;
|
||||||
|
|
||||||
|
Sedan(int speed, double regularPrice, String color, int length) {
|
||||||
|
super(speed, regularPrice, color);
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
double getSalePrice() {
|
||||||
|
if (length > 20) return regularPrice * 0.95;
|
||||||
|
// 5% discount
|
||||||
|
else return regularPrice * 0.90; // 10% discount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- MAIN CLASS ----------
|
||||||
|
public class MyOwnAutoShop {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
// ---- Sedan Object ----
|
||||||
|
System.out.println("Enter Sedan details:");
|
||||||
|
System.out.print("Speed: ");
|
||||||
|
int sSpeed = sc.nextInt();
|
||||||
|
System.out.print("Regular Price: ");
|
||||||
|
double sPrice = sc.nextDouble();
|
||||||
|
sc.nextLine();
|
||||||
|
System.out.print("Color: ");
|
||||||
|
String sColor = sc.nextLine();
|
||||||
|
System.out.print("Length: ");
|
||||||
|
int sLength = sc.nextInt();
|
||||||
|
|
||||||
|
Sedan sedan = new Sedan(sSpeed, sPrice, sColor, sLength);
|
||||||
|
|
||||||
|
// ---- Ford Object ----
|
||||||
|
System.out.println("\nEnter Ford details:");
|
||||||
|
System.out.print("Speed: ");
|
||||||
|
int fSpeed = sc.nextInt();
|
||||||
|
System.out.print("Regular Price: ");
|
||||||
|
double fPrice = sc.nextDouble();
|
||||||
|
sc.nextLine();
|
||||||
|
System.out.print("Color: ");
|
||||||
|
String fColor = sc.nextLine();
|
||||||
|
System.out.print("Year: ");
|
||||||
|
int fYear = sc.nextInt();
|
||||||
|
System.out.print("Manufacturer Discount: ");
|
||||||
|
int fDiscount = sc.nextInt();
|
||||||
|
|
||||||
|
Ford ford = new Ford(fSpeed, fPrice, fColor, fYear, fDiscount);
|
||||||
|
|
||||||
|
// ---- Car Object ----
|
||||||
|
System.out.println("\nEnter Car details:");
|
||||||
|
System.out.print("Speed: ");
|
||||||
|
int cSpeed = sc.nextInt();
|
||||||
|
System.out.print("Regular Price: ");
|
||||||
|
double cPrice = sc.nextDouble();
|
||||||
|
sc.nextLine();
|
||||||
|
System.out.print("Color: ");
|
||||||
|
String cColor = sc.nextLine();
|
||||||
|
|
||||||
|
Car car = new Car(cSpeed, cPrice, cColor);
|
||||||
|
|
||||||
|
// ---- Display Sale Prices ----
|
||||||
|
System.out.println("\n--- Sale Prices ---");
|
||||||
|
System.out.println("Sedan Sale Price: " + sedan.getSalePrice());
|
||||||
|
System.out.println("Ford Sale Price: " + ford.getSalePrice());
|
||||||
|
System.out.println("Car Sale Price: " + car.getSalePrice());
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,94 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
// -------- BASE CLASS --------
|
||||||
|
class Payment {
|
||||||
|
|
||||||
|
double amount;
|
||||||
|
|
||||||
|
Payment(double amount) {
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
double processPayment() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- SUB CLASS : CREDIT CARD --------
|
||||||
|
class CreditCardPayment extends Payment {
|
||||||
|
|
||||||
|
CreditCardPayment(double amount) {
|
||||||
|
super(amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
double processPayment() {
|
||||||
|
return amount + (amount * 0.02); // 2% service charge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- SUB CLASS : UPI --------
|
||||||
|
class UPIPayment extends Payment {
|
||||||
|
|
||||||
|
UPIPayment(double amount) {
|
||||||
|
super(amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
double processPayment() {
|
||||||
|
return amount + 5; // Flat ₹5 charge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- SUB CLASS : NET BANKING --------
|
||||||
|
class NetBankingPayment extends Payment {
|
||||||
|
|
||||||
|
NetBankingPayment(double amount) {
|
||||||
|
super(amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
double processPayment() {
|
||||||
|
return amount + (amount * 0.015); // 1.5% service charge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- MAIN CLASS --------
|
||||||
|
public class OnlinePaymentSystem {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter payment amount: ");
|
||||||
|
double amount = sc.nextDouble();
|
||||||
|
|
||||||
|
System.out.println("\nChoose Payment Method:");
|
||||||
|
System.out.println("1. Credit Card");
|
||||||
|
System.out.println("2. UPI");
|
||||||
|
System.out.println("3. Net Banking");
|
||||||
|
System.out.print("Enter choice: ");
|
||||||
|
int choice = sc.nextInt();
|
||||||
|
|
||||||
|
Payment payment; // Base class reference
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1:
|
||||||
|
payment = new CreditCardPayment(amount);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
payment = new UPIPayment(amount);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
payment = new NetBankingPayment(amount);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println("Invalid choice");
|
||||||
|
sc.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dynamic method dispatch
|
||||||
|
double finalAmount = payment.processPayment();
|
||||||
|
|
||||||
|
System.out.println("\nFinal Payable Amount: ₹" + finalAmount);
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,97 @@
|
|||||||
|
// -------- Shared Buffer Class --------
|
||||||
|
class Buffer {
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
private boolean hasValue = false;
|
||||||
|
|
||||||
|
// Producer puts value
|
||||||
|
synchronized void put(int value) {
|
||||||
|
while (hasValue) {
|
||||||
|
try {
|
||||||
|
wait(); // wait if buffer is full
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.value = value;
|
||||||
|
hasValue = true;
|
||||||
|
System.out.println("Produced: " + value);
|
||||||
|
|
||||||
|
notify(); // notify consumer
|
||||||
|
}
|
||||||
|
|
||||||
|
// Consumer gets value
|
||||||
|
synchronized int get() {
|
||||||
|
while (!hasValue) {
|
||||||
|
try {
|
||||||
|
wait(); // wait if buffer is empty
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Consumed: " + value);
|
||||||
|
hasValue = false;
|
||||||
|
|
||||||
|
notify(); // notify producer
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Producer Thread --------
|
||||||
|
class Producer extends Thread {
|
||||||
|
|
||||||
|
Buffer buffer;
|
||||||
|
|
||||||
|
Producer(Buffer buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
int i = 1;
|
||||||
|
while (true) {
|
||||||
|
buffer.put(i++);
|
||||||
|
try {
|
||||||
|
Thread.sleep(500);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Consumer Thread --------
|
||||||
|
class Consumer extends Thread {
|
||||||
|
|
||||||
|
Buffer buffer;
|
||||||
|
|
||||||
|
Consumer(Buffer buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
while (true) {
|
||||||
|
buffer.get();
|
||||||
|
try {
|
||||||
|
Thread.sleep(500);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Main Class --------
|
||||||
|
public class ProducerConsumerDemo {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Buffer buffer = new Buffer();
|
||||||
|
|
||||||
|
Producer producer = new Producer(buffer);
|
||||||
|
Consumer consumer = new Consumer(buffer);
|
||||||
|
|
||||||
|
producer.start();
|
||||||
|
consumer.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+107
@@ -0,0 +1,107 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
// -------- Interface for Circle --------
|
||||||
|
interface CircleOps {
|
||||||
|
double circleArea();
|
||||||
|
double circlePerimeter();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Interface for Rectangle --------
|
||||||
|
interface RectangleOps {
|
||||||
|
double rectangleArea();
|
||||||
|
double rectanglePerimeter();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Interface inheriting both --------
|
||||||
|
interface ShapeOps extends CircleOps, RectangleOps {
|
||||||
|
void displaySummary();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Base class --------
|
||||||
|
class ShapeBase {
|
||||||
|
|
||||||
|
double radius;
|
||||||
|
double length;
|
||||||
|
double breadth;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Implementing class --------
|
||||||
|
class ShapeCalculator extends ShapeBase implements ShapeOps {
|
||||||
|
|
||||||
|
ShapeCalculator(double radius, double length, double breadth) {
|
||||||
|
this.radius = radius;
|
||||||
|
this.length = length;
|
||||||
|
this.breadth = breadth;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Circle operations
|
||||||
|
public double circleArea() {
|
||||||
|
return Math.PI * radius * radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double circlePerimeter() {
|
||||||
|
return 2 * Math.PI * radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rectangle operations
|
||||||
|
public double rectangleArea() {
|
||||||
|
return length * breadth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double rectanglePerimeter() {
|
||||||
|
return 2 * (length + breadth);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Summary method
|
||||||
|
public void displaySummary() {
|
||||||
|
System.out.println("\n--- Shape Summary ---");
|
||||||
|
System.out.println("Circle Area: " + circleArea());
|
||||||
|
System.out.println("Circle Perimeter: " + circlePerimeter());
|
||||||
|
System.out.println("Rectangle Area: " + rectangleArea());
|
||||||
|
System.out.println("Rectangle Perimeter: " + rectanglePerimeter());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Demo class --------
|
||||||
|
public class ShapesDemo {
|
||||||
|
|
||||||
|
// Method accepting CircleOps
|
||||||
|
static void circleOperations(CircleOps c) {
|
||||||
|
System.out.println("\nCircle Area: " + c.circleArea());
|
||||||
|
System.out.println("Circle Perimeter: " + c.circlePerimeter());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method accepting RectangleOps
|
||||||
|
static void rectangleOperations(RectangleOps r) {
|
||||||
|
System.out.println("\nRectangle Area: " + r.rectangleArea());
|
||||||
|
System.out.println("Rectangle Perimeter: " + r.rectanglePerimeter());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method accepting ShapeOps
|
||||||
|
static void shapeOperations(ShapeOps s) {
|
||||||
|
s.displaySummary();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Main method --------
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter radius of circle: ");
|
||||||
|
double radius = sc.nextDouble();
|
||||||
|
|
||||||
|
System.out.print("Enter length of rectangle: ");
|
||||||
|
double length = sc.nextDouble();
|
||||||
|
|
||||||
|
System.out.print("Enter breadth of rectangle: ");
|
||||||
|
double breadth = sc.nextDouble();
|
||||||
|
|
||||||
|
ShapeCalculator shape = new ShapeCalculator(radius, length, breadth);
|
||||||
|
|
||||||
|
// Polymorphism using interface references
|
||||||
|
circleOperations(shape);
|
||||||
|
rectangleOperations(shape);
|
||||||
|
shapeOperations(shape);
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,121 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
// -------- Helper Class --------
|
||||||
|
class TextHelper {
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
private String keyword;
|
||||||
|
|
||||||
|
TextHelper(String text, String keyword) {
|
||||||
|
this.text = text;
|
||||||
|
this.keyword = keyword;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. View character at a position
|
||||||
|
void viewCharacter(int position) {
|
||||||
|
if (position >= 0 && position < text.length()) {
|
||||||
|
System.out.println(
|
||||||
|
"Character at position " +
|
||||||
|
position +
|
||||||
|
": " +
|
||||||
|
text.charAt(position)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
System.out.println("Invalid position!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Compare text and keyword
|
||||||
|
void compareText() {
|
||||||
|
int result = text.compareTo(keyword);
|
||||||
|
|
||||||
|
if (result == 0) System.out.println("Text and keyword are equal.");
|
||||||
|
else if (result < 0) System.out.println(
|
||||||
|
"Text comes before keyword alphabetically."
|
||||||
|
);
|
||||||
|
else System.out.println("Keyword comes before text alphabetically.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Search & replace keyword
|
||||||
|
void searchAndReplace(String replacement) {
|
||||||
|
int index = text.indexOf(keyword);
|
||||||
|
|
||||||
|
if (index == -1) {
|
||||||
|
System.out.println("Keyword not found in text.");
|
||||||
|
} else {
|
||||||
|
System.out.println("Keyword first found at position: " + index);
|
||||||
|
text = text.replace(keyword, replacement);
|
||||||
|
System.out.println("Updated Text: " + text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. Extract substring
|
||||||
|
void extractPortion(int start, int end) {
|
||||||
|
if (start >= 0 && end <= text.length() && start < end) {
|
||||||
|
System.out.println("Extracted Text: " + text.substring(start, end));
|
||||||
|
} else {
|
||||||
|
System.out.println("Invalid start or end position!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Main Class --------
|
||||||
|
public class TextProcessingHelper {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter main text: ");
|
||||||
|
String text = sc.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Enter keyword: ");
|
||||||
|
String keyword = sc.nextLine();
|
||||||
|
|
||||||
|
TextHelper helper = new TextHelper(text, keyword);
|
||||||
|
|
||||||
|
int choice;
|
||||||
|
|
||||||
|
do {
|
||||||
|
System.out.println("\n--- Text Processing Menu ---");
|
||||||
|
System.out.println("1. View character at a position");
|
||||||
|
System.out.println("2. Compare text and keyword");
|
||||||
|
System.out.println("3. Search and replace keyword");
|
||||||
|
System.out.println("4. Extract portion of text");
|
||||||
|
System.out.println("5. Exit");
|
||||||
|
System.out.print("Enter your choice: ");
|
||||||
|
|
||||||
|
choice = sc.nextInt();
|
||||||
|
sc.nextLine(); // consume newline
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1:
|
||||||
|
System.out.print("Enter position: ");
|
||||||
|
int pos = sc.nextInt();
|
||||||
|
helper.viewCharacter(pos);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
helper.compareText();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
System.out.print("Enter replacement word: ");
|
||||||
|
String replacement = sc.nextLine();
|
||||||
|
helper.searchAndReplace(replacement);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
System.out.print("Enter start position: ");
|
||||||
|
int start = sc.nextInt();
|
||||||
|
System.out.print("Enter end position: ");
|
||||||
|
int end = sc.nextInt();
|
||||||
|
helper.extractPortion(start, end);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
System.out.println("Exiting program...");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println("Invalid choice!");
|
||||||
|
}
|
||||||
|
} while (choice != 5);
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,65 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
class Student {
|
||||||
|
|
||||||
|
private int m1, m2, m3;
|
||||||
|
|
||||||
|
// Static counter to track enrolled students
|
||||||
|
static int studentCount = 0;
|
||||||
|
|
||||||
|
// Static block to display welcome message
|
||||||
|
static {
|
||||||
|
System.out.println("Welcome to University Enrollment System");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
Student(int m1, int m2, int m3) {
|
||||||
|
this.m1 = m1;
|
||||||
|
this.m2 = m2;
|
||||||
|
this.m3 = m3;
|
||||||
|
studentCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Non-static method to compute average of best two marks
|
||||||
|
void displayAverage() {
|
||||||
|
int bestTwoSum = m1 + m2 + m3 - Math.min(m1, Math.min(m2, m3));
|
||||||
|
double average = bestTwoSum / 2.0;
|
||||||
|
System.out.println("Average of best two marks: " + average);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static method to display total enrolled students
|
||||||
|
static void displayTotalStudents() {
|
||||||
|
System.out.println("Total students enrolled: " + studentCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UniversityEnrollment {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.print("Enter number of students to enroll: ");
|
||||||
|
int n = sc.nextInt();
|
||||||
|
|
||||||
|
for (int i = 1; i <= n; i++) {
|
||||||
|
System.out.println("\nEnter marks for Student " + i);
|
||||||
|
|
||||||
|
System.out.print("Mark 1: ");
|
||||||
|
int m1 = sc.nextInt();
|
||||||
|
|
||||||
|
System.out.print("Mark 2: ");
|
||||||
|
int m2 = sc.nextInt();
|
||||||
|
|
||||||
|
System.out.print("Mark 3: ");
|
||||||
|
int m3 = sc.nextInt();
|
||||||
|
|
||||||
|
Student s = new Student(m1, m2, m3);
|
||||||
|
s.displayAverage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display total enrolled students
|
||||||
|
Student.displayTotalStudents();
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,53 @@
|
|||||||
|
class MyPoint {
|
||||||
|
|
||||||
|
private int x;
|
||||||
|
private int y;
|
||||||
|
|
||||||
|
// No-argument constructor
|
||||||
|
MyPoint() {
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overloaded constructor
|
||||||
|
MyPoint(int x, int y) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set both x and y
|
||||||
|
void setXY(int x, int y) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return x and y as a 2-element array
|
||||||
|
int[] getXY() {
|
||||||
|
return new int[] { x, y };
|
||||||
|
}
|
||||||
|
|
||||||
|
// String representation
|
||||||
|
public String toString() {
|
||||||
|
return "(" + x + ", " + y + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distance to given (x, y)
|
||||||
|
double distance(int x, int y) {
|
||||||
|
return Math.sqrt(
|
||||||
|
(this.x - x) * (this.x - x) + (this.y - y) * (this.y - y)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distance to another MyPoint object
|
||||||
|
double distance(MyPoint another) {
|
||||||
|
return Math.sqrt(
|
||||||
|
(this.x - another.x) * (this.x - another.x) +
|
||||||
|
(this.y - another.y) * (this.y - another.y)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distance to origin (0, 0)
|
||||||
|
double distance() {
|
||||||
|
return Math.sqrt(x * x + y * y);
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,57 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class TestMyPoint {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
// Test default constructor
|
||||||
|
MyPoint p1 = new MyPoint();
|
||||||
|
System.out.println("p1: " + p1);
|
||||||
|
|
||||||
|
// Test overloaded constructor
|
||||||
|
System.out.print("Enter x coordinate: ");
|
||||||
|
int x = sc.nextInt();
|
||||||
|
System.out.print("Enter y coordinate: ");
|
||||||
|
int y = sc.nextInt();
|
||||||
|
|
||||||
|
MyPoint p2 = new MyPoint(x, y);
|
||||||
|
System.out.println("p2: " + p2);
|
||||||
|
|
||||||
|
// Test setXY()
|
||||||
|
System.out.print("Enter new x for p1: ");
|
||||||
|
int x1 = sc.nextInt();
|
||||||
|
System.out.print("Enter new y for p1: ");
|
||||||
|
int y1 = sc.nextInt();
|
||||||
|
|
||||||
|
p1.setXY(x1, y1);
|
||||||
|
System.out.println("Updated p1: " + p1);
|
||||||
|
|
||||||
|
// Test getXY()
|
||||||
|
int[] coords = p1.getXY();
|
||||||
|
System.out.println("getXY(): (" + coords[0] + ", " + coords[1] + ")");
|
||||||
|
|
||||||
|
// Test distance() to origin
|
||||||
|
System.out.println("Distance from p1 to origin: " + p1.distance());
|
||||||
|
|
||||||
|
// Test distance(int x, int y)
|
||||||
|
System.out.print("Enter x of another point: ");
|
||||||
|
int x2 = sc.nextInt();
|
||||||
|
System.out.print("Enter y of another point: ");
|
||||||
|
int y2 = sc.nextInt();
|
||||||
|
|
||||||
|
System.out.println(
|
||||||
|
"Distance from p1 to (" +
|
||||||
|
x2 +
|
||||||
|
", " +
|
||||||
|
y2 +
|
||||||
|
"): " +
|
||||||
|
p1.distance(x2, y2)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Test distance(MyPoint another)
|
||||||
|
System.out.println("Distance from p1 to p2: " + p1.distance(p2));
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user