Popcorn Hack 1
- Add another property to the dog class for breed.
- Add another method to the dog class that prints “My dog name is a breed!”
- Create a new object of this class and call the method.
// Work by Soni Dhenuva
public class Dog {
String name;
String breed;
public Dog(String name, String breed) {
this.name = name;
this.breed = breed;
}
public void printInfo() {
System.out.println("My dog " + name + " is a " + breed + "!");
}
public static void main(String[] args) {
Dog myDog = new Dog("Buddy", "Golden Retriever");
myDog.printInfo();
}
}
My dog Buddy is a Golden Retriever
Popcorn Hack #2
-Add on to the previous counter class and add three more methods for subtraction, multiplication, and division.
-Call all five methods outside of the class.
// Work by Soni Dhenuva
public class Counter {
private int count;
public void add(int x) {
count += x;
}
public void subtract(int x) {
count -= x;
}
public void multiply(int x) {
count *= x;
}
public void divide(int x) {
if (x != 0) {
count /= x;
} else {
System.out.println("no divide 0");
}
}
public int getCount() {
return count;
}
}
// Use it:
public class Main {
public static void main(String[] args) {
Counter c = new Counter();
c.add(10);
System.out.println(c.getCount());
c.subtract(3);
System.out.println(c.getCount());
c.multiply(4);
System.out.println(c.getCount());
c.divide(2);
System.out.println(c.getCount());
c.divide(0); // test divide by zero
}
}
10
7
28
14
no divide 0
Homework
// Work by Soni Dhenuva
// StudentGradeTracker.java
public class Student {
// Instance variables
private String name;
private int totalPoints;
private int numAssignments;
// Constructor gives name and sets totals to 0
public Student(String name) {
this.name = name;
this.totalPoints = 0;
this.numAssignments = 0;
}
// addGrade void method that updates totals
public void addGrade(int points) {
totalPoints += points;
numAssignments++;
}
// getAverage returns current avg as a double
public double getAverage() {
if (numAssignments == 0) return 0.0;
return (double) totalPoints / numAssignments;
}
// getLetterGrade returns letter grade based on the avg
public String getLetterGrade() {
double avg = getAverage();
if (avg >= 90.0) return "A";
if (avg >= 80.0) return "B";
if (avg >= 70.0) return "C";
if (avg >= 60.0) return "D";
return "F";
}
// printReport void method to show a report
public void printReport() {
double avg = getAverage();
String avgFormatted = String.format("%.2f", avg);
String letter = getLetterGrade();
String status;
switch (letter) {
case "A": status = "Excellent work!"; break;
case "B": status = "Great job!"; break;
case "C": status = "Keep working hard!"; break;
case "D": status = "Needs improvement."; break;
default: status = "Significant improvement needed.";
}
System.out.println();
System.out.println("--- " + name + "'s Grade Report ---");
System.out.println("Student Name: " + name);
System.out.println("Total Points: " + totalPoints);
System.out.println("Assignments Completed: " + numAssignments);
System.out.println("Current Average: " + avgFormatted);
System.out.println("Letter Grade: " + letter);
System.out.println("Status: " + status);
System.out.println();
System.out.println("========================================");
}
}
// Separate class with main to shwo usage
class StudentGradeTracker {
public static void main(String[] args) {
System.out.println("=== Student Grade Tracker System ===");
// Creating student Emma
System.out.println();
System.out.println("Creating student: Soni Dhenuva");
Student soni = new Student("Soni Dhenuva");
System.out.println("Student created successfully!");
System.out.println();
System.out.println("--- Adding Grades for Soni ---");
System.out.println("Adding grade: 95 points");
soni.addGrade(95);
System.out.println("Adding grade: 88 points");
soni.addGrade(88);
System.out.println("Adding grade: 92 points");
soni.addGrade(92);
System.out.println("Adding grade: 85 points");
soni.addGrade(85);
soni.printReport(); // prints Soni's full report
// Creating student Nora
System.out.println();
System.out.println("Creating student: Nora Ahadian");
Student nora = new Student("Nora Ahadian");
System.out.println("Student created successfully!");
System.out.println();
System.out.println("--- Adding Grades for Nora ---");
System.out.println("Adding grade: 78 points");
nora.addGrade(78);
System.out.println("Adding grade: 82 points");
nora.addGrade(82);
System.out.println("Adding grade: 75 points");
nora.addGrade(75);
nora.printReport(); // prints Nora's full report
// Final summary (shosw calling getAverage and getLetterGrade ouside the class)
System.out.println();
System.out.println("Final Summary:");
System.out.printf("%s - Average: %.2f (%s)%n",
"Soni Dhenuva", emma.getAverage(), emma.getLetterGrade());
System.out.printf("%s - Average: %.2f (%s)%n",
"Nora Ahadian", james.getAverage(), james.getLetterGrade());
}
}
=== Student Grade Tracker System ===
Creating student: Soni Dhenuva
Student created successfully!
--- Adding Grades for Soni ---
Adding grade: 95 points
Adding grade: 88 points
Adding grade: 92 points
Adding grade: 85 points
--- Soni Dhenuva's Grade Report ---
Student Name: Soni dHENUVA
Total Points: 360
Assignments Completed: 4
Current Average: 90.00
Letter Grade: A
Status: Excellent work!
========================================
Creating student: Nora Ahadian
Student created successfully!
--- Adding Grades for Nora ---
Adding grade: 78 points
Adding grade: 82 points
Adding grade: 75 points
--- Nora Ahadian's Grade Report ---
Student Name: Nora Ahadian
Total Points: 235
Assignments Completed: 3
Current Average: 78.33
Letter Grade: C
Status: Keep working hard!
========================================
Final Summary:
Soni Dhenuva - Average: 90.00 (A)
Nora Ahadian - Average: 78.33 (C)