Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- this program requires either zero or one command line argument
- java filename OUTPUT: program generates a password
- java filename [string] OUTPUT: program evaluates whether [string] is a valid password
- java filename [string] [string] ... OUTPUT: program shows user manual page to aid in program usage
- */
- public class AllAboutPasswords{
- import java.util.scanner;
- import static java.lang.System.*;
- /*********** NOTE ***********/
- /* YOU DO NOT NEED TO EDIT THE MAIN METHOD */
- public static void main( String[] args )
- {
- if (args.length == 0) // Generate password
- {
- System.out.println("Your new password is: " + generateValidPassword());
- }
- else if (args.length == 1) // Test password
- {
- System.out.print("The password you entered, " + args[0]);
- if (isValidPassword(args[0]))
- {
- System.out.println(" is a valid password");
- }
- else
- {
- System.out.println(" is NOT a valid password");
- }
- }
- else // To many command line arguments, educate user
- {
- System.out.println();
- System.out.println("This program takes either zero or one parameter.");
- System.out.println("When run with zero parameters it will generate a password.");
- System.out.print("When run with one parameter it will test whether");
- System.out.println(" the parameter is a valid password.");
- System.out.println();
- System.out.println("A valid password has the following four properties:");
- System.out.println("1. A valid password contains between 8 and 14 characters, inclusive.");
- System.out.println("2. A valid password contains two or more uppercase letters [A-Z].");
- System.out.println("3. A valid password contains two or more lowercase letters [a-z]");
- System.out.println("4. A valid password contains two or more numbers [0-9]");
- System.out.println();
- System.out.println();
- }
- }
- // Evaluate a password input as a string
- static private boolean isValidPassword(String testPassword)
- {
- boolean returnValue = false;
- if (testPassword.length() > 8 && testPassword.length() < 14)
- {
- boolean t1 = false, t2 = false, t3 = false, t4 = false, t5 = false, t6 = false;
- while (t1 = false && t2 = false && t3 = false && t4 = false && t5 = false && t6 = false)
- {
- boolean flip = true;
- while(flip)
- {
- n = charAt(testPassword.length() - 1);
- flip = false;
- }
- while (n > -1)
- {
- int times = 0;
- if (CharacterIsNumber(testPassword.charAt(n)))
- {
- times += 1;
- n -= 1;
- }
- else if (CharacterIsCapitalLetter(testPassword.charAt(n)))
- {
- times += 1;
- n -= 1;
- }
- else if (CharacterIsLowercaseLetter(testPassword.charAt(n)
- {
- times += 1;
- n -= 1;
- }
- }
- if (times >= 6)
- {
- t1 = true;
- t2 = true;
- t3 = true;
- t4 = true;
- t5 = true;
- t6 = true;
- }
- else
- {
- out.println("Test 1: " + t1);
- out.println("Test 2: " + t2);
- out.println("Test 3: " + t3);
- out.println("Test 4: " + t4);
- out.println("Test 5: " + t5);
- out.println("Test 6: " + t6);
- break;
- }
- returnValue = true;
- }
- }
- else
- {
- }
- // Write your code here, use Helper Methods, SEE EXAMPLES BELOW.
- // HINT 1: you get CharacterIsNumber(char testChar) as an example.
- //you will need to write CharacterIsCapitalLetter() and CharacterIsLowercaseLetter()
- /*
- //Hint 2: Test Code for CharacterIsNumber method
- System.out.println();
- int testPasswordCounter = 0;
- while(testPasswordCounter < testPassword.length())
- {
- System.out.print(testPassword.charAt(testPasswordCounter)+" is a number? ");
- System.out.println(CharacterIsNumber(testPassword.charAt(testPasswordCounter)));
- testPasswordCounter++;
- }
- */
- return returnValue;
- }
- // Generate a password and return it as a string
- static private String generateValidPassword()
- {
- String returnString = "";
- // Write your code here, use Helper Methods, SEE EXAMPLES BELOW.
- // HINT 3: you get GenerateNumber() as an example.
- //you will need to write GenerateCapitalLetter() and GenerateLowercaseLetter()
- int a, b;
- a = GenerateNumber();
- b = GenerateNumber();
- char c, d, e, f;
- c = GenerateCaptialLetter();
- d = GenerateCapitalLetter();
- e = GenerateLowercaseLetter();
- f = GenerateLowercaseLetter();
- g = GenerateNumber();
- h = GenerateNumber();
- returnString = a + b + c + d + e + f + g + h;
- /* //Hint 4: Test Code for GenerateNumber() method
- int i = 0;
- while(i < 100)
- {
- System.out.println(GenerateNumber());
- i++;
- }
- */
- return returnString;
- }
- //Returns an Integer between Min and Max, inclusive.
- static private int randInt(int Min, int Max)
- {
- int randomNum;
- randomNum = Min + (int)(Math.random() * ((Max - Min) + 1));
- return randomNum;
- }
- // Returns a random number between 0 and 9 as a char
- static private char GenerateNumber()
- {
- char returnChar = ' ';
- switch (randInt(0, 9))
- {
- case 0:
- returnChar = '0';
- break;
- case 1:
- returnChar = '1';
- break;
- case 2:
- returnChar = '2';
- break;
- case 3:
- returnChar = '3';
- break;
- case 4:
- returnChar = '4';
- break;
- case 5:
- returnChar = '5';
- break;
- case 6:
- returnChar = '6';
- break;
- case 7:
- returnChar = '7';
- break;
- case 8:
- returnChar = '8';
- break;
- case 9:
- returnChar = '9';
- break;
- default:
- System.out.println("Error Random int outside expected values");
- }
- return returnChar;
- }
- // Tests to see if an input char is a Number
- static private boolean CharacterIsNumber(char testChar)
- {
- boolean returnValue = false;
- switch (testChar)
- {
- case '0':
- returnValue = true;
- break;
- case '1':
- returnValue = true;
- break;
- case '2':
- returnValue = true;
- break;
- case '3':
- returnValue = true;
- break;
- case '4':
- returnValue = true;
- break;
- case '5':
- returnValue = true;
- break;
- case '6':
- returnValue = true;
- break;
- case '7':
- returnValue = true;
- break;
- case '8':
- returnValue = true;
- break;
- case '9':
- returnValue = true;
- break;
- }
- return returnValue;
- }
- // Returns a random Capital letter as a char
- static private char GenerateCapitalLetter()
- {
- switch(randInt(1, 26))
- case 1:
- char returnChar = 'A';
- case 2:
- char returnChar = 'B';
- case 3:
- char returnChar = 'C';
- case 4:
- char returnChar = 'D';
- case 5:
- char returnChar = 'E';
- case 6:
- char returnChar = 'F';
- case 7:
- char returnChar = 'G';
- case 8:
- char returnChar = 'H';
- case 9:
- char returnChar = 'I';
- case 10:
- char returnChar = 'J';
- case 11:
- char returnChar = 'K';
- case 12:
- char returnChar = 'L';
- case 13:
- char returnChar = 'M';
- case 14:
- char returnChar = 'N';
- case 15:
- char returnChar = 'O';
- case 16:
- char returnChar = 'P';
- case 17:
- char returnChar = 'Q';
- case 18:
- char returnChar = 'R';
- case 19:
- char returnChar = 'S';
- case 20:
- char returnChar = 'T';
- case 21:
- char returnChar = 'U';
- case 22:
- char returnChar = 'V';
- case 23:
- char returnChar = 'W';
- case 24:
- char returnChar = 'X';
- case 25:
- char returnChar = 'Y';
- case 26:
- char returnChar = 'Z';
- // Write your code here
- // HINT: look at the GenerateNumber() method
- // HINT: think of how to modify GenerateNumber() to generate a Capital letter
- return returnChar;
- }
- // Returns a random Lowercase letter as a char
- static private char GenerateLowercaseLetter()
- {
- switch(randInt(1, 26))
- case 1:
- char returnChar = 'a';
- case 2:
- char returnChar = 'b';
- case 3:
- char returnChar = 'c';
- case 4:
- char returnChar = 'd';
- case 5:
- char returnChar = 'e';
- case 6:
- char returnChar = 'f';
- case 7:
- char returnChar = 'g';
- case 8:
- char returnChar = 'h';
- case 9:
- char returnChar = 'i';
- case 10:
- char returnChar = 'j';
- case 11:
- char returnChar = 'k';
- case 12:
- char returnChar = 'l';
- case 13:
- char returnChar = 'm';
- case 14:
- char returnChar = 'n';
- case 15:
- char returnChar = 'o';
- case 16:
- char returnChar = 'p';
- case 17:
- char returnChar = 'q';
- case 18:
- char returnChar = 'r';
- case 19:
- char returnChar = 's';
- case 20:
- char returnChar = 't';
- case 21:
- char returnChar = 'u';
- case 22:
- char returnChar = 'v';
- case 23:
- char returnChar = 'w';
- case 24:
- char returnChar = 'x';
- case 25:
- char returnChar = 'y';
- case 26:
- char returnChar = 'z';
- // Write your code here
- // HINT: look at the GenerateNumber() method
- // HINT: think of how to modify GenerateNumber() to generate a lowercase letter
- return returnChar;
- }
- // Tests to see if an input char is a Capital letter
- static private boolean CharacterIsCapitalLetter(char testChar)
- {
- boolean returnValue = false;
- switch(char testChar)
- {
- case 'A':
- returnValue = true;
- break;
- case 'B':
- returnValue = true;
- break;
- case 'C':
- returnValue = true;
- break;
- case 'D':
- returnValue = true;
- break;
- case 'E':
- returnValue = true;
- break;
- case 'F':
- returnValue = true;
- break;
- case 'G':
- returnValue = true;
- break;
- case 'H':
- returnValue = true;
- break;
- case 'I':
- returnValue = true;
- break;
- case 'J':
- returnValue = true;
- break;
- case 'K':
- returnValue = true;
- break;
- case 'L':
- returnValue = true;
- break;
- case 'M':
- returnValue = true;
- break;
- case 'N':
- returnValue = true;
- break;
- case 'O':
- returnValue = true;
- break;
- case 'P':
- returnValue = true;
- break;
- case 'Q':
- returnValue = true;
- break;
- case 'R':
- returnValue = true;
- break;
- case 'S':
- returnValue = true;
- break;
- case 'T':
- returnValue = true;
- break;
- case 'U':
- returnValue = true;
- break;
- case 'V':
- returnValue = true;
- break;
- case 'W':
- returnValue = true;
- break;
- case 'X':
- returnValue = true;
- break;
- case 'Y':
- returnValue = true;
- break;
- case 'Z':
- returnValue = true;
- break;
- }
- // Write your code here
- // HINT: look at the CharacterIsNumber(char testChar) method
- // HINT: think of how to modify CharacterIsNumber(char testChar) to detect capital letters
- return returnValue;
- }
- // Tests to see if an input char is a lowercase letter
- static private boolean CharacterIsLowercaseLetter(char testChar)
- {
- boolean returnValue = false;
- switch(char testChar)
- {
- case 'a':
- returnValue = true;
- break;
- case 'b':
- returnValue = true;
- break;
- case 'c':
- returnValue = true;
- break;
- case 'd':
- returnValue = true;
- break;
- case 'e':
- returnValue = true;
- break;
- case 'f':
- returnValue = true;
- break;
- case 'g':
- returnValue = true;
- break;
- case 'h':
- returnValue = true;
- break;
- case 'i':
- returnValue = true;
- break;
- case 'j':
- returnValue = true;
- break;
- case 'k':
- returnValue = true;
- break;
- case 'l':
- returnValue = true;
- break;
- case 'm':
- returnValue = true;
- break;
- case 'n':
- returnValue = true;
- break;
- case 'o':
- returnValue = true;
- break;
- case 'p':
- returnValue = true;
- break;
- case 'q':
- returnValue = true;
- break;
- case 'r':
- returnValue = true;
- break;
- case 's':
- returnValue = true;
- break;
- case 't':
- returnValue = true;
- break;
- case 'u':
- returnValue = true;
- break;
- case 'v':
- returnValue = true;
- break;
- case 'w':
- returnValue = true;
- break;
- case 'x':
- returnValue = true;
- break;
- case 'y':
- returnValue = true;
- break;
- case 'z':
- returnValue = true;
- break;
- }
- // Write your code here
- // HINT: look at the CharacterIsNumber(char testChar) method
- // HINT: think of how to modify CharacterIsNumber(char testChar) to detect lowercase letters
- return returnValue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement