JAVA PROGRAM ASAP Please Modify this program evem more ASAP BECAUSE it does not pass all the test cases when I upload it to hypergrade. I have provided the correct test case as well as the failed test case as a screenshot. It must pass all the test cases because it says 0 out of 2 passed when I upload it to Hypergrade. The program must pass the test case when uploaded to Hypergrade. Thank you File data down below: Morse.txt 0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. , --..-- . .-.-.- ? ..--.. A .- B -... C -.-. D -.. E . F ..-. G --. H .... I .. J .--- K -.- L .-.. M -- N -. O --- P .--. Q --.- R .-. S ... T - U ..- V ...- W .-- X -..- Y -.-- Z --.. input1.txt - .... . --- .-. .. --. .. -. .- .-.. --.- ..- . ... - .. --- -. --..-- -.-. .- -. -- .- -.-. .... .. -. . ... - .... .. -. -.- ..--.. .. -... . .-.. .. . ...- . - --- -... . - --- --- -- . .- -. .. -. --. .-.. . ... ... - --- -.. . ... . .-. ...- . -.. .. ... -.-. ..- ... ... .. --- -. .-.-.- .- .-.. .- -. - ..- .-. .. -. --. import java.util.HashMap; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; import java.io.File; public class MorseCodeConverter { private static HashMap morseMap = new HashMap<>(); public static void main(String[] args) { loadMorseCodes(); // Load Morse code mappings from 'morse.txt' Scanner scanner = new Scanner(System.in); // Continuously prompt for file names until "QUIT" is entered while (true) { System.out.println("Please enter the file name or type QUIT to exit:"); String fileName = scanner.nextLine(); if (fileName.equalsIgnoreCase("QUIT")) { break; // Exit the loop if "QUIT" is entered } else { convertFileToAlphabets(fileName); // Convert and print Morse code from the file } } } // Loads Morse code mappings from the 'morse.txt' file private static void loadMorseCodes() { try (BufferedReader reader = new BufferedReader(new FileReader("morse.txt"))) { String line; while ((line = reader.readLine()) != null) { String[] parts = line.split("\\s+"); if (parts.length >= 2) { String morseCode = parts[1]; char character = parts[0].charAt(0); morseMap.put(morseCode, character); // Store Morse code mappings in the HashMap } } } catch (IOException e) { e.printStackTrace(); } } // Converts Morse code from the specified file to alphabets and prints them private static void convertFileToAlphabets(String fileName) { try { File file = new File(fileName); if (file.exists()) { BufferedReader fileReader = new BufferedReader(new FileReader(fileName)); String line; while ((line = fileReader.readLine()) != null) { String[] words = line.split(" "); for (String word : words) { String[] morseChars = word.split(" "); for (String morseChar : morseChars) { // Check if the Morse character is in the Morse code mapping if (morseMap.containsKey(morseChar)) { System.out.print(morseMap.get(morseChar)); } } } System.out.println(); // Print a new line after each word } } else { System.out.println("File '" + fileName + "' is not found."); } } catch (IOException e) { e.printStackTrace(); } } } Test Case 1 Please enter the file name or type QUIT to exit:\n input1.txtENTER THEORIGINALQUESTION,\n CANMACHINESTHINK?\n IBELIEVETOBETOOMEANINGLESSTODESERVEDISCUSSION.\n ALANTURING\n Test Case 2 Please enter the file name or type QUIT to exit:\n input2.txtENTER File 'input2.txt' is not found.\n Please re-enter the file name or type QUIT to exit:\n quitENTER
JAVA PROGRAM ASAP
Please Modify this program evem more ASAP BECAUSE it does not pass all the test cases when I upload it to hypergrade. I have provided the correct test case as well as the failed test case as a screenshot. It must pass all the test cases because it says 0 out of 2 passed when I upload it to Hypergrade. The program must pass the test case when uploaded to Hypergrade. Thank you
File data down below:
Morse.txt
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
, --..--
. .-.-.-
? ..--..
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
input1.txt
- .... . --- .-. .. --. .. -. .- .-.. --.- ..- . ... - .. --- -. --..--
-.-. .- -. -- .- -.-. .... .. -. . ... - .... .. -. -.- ..--..
.. -... . .-.. .. . ...- . - --- -... . - --- --- -- . .- -. .. -. --. .-.. . ... ... - --- -.. . ... . .-. ...- . -.. .. ... -.-. ..- ... ... .. --- -. .-.-.-
.- .-.. .- -. - ..- .-. .. -. --.
import java.util.HashMap;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import java.io.File;
public class MorseCodeConverter {
private static HashMap<String, Character> morseMap = new HashMap<>();
public static void main(String[] args) {
loadMorseCodes(); // Load Morse code mappings from 'morse.txt'
Scanner scanner = new Scanner(System.in);
// Continuously prompt for file names until "QUIT" is entered
while (true) {
System.out.println("Please enter the file name or type QUIT to exit:");
String fileName = scanner.nextLine();
if (fileName.equalsIgnoreCase("QUIT")) {
break; // Exit the loop if "QUIT" is entered
} else {
convertFileToAlphabets(fileName); // Convert and print Morse code from the file
}
}
}
// Loads Morse code mappings from the 'morse.txt' file
private static void loadMorseCodes() {
try (BufferedReader reader = new BufferedReader(new FileReader("morse.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("\\s+");
if (parts.length >= 2) {
String morseCode = parts[1];
char character = parts[0].charAt(0);
morseMap.put(morseCode, character); // Store Morse code mappings in the HashMap
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
// Converts Morse code from the specified file to alphabets and prints them
private static void convertFileToAlphabets(String fileName) {
try {
File file = new File(fileName);
if (file.exists()) {
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = fileReader.readLine()) != null) {
String[] words = line.split(" ");
for (String word : words) {
String[] morseChars = word.split(" ");
for (String morseChar : morseChars) {
// Check if the Morse character is in the Morse code mapping
if (morseMap.containsKey(morseChar)) {
System.out.print(morseMap.get(morseChar));
}
}
}
System.out.println(); // Print a new line after each word
}
} else {
System.out.println("File '" + fileName + "' is not found.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Test Case 1
input1.txtENTER
THEORIGINALQUESTION,\n
CANMACHINESTHINK?\n
IBELIEVETOBETOOMEANINGLESSTODESERVEDISCUSSION.\n
ALANTURING\n
Test Case 2
input2.txtENTER
File 'input2.txt' is not found.\n
Please re-enter the file name or type QUIT to exit:\n
quitENTER
Step by step
Solved in 4 steps with 2 images