Guest User

Untitled

a guest
Jul 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. #define ALPHABETLENGTH 29
  6. #define IGNORECONST 1000
  7.  
  8. string alfa_tab[ALPHABETLENGTH]=  {"a", "b", "c", "d", "e", "f", "g", "h", "i",
  9.              "j", "k", "l", "m", "n", "o", "p", "q", "r",
  10.              "s", "t", "u", "v", "w", "x", "y", "z", "å",
  11.              "ä", "ö"};
  12.  
  13. string morse_tab[ALPHABETLENGTH]= {".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
  14.                "....", "..", ".---", "-.-", ".-..", "--","-.","---",
  15.                ".--.","--.-", ".-.", "...", "-", "..-", "...-", ".--",
  16.                "-..-", "-.--", "--..", ".--.-" , ".-.-", "---."};
  17.  
  18. void menu();
  19. char charToLow(char c);
  20. string choice1();
  21. string choice2();
  22. void restart();
  23.  
  24. int main()
  25. {
  26.   char choice;
  27.   menu();
  28.   while(cin >> choice)
  29.     {
  30.       cin.clear();
  31.       cin.ignore(IGNORECONST, '\n');
  32.       if (choice == '1')
  33.     cout << choice1() << endl;
  34.       if (choice == '2')
  35.     cout << endl << choice2() << "\n\n";
  36.       if (choice == '3')
  37.     return 0;
  38.       restart();
  39.     }
  40. }
  41.  
  42. void restart()                     
  43. {                                              
  44.   //cout << "<< Tryck en tangent och återgå till menyn >>\n";    
  45.   //system("pause>nul");
  46.   //system("CLS");
  47.   menu();
  48. }
  49.  
  50. void menu()                            
  51. {                                              
  52.   cout << "Vad vill du göra?" << endl;    
  53.   cout << "(1) Översätta till morse" << endl;
  54.   cout << "(2) Översätta från morse" << endl;
  55.   cout << "(3) Avsluta" << endl;               
  56.   cout << "Ange val: ";                    
  57. }                                              
  58.  
  59. char charToLow(char c)
  60. {
  61.   if(c > 64 && c < 91)
  62.     c = c + 32;
  63. }
  64.  
  65. string choice1()
  66. {
  67.   string input;
  68.   string output;
  69.   unsigned short i;
  70.   unsigned short j;
  71.   char tmp;
  72.   cout << "\nÖversätta från text\n" << "\nSkriv texten som ska översättas:\n\n";
  73.  
  74.   getline(cin, input);
  75.  
  76.   for(i = 0; i < input.size(); i++)
  77.     {
  78.       tmp = charToLow(input[i]);
  79.  
  80.       if(tmp > 96 && tmp < 123)
  81.     {
  82.       output += morse_tab[tmp - 96];
  83.       output += " ";
  84.     }
  85.     }
  86.  
  87.   return output;
  88. }
  89.  
  90. string choice2()
  91. {
  92.   string temp, ready, input;
  93.   cout << "\nÖversätta från morse\n" << "\nSkriv morsekoden som ska översättas:\n\n";
  94.   cin.ignore();
  95.   getline(cin, input);
  96.   for(unsigned int k=0; k<input.size(); k++)  // När k är mindre än längden av input...
  97.     {
  98.       if(input.substr(k, 1) != " ")
  99.     temp += input.substr(k, 1);
  100.       else
  101.     {
  102.       for (int j=0; j<29; j++)     // Ska kolla ifall indatan stämmer överrens med alfa_tab.
  103.         {
  104.           if (temp == morse_tab[j])   // Om så är fallet..
  105.         ready += alfa_tab[j];   // .. lägger till bokstäverna.
  106.         }
  107.       temp = "";
  108.     }
  109.       if(temp == "")
  110.     ready += " ";
  111.     }
  112.   return ready;  // Skickar tillbaka den klara översättningen..
  113. }
Add Comment
Please, Sign In to add comment