I've got a problem in sorting. I have to use a bubble sort to sort the scores with those who bring the highest percent at the top. The scores of each user i saved in a text file. This is how i tried to do the sorting but its not working. Can someone pls help me out. Thanks a lot.
[CODE=java]for(int j = 0; j < questions.lengt h; j++) {
int randomIndex = B[j];
String input = JOptionPane.sho wInputDialog(nu ll, questions[randomIndex]);
if(answers[randomIndex].equalsIgnoreCa se(input))
{
count++; // incrementing counter if entered answer is correct
point++;
correct++;
JOptionPane.sho wMessageDialog( null, "Congratulation s that is correct!");
}
else
{
JOptionPane.sho wMessageDialog( null, "Wrong Answer!");
}
if(!timeForMore ) // if time is over, the program executes the loop an stops asking questions.
break;
}
JOptionPane.sho wMessageDialog( null, "You answered " + count +
" out of " + questions.lengt h +
" questions correctly.");
int percent = (count*100)/questions.lengt h;
JOptionPane.sho wMessageDialog( null, "Your Geography Quiz score is " + point + " % ");
try {
BufferedWriter out;
String name = JOptionPane.sho wInputDialog(nu ll, "Enter your name");
String type = JOptionPane.sho wInputDialog(nu ll, "Enter your quiz type");
if(type.equals( "Plate Tectonics")){
out = new BufferedWriter( new FileWriter("pla yers.txt",true) );
out.write(name) ; //Writing to the textfile (the name entered by user)
out.write(getSp ace(20- name.length())) ; // Here 20 is max length possible change accordingly
String trimmedStr = name.trim();
out.write(Strin g.valueOf(point s+ " % "));
out.write(" ");
out.write(type) ;
out.newLine(); //write a new line to the textfile so the next time it writes to the file it does it on the next line
out.close();
for(int i=1; i<points.length ; i++) {
for(int j=0; j<points.lengt h-i; j++) { //if in wrong order then swap
if (points[j]>points[j+1]) swap(points, j, j+1);
}
}
}
private static void swap (int[] points, int i, int j) {
int h = points[i];
points[i] = points[j];
points[j] = h;
}
[/CODE]
[CODE=java]for(int j = 0; j < questions.lengt h; j++) {
int randomIndex = B[j];
String input = JOptionPane.sho wInputDialog(nu ll, questions[randomIndex]);
if(answers[randomIndex].equalsIgnoreCa se(input))
{
count++; // incrementing counter if entered answer is correct
point++;
correct++;
JOptionPane.sho wMessageDialog( null, "Congratulation s that is correct!");
}
else
{
JOptionPane.sho wMessageDialog( null, "Wrong Answer!");
}
if(!timeForMore ) // if time is over, the program executes the loop an stops asking questions.
break;
}
JOptionPane.sho wMessageDialog( null, "You answered " + count +
" out of " + questions.lengt h +
" questions correctly.");
int percent = (count*100)/questions.lengt h;
JOptionPane.sho wMessageDialog( null, "Your Geography Quiz score is " + point + " % ");
try {
BufferedWriter out;
String name = JOptionPane.sho wInputDialog(nu ll, "Enter your name");
String type = JOptionPane.sho wInputDialog(nu ll, "Enter your quiz type");
if(type.equals( "Plate Tectonics")){
out = new BufferedWriter( new FileWriter("pla yers.txt",true) );
out.write(name) ; //Writing to the textfile (the name entered by user)
out.write(getSp ace(20- name.length())) ; // Here 20 is max length possible change accordingly
String trimmedStr = name.trim();
out.write(Strin g.valueOf(point s+ " % "));
out.write(" ");
out.write(type) ;
out.newLine(); //write a new line to the textfile so the next time it writes to the file it does it on the next line
out.close();
for(int i=1; i<points.length ; i++) {
for(int j=0; j<points.lengt h-i; j++) { //if in wrong order then swap
if (points[j]>points[j+1]) swap(points, j, j+1);
}
}
}
private static void swap (int[] points, int i, int j) {
int h = points[i];
points[i] = points[j];
points[j] = h;
}
[/CODE]
Comment