/******************************************************************************
* Program Name : Week 2 - Login Info
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This program will create usernames and passwords for
* students at OCC using their first and last name. The username will be
* the student's first two letters of their first name, followed by the
* first three letters of their last name, followed by a random digit
* 1 and 3. If either name is too short their full first/last name is used.
* All usernames are in all lowercase letters. The password will default to
* the user's first name (in all lower case letters). The usernames and
* passwords each in their own array. The user may create up to 10
* username/password combinations. Duplicate usernames are prevented by
* adding another digit (1, 2, or 3) onto the end of the duplicate username,
* thus creating a unique username. When the user stops creating usernames,
* all of the usernames and passwords are displayed on the screen.
*
* Methods:
* -------
* promptName - Prompts for a first and last name or quit value
* randomNumber - Generates a random number within range (1 through 3 inclusive)
* generateID - Generates the ID using first and last name
* generatePwd - Generates the passwords using their first name in lower case
* uniqueID - Goes through ID list confirming each ID is unique or replacing
* displayLogins - Displays a list of all the IDs and passwords
* Main - Reads the names, creates the login info and displays them
******************************************************************************/
import java.util.Random;
class LoginInfoTTWSkeleton
{
/**************************************************************************
* Method Name : LoginInfo - Main
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method will read a name entered by the user. It
* then creates a new String with the name centered for console output,
* and displays it.
*
* BEGIN main
* Init location to 0
* Clear screen
* Display input title
* Prompt name {prompt name method, returning name array}
* WHILE (name is array of two elements)
* Generate and assign ID to element in ID list {generate ID method}
* Generate and assign password to element in Pwd list {generate pwd method}
* Increment location
* IF (array is full)
* Set name to array of one element
* ELSE
* Prompt name {prompt name method}
* END IF
* END WHILE
* Check all IDs are unique {uniqueID method}
* Clear screen
* Display output title
* Display all login info {display logins method}
* END Read Name
**************************************************************************/
public static void main(String[] args)
{
//TODO Reads the names, creates the login info and displays them
}//end method main
//Input methods
/**************************************************************************
* Method Name : LoginInfo - Prompt Name
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method will prompt for the student's first
* name. If it's not the quit string, it'll prompt for the last name and
* return an array of the full name. Otherwise, it'll return a
* one-element array with quit string.
*
* BEGIN Prompt Name
* Prompt first name
* IF (first name isn't quit strig) THEN
* Instantiate two-element array
* Assign first name to element 0
* Prompt last name to element 1
* Return array of first and last names
* ELSE
* Return one-element array with quit string
* END IF
* END Prompt Names
**************************************************************************/
private static String[] promptName(String quitString)
{
//TODO Prompts the full first and last name
}//end method Prompt Name
//Calculation methods
/**************************************************************************
* Method Name : LoginInfo - Random Number
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method will generate a random number between
* given min and max.
*
* BEGIN Random Number
* Init number to 0
* IF (min >= max) THEN
* Set number to min
* ELSE
* Generate a random number between min and max and set it to number
* END IF
* Return number
* END Random number
**************************************************************************/
private static int randomNumber(int min, int max, Random generator)
{
//TODO Generates a random number within range (1 through 3 inclusive)
}//end method Random Number
/**************************************************************************
* Method Name : LoginInfo - Generate ID
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method will generate an ID using the student's
* first name, last name and a generated number.
*
* BEGIN Generate ID
* Init ID to an empty string
* Append to ID first two letters of first name
* Append to ID first three letters of last name
* Generate and append a random digit between min and max
* Return ID
* END Generate ID
**************************************************************************/
private static String generateID(String firstName, String lastName,
int min, int max, Random generator)
{
//TODO Generates the ID using first and last name
}//end method Generate ID
/**************************************************************************
* Method Name : LoginInfo - Generate Pwd
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method generates a password by converting the
* student's first name to lower case.
*
* BEGIN Generate Pwd
* Return first name in lower case
* END Generate Pwd
**************************************************************************/
private static String generatePwd(String firstName)
{
//TODO Generates the passwords using their first name in lower case
}//end method Generate Pwd
//Data Management methods
/**************************************************************************
* Method Name : LoginInfo - Unique ID
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method checks through each element of the ID
* list, comparing the current ID with the remaining IDs. If there is
* a duplicate, the compared ID gets changed by appending another
* random digit.
*
* BEGIN Unique ID
* FOR (each element left in ID list)
* FOR (each element left in ID list)
* IF (ID matches element) THEN
* Append a random number in range to ID at current element
* END IF
* END FOR
* END FOR
* END Unique ID
**************************************************************************/
private static void uniqueID(String[] IDList, int min, int max)
{
for (int ID = 0; ID < IDList.length - 1; ID++)
{
for (int comparedID = ID + 1; comparedID < IDList.length; comparedID++)
{
if (IDList[ID].equals(IDList[comparedID]))
{
IDList[comparedID] = IDList[comparedID].append(randomNumber(min, max));
}
}
}
}//end class Unique ID
//Output methods
/**************************************************************************
* Method Name : LoginInfo - Display Logins
* Author : Terry Weiss
* Date : January 29, 2016
* Course/Section : CSC264 - 001
* Program Description: This method displays each user ID and password
*
* BEGIN Display Logins
* Init ID to 0
* WHILE (ID in list isn't quit value and ID is less than max length)
* Display ID
* Display password at ID
* Increment ID
* END WHILE
* END Display Logins
**************************************************************************/
private static void displayLogins(String[] IDList, String[] pwdList)
{
//TODO Displays a list of all the IDs and passwords
}//end method Display Logins
}//end class LoginInfoTTW
Comments