Masten Project3

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

/**

* Matt Masten
* CS1180, Summer 2018
* Project 3
*/

package masten_project3;

import java.util.Scanner;

/**
* Project 3
* This program will allow the user to enter in grades for Labs, Projects, Quiz
* and Exams. It will then average each section and find an overall average using
* a weighted value for each section
*/
public class WeightedGradeCalculator
{

public static void main(String[] args)


{
Scanner keyboard = new Scanner(System.in);

//known constants
final double LAB_WEIGHT = .15;
final double PROJECT_WEIGHT = .25;
final double QUIZ_WEIGHT = .1;
final double EXAM_WEIGHT = .5;

final int NUM_LAB = 12;


final int NUM_PROJECT = 6;
final int NUM_QUIZ = 10;
final int NUM_EXAM = 3;

//unknown values
double dblLabAverage;
double dblProjectAverage;
double dblQuizAverage;
double dblExamAverage;
double dblWeightedAverage;
double dblArraySum;

String strStudentName;

//test variable
char chNew;
chNew = 'Y';

/**Step 1 - Declare 4 Arrays using constants 1 for each grade type


* lab, Project, Quiz, and Exam. partial points can be awarded. (ex 9.5)
*/

double[] arrLabGrades = new double[NUM_LAB];


double[] arrProjectGrades = new double[NUM_PROJECT];
double[] arrQuizGrades = new double[NUM_QUIZ];
double[] arrExamGrades = new double[NUM_EXAM];
while (chNew == 'Y' || chNew == 'y')
{

/** Step 2 - get user's name and grades, Use input validation detailed
below
* lab grades between 0 and 10, Project grades between 0 and 50,
* quizzes between 0 and 20, and exams between 0 and 100. Each grade type
* going into the appropriate array.
*/
System.out.print("Enter the student's name: ");
strStudentName = keyboard.nextLine();

for (int i = 0; i < arrLabGrades.length; i++)


{
System.out.print("Enter lab grade "+ (i+1) + ": ");
arrLabGrades[i] = keyboard.nextDouble();

while(arrLabGrades[i] < 0 || arrLabGrades[i]>10)


{
System.out.print("All lab grades must be between 0 and 10. "
+ "Please re-enter: ");
arrLabGrades[i] = keyboard.nextDouble();
}
}
System.out.println("");

for (int i = 0; i < arrProjectGrades.length; i++)


{
System.out.print("Enter project grade "+ (i+1) + ": ");
arrProjectGrades[i] = keyboard.nextDouble();

while(arrProjectGrades[i] < 0 || arrProjectGrades[i]>50)


{
System.out.print("All project grades must be between 0 and 50.
"
+ "Please re-enter: ");
arrProjectGrades[i] = keyboard.nextDouble();
}
}
System.out.println("");

for (int i = 0; i < arrQuizGrades.length; i++)


{
System.out.print("Enter quiz grade "+ (i+1) + ": ");
arrQuizGrades[i] = keyboard.nextDouble();

while(arrQuizGrades[i] < 0 || arrQuizGrades[i]>20)


{
System.out.print("All quiz grades must be between 0 and 20. "
+ "Please re-enter: ");
arrQuizGrades[i] = keyboard.nextDouble();
}
}
System.out.println("");
for (int i = 0; i < arrExamGrades.length; i++)
{
System.out.print("Enter exam grade "+ (i+1) + ": ");
arrExamGrades[i] = keyboard.nextDouble();

while(arrExamGrades[i] < 0 || arrExamGrades[i]>100)


{
System.out.print("All exam grades must be between 0 and 100. "
+ "Please re-enter: ");
arrExamGrades[i] = keyboard.nextDouble();
}
}
System.out.println("");

/** Step 3 - Get averages for each of the 4 arrays.


*/

//Lab Grade Average


dblArraySum = 0;
for (int i=0; i < arrLabGrades.length; i++)
{
dblArraySum += arrLabGrades[i];
}
dblLabAverage = dblArraySum / NUM_LAB * 10;

//Project Grade Average


dblArraySum = 0;
for (int i=0; i < arrProjectGrades.length; i++)
{
dblArraySum += arrProjectGrades[i];
}
dblProjectAverage = dblArraySum / NUM_PROJECT * 2;

//Quiz Grade Average


dblArraySum = 0;
for (int i=0; i < arrQuizGrades.length; i++)
{
dblArraySum += arrQuizGrades[i];
}
dblQuizAverage = dblArraySum / NUM_QUIZ * 5;

//Exam Grade Average


dblArraySum = 0;
for (int i=0; i < arrExamGrades.length; i++)
{
dblArraySum += arrExamGrades[i];
}
dblExamAverage = dblArraySum / NUM_EXAM;

/** Step 4 - Calculate the weighted average from the weights and 4
* categories (Lab, Project, Quiz, Exam)
*/

dblWeightedAverage = (dblLabAverage * LAB_WEIGHT) +


(dblProjectAverage * PROJECT_WEIGHT) +
(dblQuizAverage * QUIZ_WEIGHT) +
(dblExamAverage * EXAM_WEIGHT);
// Output all grades and averages

//Lab Grades
System.out.println("Lab Grades for " + strStudentName+":");
for(int i = 0; i < arrLabGrades.length; i++)
{
System.out.printf("\tLab %d: %.1f\n", (i+1),arrLabGrades[i]);
}
System.out.printf("Lab average: %.2f%c\n\n", dblLabAverage,'%');

//Project Grades
System.out.println("Lab Grades for " + strStudentName+":");
for(int i = 0; i < arrProjectGrades.length; i++)
{
System.out.printf("\tProject %d: %.1f\n",
(i+1),arrProjectGrades[i]);
}
System.out.printf("Project average: %.2f%c\n\n",
dblProjectAverage,'%');

//Quiz Grades
System.out.println("Quiz Grades for " + strStudentName+":");
for(int i = 0; i < arrQuizGrades.length; i++)
{
System.out.printf("\tQuiz %d: %.1f\n", (i+1),arrQuizGrades[i]);
}
System.out.printf("Quiz average: %.2f%c\n\n", dblQuizAverage,'%');

//Exam Grades
System.out.println("Exam Grades for " + strStudentName+":");
for(int i = 0; i < arrExamGrades.length; i++)
{
System.out.printf("\tExam %d: %.1f\n", (i+1),arrExamGrades[i]);
}
System.out.printf("Exam average: %.2f%c\n\n", dblExamAverage,'%');

System.out.printf("Course average for %s: %.2f


%c\n\n",strStudentName,dblWeightedAverage,'%');

/** Step 5 Repeat steps 2 through 4 for additional students until user
* indicates they are finished.
*/
System.out.print("Do you wante to enter grades for another student
(Y/N)?");
chNew = keyboard.next().charAt(0);
keyboard.nextLine();
System.out.println("\n");
}

You might also like