PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
ADDITIONAL PROGRAMS
EX 1 CALCULATE AVERAGE AND ATTENDANCE
PERCENTAGE OF STUDENTS
PROGRAM :
import java.util.Scanner;
class Student {
private String studentId;
private String name;
private String branch;
private int year;
private String location;
private String college;
private int[] marks; // Array to store marks of 6 subjects
private int totalClasses; // Total classes held
private int classesAttended; // Total classes attended
// Constructor to initialize student details
public Student(String studentId, String name, String branch, int year, String location, String college)
{
this.studentId = studentId;
this.name = name;
this.branch = branch;
this.year = year;
this.location = location;
this.college = college;
this.marks = new int[6]; // Initializing array for 6 subjects
}
// Method to set marks for the subjects
public void setMarks(int[] marks) {
if (marks.length == 6)
{ this.marks = marks;
} else {
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
System.out.println("Please provide marks for exactly 6 subjects.");
}
}
// Method to calculate average of marks
public double calculateAverage() {
int sum = 0;
for (int mark : marks)
{ sum += mark;
}
return (double) sum / marks.length;
}
// Method to set attendance details
public void setAttendance(int totalClasses, int classesAttended)
{ this.totalClasses = totalClasses;
this.classesAttended = classesAttended;
}
// Method to calculate attendance percentage
public double calculateAttendancePercentage() {
if (totalClasses == 0) return 0.0; // Avoid division by zero
return ((double) classesAttended / totalClasses) * 100;
}
// Method to display student details
public void displayDetails() {
System.out.println("Student ID: " + studentId);
System.out.println("Name: " + name);
System.out.println("Branch: " + branch);
System.out.println("Year: " + year);
System.out.println("Location: " + location);
System.out.println("College: " + college);
System.out.println("Average Marks: " + calculateAverage());
System.out.println("Attendance Percentage: " + calculateAttendancePercentage() + "%");
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
public class StudentDetails {
public static void main(String[] args)
{ Scanner scanner = new
Scanner(System.in);
// Create a Student object with initial values
Student student = new Student("S123", "John Doe", "Computer Science", 2, "New York", "XYZ
University");
// Input marks for 6 subjects
System.out.println("Enter marks for 6 subjects:");
int[] marks = new int[6];
for (int i = 0; i < 6; i++)
{ System.out.print("Subject " + (i + 1) + ":
"); marks[i] = scanner.nextInt();
}
student.setMarks(marks);
// Input attendance details
System.out.print("Enter total classes held: ");
int totalClasses = scanner.nextInt();
System.out.print("Enter total classes attended: ");
int classesAttended = scanner.nextInt();
student.setAttendance(totalClasses, classesAttended);
// Display student details
student.displayDetails();
scanner.close();
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
OUTPUT:
RESULT:
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
EX 2 SIMPLE TEST APPLICATION DEMONSTRATING
DYNAMIC POLYMORPHISM
PROGRAM:
// Base class
abstract class Shape
{ abstract double area();
abstract void draw();
}
// Rectangle class
class Rectangle extends Shape
{ private double width;
private double height;
public Rectangle(double width, double height)
{ this.width = width;
this.height = height;
}
@Override
double area() {
return width * height;
}
@Override
void draw() {
System.out.println("Drawing a Rectangle");
}
}
// Square class
class Square extends Rectangle
{ public Square(double side) {
super(side, side);
}
@Override
void draw() {
System.out.println("Drawing a Square");
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
// Circle class
class Circle extends Shape {
private double radius;
public Circle(double radius)
{ this.radius = radius;
}
@Override
double area() {
return Math.PI * radius * radius;
}
@Override
void draw() {
System.out.println("Drawing a Circle");
}
}
// Ellipse class
class Ellipse extends Shape
{ private double
semiMajorAxis; private double
semiMinorAxis;
public Ellipse(double semiMajorAxis, double semiMinorAxis)
{ this.semiMajorAxis = semiMajorAxis;
this.semiMinorAxis = semiMinorAxis;
}
@Override
double area() {
return Math.PI * semiMajorAxis * semiMinorAxis;
}
@Override
void draw() {
System.out.println("Drawing an Ellipse");
}
}
// Triangle class
class Triangle extends Shape
{ private double base;
private double height;
public Triangle(double base, double height)
{ this.base = base;
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
this.height = height;
}
@Override
double area() {
return 0.5 * base * height;
}
@Override
void draw() {
System.out.println("Drawing a Triangle");
}
}
// Polygon class
class Polygon extends Shape
{ private double[] sides;
public Polygon(double[] sides)
{ this.sides = sides;
}
@Override
double area() {
return 0.0; // Area calculation can be complex for general polygons
}
@Override
void draw() {
System.out.println("Drawing a Polygon");
}
}
// Test application
public class ShapeTest
{
public static void main(String[] args)
{ Shape[] shapes = new Shape[6];
shapes[0] = new Rectangle(5, 10);
shapes[1] = new Square(4);
shapes[2] = new Circle(3);
shapes[3] = new Ellipse(5, 3);
shapes[4] = new Triangle(6, 8);
shapes[5] = new Polygon(new double[]{3, 4, 5, 6});
// Demonstrating dynamic polymorphism
for (Shape shape : shapes) {
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
System.out.println("Area: " + shape.area());
shape.draw();
}
}
}
OUTPUT:
RESULT:
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
EX 3 CREATING THREADS
PROGRAM:
class MessageThread extends Thread {
private String message;
private int interval;
public MessageThread(String message, int interval) {
this.message = message;
this.interval = interval;
}
@Override
public void run() {
while (true) {
System.out.println(message);
try {
Thread.sleep(interval);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
break;
}
}
}
}
public class MultiThreadExample {
public static void main(String[] args) {
Thread thread1 = new MessageThread("Good Morning", 1000); // 1 second
Thread thread2 = new MessageThread("Hello", 2000); // 2 seconds
Thread thread3 = new MessageThread("Welcome", 3000); // 3 seconds
// Start the threads
thread1.start();
thread2.start();
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
thread3.start();
// Optional: Join threads to main thread (if you want to wait for them to finish)
// In this case, they run indefinitely, so this is commented out.
// try {
// thread1.join();
// thread2.join();
// thread3.join();
// } catch (InterruptedException e) {
// Thread.currentThread().interrupt();
// }
}
}
OUTPUT:
RESULT:
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
EX 4 FINDING FACTORIAL OF A NUMBER
PROGRAM:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FactorialCalculator extends JFrame
{ private JTextField inputField;
private JTextField resultField;
private JButton calculateButton;
public FactorialCalculator() {
// Set up the frame
setTitle("Factorial Calculator");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
// Input field
JLabel inputLabel = new JLabel("Enter a number:");
inputLabel.setBounds(10, 10, 120, 25);
add(inputLabel);
inputField = new JTextField();
inputField.setBounds(140, 10, 100, 25);
add(inputField);
// Calculate button
calculateButton = new JButton("Calculate Factorial");
calculateButton.setBounds(10, 40, 230, 25);
add(calculateButton);
// Result field
JLabel resultLabel = new JLabel("Factorial:");
resultLabel.setBounds(10, 70, 120, 25);
add(resultLabel);
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
resultField = new JTextField();
resultField.setBounds(140, 70, 100, 25);
resultField.setEditable(false); // Make result field non-editable
add(resultField);
// Button action listener
calculateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{ String inputText = inputField.getText();
try {
int number = Integer.parseInt(inputText);
long factorial = calculateFactorial(number);
resultField.setText(Long.toString(factorial));
} catch (NumberFormatException ex)
{ resultField.setText("Invalid input!");
}
}
});
}
// Method to calculate factorial
private long calculateFactorial(int number)
{ long factorial = 1;
for (int i = 1; i <= number; i++)
{ factorial *= i;
}
return factorial;
}
public static void main(String[] args)
{ SwingUtilities.invokeLater(() -> {
FactorialCalculator calculator = new FactorialCalculator();
calculator.setVisible(true);
});
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE REG.NO:211423104697
OUTPUT:
RESULT: