popcorn hac 1

// work by adi katre

public class Dog {
    private String name;

    public Dog(String name) {
        this.name = name;
    }

    private String breed;

    public void Bred(String breed) {
        System.out.println("My dog " + name + " is a " + breed);
    }
}

// Create an instance of Dog and call the Bred method

Dog myDog = new Dog("Bud");
myDog.Bred("mut");
My dog Bud is a mut

popon hack 2

public class Counter {
    private int count;
    public void add(int x) {
        count += x;
    }
    public int getCount() {
        return count;
    }

    public void subtract(int x) {
        count += x;
    }
    public void divide(int x) {
        count = count / x;
    }
    public void multiply(int x) {
        count = count * x;
    }
}

// Use it:
Counter c = new Counter();
c.add(5);
c.add(1);
c.subtract(-1);
c.divide(2);
c.multiply(3);
int val = c.getCount();
System.out.println(val);
6

heoework hack

/**
 * Student Grade Tracker System
 * 
 * This program demonstrates the use of instance methods, constructors,
 * and object-oriented design by managing students' grades and generating
 * detailed reports. It also includes bonus features such as highest/lowest
 * grade tracking and grade comparison.
 */

import java.util.ArrayList;

public class StudentGradeTracker {

    public static void main(String[] args) {
        System.out.println("=== Student Grade Tracker System ===\n");

        // ----- Create Student 1 -----
        System.out.println("Creating student: Emma Rodriguez");
        Student emma = new Student("Emma Rodriguez");
        System.out.println("Student created successfully!\n");

        System.out.println("--- Adding Grades for Emma ---");
        emma.addGrade(95);
        emma.addGrade(88);
        emma.addGrade(92);
        emma.addGrade(85);

        System.out.println("\n--- Emma's Grade Report ---");
        emma.printReport();

        System.out.println("========================================\n");

        // ----- Create Student 2 -----
        System.out.println("Creating student: James Wilson");
        Student james = new Student("James Wilson");
        System.out.println("Student created successfully!\n");

        System.out.println("--- Adding Grades for James ---");
        james.addGrade(78);
        james.addGrade(82);
        james.addGrade(75);

        System.out.println("\n--- James's Grade Report ---");
        james.printReport();

        System.out.println("========================================\n");

        // Final summary
        System.out.println("Final Summary:");
        System.out.printf("%s - Average: %.2f (%s)%n", emma.getName(), emma.getAverage(), emma.getLetterGrade());
        System.out.printf("%s - Average: %.2f (%s)%n", james.getName(), james.getAverage(), james.getLetterGrade());

        System.out.println("\n=== BONUS CHALLENGES DEMONSTRATION ===");
        System.out.println(emma.getName() + "'s Highest Grade: " + emma.getHighestGrade());
        System.out.println(emma.getName() + "'s Lowest Grade: " + emma.getLowestGrade());

        // Compare averages
        int comparison = emma.compareTo(james);
        if (comparison > 0)
            System.out.println(emma.getName() + " has a higher average than " + james.getName());
        else if (comparison < 0)
            System.out.println(james.getName() + " has a higher average than " + emma.getName());
        else
            System.out.println("Both students have the same average!");

        // Demonstrate dropping the lowest grade
        System.out.println("\nDropping " + emma.getName() + "'s lowest grade...");
        emma.dropLowestGrade();
        emma.printReport();

        // Reset James' grades
        System.out.println("\nResetting " + james.getName() + "'s record...");
        james.reset();
        james.printReport();
    }
}

/**
 * The Student class represents a student with a name, total points, and
 * number of assignments. It tracks grades, calculates averages, assigns
 * letter grades, and can produce a formatted report.
 */
class Student {
    // Instance variables
    private String name;
    private int totalPoints;
    private int numAssignments;
    private ArrayList<Integer> grades;  // for bonus methods

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

    // ---- Required Void Method ----
    public void addGrade(int points) {
        if (points < 0 || points > 100) {
            System.out.println("Invalid grade: " + points + ". Skipped.");
            return;
        }
        grades.add(points);
        totalPoints += points;
        numAssignments++;
        System.out.println("Adding grade: " + points + " points");
    }

    // ---- Required Non-Void Method ----
    public double getAverage() {
        if (numAssignments == 0) return 0.0;
        return (double) totalPoints / numAssignments;
    }

    // ---- Required Non-Void Method ----
    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";
    }

    // ---- Required Void Method ----
    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());

        // Status message based on grade
        switch (getLetterGrade()) {
            case "A":
                System.out.println("Status: Excellent work!");
                break;
            case "B":
                System.out.println("Status: Great job!");
                break;
            case "C":
                System.out.println("Status: Keep working hard!");
                break;
            case "D":
                System.out.println("Status: Needs improvement.");
                break;
            default:
                System.out.println("Status: At risk — please seek help.");
        }
    }

    // ---- BONUS METHODS ----

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

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

    public void dropLowestGrade() {
        if (grades.isEmpty()) {
            System.out.println("No grades to drop!");
            return;
        }
        int lowest = getLowestGrade();
        grades.remove(Integer.valueOf(lowest));
        totalPoints -= lowest;
        numAssignments--;
        System.out.println("Dropped lowest grade: " + lowest);
    }

    public int compareTo(Student other) {
        return Double.compare(this.getAverage(), other.getAverage());
    }

    public void reset() {
        grades.clear();
        totalPoints = 0;
        numAssignments = 0;
        System.out.println("All grades cleared for " + name);
    }

    // Getter for name (for reporting)
    public String getName() {
        return name;
    }
}


StudentGradeTracker.main(null);
=== Student Grade Tracker System ===

Creating student: Emma Rodriguez
Student created successfully!

--- Adding Grades for Emma ---
Adding grade: 95 points
Adding grade: 88 points
Adding grade: 92 points
Adding grade: 85 points

--- Emma's Grade Report ---
Student Name: Emma Rodriguez
Total Points: 360
Assignments Completed: 4
Current Average: 90.00
Letter Grade: A
Status: Excellent work!
========================================

Creating student: James Wilson
Student created successfully!

--- Adding Grades for James ---
Adding grade: 78 points
Adding grade: 82 points
Adding grade: 75 points

--- James's Grade Report ---
Student Name: James Wilson
Total Points: 235
Assignments Completed: 3
Current Average: 78.33
Letter Grade: C
Status: Keep working hard!
========================================

Final Summary:
Emma Rodriguez - Average: 90.00 (A)
James Wilson - Average: 78.33 (C)

=== BONUS CHALLENGES DEMONSTRATION ===
Emma Rodriguez's Highest Grade: 95
Emma Rodriguez's Lowest Grade: 85
Emma Rodriguez has a higher average than James Wilson

Dropping Emma Rodriguez's lowest grade...
Dropped lowest grade: 85
Student Name: Emma Rodriguez
Total Points: 275
Assignments Completed: 3
Current Average: 91.67
Letter Grade: A
Status: Excellent work!

Resetting James Wilson's record...
All grades cleared for James Wilson
Student Name: James Wilson
Total Points: 0
Assignments Completed: 0
Current Average: 0.00
Letter Grade: F
Status: At risk — please seek help.