From 01b8569c04799dea04bd7ae76fc30da2ec66cec5 Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:19:17 +0330 Subject: [PATCH 1/9] main method implemented --- Answers/40230212070/ResumeMaker.java | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Answers/40230212070/ResumeMaker.java diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java new file mode 100644 index 0000000..f82700b --- /dev/null +++ b/Answers/40230212070/ResumeMaker.java @@ -0,0 +1,54 @@ +import java.util.ArrayList; +import java.util.Scanner; + +public class ResumeMaker { + public static void main(String[] args){ + Scanner scanner=new Scanner(System.in); + String firstName,lastName,phone="",userId="",interest; + ArrayList interests=new ArrayList<>(); + int shift =0; + System.out.println("Welcome to the Resume Maker!"); + System.out.print("Enter your first name: "); + firstName = scanner.nextLine(); + System.out.print("Enter your last name: "); + lastName = scanner.nextLine(); + String fullName = fullName(firstName, lastName); + phone = getPhoneNumber(scanner); + userId = getUserId(scanner); + interests = getInterests(scanner); + String choice; + do{ System.out.println("\nHow would you like to see your information?"); + System.out.println("1. Normal"); + System.out.println("2. Encrypted (enter a shift value)"); + System.out.println("3. Exit"); + choice = scanner.nextLine(); + switch (choice){ + + switch (choice) { + case "1": + System.out.println("\nYour information:"); + System.out.println(userFullInformation(fullName, phone, userId, interests)); + break; + case "2": + do { + System.out.print("Enter a shift value for encryption (1-25): "); + String inputShift = scanner.nextLine(); + if (!isInteger(inputShift) ||shift < 1 || shift > 25) { + System.out.println("Invalid shift value. Please enter a number between 1 and 25."); + } else { + shift = Integer.parseInt(inputShift); + } + } while (shift < 1 || shift > 25); + String encodedInfo = informationEncoder(userFullInformation(fullName, phone, userId, interests), shift); + System.out.println("\nYour encoded information:"); + System.out.println(encodedInfo); + break; + case "3": + System.out.println("Thank you for using the Resume Maker!"); + break; + default: + System.out.println("Invalid choice. Please enter 1, 2, or 3."); + } + } while (!choice.equals("3")); + } +} From da59166180f0f9e4fc117b4070e15ed38fcb49f3 Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:20:16 +0330 Subject: [PATCH 2/9] isInteger method implemented --- Answers/40230212070/ResumeMaker.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index f82700b..f582440 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -52,3 +52,9 @@ public static void main(String[] args){ } while (!choice.equals("3")); } } + static boolean isInteger(String str) { + if (str == null || str.isEmpty()) { + return false; + } + return str.matches("\\d+"); + } \ No newline at end of file From 5bbdf4ee8f85d5d79729b546b480fbee590e7624 Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:24:11 +0330 Subject: [PATCH 3/9] fullName method implemented --- Answers/40230212070/ResumeMaker.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index f582440..afe2efa 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -57,4 +57,12 @@ static boolean isInteger(String str) { return false; } return str.matches("\\d+"); - } \ No newline at end of file + } + static String fullName(String FirstName , String LastNAme){ + FirstName=FirstName.toLowerCase(); + LastNAme=LastNAme.toLowerCase(); + String newFirstName=FirstName.substring(0,1).toUpperCase()+FirstName.substring(1); + String newLastName=LastNAme.substring(0,1).toUpperCase()+LastNAme.substring(1); + return newFirstName+" "+newLastName; + } + \ No newline at end of file From cf691855d3b055422965c1e18916dfa6e5d4913d Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:25:05 +0330 Subject: [PATCH 4/9] getPhonenumber method implemented --- Answers/40230212070/ResumeMaker.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index afe2efa..43fb687 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -65,4 +65,15 @@ static String fullName(String FirstName , String LastNAme){ String newLastName=LastNAme.substring(0,1).toUpperCase()+LastNAme.substring(1); return newFirstName+" "+newLastName; } - \ No newline at end of file + static String getPhoneNumber(Scanner scanner) { + String phone; + do { + System.out.print("Enter your phone number (10 digits starting with 9): "); + phone = scanner.nextLine(); + if (phone.length() != 10 || phone.charAt(0) != '9') { + System.out.println("Invalid phone number. Please try again."); + } + } while (phone.length() != 10 || phone.charAt(0) != '9'); + + return "0" + phone; + } \ No newline at end of file From 7d16febce6c048ff14e545f3b3fd45e84a624e4b Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:35:09 +0330 Subject: [PATCH 5/9] getUserId method implemented --- Answers/40230212070/ResumeMaker.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index 43fb687..2a608b9 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -76,4 +76,15 @@ static String getPhoneNumber(Scanner scanner) { } while (phone.length() != 10 || phone.charAt(0) != '9'); return "0" + phone; + } + static String getUserId(Scanner scanner) { + String userId; + do { + System.out.print("Enter your user ID (4 to 13 digits): "); + userId = scanner.nextLine(); + if (!userId.matches("\\d+") || userId.length() < 4 || userId.length() > 13) { + System.out.println("Invalid user ID. Please enter 4 to 13 digits."); + } + } while (!userId.matches("\\d+") || userId.length() < 4 || userId.length() > 13); + return userId; } \ No newline at end of file From f908a86dba78c4732ad8694baebe1d3d647dd0be Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:41:05 +0330 Subject: [PATCH 6/9] getInterests method implemented --- Answers/40230212070/ResumeMaker.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index 2a608b9..bff7278 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -87,4 +87,14 @@ static String getUserId(Scanner scanner) { } } while (!userId.matches("\\d+") || userId.length() < 4 || userId.length() > 13); return userId; + } + static ArrayList getInterests(Scanner scanner) { + ArrayList interests = new ArrayList<>(); + String interest; + + System.out.println("Enter your interests (up to 10, press enter to finish):"); + while (interests.size() < 10 && (interest = scanner.nextLine().trim()).length() > 0) { + interests.add(interest); + } + return interests; } \ No newline at end of file From 3866f7654db3125cc093f7de1b5c7e751ee3c364 Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:41:59 +0330 Subject: [PATCH 7/9] userFullInformation method implemented --- Answers/40230212070/ResumeMaker.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index bff7278..bc9b243 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -97,4 +97,15 @@ static ArrayList getInterests(Scanner scanner) { interests.add(interest); } return interests; + } + static String userFullInformation(String fullName, String phone, String userId, ArrayList interests) { + StringBuilder sb = new StringBuilder(); + sb.append("Hello! My name is ").append(fullName).append(".\n"); + sb.append("My ID is ").append(userId).append(".\n"); + sb.append("Here are some of my interests:\n"); + for (int i = 0; i < interests.size(); i++) { + sb.append((i + 1) + ". " + interests.get(i) + "\n"); + } + sb.append("You can reach me via my phone number ").append(phone).append(".\n"); + return sb.toString(); } \ No newline at end of file From f00cab375dc3f668e2aaa4c0c49c2618fc1a543e Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:42:53 +0330 Subject: [PATCH 8/9] informationEncoder method implemented --- Answers/40230212070/ResumeMaker.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index bc9b243..0fb7fec 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -108,4 +108,22 @@ static String userFullInformation(String fullName, String phone, String userId, } sb.append("You can reach me via my phone number ").append(phone).append(".\n"); return sb.toString(); - } \ No newline at end of file + } + static String informationEncoder(String information, int shift) { + StringBuilder encryptedInfo = new StringBuilder(); + for (char c : information.toCharArray()) { + if (Character.isAlphabetic(c)) { + int newChar = c + shift; + if (Character.isUpperCase(c) && newChar > 'Z') { + newChar = newChar - 'Z' + 'A' - 1; + } else if (Character.isLowerCase(c) && newChar > 'z') { + newChar = newChar - 'z' + 'a' - 1; + } + encryptedInfo.append((char) newChar); + } else { + encryptedInfo.append(c); + } + } + return encryptedInfo.toString(); + } + \ No newline at end of file From 96e70e20bfd8f1ac288159ddbd79831909b82854 Mon Sep 17 00:00:00 2001 From: Armita Kazemi Date: Thu, 21 Mar 2024 21:43:56 +0330 Subject: [PATCH 9/9] information decoder method implemented --- Answers/40230212070/ResumeMaker.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Answers/40230212070/ResumeMaker.java b/Answers/40230212070/ResumeMaker.java index 0fb7fec..92602bb 100644 --- a/Answers/40230212070/ResumeMaker.java +++ b/Answers/40230212070/ResumeMaker.java @@ -126,4 +126,20 @@ static String informationEncoder(String information, int shift) { } return encryptedInfo.toString(); } - \ No newline at end of file + static String informationDecoder(String information, int shift) { + StringBuilder decryptedInfo = new StringBuilder(); + for (char c : information.toCharArray()) { + if (Character.isAlphabetic(c)) { + int newChar = c - shift; + if (Character.isUpperCase(c) && newChar < 'A') { + newChar = newChar + 'Z' - 'A' + 1; + } else if (Character.isLowerCase(c) && newChar < 'a') { + newChar = newChar + 'z' - 'a' + 1; + } + decryptedInfo.append((char) newChar); + } else { + decryptedInfo.append(c); + } + } + return decryptedInfo.toString(); + }} \ No newline at end of file