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 search_ru(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;
- }
- 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);
- voc_en_ru.emplace(str_en, str_ru);
- 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++) {
- cout << it_en_ru->first << 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++) {
- cout << it_ru_en->first << sets(15 - 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;
- it = voc_en_ru.find(search_word);
- if (it == voc_en_ru.end()) {
- cout << "Такого слова нет!" << endl;
- return;
- }
- cout << it->second << endl;
- }
- void Vocabulary::search_ru(string search_word) {
- multimap <string, string> ::iterator it;
- it = voc_ru_en.find(search_word);
- if (it == voc_ru_en.end()) {
- cout << "Такого слова нет!" << endl;
- return;
- }
- 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 << "Введите слово:" << endl;
- cin >> word;
- V.search_en(word);
- system("pause");
- break;
- case 4:
- cout << "Введите слово:" << endl;
- cin >> word;
- V.search_ru(word);
- 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