Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #include <string>
- #include <windows.h>
- #include <conio.h>
- #include <stdio.h>
- #include <cwchar>
- #include <map>
- #include <list>
- using namespace std;
- string sets(size_t size) {
- string res_s;
- for (int i = 0; i < size; i++) {
- res_s += " ";
- }
- return res_s;
- }
- class Vocabulary {
- multimap <string, string> voc_en_ru;
- multimap <string, string> voc_ru_en;
- public:
- Vocabulary() {};
- ~Vocabulary() {};
- void read_file(); // чтение из файла
- void print();
- void search_en(string search_word);
- };
- // чтение из файла
- void Vocabulary::read_file() {
- ifstream fin_en("voc_en.txt");
- ifstream fin_ru("voc_ru.txt");
- if (!fin_en || !fin_ru) {
- cout << "error" << endl;
- system("pause");
- return;
- }
- list<string> key_list_en, key_list_ru;
- list <string> ::iterator it;
- string str_en, str_ru, res_str;
- int k = 0;
- while (!fin_ru.eof() || !fin_en.eof()) {
- getline(fin_en, str_en);
- getline(fin_ru, str_ru);
- for (int i = 0; i < str_en.length(); i++) {
- res_str += str_en[i];
- if (str_en[i] == ' ') {
- k++;
- key_list_en.push_back(res_str);
- }
- }
- for (int i = 0; i < str_ru.length(); i++) {
- res_str += str_ru[i];
- if (str_ru[i] == ' ') {
- key_list_ru.push_back(res_str);
- }
- }
- for (it = key_list_en.begin(); it != key_list_en.end(); it++) {
- voc_en_ru.emplace(str_en, str_ru);
- }
- for (it = key_list_ru.begin(); it != key_list_ru.end(); it++) {
- voc_ru_en.emplace(str_ru, str_en);
- }
- }
- }
- // печать данных
- void Vocabulary::print() {
- int translate = 0;
- cout << "выберите вариант перевода" << endl;
- cout << "1 - англо-русский" << endl;
- cout << "2 - русско-английский" << endl;
- cin >> translate;
- multimap<string, string> ::iterator it_en_ru = voc_en_ru.begin();
- multimap<string, string> ::iterator it_ru_en = voc_ru_en.begin();
- cout << "Слово Перевод" << endl;
- switch (translate) {
- case 1:
- for (int i = 0; it_en_ru != voc_en_ru.end(); it_en_ru++, i++) {
- for (int i = 0; i < it_en_ru->first.length(); i++) {
- if (it_en_ru->first[i] == ' ') break;
- cout << it_en_ru->first[i];
- }
- cout << sets(20 - it_en_ru->first.length()) << it_en_ru->second;
- cout << endl;
- }
- break;
- case 2:
- for (int i = 0; it_ru_en != voc_ru_en.end(); it_ru_en++, i++) {
- for (int i = 0; i < it_ru_en->first.length(); i++) {
- if (it_ru_en->first[i] == ' ') break;
- cout << it_ru_en->first[i];
- }
- cout << sets(20 - it_ru_en->first.length()) << it_ru_en->second;
- cout << endl;
- }
- break;
- default:
- cout << "error";
- break;
- }
- }
- void Vocabulary::search_en(string search_word) {
- //multimap <string, string> ::iterator it;
- multimap <string, string> ::iterator it = voc_en_ru.begin();
- cout << "А вот все отсортированно: " << endl;
- for (int i = 0; it != voc_en_ru.end(); it++, i++) { // выводим их
- cout << i << ") Ключ " << it->first << ", значение " << it->second << endl;
- }
- /*it = voc_en_ru.find(search_word);
- cout << it->second << endl;*/
- }
- int main() {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- Vocabulary V;
- int item;
- string word;
- do {
- system("CLS");
- cout << "1 - Считывание из файла" << endl;
- cout << "2 - Вывод данных" << endl;
- cout << "3 - Вывод вариантов перевода заданного английского слова" << endl;
- cout << "4 - Вывод вариантов перевода заданного русского слова" << endl;
- cout << "5 - Выход" << endl;
- cout << "============================" << endl;
- cout << "Введите номер пункта меню" << endl;
- cin >> item;
- switch (item) {
- case 1:
- V.read_file();
- break;
- case 2:
- V.print();
- system("pause");
- break;
- case 3:
- cout << "enter word";
- cin >> word;
- V.search_en(word);
- system("pause");
- break;
- case 4:
- cout << "====================================\n\n";
- system("pause");
- break;
- case 5:
- return 0;
- default:
- cout << "Неверно введён номер!" << endl;
- cin.get();
- break;
- }
- } while (1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement