You are on page 1of 5

PROJECT - 1

Student Gradebook Application Project

Project Demonstration: Demo Video (Video)

Project Description

● In this project, you will create a Java application that allows teachers to
manage and calculate grades for their students. The project will cover
various programming topics, including user authentication, student
records management, grading, statistics.

1. User Interaction When running the program, it should interact


with users through the console. Users input data using the
keyboard, and the program displays information on the screen.

2. Making Choices with Switch Cases: You should create a menu


with options (1 to 7), allowing users to select actions by typing
the corresponding number. Utilize switch-case statements to
respond to user choices.

3. Conditional Logic with If-Else: During login, the program


should check if the entered username and password match
predefined values to authenticate users. Use if-else statements for
decision-making.

4. Reusable Code with Methods: Actions such as adding students,


calculating grades, and generating reports should be implemented
as methods. Methods make your code more organized and
reusable. Additionally, you should use loops to process multiple
students' data efficiently. For example, you can use loops to add
multiple students or calculate grades for a list of students.

5. Input/Output Display: Information and messages should be


displayed on the screen using System.out.println(). This is how
the program communicates with users.

6. Char Data Type: You will use the char data type, especially
when calculating and displaying student grades. The char type
can represent grades like 'A', 'B', 'C', 'D', or 'F'.

Project Goals
● Implement user authentication for teachers.
● Create a user-friendly menu system for managing student records.
● Calculate final grades based on test scores.
● Display statistics, including averages and highest/lowest scores.
● Generate printable reports for each student.
● Implement data for loading student records.

Project Steps
Instructions Step 1: User Authentication
● Implement user authentication for teachers to log in with their
usernames and passwords.
Step 2: Main Menu
● Create a main menu for teachers to choose various options like adding
students, managing records, calculating grades, viewing statistics,
generating reports, and loading data.

Step 3: Student Records Management


● Allow teachers to add, edit, and delete student records, including
names, IDs, and test scores.

Step 4: Grade Calculation


● Calculate final grades based on the test scores entered for each student.

Step 5: Grade Statistics


● Display statistics such as class averages, highest and lowest scores, and
grade distributions.

Step 6: Student Reports


● Generate printable reports for each student, including their name, ID,
scores, and final grades.

Step 7: Data Persistence (Optional)


● Allow teachers to save and load student records to/from a file for future
reference.

Grading Policy

Functionality (50 points)

● User authentication (10 points)


● Main menu and menu options (10 points)
● Student records management (10 points)
● Grade calculation (10 points)
● Grade statistics (5 points)
● Student reports (5 points)

Code Quality (20 points)

● Code structure and organization (5 points)


● Use of classes and methods (5 points)
● Use loops (5 points)
● Proper variable naming (5 points)

Testing (30 points)

● Thoroughly test the application for correctness (10 points)


● Handle edge cases gracefully (10 points)
● Clear and helpful error messages (10 points)

○ Input Validation: When adding a student, validate that the


entered student ID is unique and not already in use by another
student. Ensure that test scores entered are within a valid range
(between 0 and 100). Check that student names do not contain
invalid characters or are not excessively long.

○ Error Handling: Implement error handling for cases where file


operations (saving or loading data) fail due to file not found,
permissions issues, or other errors. Provide clear error messages
and guidance to the user when input validation fails, helping
them understand why the input is invalid.

○ Boundary Conditions: When calculating grades, consider the


boundary conditions where test scores are exactly at the
thresholds for different grades (90 for an 'A', 80 for a 'B', etc.).
Ensure that the application correctly handles cases where a
student's test score is exactly at the passing or failing threshold.

○ Edge Inputs: Test the application with extreme test scores, such
as the highest possible (100) and the lowest possible (0), to verify
that it calculates grades accurately and doesn't produce
unexpected results.

○ Graceful Degradation: If the application shows an error during


data loading, provide the option to continue, allowing the user to
add students again. Implement a continue feature that allows
execution without starting from the beginning .

Extra Features (10 points)

● Implement additional features or improvements beyond the basic


requirements (optional).

Project Guidelines

Individual Work: We expect each of you to approach this project as an


individual effort. Collaboration on the project is encouraged in terms of idea
sharing and brainstorming, but the final work you submit must be your own.

Plagiarism Prohibited: Plagiarism is strictly prohibited. Avoid presenting


someone else's work as your own.

Zero Tolerance for Cheating: Cheating is not only unfair also detrimental to
your own learning. Any form of cheating is strictly against the rules and will
not be tolerated.

You might also like