203k views
4 votes
This question involves the implementation of the PasswordGenerator class, which generates strings containing initial passwords for online accounts. The PasswordGenerator class supports the following functions:

- Creating a password consisting of a specified prefix, a period, and a randomly generated numeric portion of specified length
- Creating a password consisting of the default prefix "A", a period, and a randomly generated numeric portion of specified length
- Reporting how many passwords have been generated

The following table contains a sample code execution sequence and the corresponding results: Statements, Possible Value Returned (blank if no value returned), Comment

PasswordGenerator pw1 = new
PasswordGenerator(4, "chs");
(blank)
Passwords generated by the pw1 object are composed of the prefix "chs", a period, and 4 randomly-generated digits.
pw1.pwCount();
0
No passwords have been generated yet.
pw1.pwGen();
"chs.3900"
A possible password generated by the pw1 object
pw1.pwGen();
"chs.1132"
A possible password generated by the pw2 object
pw1.pwCount();
2
Two passwords have been generated. Both contain the prefix "chs" and 4 digits.
PasswordGenerator pw2 = new
PasswordGenerator(6);

Passwords generated by the pw2 object are composed of the default prefix "A", a period, and 6 randomly generated digits.
pw2.pwCount();
2
Two passwords have been generated. Both contain the prefix "chs" and 4 digits.
pw2.pwGen();
"A.843055"
A possible password generated by the pw2 object
pw2.pwCount();
3
Three passwords have been generated. Two contain the prefix "chs" and 4 digits, and the third contains the default prefix "A" and 6 digits.
pw1.pwCount();
3
Three passwords have been generated. The same value is returned by pwCount for all objects of the PasswordGenerator class.

Write the complete PasswordGenerator class. Your implementation must meet all specifications and conform to the example.

1 Answer

3 votes

The following code will be used for the PasswordGenerator class.

Step-by-step explanation:

import java.util.Random;

public class PasswordGenerator {

private static int passwordsGenerated =0;

private static Random random = new Random();

private String prefix;

private int length;

public PasswordGenerator(int length,String prefix) {

this.prefix = prefix;

this.length = length;

}

public PasswordGenerator(int length) {

this.prefix = "A";

this.length = length;

}

public String pwGen(){

String pwd= this.prefix+".";

for(int i=1;i<=this.length;i++){

pwd+=random.nextInt(10);

}

passwordsGenerated+=1;

return pwd;

}

public int pwCount(){

return passwordsGenerated;

}

public static void main(String[] args) {

PasswordGenerator pw1 = new PasswordGenerator(4,"chs");

System.out.println(pw1.pwCount());

System.out.println(pw1.pwGen());

System.out.println(pw1.pwGen());

System.out.println(pw1.pwCount());

PasswordGenerator pw2 = new PasswordGenerator(6);

System.out.println(pw2.pwCount());

System.out.println(pw2.pwGen());

System.out.println(pw2.pwCount());

System.out.println(pw1.pwCount());

}

}

User Valentine Shi
by
7.3k points