Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>
- using namespace std;
- #define ALPHABETLENGTH 29
- #define IGNORECONST 1000
- string alfa_tab[ALPHABETLENGTH]= {"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", "å",
- "ä", "ö"};
- string morse_tab[ALPHABETLENGTH]= {".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
- "....", "..", ".---", "-.-", ".-..", "--","-.","---",
- ".--.","--.-", ".-.", "...", "-", "..-", "...-", ".--",
- "-..-", "-.--", "--..", ".--.-" , ".-.-", "---."};
- void menu();
- char charToLow(char c);
- string choice1();
- string choice2();
- void restart();
- int main()
- {
- char choice;
- menu();
- while(cin >> choice)
- {
- cin.clear();
- cin.ignore(IGNORECONST, '\n');
- if (choice == '1')
- cout << choice1() << endl;
- if (choice == '2')
- cout << endl << choice2() << "\n\n";
- if (choice == '3')
- return 0;
- restart();
- }
- }
- void restart()
- {
- //cout << "<< Tryck en tangent och återgå till menyn >>\n";
- //system("pause>nul");
- //system("CLS");
- menu();
- }
- void menu()
- {
- cout << "Vad vill du göra?" << endl;
- cout << "(1) Översätta till morse" << endl;
- cout << "(2) Översätta från morse" << endl;
- cout << "(3) Avsluta" << endl;
- cout << "Ange val: ";
- }
- char charToLow(char c)
- {
- if(c > 64 && c < 91)
- c = c + 32;
- }
- string choice1()
- {
- string input;
- string output;
- unsigned short i;
- unsigned short j;
- char tmp;
- cout << "\nÖversätta från text\n" << "\nSkriv texten som ska översättas:\n\n";
- getline(cin, input);
- for(i = 0; i < input.size(); i++)
- {
- tmp = charToLow(input[i]);
- if(tmp > 96 && tmp < 123)
- {
- output += morse_tab[tmp - 96];
- output += " ";
- }
- }
- return output;
- }
- string choice2()
- {
- string temp, ready, input;
- cout << "\nÖversätta från morse\n" << "\nSkriv morsekoden som ska översättas:\n\n";
- cin.ignore();
- getline(cin, input);
- for(unsigned int k=0; k<input.size(); k++) // När k är mindre än längden av input...
- {
- if(input.substr(k, 1) != " ")
- temp += input.substr(k, 1);
- else
- {
- for (int j=0; j<29; j++) // Ska kolla ifall indatan stämmer överrens med alfa_tab.
- {
- if (temp == morse_tab[j]) // Om så är fallet..
- ready += alfa_tab[j]; // .. lägger till bokstäverna.
- }
- temp = "";
- }
- if(temp == "")
- ready += " ";
- }
- return ready; // Skickar tillbaka den klara översättningen..
- }
Add Comment
Please, Sign In to add comment