Please give me a new program even ASAP BECAUSE the program down below 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 Chapter 9. PC #16. Morse Code Translator (modified *** Read carefully ***) Morse code is a code where each letter of the English alphabet, each digit, and various punctuation characters are represented by a series of dots and dashes. Write a program that asks the user to enter a file name containing morse code, and then converts that code to text and prints it on the screen. The Morse code table is given in a text file morse.txt. When printing resulting text, display one sentence on each line. There should be no extra spaces at the beginning and at the end of the output. 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
Please give me a new program even ASAP BECAUSE the program down below 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 7 images