q3
import java.util.HashMap;
import java.util.Scanner;
public class LoginConsole {
// Simulated database for storing user credentials
static HashMap<String, String> userDatabase = new HashMap<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Pre-register a user for testing login
userDatabase.put("user2024", "Secure@123");
System.out.println("Welcome to the Login Console");
// Input for User ID
System.out.print("Enter User ID (5-20 characters): ");
String userID = scanner.nextLine();
if (userID.length() < 5 || userID.length() > 20) {
System.out.println("Error: User ID must be between 5 and 20 characters.");
return;
}
// Input for Password
System.out.print("Enter Password (Max 30 characters, include upper case, lower case, and special character): ");
String password = scanner.nextLine();
if (password.length() > 30 || !isValidPassword(password)) {
System.out.println("Error: Password must be max 30 characters and include at least one uppercase letter, one lowercase letter, and one special character.");
return;
}
// Check credentials
if (userDatabase.containsKey(userID) && userDatabase.get(userID).equals(password)) {
System.out.println("Login Successful!");
showDashboard(userID);
} else {
System.out.println("Error: Invalid User ID or Password.");
}
scanner.close();
}
// Validate password requirements
private static boolean isValidPassword(String password) {
boolean hasUppercase = false;
boolean hasLowercase = false;
boolean hasSpecialChar = false;
for (char c : password.toCharArray()) {
if (Character.isUpperCase(c)) {
hasUppercase = true;
} else if (Character.isLowerCase(c)) {
hasLowercase = true;
} else if (!Character.isLetterOrDigit(c)) {
hasSpecialChar = true;
}
}
return hasUppercase && hasLowercase && hasSpecialChar;
}
// Simulate a dashboard
private static void showDashboard(String userID) {
System.out.println("\nWelcome to the Dashboard, " + userID + "!");
System.out.println("Role-Specific Options:");
System.out.println("1. View Profile");
System.out.println("2. Settings");
System.out.println("3. Logout");
}
}