Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed bin/App.class
Binary file not shown.
Binary file added bin/AttendanceTracker.class
Binary file not shown.
Binary file added bin/FileIOManager.class
Binary file not shown.
Binary file added bin/Main.class
Binary file not shown.
Binary file added bin/Student.class
Binary file not shown.
Binary file added bin/Subject.class
Binary file not shown.
5 changes: 0 additions & 5 deletions src/App.java

This file was deleted.

48 changes: 48 additions & 0 deletions src/AttendanceTracker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import java.util.Scanner;

public class AttendanceTracker {
public static void trackAttendance(Student student) {
Scanner scanner = new Scanner(System.in);
for (Subject subject : student.getSubjects()) {
System.out.print(subject.getName() + ": ");
int days = scanner.nextInt();
subject.markAttendance(days);
}
}

public static void markAttendanceWithExcuse(Student student) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter excuse of absence (if any): ");
String excuse = scanner.nextLine();
if (excuse != null && excuse.toLowerCase().contains("hospital")) {
System.out.println("Attendance adjusted for hospital visit.");
for (Subject subject : student.getSubjects()) {
subject.markAttendance(1); // Increase one absence for each subject
}
} else {
for (Subject subject : student.getSubjects()) {
System.out.print(subject.getName() + ": ");
int days = scanner.nextInt();
scanner.nextLine(); // Consume newline
subject.markAttendance(days); // Mark attendance with provided days
}
}
}

public static String determineResult(Student student) {
boolean passed = true;
for (Subject subject : student.getSubjects()) {
if (!subject.hasMetAttendanceRequirement()) {
passed = false;
break;
}
}
double totalGrade = student.getGrade();
if (passed && totalGrade >= 3.5) {
return "Success";
}
else {
return "Fail";
}
}
}
17 changes: 17 additions & 0 deletions src/FileIOManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import java.io.*;
public class FileIOManager {
public static void saveStudentInfo(Student student) {
try {
FileWriter writer = new FileWriter(student.getName() + "_info.txt");
writer.write("Name: " + student.getName() + "\n");
for (Subject subject : student.getSubjects()) {
writer.write(subject.getName() + " Attendance: " + subject.getAttendance() + " days\n");
}
writer.write("Grade: " + student.getGrade() + "\n");
writer.close();
System.out.println("\nStudent information saved to file.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
39 changes: 39 additions & 0 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import java.io.*;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("\n\n\n");
System.out.println("Attendance Tracker");
System.out.println("_____________________________");

System.out.print("Enter student name: ");
String studentName = scanner.nextLine();
Student student = new Student(studentName);

System.out.println("\nEnter the attendance for each subject:");
AttendanceTracker.trackAttendance(student);

System.out.println("\nMark attendance for each subject (Enter excuse of absence):");
AttendanceTracker.markAttendanceWithExcuse(student);


System.out.print("\nEnter grade for the semester (out of 5): ");
double grade = scanner.nextDouble();
student.setGrade(grade);

String result = AttendanceTracker.determineResult(student);
System.out.println("\nStudent Information:");
System.out.println("Name: " + student.getName());
for (Subject subject : student.getSubjects()) {
System.out.println(subject.getName() + " Attendance: " + subject.getAttendance() + " days");
}
System.out.println("Grade: " + grade);
System.out.println("\nResult: " + result);

// Save student information to file
FileIOManager.saveStudentInfo(student);
}
}
31 changes: 31 additions & 0 deletions src/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
public class Student {
private final String name;
private final Subject[] subjects;
private double grade;

public Student(String name) {
this.name = name;
this.subjects = new Subject[]{
new Subject("Math", 44),
new Subject("Physics", 42),
new Subject("Chemistry", 40),
new Subject("Programming", 47)
};
}

public String getName() {
return name;
}

public Subject[] getSubjects() {
return subjects;
}

public void setGrade(double grade) {
this.grade = grade;
}

public double getGrade() {
return grade;
}
}
33 changes: 33 additions & 0 deletions src/Subject.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
public class Subject {
private final String name;
private final int requiredAttendance;
private int attendance;

public Subject(String name, int requiredAttendance) {
this.name = name;
this.requiredAttendance = requiredAttendance;
}

public void markAttendance(int days) {
attendance += days;
}

public void markAttendance(int days, String excuse) {
if (excuse != null && excuse.toLowerCase().contains("hospital")) {
days++; // Increase absence if excuse contains "hospital"
}
attendance += days;
}

public boolean hasMetAttendanceRequirement() {
return attendance >= requiredAttendance;
}

public int getAttendance() {
return attendance;
}

public String getName() {
return name;
}
}