I HAVE DONE THIS JOB IN ECLIPSE, HERE IS THE CODE:
//ProgramSeven.java
import java.util.*;
import java.io.*;
public class ProgramSeven
{
public static List<student> students = new
ArrayList<student>();
public static HashMap<String, Double> assignments = new
HashMap<String, Double>();
public static Scanner keyboard = new Scanner(System.in);
public static String course = "", section = "";
public static double total;
public static void main(String[] args) throws IOException
{
System.out.println("--------------------------------"+"\n"+
"| Grade Stats, by Tanner Heape |"+"\n"+
"--------------------------------");
// User input
String file = "";
// Checks for initial input
if (args.length > 0)
{
file = args[0];
}
// Varifies file
while(true)
{
File fileI = new File("./"+file);
if(fileI.exists() && fileI.isFile())
{
toList(fileI);
break;
}
System.out.print("Enter the file name: ");
file = keyboard.nextLine();
}
while(true)
{
System.out.print("\n> ");
// splits user input into readable sections (ArrayList)
List<String> input = new
ArrayList<String>(Arrays.asList(keyboard.nextLine().split("
")));
if(input.get(0).equalsIgnoreCase("exit")) // runs quit
{
System.exit(0);
}
else if(input.get(0).equalsIgnoreCase("help")) // runs help
{
System.out.println(" Accepted commands:\n" +
" exit\n" +
" help\n" +
" students\n" +
" search [partial name]\n" +
" assignments\n" +
" report\n" +
" student [student name]\n" +
" assignment [assignment name]");
}
else if(input.get(0).equalsIgnoreCase("students")) // runs
students
{
System.out.println(" Student Grades for " + course + ", " + section
+ "\n" +
" Total points possible: " + total + "\n");
System.out.printf(" %-10s %-10s %6s %5s%n ---------- --------- ------ -----%n", "First Name", "Last Name", "Points", "Grade");
for(student st : students)
{
System.out.printf(" %-10s %-10s %6.0f %s%n", st.getFirstName(),
st.getLastName(), st.getPoints(), st.getLetterGrade());
}
}
else if(input.get(0).equalsIgnoreCase("search")) // runs search
[input]
{
if(input.size() > 1)
{
String subString = input.get(1);
System.out.printf(" %-10s %-10s %6s %5s%n ---------- --------- ------ -----%n", "First Name", "Last Name", "Points", "Grade");
for(student st : students)
{
if(st.getFirstName().toLowerCase().contains(subString.toLowerCase())
||
st.getLastName().toLowerCase().contains(subString.toLowerCase()))
{
System.out.printf(" %-10s %-10s %6.0f %s%n", st.getFirstName(),
st.getLastName(), st.getPoints(), st.getLetterGrade());
}
}
}
else
{
System.out.println(" Invalid input");
}
}
else if(input.get(0).equalsIgnoreCase("assignments")) // runs
assignments
{
System.out.println(" Assignments for " + course + ", " + section +
"\n");
System.out.printf(" %-12s %6s%n %-12s %6s%n", "Assignment",
"Points", "----------", "------");
for(String key : assignments.keySet())
{
System.out.printf(" %-12s %6.0f%n", key,
assignments.get(key));
}
}
else if(input.get(0).equalsIgnoreCase("student")) // runs student
[first] [last]
{
if(input.size() > 2)
{
String first = input.get(1);
String last = input.get(2);
for(student st : students)
{
if(st.getFirstName().equalsIgnoreCase(first) &&
st.getLastName().equalsIgnoreCase(last))
{
System.out.println(" Grades for " + st.getFirstName() + " " +
st.getLastName() + "\n");
System.out.printf(" %-12s %6s %8s%n %-12s %6s %8s%n", "Assignment",
"Points", "Possible", "----------", "------", "--------");
for(String key : assignments.keySet())
{
System.out.printf(" %-12s %6.0f %8.0f%n", key,
st.getAssignment(key), assignments.get(key));
}
System.out.printf(" %-12s %6.0f %8.0f%n%n", "total",
st.getNumberGrade(), total);
System.out.println(" Final Grade: " + st.getLetterGrade());
}
}
}
else
{
System.out.println(" Invalid input");
}
}
else if(input.get(0).equalsIgnoreCase("assignment")) // runs
assignment [assignment name]
{
if(input.size() > 1)
{
String search = "";
for(int i = 1; i < input.size(); i++)
{
if(i == input.size()-1)
{
search += input.get(i);
}
else
{
search += input.get(i) + " ";
}
}
if(assignments.containsKey(search))
{
System.out.println(" " + search + ": " + assignments.get(search) +
" points\n grade breakdown");
int a = 0, b = 0, c = 0, d = 0, f = 0;
double points = assignments.get(search);
for(student st : students)
{
if(st.getAssignment(search)/points >= 0.90)
{
a++;
}
else if(st.getAssignment(search)/points >= 0.80)
{
b++;
}
else if(st.getAssignment(search)/points >= 0.70)
{
c++;
}
else if(st.getAssignment(search)/points >= 0.60)
{
d++;
}
else if(st.getAssignment(search)/points < 0.60)
{
f++;
}
}
System.out.println("\n A: " + a);
System.out.println(" B: " + b);
System.out.println(" C: " + c);
System.out.println(" D: " + d);
System.out.println(" F: " + f);
}
else
{
System.out.println(" Invalid input");
}
}
else
{
System.out.println(" Invalid input");
}
}
else if(input.get(0).equalsIgnoreCase("report")) // runs
report
{
System.out.println(" Grade breakdown for " + course + ", " +
section);
int a = 0, b = 0, c = 0, d = 0, f = 0;
double high = 0, low = 100, average = 0, i = 0;
for(student st : students)
{
if(st.getLetterGrade().equals("A"))
{
a++;
}
else if(st.getLetterGrade().equals("B"))
{
b++;
}
else if(st.getLetterGrade().equals("C"))
{
c++;
}
else if(st.getLetterGrade().equals("D"))
{
d++;
}
else if(st.getLetterGrade().equals("F"))
{
f++;
}
if(st.getNumberGrade() > high)
{
high = st.getNumberGrade();
}
if(st.getNumberGrade() < low)
{
low = st.getNumberGrade();
}
average += st.getNumberGrade();
i++;
}
average /= i;
System.out.println("\n Low: " + low + "%\n High: " + high + "%\n
Avg: " + average + "%\n");
System.out.println(" A: " + a);
System.out.println(" B: " + b);
System.out.println(" C: " + c);
System.out.println(" D: " + d);
System.out.println(" F: " + f);
}
}
}
// converts .txt file to values
public static void toList(File fileI) throws IOException
{
// Scanner for reading the file
Scanner textI = new Scanner(fileI);
boolean setup = true;
String[] titles = new String[10];
// Loop to read each textI line
while(textI.hasNext())
{
String[] ln = textI.nextLine().split(",");
if(setup)
{
String[] ln2 = textI.nextLine().split(",");
course = ln[0];
section = ln[1];
for(int i = 2; i < ln2.length; i++)
{
titles[i] = ln[i];
assignments.put(titles[i], Double.parseDouble(ln2[i]));
}
for(String key : assignments.keySet())
{
total += assignments.get(key);
}
setup = false;
}
else
{
HashMap<String, Double> temp = new HashMap<String,
Double>();
for(int i = 2; i <= ln.length - 1; i++)
{
temp.put(titles[i], Double.parseDouble(ln[i]));
}
students.add(new student(ln[0], ln[1], temp, total));
}
}
}
}
//student.java
import java.util.*;
// class for object student
public class student
{
// student's variables
private String firstName, lastName, letterGrade;
private double numberGrade, points;
private HashMap<String, Double> assignments = new
HashMap<String, Double>();
// constructor
public student(String firstName, String lastName,
HashMap<String, Double> assignments, double total)
{
this.firstName = firstName;
this.lastName = lastName;
this.assignments = assignments;
for(String key : this.assignments.keySet())
{
this.points += this.assignments.get(key);
}
this.numberGrade = 100*(this.points/total);
if(numberGrade >= 90.0)
{
this.letterGrade = "A";
}
else if(numberGrade >= 80.0)
{
this.letterGrade = "B";
}
else if(numberGrade >= 70.0)
{
this.letterGrade = "C";
}
else if(numberGrade >= 60)
{
this.letterGrade = "D";
}
else
{
this.letterGrade = "F";
}
}
// getter/setter for firstName
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getFirstName()
{
return this.firstName;
}
// getter/setter for lastName
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public String getLastName()
{
return this.lastName;
}
// getter/setter for assignments
public void setAssignment(String assignment, double score)
{
assignments.put(assignment, score);
}
public Double getAssignment(String assignment)
{
return this.assignments.get(assignment);
}
// getter for numberGrade
public double getNumberGrade()
{
return this.numberGrade;
}
// getter for letterGrade
public String getLetterGrade()
{
return this.letterGrade;
}
public double getPoints()
{
return this.points;
}
}
//Philosophy.txt
Philosophy 101,Section 1,red essay,test 1,green leaf,test
2,presentation
firstName,lastName,5,20,5,20,50
Aristotle,Ofathens,4,18,3,15,40
Euclid,Elements,3,15,2,10,35
Immanuel,Kant,4,18,4,20,48
Ben,Franklin,5,20,4,19,49
Khalil,Gibran,4,18,3,18,47
Noam,Chomsky,5,19,1,18,49
Garrison,Keeler,3,18,4,16,41
Amy,Schumer,2,11,3,14,39
Hamurabi,Lawgiver,5,19,4,20,50
Fred,Flintstone,2,15,3,14,42
output:

Java program Program: Grade Stats In this program you will create a utility to calculate and...
Write a program in Java according to the following specifications: The program reads a text file with student records (first name, last name and grade on each line). Then it prompts the user to enter a command, executes the command and loops. The commands are the following: "print" - prints the student records (first name, last name, grade). "sortfirst" - sorts the student records by first name. "sortlast" - sorts the student records by last name. "sortgrade" - sorts the...
You will create a Grade Program that will calculate students’ weighted averages. You are going to have the user enter lab grades, test grades, and project grades. You will then display a grade report of each individual average along with their overall average and letter grade. Ask the user to enter their lab grades. Call the averageGrade function that will allow the user to enter their grades and calculate their average. averageGrade Function: This will pass the average back to...
Programmed in Java Pls - The other answer to this question is incorrect.: Your program should follow the below requirements: You will only need one class for this project called StudentReport in the package ilstu.edu In your class you will have the following instance variables: grades: a double 2d array that will hold the grades for all the students. Students: a 1d String array that will hold the names of all the students. In your class you will have the...
PYTHON PROGRAMMING Instructions: You are responsible for writing a program that allows a user to do one of five things at a time: 1. Add students to database. • There should be no duplicate students. If student already exists, do not add the data again; print a message informing student already exists in database. • Enter name, age, and address. 2. Search for students in the database by name. • User enters student name to search • Show student name,...
Write a program that performs the following: 1. Presents the user a menu where they choose between: a. Add a new student to the class i. Prompts for first name, last name ii. If assignments already exist, ask user for new student’s scores to assignments b. Assign grades for a new assignment i. If students already exist, prompt user with student name, ask them for score ii. Students created after assignment will need to...
You are to write a program which will ask the user for number of students (dynamic array of class Student). For each student, you will ask for first name and number of grades (dynamic array of grades as a variable in Student). **The program should give the student random grades from 0-100** Find the averages of each student and display the information. **Display name, grades, and average neatly in a function in the Student class called Display()** Sort the students...
You are to write a program which will ask the user for number of students (dynamic array of class Student). For each student, you will ask for first name and number of grades (dynamic array of grades as a variable in Student). **The program should give the student random grades from 0-100** Find the averages of each student and display the information. **Display name, grades, and average neatly in a function in the Student class called Display()** Sort the students...
In this assignment you are asked to write a python program to maintain the Student enrollment in to a class and points scored by him in a class. You need to do it by using a List of Tuples What you need to do? 1. You need to repeatedly display this menu to the user 1. Enroll into Class 2. Drop from Class 3. Calculate average of grades for a course 4. View all Students 5. Exit 2. Ask the...
Java Program: In this project, you will write a program called GradeCalculator that will calculate the grading statistics of a desired number of students. Your program should start out by prompting the user to enter the number of students in the classroom and the number of exam scores. Your program then prompts for each student’s name and the scores for each exam. The exam scores should be entered as a sequence of numbers separated by blank space. Your program will...
Create a C++ program to calculate grades as well as descriptive statistics for a set of test scores. The test scores can be entered via a user prompt or through an external file. For each student, you need to provide a student name (string) and a test score (float). The program will do the followings: Assign a grade (A, B, C, D, or F) based on a student’s test score. Display the grade roster as shown below: Name Test Score ...