View Single Post
  #1 (permalink)  
Old 01-19-2008, 10:48 PM
mcal mcal is offline
Member
 
Join Date: Jan 2008
Posts: 39
mcal is on a distinguished road
For loop problem
I'm really stuck. I am making a quiz, where questions are stored in a binary file. The answers are stored in an array. My problem comes when i have to compare the answer entered by the user to the correct answer. The correct answers are stored in an array. I tried to do a for loop, but its not working. (Infact everything inside the for loop isn't working) Can someone pls help me because i really got stuck and i can't continue programming with such a problem. Thanks a lot. :-)

This is the code:
Code:
import java.awt.*; import java.awt.event.*; import java.awt.event.ActionListener.*; import java.util.*; import java.io.*; import javax.swing.*; import java.util.Calendar; import java.awt.image.*; import javax.imageio.*; import java.io.File; import java.io.FileOutputStream; import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.IOException; public class GQ extends JFrame implements ActionListener { private static final int FRAME_WIDTH = 1024; private static final int FRAME_HEIGHT = 768; private static final int FRAME_X_ORIGIN = 0; private static final int FRAME_Y_ORIGIN = 0; AnswerStore answerStore = new AnswerStore(); boolean timeForMore; public GQ() { Container contentPane; contentPane = getContentPane(); JButton button1, button2, button3, button4, button5; setSize (FRAME_WIDTH, FRAME_HEIGHT); setTitle("Geography Quiz"); setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN); button1 = new JButton("Plate Tectonics"); button2 = new JButton("Rivers"); button3 = new JButton("Rocks"); button4 = new JButton("Quit"); contentPane.add(button1); contentPane.add(button2); contentPane.add(button3); contentPane.add(button4); button1.addActionListener(this); button1.setActionCommand("b1"); button2.addActionListener(this); button2.setActionCommand("b2"); button3.addActionListener(this); button3.setActionCommand("b3"); button4.addActionListener(this); button4.setActionCommand("b4"); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main (String[] args) { JOptionPane.showMessageDialog(null, "This is a Geography Quiz"); JOptionPane.showMessageDialog(null, "Good Luck"); GQ frame = new GQ(); frame.setVisible(true); new GQ(); GQ File = new GQ(); } String ac = event.getActionCommand(); String[] question = null; String[] answers = null; if(ac.equals("b2")) { question = readFile("rivers.dat"); answers = answerStore.riverAnswers; } else if (ac.equals("b4")) { System.exit(0); } askQuestions(question, answers); } public void stopAndShowResults() { timeForMore = false; // used for countdown. } public String[] readFile(String path) { StringBuilder sb = new StringBuilder(); String separator = "\n"; String question; try{ File aFile = new File( "rivers.dat" ); // create an output stream to the file FileInputStream aFileInStream = new FileInputStream ( aFile ); // create a data output stream to the file output stream DataInputStream aDataInStream = new DataInputStream ( aFileInStream ); question = aDataInStream.readUTF(); aFileInStream.close(); JOptionPane.showInputDialog(null,question); } catch( FileNotFoundException e ) { System.out.println( e.getMessage() ); System.exit(1); } catch(IOException e) { System.out.println( e.getMessage() ); System.exit(1); } return sb.toString().split("\\n"); } public void askQuestions(String[] question, String[] answers) { int count = 0; int point = 0; for(int j = 0; j < question.length; j++) { // anything inside in this for loop isn't working. timeForMore = true; String input = JOptionPane.showInputDialog(null,question[j]);// shows questions in a dialog box together with input line JOptionPane.showInputDialog(null,question); if(answers[j].equals(input)) { count++; // incrementing counter if entered answer is correct point++; } if(!timeForMore) // if time is over, the program executes the loop an stops asking questions. break; } JOptionPane.showMessageDialog(null, "You answered " + count + " out of " + question.length + " questions correctly."); int percent = (count*100)/question.length; JOptionPane.showMessageDialog(null, "Your Geography Quiz score is " + percent + " % "); class AnswerStore { // storing answers of each quiz in arrays String[] tectonicAnswers = { "Hellenic", "destructive", "100km", "Italy", "Wegner", "Mariana", "Sicily", "created", "constructive", "Mediterranean", "ggg", "ggg", "ggg" }; String[] riverAnswers = { "Gorges", "Meanders", "Levees", "Yes", "Less Economic Developed Countries", "crescent shaped lakes", "More Economic Developed Countries", "No", "River Discharge", "No", "", "", "" }; String[] rockAnswers = { "40km", "Igneous Rock", "Sedimentary", "Basalt", "Organic", "pressure", "Oolites", "Igneous", "dark black", "basalt", "", "", "" }; } }
Reply With Quote
Sponsored Links