This is the question: These are in Java format. Comments are required on these t
ID: 3725398 • Letter: T
Question
This is the question:
These are in Java format.
Comments are required on these two Classes (Student.java and StudentDemo.java) all over the coding:
Provide proper comments all over the codings.
---------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.util.*;
class Student {
private String name;
private double gradePointAverage;
public Student(String n , double a){
name = n;
gradePointAverage = a;
}
public String getName(){
return name;
}
public double getGradePointAverage(){
return gradePointAverage;
}
public void setName(String n){
name = n;
}
public void setGradePointAverage(double a){
gradePointAverage = a;
}
}
----------------------------------------------------------------------------------------------------------------
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo{
public static ArrayList<Student> sort(ArrayList<Student> list){
ArrayList<Student> list1 = new ArrayList<Student>();
for (int i = 0; i<list.size(); i++){
int index = -1;
for (int j = 0; j< list1.size(); j++){
if (list.get(i).getGradePointAverage() > list1.get(j).getGradePointAverage()){
index = j;
list1.add(j,list.get(i));
break;
}
}
if (index == -1)
list1.add(list.get(i));
}
return list1;
}
public static void main(String[] args){
ArrayList<Student> list = new ArrayList<Student>();
Scanner sc = new Scanner(System.in);
while(true){
System.out.print("Enter student name or quit:");
String name = sc.nextLine();
if (name.equals("quit"))
break;
System.out.print("Enter grade point ave:");
double gpa = Double.parseDouble(sc.nextLine());
Student st = new Student(name,gpa);
int index = -1;
for (int i = 0; i< list.size(); i++){
if (name.compareTo(list.get(i).getName()) < 0){
index = i;
list.add(i,st);
break;
}
}
if (index == -1)
list.add(st);
}
System.out.println("Students:");
System.out.print("[ ");
for (int i = 0; i<list.size(); i++){
if (i < list.size() -1)
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage() + ",");
else
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage());
}
System.out.println(" ]");
list = sort(list);
System.out.println("Students in order of Grade Point Average:");
System.out.print("[ ");
for (int i = 0; i<list.size(); i++){
if (i < list.size() -1)
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage() + ",");
else
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage());
}
System.out.println(" ]");
}
}
Explanation / Answer
Student.java
public class Student {
//Declaring instance variables
private String name;
private double gradePointAverage;
//Parameterized constructor
public Student(String n , double a){
name = n;
gradePointAverage = a;
}
// getters and setters
public String getName(){
return name;
}
public double getGradePointAverage(){
return gradePointAverage;
}
public void setName(String n){
name = n;
}
public void setGradePointAverage(double a){
gradePointAverage = a;
}
}
_________________
StudentDemo.java
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo{
public static ArrayList<Student> sort(ArrayList<Student> list){
//Creating an ArrayList Which holds Student Objects
ArrayList<Student> list1 = new ArrayList<Student>();
/* This nested for loop will sort the ArrayList which holds
* Students based on Student grade Point in Ascending order
*/
for (int i = 0; i<list.size(); i++){
int index = -1;
for (int j = 0; j< list1.size(); j++){
if (list.get(i).getGradePointAverage() > list1.get(j).getGradePointAverage()){
index = j;
list1.add(j,list.get(i));
break;
}
}
if (index == -1)
list1.add(list.get(i));
}
return list1;
}
public static void main(String[] args){
ArrayList<Student> list = new ArrayList<Student>();
Scanner sc = new Scanner(System.in);
/* This while loop continues to execute
* until the user enters "quit"
*/
while(true){
//Getting the name entered by the user
System.out.print("Enter student name or quit:");
String name = sc.nextLine();
//checking whether user enters "quit" or not
if (name.equals("quit"))
break;
//Getting the grade entered by the user
System.out.print("Enter grade point ave:");
double gpa = Double.parseDouble(sc.nextLine());
/* Creating the Student Object parameterized constructor
* by passing the name and student average passing as arguments
*/
Student st = new Student(name,gpa);
int index = -1;
//Sorting the array List based on user entered name
for (int i = 0; i< list.size(); i++){
if (name.compareTo(list.get(i).getName()) < 0){
index = i;
list.add(i,st);
break;
}
}
if (index == -1)
list.add(st);
}
//Displaying the Student objects Before Sorting based on Student average in decending order
System.out.println("Students:");
System.out.print("[ ");
for (int i = 0; i<list.size(); i++){
if (i < list.size() -1)
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage() + ",");
else
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage());
}
System.out.println(" ]");
//calling the sort method
list = sort(list);
System.out.println("Students in order of Grade Point Average:");
System.out.print("[ ");
//Displaying the Student objects after Sorting based on Student average in decending order
for (int i = 0; i<list.size(); i++){
if (i < list.size() -1)
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage() + ",");
else
System.out.print(list.get(i).getName() + " Grade Point Avg:" + list.get(i).getGradePointAverage());
}
System.out.println(" ]");
}
}
____________________
Output:
Enter student name or quit:Williams
Enter grade point ave:89.00
Enter student name or quit:John
Enter grade point ave:78.00
Enter student name or quit:Kevin
Enter grade point ave:92.00
Enter student name or quit:Mike
Enter grade point ave:65.00
Enter student name or quit:Rahul
Enter grade point ave:79.00
Enter student name or quit:Vivek
Enter grade point ave:94.00
Enter student name or quit:quit
Students:
[ John Grade Point Avg:78.0,Kevin Grade Point Avg:92.0,Mike Grade Point Avg:65.0,Rahul Grade Point Avg:79.0,Vivek Grade Point Avg:94.0,Williams Grade Point Avg:89.0 ]
Students in order of Grade Point Average:
[ Vivek Grade Point Avg:94.0,Kevin Grade Point Avg:92.0,Williams Grade Point Avg:89.0,Rahul Grade Point Avg:79.0,John Grade Point Avg:78.0,Mike Grade Point Avg:65.0 ]
______________Thank You
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.