We have two programs. c2m converts text read from standard input to the corresponding Morse code written to standard output: Letter Morse Letter Morse Digit Morse A .- N -. 0 ----- B -... O --- 1 .---- C -.-. P .--. 2 ..--- D -.. Q --.- 3 ...-- E . R .-. 4 ....- F ..-. S ... 5 ..... G --. T - 6 -.... H .... U ..- 7 --... I .. V ...- 8 ---.. J .--- W .-- 9 ----. K -.- X -..- . .-.-.- L .-.. Y -.-- , --..-- M -- Z --.. : ---... ; -.-.-. It inserts a ' ' after each letter representation (i.e. Morse code) and inserts 6 spaces after each word. The program prints lines of at most 66 columns. m2c converts Morse text produced by c2m and read from standard input and prints it to standard output. The program prints text on 50 column lines. morse.h and morse.cpp contain the definition and implementation of a static class with methods used to manipulate characters and Morse strings. The class is static since we do not need to create any instance of the class. You might test c2m with % c2m < c2m.cpp and test both c2m and m2c with % c2m < c2m.cpp | m2c If you want to play with a program that not only translates text to Morse code, but also plays the corresponding audio, go to http://www.soton.ac.uk/~scp93ch/morse/index.html?http://www.soton.ac.uk/~scp93ch/morse/trans.html