/** * @param userList * @return Student Register new student by prompting them for user info */ public static Student registerStudentAccount(LinkedList<User> userList) { String username = ""; String password = ""; String first = ""; String last = ""; String GNum = ""; String phoneNum = ""; String email = ""; String address = ""; User aStudent = null; // prompt for username until available username is entered do { username = JOptionPane.showInputDialog("Please enter desired username"); aStudent = validateUsername(username, userList); if (aStudent != null) { JOptionPane.showMessageDialog(null, "This username is already in use!\nPlease try again"); } } while (aStudent != null); // create student object aStudent = new Student(username); // prompt for password until valid entry is given do { password = JOptionPane.showInputDialog("Please enter desired password"); if (!aStudent.setPassword(password)) { JOptionPane.showMessageDialog( null, "Password does not meet requirements. Minimum 8 characters\nTry Again.", "Error", JOptionPane.ERROR_MESSAGE); } } while (!aStudent.setPassword(password)); // prompt for first name until valid entry is made do { first = JOptionPane.showInputDialog("Please enter your first name"); if (!aStudent.setFirstName(first)) { JOptionPane.showMessageDialog(null, "Invalid entry \nPlease try again."); } } while (!aStudent.setFirstName(first)); // prompt for last name until valid entry is made do { last = (JOptionPane.showInputDialog("Please enter your last name")); if (!aStudent.setLastName(last)) { JOptionPane.showMessageDialog(null, "Invalid entry \nPlease try again"); } } while (!aStudent.setLastName(last)); // prompt for G-Number until valid entry is made do { GNum = (JOptionPane.showInputDialog("Please enter your G-number")); if (!aStudent.setgNumber(GNum)) { JOptionPane.showMessageDialog( null, "Invalid entry! Please write your GNumber in this format 00XXXXXX \nPlease try again", "Error", JOptionPane.ERROR_MESSAGE); } } while (!aStudent.setgNumber(GNum)); // prompt for phone number until valid entry is made do { phoneNum = (JOptionPane.showInputDialog("Please enter your phone number")); if (!aStudent.setPhoneNumber(phoneNum)) { JOptionPane.showMessageDialog( null, "Invalid entry. Please write your phone number in XXXXXXXXXX format \nPlease try again", "Error", JOptionPane.ERROR_MESSAGE); } } while (!aStudent.setPhoneNumber(phoneNum)); // prompt for email until valid entry is made do { email = (JOptionPane.showInputDialog("Please enter your Email address")); if (!aStudent.setEmail(email)) { JOptionPane.showMessageDialog( null, "Invalid entry, correct format: [email protected] \nPlease try again", "Error", JOptionPane.ERROR_MESSAGE); } } while (!aStudent.setEmail(email)); // prompt for address until valid entry is made Student nStudent = (Student) aStudent; do { address = (JOptionPane.showInputDialog("Please enter your shipping address")); if (!nStudent.setShippingAddress(address)) { JOptionPane.showMessageDialog(null, "Invalid entry \nPlease try again"); } } while (!nStudent.setShippingAddress(address)); JOptionPane.showMessageDialog(null, "Your account has been created"); try { PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("accounts.txt", true))); pw.println( "\r\n-" + aStudent.getFirstName() + "," + aStudent.getLastName() + "," + aStudent.getgNumber() + "," + aStudent.getPassword() + "," + aStudent.getPhoneNumber() + "," + aStudent.getEmail() + "," + aStudent.getUsername() + "," + nStudent.getShippingAddress()); pw.close(); } catch (IOException e) { e.printStackTrace(); } userList.add(aStudent); return nStudent; }
/** @param userList Populate system with list of students accounts from text file */ public static void populateStudentAccounts(LinkedList<User> userList) { Scanner inputStream = null; // open text file of accounts try { inputStream = new Scanner(new FileInputStream("accounts.txt")); // System.out.println("accounts file read"); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, "The file \"accounts.txt\" could not be found"); JOptionPane.showMessageDialog(null, "The system will now exit"); System.exit(0); } // Pull line of text to generate a student while (inputStream.hasNextLine()) { String s1 = inputStream.nextLine(); // locate first name int fNsameStart = (s1.indexOf("-") + 1); int fNameEnd = (s1.indexOf(",")); String fName = s1.substring(fNsameStart, fNameEnd); // locate Last name int lNameStart = (s1.indexOf(",", fNameEnd) + 1); int lNameEnd = (s1.indexOf(",", lNameStart)); String lName = s1.substring(lNameStart, lNameEnd); // locate gNumber int gNumberStart = (s1.indexOf(",", lNameEnd) + 1); int gNumberEnd = (s1.indexOf(",", gNumberStart)); String gNumber = s1.substring(gNumberStart, gNumberEnd); // locate password int passwordStart = (s1.indexOf(",", gNumberEnd) + 1); int passwordEnd = (s1.indexOf(",", passwordStart)); String password = s1.substring(passwordStart, passwordEnd); // locate phone number int phoneNumberStart = (s1.indexOf(",", passwordEnd + 1)); int phoneNumberEnd = (s1.indexOf(",", phoneNumberStart)); String phoneNumber = s1.substring(phoneNumberStart, phoneNumberEnd); // locate email int emailStart = (s1.indexOf(",", phoneNumberEnd) + 1); int emailEnd = (s1.indexOf(",", emailStart)); String email = s1.substring(emailStart, emailEnd); // locate username int usernameStart = (s1.indexOf(",", emailEnd) + 1); int usernameEnd = (s1.indexOf(",", usernameStart)); String username = s1.substring(usernameStart, usernameEnd); // locate address int addressStart = (s1.indexOf(",", usernameEnd) + 1); String address = s1.substring(addressStart); // create student object and populate info User aStudent = new Student(username); aStudent.setFirstName(fName); aStudent.setLastName(lName); aStudent.setgNumber(gNumber); aStudent.setPassword(password); aStudent.setPhoneNumber(phoneNumber); aStudent.setEmail(email); if (aStudent instanceof Student) { ((Student) aStudent).setShippingAddress(address); } // add Student to list userList.add(aStudent); System.out.println(userList.size()); } }