Popcorn Hack 1

// The Dog class which has the breed and method
public class Dog {
    // Declare variables
    String name;
    String breed;

    // Constructor
    Dog(String name, String breed) {
        this.name = name;
        this.breed = breed;
    }

    // Method to print "My dog name is a breed!"
    public void showInfo() {
        System.out.println("My dog " + name + " is a " + breed + "!");
    }
}

// Using the Dog Class:
public class DogDemo {
    public static void main(String[] args) {
        // Create a new Dog object
        Dog myDog = new Dog("Thomas", "Golden Retriever");
        
        // Call the method
        myDog.showInfo();
    }
}

DogDemo.main(null);
My dog Thomas is a Golden Retriever!

Popcorn Hack 2

// Counter class with 5 methods
public class Counter {
    private int count;

    // The Add method
    public void add(int x) {
        count += x;
    }

    // The Subtract method
    public void subtract(int x) {
        count -= x;
    }

    // The Multiply method
    public void multiply(int x) {
        count *= x;
    }

    // The Divide method
    public void divide(int x) {
        if (x != 0) {
            count /= x;
        } else {
            System.out.println("Cannot divide by zero!");
        }
    }

    // Get current count
    public int getCount() {
        return count;
    }
}

// Using Counter class:
public class CounterDemo {
    public static void main(String[] args) {
        Counter c = new Counter();

        c.add(10);
        System.out.println("After add: " + c.getCount());

        c.subtract(3);
        System.out.println("After subtract: " + c.getCount());

        c.multiply(4);
        System.out.println("After multiply: " + c.getCount());

        c.divide(2);
        System.out.println("After divide: " + c.getCount());

        c.add(5);
        System.out.println("After add again: " + c.getCount());
    }
}
CounterDemo.main(null);
After add: 10
After subtract: 7
After multiply: 28
After divide: 14
After add again: 19

MCQ Questions

  1. B
  2. C
  3. B
  4. D
  5. D

Homework

import java.util.ArrayList;

public class StudentGradeTracker {
    public static void main(String[] args) {
        // Create students
        Student ahaan = new Student("Ahaan Vaidyanathan");
        ahaan.addGrade(95);
        ahaan.addGrade(88);
        ahaan.addGrade(92);
        ahaan.addGrade(85);
        ahaan.printReport();
        System.out.println("========================================");

        Student arnav = new Student("Arnav Mittal");
        arnav.addGrade(78);
        arnav.addGrade(82);
        arnav.addGrade(75);
        arnav.printReport();
        System.out.println("========================================");
    }
}

class Student {
    private String name;
    private int totalPoints;
    private int numAssignments;
    private ArrayList<Integer> grades;

    // Constructor
    Student(String name) {
        this.name = name;
        this.totalPoints = 0;
        this.numAssignments = 0;
        this.grades = new ArrayList<>();
    }

    // Add grade
    public void addGrade(int points) {
        if (points < 0) return;
        grades.add(points);
        totalPoints += points;
        numAssignments++;
    }

    // Average
    public double getAverage() {
        if (numAssignments == 0) return 0.0;
        return (double) totalPoints / numAssignments;
    }

    // Letter grade
    public String getLetterGrade() {
        double avg = getAverage();
        if (avg >= 90) return "A";
        else if (avg >= 80) return "B";
        else if (avg >= 70) return "C";
        else if (avg >= 60) return "D";
        else return "F";
    }

    // Print report
    public void printReport() {
        System.out.println("Student Name: " + name);
        System.out.println("Total Points: " + totalPoints);
        System.out.println("Assignments Completed: " + numAssignments);
        System.out.printf("Current Average: %.2f%n", getAverage());
        System.out.println("Letter Grade: " + getLetterGrade());
    }

    // Highest grade
    public int getHighestGrade() {
        if (grades.isEmpty()) return 0;
        int max = grades.get(0);
        for (int g : grades) if (g > max) max = g;
        return max;
    }

    // Lowest grade
    public int getLowestGrade() {
        if (grades.isEmpty()) return 0;
        int min = grades.get(0);
        for (int g : grades) if (g < min) min = g;
        return min;
    }

    // Drop lowest grade
    public void dropLowestGrade() {
        if (grades.isEmpty()) return;
        int lowest = getLowestGrade();
        grades.remove(Integer.valueOf(lowest));
        totalPoints -= lowest;
        numAssignments--;
    }

    // Reset all grades
    public void reset() {
        totalPoints = 0;
        numAssignments = 0;
        grades.clear();
    }
}

StudentGradeTracker.main(null);
Student Name: Ahaan Vaidyanathan
Total Points: 360
Assignments Completed: 4
Current Average: 90.00
Letter Grade: A
========================================
Student Name: Arnav Mittal
Total Points: 235
Assignments Completed: 3
Current Average: 78.33
Letter Grade: C
========================================