Advertisement
Guest User

Untitled

a guest
Jun 11th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.40 KB | None | 0 0
  1. package domaci09;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5.  
  6. public class Domaci01 {
  7.    
  8.     // Kolekcije u kojima se čuvaju podaci o korisnicima
  9.     public static ArrayList<String> firstNames = new ArrayList<String>();
  10.     public static ArrayList<String> lastNames = new ArrayList<String>();
  11.     public static ArrayList<String> usernames = new ArrayList<String>();
  12.     public static ArrayList<String> passwords = new ArrayList<String>();
  13.     public static ArrayList<String> emails = new ArrayList<String>();
  14.     public static ArrayList<String> ids = new ArrayList<String>();
  15.    
  16.     public static Scanner scanner = new Scanner(System.in);
  17.        
  18.     /**
  19.      * Validira ime (počinje velikim slovom)
  20.      */
  21.     public static boolean isFirstNameValid(String firstName) {
  22.         if (firstName.equals("")) {
  23.             return false;
  24.         }
  25.        
  26.         return Character.isUpperCase(firstName.charAt(0));
  27.     }
  28.    
  29.     /**
  30.      * Validira prezime (počinje velikim slovom)
  31.      */
  32.     public static boolean isLastNameValid(String lastName) {
  33.         if (lastName.equals("")) {
  34.             return false;
  35.         }
  36.        
  37.         return Character.isUpperCase(lastName.charAt(0));
  38.     }
  39.    
  40.     /**
  41.      * Validira korisničko ime (sadrži samo slova)
  42.      */
  43.     public static boolean isUsernameValid(String username) {
  44.         if (username.equals("")) {
  45.             return false;
  46.         }
  47.        
  48.         boolean containsLettersOnly = true;
  49.         for (int i = 0; i < username.length(); i++) {
  50.             if (!Character.isLetter(username.charAt(i))) {
  51.                 containsLettersOnly = false;
  52.                 break;
  53.             }
  54.         }
  55.        
  56.         return containsLettersOnly;
  57.     }
  58.    
  59.     /**
  60.      * Validira lozinku (sadrži bar jedno malo slovo, veliko slovo, cifru i specijalni znak
  61.      * i ima između 6 i 12 znakova)
  62.      */
  63.     public static boolean isPasswordValid(String password) {
  64.         if (password.equals("")) {
  65.             return false;
  66.         }
  67.        
  68.         boolean isValidLength = password.length() >= 6 && password.length() <= 12;
  69.        
  70.         boolean containsDigit = false;
  71.         for (int i = 0; i < password.length(); i++) {
  72.             if (Character.isDigit(password.charAt(i))) {
  73.                 containsDigit = true;
  74.                 break;
  75.             }
  76.         }
  77.        
  78.         boolean containsLowerCaseLetter = false;
  79.         for (int i = 0; i < password.length(); i++) {
  80.             if (Character.isLowerCase(password.charAt(i))) {
  81.                 containsLowerCaseLetter = true;
  82.                 break;
  83.             }
  84.         }
  85.        
  86.         boolean containsUpperCaseLetter = false;
  87.         for (int i = 0; i < password.length(); i++) {
  88.             if (Character.isUpperCase(password.charAt(i))) {
  89.                 containsUpperCaseLetter = true;
  90.                 break;
  91.             }
  92.         }
  93.        
  94.         boolean containsSpecialCharacter = false;
  95.         for (int i = 0; i < password.length(); i++) {
  96.             if (!Character.isLetter(password.charAt(i)) && !Character.isDigit(password.charAt(i))) {
  97.                 containsSpecialCharacter = true;
  98.                 break;
  99.             }
  100.         }
  101.        
  102.         return isValidLength && containsDigit && containsLowerCaseLetter && containsUpperCaseLetter && containsSpecialCharacter;
  103.     }
  104.    
  105.     /**
  106.      * Validira e-mail adresu (sadrži znak @)
  107.      */
  108.     public static boolean isEmailValid(String email) {
  109.         if (email.equals("")) {
  110.             return false;
  111.         }
  112.        
  113.         return email.contains("@");
  114.     }
  115.    
  116.     /**
  117.      * Validira JMBG (ima tačno 13 cifara)
  118.      */
  119.     public static boolean isIDValid(String id) {
  120.         if (id.equals("")) {
  121.             return false;
  122.         }
  123.        
  124.         boolean containsDigitsOnly = true;
  125.         for (int i = 0; i < id.length(); i++) {
  126.             if (!Character.isDigit(id.charAt(i))) {
  127.                 containsDigitsOnly = false;
  128.                 break;
  129.             }
  130.         }
  131.        
  132.         return id.length() == 13 && containsDigitsOnly;
  133.     }
  134.    
  135.     /**
  136.      * Registracija korisnika
  137.      */
  138.     public static void register() {
  139.         String firstName;
  140.         do {
  141.             System.out.print("First Name: ");
  142.             firstName = scanner.nextLine();
  143.         } while (!isFirstNameValid(firstName));
  144.         firstNames.add(firstName);
  145.        
  146.         String lastName;
  147.         do {
  148.             System.out.print("Last Name: ");
  149.             lastName = scanner.nextLine();
  150.         } while (!isLastNameValid(lastName));
  151.         lastNames.add(lastName);
  152.        
  153.         String username;
  154.         do {
  155.             System.out.print("Username: ");
  156.             username = scanner.nextLine();
  157.         } while (!isUsernameValid(username));
  158.         usernames.add(username);
  159.  
  160.         String password;
  161.         do {
  162.             System.out.print("Password: ");
  163.             password = scanner.nextLine();
  164.         } while (!isPasswordValid(password));
  165.         passwords.add(password);
  166.        
  167.         String email;
  168.         do {
  169.             System.out.print("E-mail: ");
  170.             email = scanner.nextLine();
  171.         } while (!isEmailValid(email));
  172.         emails.add(email);
  173.        
  174.         String id;
  175.         do {
  176.             System.out.print("ID: ");
  177.             id = scanner.nextLine();
  178.         } while (!isIDValid(id));
  179.         ids.add(id);
  180.     }
  181.    
  182.     /**
  183.      * Prikaz svih korisnika
  184.      */
  185.     public static void list() {
  186.        
  187.         System.out.printf("|  First Name  |     Last Name     |   Username   |   Password   |          E-Mail          |       ID      |\n");
  188.         for (int i = 0; i < usernames.size(); i++) {
  189.             System.out.printf("| %12s | %17s | %12s | %12s | %24s | %13s |\n", firstNames.get(i), lastNames.get(i), usernames.get(i), passwords.get(i), emails.get(i), ids.get(i));
  190.         }
  191.     }
  192.    
  193.     /**
  194.      * Prijavljivanje korisnika
  195.      */
  196.     public static void login() {
  197.         System.out.print("Username: ");
  198.         String username = scanner.nextLine();
  199.         System.out.print("Password: ");
  200.         String password = scanner.nextLine();
  201.        
  202.         for (int i = 0; i < usernames.size(); i++) {
  203.             if (usernames.get(i).equals(username) && passwords.get(i).equals(password)) {
  204.                 System.out.println("Hello " + firstNames.get(i) + " " + lastNames.get(i) + ".");
  205.                 return;
  206.             }
  207.         }
  208.         System.out.println("Wrong username or password.");
  209.     }
  210.  
  211.     public static void main(String[] args) {
  212.        
  213.         firstNames.add("Marko");
  214.         lastNames.add("Marković");
  215.         usernames.add("marko.markovic");
  216.         passwords.add("1!aAAA");
  217.         emails.add("marko.markovic@gmail.com");
  218.         ids.add("1234567890123");
  219.        
  220.         firstNames.add("Nikola");
  221.         lastNames.add("Nikolić");
  222.         usernames.add("nikola.nikolic");
  223.         passwords.add("1!aAAA");
  224.         emails.add("nikola.nikolic@gmail.com");
  225.         ids.add("1234567890123");
  226.        
  227.         String answer = null;
  228.        
  229.         do {
  230.             // Prikaz menija
  231.             System.out.println("Menu:");
  232.             System.out.println("1. Register");
  233.             System.out.println("2. List");
  234.             System.out.println("3. Login");
  235.             System.out.println("x. Exit");
  236.            
  237.             answer = scanner.nextLine();
  238.            
  239.             // Poziv izabrane funkcije
  240.             switch (answer) {
  241.             case "1":
  242.                 register();
  243.                 break;
  244.             case "2":
  245.                 list();
  246.                 break;
  247.             case "3":
  248.                 login();
  249.                 break;
  250.             case "x":
  251.                 break;
  252.             default:
  253.                 System.out.println("Wrong option. Please try again.");
  254.             }
  255.            
  256.         } while (!answer.equals("x"));
  257.        
  258.         scanner.close();
  259.     }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement