Associate
- Joined
- 22 May 2004
- Posts
- 1,792
- Location
- N.Ireland
Hi guys could anyone help me. I am writing this program in net beans for a night class and I have got the MArks to sort by ID but when I try to add anyother loop to get them to sort by ID and Marks it doesnt work Im not sure what im doing wrong.
Any chance anyone could add the loop so the ID's and the Marks sort. It only needs an extra loop for the marks.
Any help would be appricated
Any chance anyone could add the loop so the ID's and the Marks sort. It only needs an extra loop for the marks.
Code:
/*
*Class Name:Pc2
*Project Name:Pc2
*Package Name. pkgpc2
*Created on 24 January 2008, 09:50
*Version Number. 1.0
*Author: Gareth McGibbon
*Description:Program to sort out Syudent data for maths and english
*Also has a menu option for useers to interact with.
*/
package pkgpc2;
import keyb.InOut;
public class pkgpc2
{
//================================================== ======== //
// NAME : Array Data
// RETURN TYPE : N/A
// PARAMETERS : mathMark: Math students results
// engMark :English Students results
// mathId :Maths Student ID
// engId :English Student ID
// DESCRIPTION : The maths and english studentId and Marks.
// This is done as four arrays.
//
// //================================================== ========
static void initialiseArrays(int[] mathMark, int[] engMark, String[] mathsId, String[] engId)
{
//Math Mark. Sample Data
mathMark[0] = 72;
mathMark[1] = 84;
mathMark[2] = 21;
mathMark[3] = 48;
mathMark[4] = 55;
mathMark[5] = 49;
mathMark[6] = 78;
mathMark[7] = 21;
mathMark[8] = 35;
mathMark[9] = 98;
mathMark[10] = 44;
mathMark[11] = 56;
//Math ID. Sample Data
mathsId[0] = "M1005";
mathsId[1] = "M1002";
mathsId[2] = "M1000";
mathsId[3] = "M1003";
mathsId[4] = "M1001";
mathsId[5] = "M1004";
mathsId[6] = "M1006";
mathsId[7] = "M1010";
mathsId[8] = "M1009";
mathsId[9] = "M1008";
mathsId[10] = "M1007";
mathsId[11] = "M1011";
//English Mark. Sample Data
engMark[0] = 82;
engMark[1] = 56;
engMark[2] = 34;
engMark[3] = 42;
engMark[4] = 71;
engMark[5] = 55;
engMark[6] = 67;
engMark[7] = 34;
engMark[8] = 28;
engMark[9] = 59;
engMark[10] = 47;
engMark[11] = 65;
engMark[12] = 52;
engMark[13] = 12;
engMark[14] = 74;
//English ID. Sample Data
engId[0] = "E2003";
engId[1] = "E2005";
engId[2] = "E2001";
engId[3] = "E2002";
engId[4] = "E2006";
engId[5] = "E2000";
engId[6] = "E2004";
engId[7] = "E2008";
engId[8] = "E2007";
engId[9] = "E2010";
engId[10] = "E2009";
engId[11] = "E2012";
engId[12] = "E2011";
engId[13] = "E2013";
engId[14] = "E2014";
}
//================================================== ========
//
// NAME : Menu
// RETURN TYPE : none
// PARAMETERS : none
// DESCRIPTION : Menu for user to pick options
//
//
// //================================================== ========
static void menu()
{
System.out.println("\n\n\tXXXXXXXXXXXXXXXXXXXXXXXX XXXXX");
System.out.println("\tX STUDENT RECORDS MAIN MENU X");
System.out.println("\tXXXXXXXXXXXXXXXXXXXXXXXXXXXX X");
System.out.println("\n\n1. - All Mathematics students");
System.out.println("\n2. - All English students sorted by Student Id");
System.out.println("\n3. - display English Merit students");
System.out.println("\n4. - display the average examination marks");
System.out.println("\n5. - All students above the Mathematics average");
System.out.println("\n6. - EXIT");
}
//================================================== ========
//
// NAME : displayStudents
// RETURN TYPE : none
// PARAMETERS : studentId
// studentMark : Test score
// size : Array length
// upperLimitMark : upper inclusion mark in display
// lowerLimitMark : lower inclusion mark in display
// category : displays the category of display
// DESCRIPTION : displays all students by Id alongside
// their corresponding exam marks, as well as
// identifying the group being displayed.
//
// //================================================== ========
static void displayStudents(String[] studentId, int[] studentMark, int size, int upperMark, int lowerMark, String category)
{
//Command for system to print out title
System.out.println("\n " + category + "\n");
System.out.println("Student Identity\t Student");
System.out.println(" Number\t\tExam Mark\n");
//Start of loop
for (int count = 0; count <= size - 1; count++)
{
if (studentMark[count] >= lowerMark && studentMark[count] < upperMark)
{
System.out.println(" " + studentId[count] + "\t\t " + studentMark[count]);
}
} //End of loop
}
//================================================== ========
//
// NAME : sortStudents
// RETURN TYPE : none
// PARAMETERS : studentId : maths student's Id
// studentMark : maths student's test score
// size : size of the array
// DESCRIPTION : Sorts students in ascending order of student Id
//
// //================================================== ========
static void sortStudents(String[] studentId, int[] studentMark, int size)
{
//Start Loop
for (int count = 0; count < size - 2; count++)
{
for (int index = (count + 1); index < size - 1; index++)
{
//Use if statement to compare, and swap student Ids if required
if (studentId[count].compareTo(studentId[index]) > 0)
{
String tempId = studentId[count];
studentId[count] = studentId[index];
studentId[index] = tempId;
}
}
} //End of loop
}
//================================================== ======== //
// NAME : averageResult
// RETURN TYPE : double
// PARAMETERS : studentId : maths student's unique Id
// studentMark: maths student's test score
// size : size of the array
// dESCRIPTION : Displays average student marks.
//
// //================================================== ========
static double averageResult(int[] studentMark, int size)
{
//declare variables
double totalMark = 0, averageMark = 0;
//Start of loop
for (int count = 0; count <= size - 1; count++)
{
totalMark = studentMark[count] + totalMark;
} //End of loop
averageMark = totalMark / size;
return averageMark;
}
//================================================== ========
// NAME : main
// RETURN TYPE : none
// PARAMETERS : args : [DEFAULT]
// DESCRIPTION : Menu so user can pick what function they want
// program to proform.
//================================================== ========
public static void main(String[] args)
{
//Declare array
int[] mathExamMark = new int[12];
int[] engExamMark = new int[15];
String[] mathStudentId = new String[12];
String[] engStudentId = new String[15];
//Initialise Array
initialiseArrays(mathExamMark, engExamMark, mathStudentId, engStudentId);
//Declare variables
int menuOption = 0;
boolean menuExit = false;
int mathArraySize = mathStudentId.length;
int englishArraySize = engStudentId.length;
while (menuExit != true)
{
menu();
System.out.println("\n\nPlease select a menu option number to continue.");
menuOption = InOut.readInt();
while (menuOption < 1 || menuOption > 6)
{
System.out.println("\n\n++++++++++++++++++++++++++ +++++++++++++++++++++++++++++");
System.out.println("+ INVALID! - selection should be in the range 1 - 6! +");
System.out.println("++++++++++++++++++++++++++++++ +++++++++++++++++++++++++\n");
menu();
System.out.println("\nPlease select a menu option number to continue.");
menuOption = InOut.readInt();
}
switch (menuOption)
{
case 1:
displayStudents(mathStudentId, mathExamMark, mathArraySize, 100, 1, "All Maths students\n");
break;
case 2:
sortStudents(engStudentId, engExamMark, englishArraySize);
displayStudents(engStudentId, engExamMark, englishArraySize, 100, 1, "English students in Ascending order\n");
break;
case 3:
displayStudents(engStudentId, engExamMark, englishArraySize, 100, 55, "English Merit students\n ");
break;
case 4:
averageResult(mathExamMark, mathArraySize);
System.out.println("\nThe Maths average is " + averageResult(mathExamMark, mathArraySize));
averageResult(engExamMark, englishArraySize);
System.out.println("\nThe English average is " + averageResult(engExamMark, englishArraySize));
break;
case 5:
averageResult(mathExamMark, mathArraySize);
displayStudents(mathStudentId, mathExamMark, mathArraySize, 100,(int) averageResult(mathExamMark, mathArraySize) + 1, "Mathematics students above the average\n **************************************");
break;
case 6:
menuExit = true;
System.exit(0);
}
}
}//End of main() method
}
Any help would be appricated