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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
#1

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

29.11.2013, 01:16. Просмотров 465. Ответов 9
Метки нет (Все метки)

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

C++ Написать функцию чтобы случайным образом забивался массив
Английские и русские буквы. C++
C++ Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо)
C++ Нужно написать программу в с/с++, которая определяет являются ли 2 введенных с клавиатуры слова рифмой
Написать программу, которая бы переводила слова «ДОБРЫЙ ДЕНЬ» по выбору на один из пяти языков C++
C++ Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m
C++ Считать русские и английские символы с консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6209 / 3454 / 423
Регистрация: 29.11.2010
Сообщений: 9,163
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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6209 / 3454 / 423
Регистрация: 29.11.2010
Сообщений: 9,163
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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6209 / 3454 / 423
Регистрация: 29.11.2010
Сообщений: 9,163
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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6209 / 3454 / 423
Регистрация: 29.11.2010
Сообщений: 9,163
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++
C++ Написать программу, которая получает данные из файла, изменяя их любым образом
C++ Написать программу, которая выводит слова, которые есть в обоих строках

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 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     Написать программу, которая случайным образом выдаёт английские/русские слова
Ответ Создать тему
Опции темы

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