Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy is the stored value always erased in my program
    text
    copied!<p>Ok, so I'm trying to finish our simple project for Data Strcutures but there is always some error that just keep showing up on my program. I have fixed some of them but there is this one that makes me want to give up. Maybe you guys could help me find the solution?</p> <p>Here is my code (class LogInSystem):</p> <pre><code> // NMQ import java.util.ArrayList; import java.util.Scanner; import java.util.Vector; public class LogInSystem { private static final int MAX_SEATS = 10; Vector&lt;String&gt; username = new Vector&lt;String&gt;(); ArrayList&lt;String&gt; password = new ArrayList&lt;String&gt;(); int p; String Username, Password, rUsername, rPassword; private Scanner input = new Scanner(System.in); public LogInSystem() { loginScreen(); } private void loginScreen() { boolean done = false; do { printMainMenu(); int choice = getMainMenuChoice(); switch (choice) { case 1: // Log In logIn(); break; case 2: // To Register register(); break; case 3: // Exit done = true; break; } } while (!done); } //Registration private void register() { System.out.println("Input a Username"); Username = input.next(); System.out.println("Input a Password"); Password = input.next(); System.out.println("... Registered!"); } //Log In private void logIn() { p = 0; System.out.println("Input a Username"); rUsername = input.next(); System.out.println("Input a Password"); rPassword = input.next(); // If the log in is successful it will got to the next menu if(rUsername.equals(Username)&amp;&amp; rPassword.equals(Password)) { System.out.println("... Logging In"); boolean done = false; String[] seats = new String[MAX_SEATS]; // the item list initializeItems(seats); // Printing of 2nd menu do { printMainMenu2(); int choice = getMainMenuChoice2(); // choice off of the main menu switch (choice) { case 1: // Adding Seat addSeat(seats); break; case 2: // Viewing Seat List viewSeatList(seats); break; case 3: // Exit done = true; break; } } while (!done); } else System.out.println("Invalid log in, please try again."); } private int getMainMenuChoice() { int choice; // choice entered boolean valid = false; // is choice valid? do { System.out.print("&gt;&gt;&gt;&gt;&gt; "); choice = cineplexError.readInt(); if (1 &lt;= choice &amp;&amp; choice &lt;= 4) { valid = true; } else { System.out.println("Invalid choice."); } } while (!valid); return choice; } private void printMainMenu() { System.out.println("\nMain Menu\n"); System.out.println("Press 1 to Log In"); System.out.println("Press 2 to Register"); System.out.println("Press 3 to Exit"); System.out.println(); } public static void main(String[] args) { new LogInSystem(); } int getMainMenuChoice2() { int choice; // choice entered boolean valid = false; // is choice valid? do { System.out.print("&gt;&gt;&gt;&gt;&gt; "); choice = cineplexError.readInt(); if (1 &lt;= choice &amp;&amp; choice &lt;= 4) { valid = true; } else { System.out.println("Invalid choice."); } } while (!valid); return choice; } void printMainMenu2() { System.out.println("\nMain Menu\n"); System.out.println("Press 1 to Reserve a Seat"); System.out.println("Press 2 to View the Seat List"); System.out.println("Press 3 to Exit Buying"); System.out.println(); } void initializeItems(String[] seats) { for (int i = 0; i &lt; seats.length; i++) { seats[i] = ""; } } void addSeat(String[] seats) { int seatIndex = findEmptySeatList(seats); // index of first empty item list if (seatIndex == seats.length) { System.out.println("Seat is already occupied. Sorry."); } else { String seat = getSeatName(); // seat's name seats[seatIndex] = seat; System.out.println(seat + " is on seat list #" + (seatIndex + 1)); } } int findEmptySeatList(String[] seat) { for (int i = 0; i &lt; seat.length; i++) { if (isEmpty(seat, i)) { return i; } } return seat.length; } boolean isEmpty(String[] seats, int seatIndex) { return seats[seatIndex].equals(""); } String getSeatName() { System.out.print("Enter the name of reservator: "); return cineplexError.readString(); } void viewSeatList(String[] seats) { System.out.println("\nSeat List\n"); for (int i = 0; i &lt; seats.length; i++) { System.out.println((i + 1) + ". " + seats[i]); } } } </code></pre> <p>Here is the other class (cineplexError):</p> <pre><code>// NMQ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class cineplexError { private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); private static String integerReprompt = "Invalid integer. Try again: "; private static String doubleReprompt = "Invalid double. Try again: "; private static String charReprompt = "Invalid character. Try again: "; public static String readString() { String s = null; try { s = in.readLine(); } catch (IOException ex) {} return s; } public static char readChar() { char c = 0; String s = null; try { s = in.readLine(); } catch (IOException ex) {} if (s.length() == 1) { c = s.charAt(0); // valid = true; } else { System.out.print(charReprompt); } return c; } public static int readInt() { int i = 0; boolean valid = false; try { i = Integer.parseInt(in.readLine()); } catch (IOException ex) { System.out.print(integerReprompt); } valid = true; return i; } public static double readDouble() { double d = 0.0; boolean valid = true; try { d = Double.parseDouble(in.readLine()); } catch (IOException ex) {} valid = true; valid = false; System.out.print(doubleReprompt); return d; } public void pause() { System.out.print("Press enter to continue..."); try { in.readLine(); } catch (IOException ex) {} } public static void setIntegerReprompt(String prompt) { integerReprompt = prompt; } public void setDoubleReprompt(String prompt) { doubleReprompt = prompt; } public void setCharReprompt(String prompt) { charReprompt = prompt; } } </code></pre> <hr> <p>The bug in the program is that whenever I reserve a seat and log out and log in again the name of the reservator or the name of the one that reserves a seat is being erased when I view the seat list. Should I put a control statement that makes the value stored permanently? Can you help me out? Thanks.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload