In: Computer Science
import java.util.LinkedList;
public class StudentLinkedList { public static void main(String[]
args) { LinkedList<Student> linkedlist = new
LinkedList<Student>(); linkedlist.add(new Student("Ahmed
Ali", 20111021, 18, 38, 38)); linkedlist.add(new Student("Sami
Kamal", 20121021, 17, 39, 35)); linkedlist.add(new Student("Salem
Salim", 20131021, 20, 40, 40)); linkedlist.add(new Student("Rami
Mohammed", 20111031, 15, 35, 30)); linkedlist.add(new Student("Kim
Joe", 20121024, 12, 32, 32)); linkedlist.addFirst(new Student("Hadi
Ali", 20111025, 19, 38, 39)); linkedlist.addLast(new
Student("Waleed Salim", 20131025, 10, 30, 30)); linkedlist.set(0,
new Student("Khalid Ali", 20111027, 15, 30, 30));
linkedlist.removeFirst(); linkedlist.removeLast();
linkedlist.add(0, new Student("John Don", 20131025, 11, 31, 31));
linkedlist.remove(2); } class Student{ private String name; private
Long ID; private int [] marks = new int [3];
public Student(String name, long ID, int quizzes, int mid, int fin)
{ this.name = name; this.ID = ID; marks[0] = quizes; marks[1] =
mid; marks[2] = fin; } public String getName() { return name;
}
public Long getID() { return ID; }
public int[] getMarks() { return marks; }
@Override public String toString() { String temp = "student: " +
"name = " + name + ", ID = " + ID + ", marks = {" + marks[0] + ", "
+ marks[1] + ", " + marks[2] + "}"; return temp; } }
1- What is the content of the linkedList after the executing the following program?
2- Modify StudentLinkedList class by adding the following methods: printStudentList: print by calling and printing “toString” of every object in the linkedList. Every student object to be printed in a separate line. deleteStudentByID(long id): delete student object from the list whose ID is matching with the passed parameter. sortListByID(): sort the linkedlist according to students IDs. findMarksAverage(): find the average of all marks for all students in the list. findMinMark(int markIndex): find the student with the minimum mark in a specific index: o 0: Quizzes o 1: Midterm Exam o 2: Final Exam
Code
import java.util.Collections;
import java.util.LinkedList;
import java.util.ListIterator;
public class StudentLinkedList
{
static LinkedList<Student> linkedlist = new
LinkedList<Student>();
public static void main(String[] args)
{
linkedlist.add(new Student("Ahmed Ali", 20111021, 18, 38,
38));
linkedlist.add(new Student("Sami Kamal", 20121021, 17, 39,
35));
linkedlist.add(new Student("Salem Salim", 20131021, 20, 40,
40));
linkedlist.add(new Student("Rami Mohammed", 20111031, 15, 35,
30));
linkedlist.add(new Student("Kim Joe", 20121024, 12, 32, 32));
linkedlist.addFirst(new Student("Hadi Ali", 20111025, 19, 38,
39));
linkedlist.addLast(new Student("Waleed Salim", 20131025, 10, 30,
30));
linkedlist.set(0, new Student("Khalid Ali", 20111027, 15, 30,
30));
linkedlist.removeFirst(); linkedlist.removeLast();
linkedlist.add(0, new Student("John Don", 20131025, 11, 31,
31));
linkedlist.remove(2);
printStudentList();
System.out.println("\n\nAfter deleting the studet with id 2011103
list is.");
deleteStudentByID(20111031);
printStudentList();
sortListByID();
System.out.println("\n\nAfter sorted by the ID list is : ");
printStudentList();
findMarksAverage();
System.out.println("\n");
findMinMark(0);
System.out.println("\n");
findMinMark(1);
System.out.println("\n");
findMinMark(2);
}
private static void printStudentList()
{
for(int num=0; num<linkedlist.size(); num++)
{
System.out.println(linkedlist.get(num));
}
}
private static void deleteStudentByID(int id)
{
for(int num=0; num<linkedlist.size(); num++)
{
if(linkedlist.get(num).getID()==id)
{
linkedlist.remove(num);
return;
}
}
}
private static void sortListByID() {
Collections.sort(linkedlist);
}
private static void findMarksAverage() {
double sum=0;
for(int num=0; num<linkedlist.size(); num++)
{
int studentMarkSum[]=linkedlist.get(num).getMarks();
sum+=(studentMarkSum[0]+studentMarkSum[1]+studentMarkSum[2]);
}
System.out.println("\nThe average marks of all student is :
"+sum/linkedlist.size());
}
private static void findMinMark(int i) {
int minMarks,minId=0;
int marks[]=linkedlist.get(0).getMarks();
switch(i)
{
case 0:
minMarks=marks[0];
for(int num=0; num<linkedlist.size(); num++)
{
marks=linkedlist.get(num).getMarks();
if(marks[0]<minMarks)
{
minMarks=marks[0];
minId=num;
}
}
System.out.println(linkedlist.get(minId).getName()+" has minimum
marks in Quizzes is "+minMarks);
break;
case 1:
minMarks=marks[1];
for(int num=0; num<linkedlist.size(); num++)
{
marks=linkedlist.get(num).getMarks();
if(marks[1]<minMarks)
{
minMarks=marks[1];
minId=num;
}
}
System.out.println(linkedlist.get(minId).getName()+" has minimum
marks in Midterm is "+minMarks);
break;
case 2:
minMarks=marks[2];
for(int num=0; num<linkedlist.size(); num++)
{
marks=linkedlist.get(num).getMarks();
if(marks[2]<minMarks)
{
minMarks=marks[2];
minId=num;
}
}
System.out.println(linkedlist.get(minId).getName()+" has minimum
marks in Final Exam is "+minMarks);
break;
}
}
}
class Student implements Comparable<Student>
{
private String name;
private Long ID;
private int [] marks = new int [3];
public Student(String name, long ID, int quizzes, int mid, int
fin)
{
this.name = name;
this.ID = ID;
marks[0] = quizzes;
marks[1] = mid;
marks[2] = fin;
}
public String getName() { return name; }
public Long getID() { return ID; }
public int[] getMarks() { return marks; }
@Override
public int compareTo(Student o)
{
Long comparedSize =
o.getID();
if (this.ID > comparedSize)
{
return 1;
} else if (this.ID == comparedSize)
{
return 0;
} else {
return -1;
}
}
@Override public String toString()
{
String temp = "student: " + "name = " + name + ", ID = " + ID + ",
marks = {" + marks[0] + ", " + marks[1] + ", " + marks[2] + "}";
return temp;
}
}
output
If you have any query regarding the code please ask me in the
comment i am here for help you. Please do not direct thumbs down
just ask if you have any query. And if you like my work then please
appreciates with up vote. Thank You.