OBJECTIVES

Doing this project, students will have the chances to practice with the following concepts; therefore, you should review them when you are working on the project:

  • Repetition structures: using for, while, or do..while loop
  • Selection structure: using if, if else, or switch statement
  • Read data from keyboard
  • Read data from the file
  • Write data to the file
  • Using DecimalFormat to format the decimal numbers
  • Using user-defined functions
  • Review how to write the code of data type: data members, constructor, mutator methods, accessor methods and toString method
  • How to declare an object of a class in main and how to access member of class by using the object
  • how to declare an array and how to initial values of the array elements and how to access each element of an array

REQUIREMENT

Write the pseudo-code and provide the application named GradeApplication_yourLastName. The application allows users to process two tasks as below and only terminate when users select to exit.

  • GRADE ONE STUDENT: read information from the file studentInfo_yourLastName.txt, calculate the grade of one student then write the result to the file gradeReport_yourLastName.txt.
  • PRINT THE GRADE REPORT: read information from file gradeReport_yourLastName.txt and display on the screen the grades of all students

Each student has the following information that is provided in the file studentInfo_yourLastname.txt on one line in the following format: StudentID - FirstName LastName – list of scores of quizzes – list of scores of homework – list of scores of labs – list of scores of exams – score of project – score of discussion

For example (one line):

0097765-Bill Washington-6 4 4 6 6 4 6 4 4 6 4 2 4 6 4-10 8.0 8.2 7.8 8.8 9.2 9.6 9.2 10 10-30.0 28.0 29.0 30.0 26.0 28.0 30.0-94.5 90.5 85.0-75.5-20
Item Data type Number of assignments Max score
Student id String
Full name String
Quiz double 15 6
Homework double 10 10
Lab double 7 30
Exam double 3 100
Project double 1 80
Discussion int 1 20
Total 800

The formula to calculate the percentage and determine the letter grade as below:

Sum of quizzes = quiz1 + quiz2 + quiz3 + ….+ quiz15
Sum of homework = homework1 + homework2 + …. + homework10
Sum of labs = lab1 + lab2 + lab3 + … + lab7
Sum of exams = exam1 + exam2 + exam3
Total = sum of quizzes + sum of homework + sum of labs + sum of exams + project + discussion
Percentage = 100 * total /max score

The letter grade is determined as follows:

A Percentage >= 90%
B Percentage >= 80%
C Percentage >= 70%
D Percentage >= 60%
F Percentage < 60%

The grade of one student after calculation in the task1 is displayed on screen in the following format:

Student Name: Bill Washington
Student ID: 0097765
Quizzes: 6 4 4 6 6 4 6 4 4 6 4 2 4 6 4
Homework: 10 8.0 8.2 7.8 8.8 9.2 9.6 9.2 10 10
Labs: 30 28 29 30 26 28 30
Tests: 88 96 78
Project: 80
Discussion: 20
Total scores: 723.8
Max scores: 800
Percentage: 90.5
Grade: A

The grade of one student calculated in the task1 is written to the file gradeReport_yourLastName.txt in the following format:

Bill Washington – 0097765 – 90.5% - A

HOW TO DO THE PROJECT

Provide the application that helps the school to do the following tasks:

  • Grade a student
  • Print the grade report

TASK1 - Grade a student:

Grading a student task -Read the information of one student:

name: String
studentID: String, or int
scores of the following assignments: double
Assignment Number Max score Total
Homework 10 10 100
Lab 6 30 180
Exam 3 100 300
Project 80 80
Discussion 20 20
MaxScores 680

Determine the grade based on the percentage

TotalScores = totalScoresOfHomeworks + totalScoresOfLabs + totalScoresOfTests + scoresOfProject + scoresOfDiscussion
Percentage = 100 * totalScores / MaxScores
Percentage Grade
>90% A
>80% B
>70% C
>60% D
<=60% F

Display the result on the screen as the following format

Student Name: Bill Washington
Student ID: 0097765
Total scores 528.50
Max scores: 680
Percentage: 77.65
Grade: C

Also, write the result to the file name gradeReport.txt in the following format:

Bill Washington – 0097765 – 90.5% - A

INSTRUCTION HOW TO DO THE PROJECT:

The following is the list information that may help on this project

  • Draw UML and Define class Student that maintains: name, student id, list of quizzes’ scores, list of homework’s scores, list of labs’ scores, list of exams’ scores, project’s score and discussion’s score. The class student should have constructor, mutator methods, accessor methods, method toString, method to calculate the total of scores, percentage and determine letter grade, etc. (READ the instruction from Learning From Question on eCampus)
  • Write the pseudo-code of main() in Microsoft word document (READ: “pseudo-code” from Learning From Question on eCampus)
  • You should apply user-defined functions and write the comments in the project that keeps your main() short and easy to understand.
  • Read input from the file studentInfo_yourLastname.txt  review open file to read, how to read one line per time until end of file and close file (READ: “Open file to read by using Scanner”) at Learning From Question on eCampus)
  • Write the grade to the file gradeReport_yourLastName.txt  review open file to write or to append (READ: “Open file to write or to append” at Learning From Questions on eCampus)
  • How to handle the loop to redisplay the main menu after finishing one task such that users can continue using the program until they want to exit (read “Re-display the menu by using do..while loop (READ: “Redisplay the menu by using do..while loop at Learning From Question on eCampus)
  • Syntax of if, if..else, if..else..if, switch, for loop, do..while loop, while loop (read from Learning From Questions on eCampus
  • Display the decimal number with one decimal digit: review Using manipulators: fixed, showpoint, or precision, etc. (READ: “how to set number of digits of decimal numbers” at Learning From Questions on eCampus)
  • Define an int array, access each element of array (if you need the array READ “define and access an array” from Learning From Question on eCampus)
  • How to split off tokens from a String by a delimiter (READ: “SPIT OFF TOKENS FROM A String BY USING STRINGTOKENIZER” from Learning From Questions on eCampus”)
  • Convert a String to int or to double (READ: “Convert a String to int or double” from Learning From Questions on eCampus)
  • Relationship between data type class and controlling class (READ: “Relationship between data type class and controlling class” from Learning From Questions on eCampus
  • For other questions, you can post question to discussion forum to ask for help from your classmates or send questions to me or stop by my office hours.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.