Advertisement
MARSHAL327

Untitled

Dec 26th, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <fstream>
  4. #include <string>
  5. #include <windows.h>
  6. #include <conio.h>
  7. #include <stdio.h>
  8. #include <cwchar>
  9. #include <map>
  10. #include <list>
  11. using namespace std;
  12.  
  13. string sets(size_t size) {
  14.     string res_s;
  15.     for (int i = 0; i < size; i++) {
  16.         res_s += " ";
  17.     }
  18.     return res_s;
  19. }
  20.  
  21. class Vocabulary {
  22.     multimap <string, string> voc_en_ru;
  23.     multimap <string, string> voc_ru_en;
  24. public:
  25.     Vocabulary() {};
  26.     ~Vocabulary() {};
  27.     void read_file(); // чтение из файла
  28.     void print();
  29.     void search_en(string search_word);
  30.     void search_ru(string search_word);
  31. };
  32.  
  33. // чтение из файла
  34. void Vocabulary::read_file() {
  35.     ifstream fin_en("voc_en.txt");
  36.     ifstream fin_ru("voc_ru.txt");
  37.  
  38.     if (!fin_en || !fin_ru) {
  39.         cout << "error" << endl;
  40.         system("pause");
  41.         return;
  42.     }
  43.  
  44.     string str_en, str_ru, res_str;
  45.     int k = 0;
  46.  
  47.     while (!fin_ru.eof() || !fin_en.eof()) {
  48.         getline(fin_en, str_en);
  49.         getline(fin_ru, str_ru);
  50.         voc_en_ru.emplace(str_en, str_ru);
  51.         voc_ru_en.emplace(str_ru, str_en); 
  52.     }
  53. }
  54.  
  55. // печать данных
  56. void Vocabulary::print() {
  57.     int translate = 0;
  58.     cout << "выберите вариант перевода" << endl;
  59.     cout << "1 - англо-русский" << endl;
  60.     cout << "2 - русско-английский" << endl;
  61.     cin >> translate;
  62.     multimap<string, string> ::iterator it_en_ru = voc_en_ru.begin();
  63.     multimap<string, string> ::iterator it_ru_en = voc_ru_en.begin();
  64.     cout << "Слово          Перевод" << endl;
  65.     switch (translate) {
  66.     case 1:
  67.         for (int i = 0; it_en_ru != voc_en_ru.end(); it_en_ru++, i++) {
  68.             cout << it_en_ru->first << sets(20 - it_en_ru->first.length()) << it_en_ru->second;
  69.             cout << endl;
  70.         }
  71.         break;
  72.     case 2:
  73.         for (int i = 0; it_ru_en != voc_ru_en.end(); it_ru_en++, i++) {
  74.             cout << it_ru_en->first << sets(15 - it_ru_en->first.length()) << it_ru_en->second;
  75.             cout << endl;
  76.         }
  77.         break;
  78.     default:
  79.         cout << "error";
  80.         break;
  81.     }
  82. }
  83.  
  84. void Vocabulary::search_en(string search_word) {
  85.     multimap <string, string> ::iterator it;
  86.  
  87.     it = voc_en_ru.find(search_word);
  88.     if (it == voc_en_ru.end()) {
  89.         cout << "Такого слова нет!" << endl;
  90.         return;
  91.     }
  92.     cout << it->second << endl;
  93. }
  94.  
  95. void Vocabulary::search_ru(string search_word) {
  96.     multimap <string, string> ::iterator it;
  97.  
  98.     it = voc_ru_en.find(search_word);
  99.     if (it == voc_ru_en.end()) {
  100.         cout << "Такого слова нет!" << endl;
  101.         return;
  102.     }
  103.     cout << it->second << endl;
  104. }
  105.  
  106. int main() {
  107.     SetConsoleCP(1251);
  108.     SetConsoleOutputCP(1251);
  109.  
  110.     Vocabulary V;
  111.     int item;
  112.     string word;
  113.     do {
  114.         system("CLS");
  115.         cout << "1 - Считывание из файла" << endl;
  116.         cout << "2 - Вывод данных" << endl;
  117.         cout << "3 - Вывод вариантов перевода заданного английского слова" << endl;
  118.         cout << "4 - Вывод вариантов перевода заданного русского слова" << endl;
  119.         cout << "5 - Выход" << endl;
  120.         cout << "============================" << endl;
  121.         cout << "Введите номер пункта меню" << endl;
  122.         cin >> item;
  123.         switch (item) {
  124.         case 1:
  125.             V.read_file();
  126.             break;
  127.  
  128.         case 2:
  129.             V.print();
  130.             system("pause");
  131.             break;
  132.  
  133.         case 3:
  134.             cout << "Введите слово:" << endl;
  135.             cin >> word;
  136.             V.search_en(word);
  137.             system("pause");
  138.             break;
  139.  
  140.         case 4:
  141.             cout << "Введите слово:" << endl;
  142.             cin >> word;
  143.             V.search_ru(word);
  144.             system("pause");
  145.             break;
  146.  
  147.         case 5:
  148.             return 0;
  149.         default:
  150.             cout << "Неверно введён номер!" << endl;
  151.             cin.get();
  152.             break;
  153.         }
  154.     } while (1);
  155.     return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement