Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have this lab I\'ve been trying to work on but I can\'t figure out how to comp

ID: 3821391 • Letter: I

Question

I have this lab I've been trying to work on but I can't figure out how to complete it. Here are all the resources provided by the instructor.

LAB07, Array of Student Class objects – Bubble Sort Points: 25

OBJECTIVE

• To demonstrate the concept of sorting

• To demonstrate the Bubble sort

• To demonstrate sorting objects

REQUIRED

A report of your work, in a flat pocket folder, in the following order:

1. Grade form Lab07GradeForm.doc

2. This program description

3. The source listing of the Student class Student.java

4. Problem Analysis with Input, Output, Pseudocode (word processed)

5. Data dictionary (included as comments in Java program

6. The listing of the source program Lab07.java

7. Listing of the input file Lab07StudentFile.txt

8. Listing of the student name file Lab07Names.txt

8. Listing of the expected results (already created) Lab07ExpectedResults.xlsx

9. Listing of the output file Lab07Report.txt

SPECIFICATIONS

Start with Lab06 and rename it as Lab07

There were two parts to Lab06:

Part1 – create an array of objects and then place values into the objects in the array

Part2 – retrieve the objects from the array and print a report

Lab07 will insert a step in between –- Sorting the array of objects

Create a Bubble Sort method and pass the array to it. Using the Bubble sort, sort the array in descending order, by average Since arrays are referenced when passed to a method, there is no need to return the array.

In order for this to work properly: Part1 must create the complete array and nothing else Then the array is sorted Part2 retrieves objects from the array and creates the report, with the student name. Therefore, the name search must be after the sort.

The report should look the same as Lab06 except it will be in descending order by average.

INPUT

File: Student file Lab07StudentFile.txt

Record: Student record

Field Data Type

Student id# 4 numbers (ex. 1234)

Ten test scores integers (valid numbers are 0 -100)

INPUT

File: Student name file Lab07Names.txt

Record: Student name record

Field Data Type

Student id# 4 numbers (ex. 1234)

Student name String

OUTPUT

File: Grade Report file Lab07Report.txt

Record:

Student Grade Report, sorted by Avg

ID# Name /----------------TEST Scores---------------/ Total Adj Total Avg

xxxx xxxxxxxxxxxxxxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxxx xxxx xxx

xxxx xxxxxxxxxxxxxxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxxx xxxx xxx

xxxx xxxxxxxxxxxxxxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxxx xxxx xxx

Total students = xx

Here's the link to the completed lab06 which it builds upon.--> https://pastebin.com/4cxF0YGb

Here's the link to the completed Student Class file.--> https://pastebin.com/DvZvKq2M

Explanation / Answer

Hi, Please find my implementation of Bubble Sort for Student Array.

Please let me know in case of any issue.

//Lab06

//this makes available all extra utilities from Java library including scanner

import java.util.*;

//this makes available all extras from Java library needed for files

import java.io.*; //needed for files

public class Lab06

{

   //start of class

   public static void bubbleSort(Student[] student){

       int n = student.length;

       for (int i = 0; i < n-1; i++)

           // Last i elements are already in place

           for (int j = 0; j < n-i-1; j++) {

               if (student[j].getAdjustedAverage() > student[j+1].getAdjustedAverage()){

                   Student temp = student[j];

                   student[j] = student[j+1];

                   student[j+1] = temp;

               }

           }

   }

  

   public static void main(String[] args) throws FileNotFoundException

   {//start of main method

      

       //declare a variable of type Scanner

       Scanner infileName = new Scanner(new FileReader("Lab06StudentFile.txt"));

       PrintWriter outfileName = new PrintWriter ("Lab06Report.txt");

       //variables and defined constants

       int stdId; //student id number

       int[] scores = new int[10]; //test scores

       int x = 0; //variable for a single instance of the student class

       int student = 0; //student variable initialized to zero

       Student[] arrayStudent = new Student[16]; //array of student class objects

       //create an instance of printwriter object

       outfileName.println("Student Grade Report");

       outfileName.println();

       outfileName.println("ID# Name /-------------------Test Scores----------------/ Total AdjTotal Avg");

       outfileName.println();

       //read score until end of file

       while(infileName.hasNext())

       {//start while loop

           stdId = infileName.nextInt();

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

           {

               scores[i] = infileName.nextInt();

           }

           Student std = new Student(stdId, scores);

           arrayStudent[x] = std;

           x++;

           student++;

       }//end while

       //Callig sort method

       bubbleSort(arrayStudent);

      

       for (int j = 0; j < arrayStudent.length; j++)

       {//start for loop

           Student std = arrayStudent[j];

           outfileName.printf("%-5d", std.getStudentId());

           scores = std.getStudentGradeArray();

           outfileName.printf("%-20s", searchName(std.getStudentId()));

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

           {

               outfileName.printf("%-5d", scores[i]);

           }

           //write total, ajdusted total and adjusted average

           outfileName.printf("%8.0f%8.0f%8.0f",

                   std.getTotal(),

                   std.getAdjustedtotal(),

                   std.getAdjustedAverage());

           outfileName.println();

       }//end for loop

       outfileName.println();

       outfileName.printf ("Total "

               + "Students = %2d", student);

       infileName.close();

       outfileName.close();

   }//end of main

   public static String searchName(int searchNumber) throws FileNotFoundException

   {//begin method

       Scanner infileName = new Scanner (new FileReader("Lab06Names.txt"));

       boolean found = false;

       String returnName = "name not found";

       while (infileName.hasNext() && found == false)

       {//start while loop

           int stdId = infileName.nextInt();

           String searchName = infileName.nextLine().trim();

           {

               if(searchNumber == stdId)

               {

                   returnName = searchName;

                   found = true;

               }

           }

       }//end while

       infileName.close();

       return returnName;

   }//end of method

}//end of class