Форум программистов, компьютерный форум CyberForum.ru

Написать программу, которая случайным образом выдаёт английские/русские слова - C++

Восстановить пароль Регистрация
 
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:16     Написать программу, которая случайным образом выдаёт английские/русские слова #1
Написать программу, которая случайным образом выдаёт английские/русские слова из заранее созданного словаря(можно в файле), с целью написания пользователем перевода на русском/английском языке. Программа должна проверять правильность перевода и выдавать сообщение "Да"/"Нет" в случае правильности-неправильности ответа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 01:16     Написать программу, которая случайным образом выдаёт английские/русские слова
Посмотрите здесь:

C++ Написать функцию чтобы случайным образом забивался массив
Английские и русские буквы. C++
C++ Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо)
C++ Нужно написать программу в с/с++, которая определяет являются ли 2 введенных с клавиатуры слова рифмой
C++ Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.11.2013, 01:17     Написать программу, которая случайным образом выдаёт английские/русские слова #2
Используйте std::unordered_map, ассоциативный массив без сортировки. Если поддержки С++11 нет, то можно и std::map обойтись.
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:22  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #3
Спасибо.)Но как это реализовать? Не могу придумать алгоритм( Мало опыта, а нужно срочно сделать(

Добавлено через 2 минуты
Помогите, пожалуйста!! :'(
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.11.2013, 01:24     Написать программу, которая случайным образом выдаёт английские/русские слова #4
C++
1
2
3
4
5
int x = rand() % (map.size() * 2);
map::iterator it = map.begin() + x/2;
bool first = x < map.size();
std::cout << (first ? it->first : it->second) << "=>";
...
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:31  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #5
Спасибо) А как создать словарь?

Добавлено через 1 минуту
и как его подключить??
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.11.2013, 01:44     Написать программу, которая случайным образом выдаёт английские/русские слова #6
Считать с файла через fstream (wifstream)
сначала в
std::wstring first, second. Потом добавить в map с помощью метода insert.

Я еще подумал..тут бы конечно boost BiMap подошел бы в пору. Ну а так рациональней наверное даже std::vector<std:air<std::wstring, std::wstring>>
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:50  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #7
Спасибо) Как создать простой интерфейс (можно с помощью MFC)?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.11.2013, 01:57     Написать программу, которая случайным образом выдаёт английские/русские слова #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
 
typedef std::pair<std::wstring, std::wstring> word;
typedef std::vector< word > dictionary;
 
int main()
{
    std::wifstream input("dictionary.txt");
    if (!input)
        return 1;
 
    dictionary dict;
    for (std::wstring first, second; input >> first >> second;
        dict.push_back(std::make_pair(first, second)));
 
    std::srand(time(0));
    while(true)
    {
        unsigned int x = rand() % (dict.size() * 2)
        bool first = x < dict.size();
        std::wcout << (first ? dict[x/2].first : dict[x/2].second) << " => ";
        std::wstring answer;
        std::wcin >> answer;
        std::wcout << (answer == (first ? dict[x/2].second : dict[x/2].first) ?
            L"Correct\n" : L"Incorrect\n");
    }
}
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 02:39  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #9
Спасибо большое). А каким образом мне нужно записывать слова в dictionary.txt?? В столбик, друг за другом или парами(т.е. слово-перевод)??

Добавлено через 5 минут
Ругается почему-то:
"warning C4244: аргумент: преобразование "time_t" в "unsigned int", возможна потеря данных"
и ещё
"error C2144: синтаксическая ошибка: перед "bool" требуется ";" "
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова
Еще ссылки по теме:

C++ Считать русские и английские символы с консоли
C++ Написать программу которая будет искать разные слова из текста
Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова #10
C++
1
unsigned int x = rand() % (dict.size() * 2)
-->
C++
1
unsigned int x = static_cast<unsigned int>(rand()) % (dict.size() * 2);
Yandex
Объявления
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова
Ответ Создать тему
Опции темы

Текущее время: 01:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru