Popcorn Hacks
Popcorn Hack 1
// Work by Nikhil Maturi
public class Dog {
// Properties
String name;
String breed; // Added breed property
// Constructor
public Dog(String name, String breed) {
this.name = name;
this.breed = breed;
}
// Method to print dog's name and breed
public void printDogInfo() {
System.out.println("My dog " + name + " is a " + breed + "!");
}
}
var dog1 = new Dog("Buddy", "Golden Retriever");
dog1.printDogInfo(); // Output: My dog Buddy is a Golden Retriever!
My dog Buddy is a Golden Retriever!
Popcorn Hack 2
// Work by Nikhil Maturi
public class Counter {
private int count;
// Addition
public void add(int x) {
count += x;
}
// Subtraction
public void subtract(int x) {
count -= x;
}
// Multiplication
public void multiply(int x) {
count *= x;
}
// Division
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;
}
}
// Use it:
Counter c = new Counter();
c.add(10); // count = 10
c.subtract(3); // count = 7
c.multiply(4); // count = 28
c.divide(7); // count = 4
c.add(6); // count = 10
c.getCount(); // returns 10
Homework Hacks
import java.text.DecimalFormat;
public class StudentGradeTracker {
// Student class definition
public static class Student {
// Required instance variables
private String name;
private int totalPoints;
private int numAssignments;
// Constructor
public Student(String name) {
this.name = name;
this.totalPoints = 0;
this.numAssignments = 0;
System.out.println("Creating student: " + this.name);
System.out.println("Student created successfully!\n");
}
// Void method that modifies grades: add a normal assignment grade
public void addGrade(int points) {
System.out.println("Adding grade: " + points + " points");
this.totalPoints += points;
this.numAssignments++;
}
// Additional void method that modifies grades (extra credit / bonus)
public void addExtraCredit(int points) {
System.out.println("Adding extra credit: " + points + " points");
this.totalPoints += points;
// note: extra credit does NOT increment numAssignments in this implementation
}
// Void method to display a formatted report
public void printReport() {
DecimalFormat df = new DecimalFormat("#.##"); // up to 2 decimal places
double avg = getAverage();
System.out.println("\n--- " + this.name + "'s Grade Report ---");
System.out.println("Student Name: " + this.name);
System.out.println("Total Points: " + this.totalPoints);
System.out.println("Assignments Completed: " + this.numAssignments);
System.out.println("Current Average: " + df.format(avg));
System.out.println("Letter Grade: " + getLetterGrade());
System.out.println("Status: " + statusMessage());
System.out.println("\n========================================\n");
}
// Non-void method: compute average (double)
public double getAverage() {
if (this.numAssignments == 0) return 0.0;
return (double) this.totalPoints / this.numAssignments;
}
// Non-void method: return letter grade as String
public String getLetterGrade() {
double avg = getAverage();
if (avg >= 90.0) return "A";
else if (avg >= 80.0) return "B";
else if (avg >= 70.0) return "C";
else if (avg >= 60.0) return "D";
else return "F";
}
// Helper: short status message based on letter grade
private String statusMessage() {
String letter = getLetterGrade();
switch (letter) {
case "A": return "Excellent work!";
case "B": return "Good job — keep it up!";
case "C": return "Keep working hard!";
case "D": return "Needs improvement — ask for help!";
default: return "At risk — extra effort recommended!";
}
}
}
// Main demonstration: create students and use all methods
public static void main(String[] args) {
System.out.println("=== Student Grade Tracker System ===\n");
// Student 1: Emma Rodriguez
Student emma = new Student("Emma Rodriguez");
System.out.println("--- Adding Grades for Emma ---");
emma.addGrade(95);
emma.addGrade(88);
emma.addGrade(92);
emma.addGrade(85);
// show an example of extra credit
emma.addExtraCredit(0); // optional; here it has no effect but demonstrates method
emma.printReport();
// Student 2: James Wilson
Student james = new Student("James Wilson");
System.out.println("--- Adding Grades for James ---");
james.addGrade(78);
james.addGrade(82);
james.addGrade(75);
james.printReport();
// Final summary
DecimalFormat df = new DecimalFormat("#.##");
System.out.println("Final Summary:");
System.out.println(emma.name + " - Average: " + df.format(emma.getAverage()) + " (" + emma.getLetterGrade() + ")");
System.out.println(james.name + " - Average: " + df.format(james.getAverage()) + " (" + james.getLetterGrade() + ")");
}
}
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
Adding extra credit: 0 points
--- Emma Rodriguez's Grade Report ---
Student Name: Emma Rodriguez
Total Points: 360
Assignments Completed: 4
Current Average: 90
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 Wilson'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 (A)
James Wilson - Average: 78.33 (C)