0 / 0 / 0
Регистрация: 10.11.2018
Сообщений: 3
1

Программа "Диалог"

10.11.2018, 22:54. Показов 2505. Ответов 23

Студворк — интернет-сервис помощи студентам
Начал изучать C++ не так давно, многого не знаю. Итак, задача. Требуется написать программу, которая сначала выводит вопрос пользователю на экран. Юзер, в свою очередь, должен написать ответ - слово (количество слов и сами слова определены заранее и прописаны в программе), а программа в зависимости от ответа выводит на экран суждение о нем.

Например:

(Выведено на экране: ) Привет, пользователь! Скажи, столицей какой страны является город Москва?
(Мы вводим ответ: ) Россия
(Программа: ) Правильно!

(Если бы было введено другое слово, то программа ответила бы "Неверно").

Спасибо)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2018, 22:54
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло",...

Программа считывает файл ".txt" и выводит сколько "слов" в нем дано ("слова" разделены пробелом)
Прошу помощи с кодом. Если честно немного не понимаю что пошло не так. #include <iostream>...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

23
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
10.11.2018, 23:25 2
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
#include <iostream>
#include <string>
#include <Windows.h>
 
using namespace std;
 
struct QA {
    const string q;
    const string a;
};
 
const QA qa[] = {
      {"Скажи, столицей какой страны является город Москва?", "Россия"}
    , {"А Париж?", "Франция"}
    , {"Сколько минут в часе?", "60"}
    // другие вопросы-ответы
};
 
const string succ = "Правильно";
const string fail = "Ошибочка вышла";
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    string ans;
    for (size_t i = 0; i < sizeof(qa) / sizeof(QA); ++i) {
        cout << qa[i].q << "  ";
        getline(cin, ans);
        cout << (ans == qa[i].a ? succ : fail) << endl;
    }
}
2
Диссидент
Эксперт C
27497 / 17185 / 3784
Регистрация: 24.12.2010
Сообщений: 38,712
11.11.2018, 00:34 3
L0M, Код хороший, без булды. Но вот реальная ситуация. Попался грамотный ответчик. И на первый вопрос отвечает "РоссиИ" или в силу неистребимой инглоязычности - "Russia". а еще один, имея дурную клаву, говорит "Rossia" А на третий вопрос какой-то умник ответит "Шестьдесят". Как жить будем?
Но надеюсь, ты понимаешь, что я вовсе не к тому, чтобы ты бросился переделывать свой замечательный код под все возможные жизненные ситуации. Хрен-то с ними. Я к тому, что простейшая учебная задачка в реале может вылиться в хорошую проблему.
А нравится мне выделение переменной части. По-хорошему все надо в отдельный текстовой файл засовывать, чтоб код оставался без перетрансляции. Но я думаю, ты и без меня это знаешь
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 01:18 4
Байт, я польщён вашим отзывом о моём коде.

Но для того, что бы решить поднятую вами проблему, в мою программку на 30 строк надо будет вставить немножко искусственного интеллекта, какую-нибудь нейронную сеточку, это сейчас модно, и приличный кусок филологии, лингвистики и ещё хрен знает чего. После этого заставить всё это работать. А потом можно спокойно отправляться получать премию Тьюринга.

А если серьёзно, то прочитайте ещё раз первый абзац сообщения ТС. Я уж и так подумывал, не перемудрил ли я с кодом.
1
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 12:08 5
L0M, ваша программа все равно неправильно работает.
Миниатюры
Программа "Диалог"  
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 15:07 6
Извините, isaak, но это уже ваша программа, если вы вносите изменения в мой код. Моя программа работает, ваша - нет.
1
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 15:20 7
L0M, так она выдает результат согласно вашему коду.
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 15:32 8
Цитата Сообщение от isaak Посмотреть сообщение
L0M, так она выдает результат согласно вашему коду.
Вашему коду. Если вы решили меня потроллить, то вы выбрали неудачный ракурс для скриншота.
0
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 15:43 9
L0M, ни какие изменения я не вносил в ваш код. Я скомпилировал и запустил его. Ваша программа выдает не правильный результат.
0
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 16:02 10
Смысл мне вас троллить? Когда запускается программа она сама должна выводить ответ или пользователь должен вводить его сам? Если сама программа, то она этого не делает. Я просто нажимаю Enter, программа выдает: "Ошибочка вышла" и переходит к следующему вопросу и опять выдает "Ошибочка вышла". Если же на заданный программой вопрос пользователь должен сам ввести ответ, то программа не правильно анализирует ответы на первые два ответа. Скрин я приводил выше. Пускай кто-нибудь еще запустить и проверит правильность работы вашей программы.
Миниатюры
Программа "Диалог"  
0
3 / 3 / 0
Регистрация: 04.07.2013
Сообщений: 27
11.11.2018, 16:11 11
Я тоже только что запустил, программа работает не правильно. На первых два вопроса выдает ошибочку...

Добавлено через 5 минут
И связано это по видимому с русской локально, потому что я добавил еще один вопрос и ответ на англ. языке, и на него ответ правильно. Так же как и на 60 , ведь 60 не требует русского ввода...
C++
1
2
3
4
5
6
7
const QA qa[] = {
      {"Скажи, столицей какой страны является город Москва?", "Россия"},
      {"А Париж?", "Франция"},
      {"Сколько минут в часе?", "60"},
      {"Yes", "Yes"}, // [U]добавлен мной[/U]
    // другие вопросы-ответы
};
1
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 16:17 12
L0M, не я один вот люди проверили, программа на первых два вопроса выдает ошибочку. Как она должна работать? Она сама должна выводить правильный ответ или должна анализировать ответ введенный пользователем? Если анализировать ответ введенный пользователем, то первые два ответа она анализирует не верно.
Миниатюры
Программа "Диалог"  
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 16:21 13
Вот скажите, как? как можно скопипастить программу целиком и при этом внести в неё изменения? У вас в буфере обмена злобные гномы завелись? Где строки
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
моль съела? Или кто-то решил, что они тут лишние?

Добавлено через 2 минуты
По поводу того как должна работать программа - см. первый абзац в первом сообщении темы.
0
3 / 3 / 0
Регистрация: 04.07.2013
Сообщений: 27
11.11.2018, 16:22 14
она должна анализировать ответ введенный пользователем на той же строке, не нажимая энтр перед ответом
если вы ответе изменить локаль на анл, например так:
C++
1
2
3
const QA qa[] = {
      {"Скажи, столицей какой страны является город Москва?", "Moscow"},
};
то ответ будет правильный.
Т.е. вы принципе код то правильный, но проблема с локалью вы консоле
0
3 / 3 / 0
Регистрация: 04.07.2013
Сообщений: 27
11.11.2018, 16:26 15
Программа "Диалог"
0
163 / 96 / 25
Регистрация: 17.10.2010
Сообщений: 1,069
11.11.2018, 16:29 16
Qazz, вы правы я ввел на английском на все три вопроса программа ответила правильно.
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 16:52 17
У-у-у... господа, так у вас ещё и консоль под отображение кириллицы не настроена...
В свойствах консоли установите шрифт ttf. Например Consolas, или Lucida Console.
2
3 / 3 / 0
Регистрация: 04.07.2013
Сообщений: 27
11.11.2018, 16:59 18
У-у-у... так это еще конечному пользователю программы, сопроводительное письмо с описание настройки консоли нужно к программе прилагать
Не, ну так то да, так то конечно, работает
0
Мозгоправ
1739 / 1033 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.11.2018, 17:37 19
Цитата Сообщение от Qazz Посмотреть сообщение
так это еще конечному пользователю программы, сопроводительное письмо с описание настройки консоли нужно к программе прилагать
Мелко плаваете. Тогда уж сразу просите ещё прилагать руководство по работе с операционной системой, инструкцию по включению компьютера и рекомендации как купить компьютер.
1
3 / 3 / 0
Регистрация: 04.07.2013
Сообщений: 27
11.11.2018, 17:51 20
Цитата Сообщение от L0M Посмотреть сообщение
Мелко плаваете. Тогда уж сразу просите ещё прилагать руководство по работе с операционной системой, инструкцию по включению компьютера и рекомендации как купить компьютер.
Нууу... зря столько желчи
Я например живу в англоязычной стране, мне бы в голову не пришло настраивать консоль на русс. яз, т.к. вы этом нет надобности ежедневной, для меня и для региона в котором я нахожусь, так что некоторые вещи, которые кажутся очевидными одному человеку, совсем не очевидны для другого
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2018, 17:51
Помогаю со студенческими работами здесь

Как сделать, так чтобы i и j можно было вводить самому "i" И "j" в цикле, есть программа
#include &lt;iostream&gt; using namespace std; int main() {int a=0,b=0; int i=0; cout&lt;&lt;&quot;Vvedite...

Что означает "Программа "[4872] laba!.exe: Машинный код" завершилась с кодом 3 (0x3)."?
при запуске кода компилятор пишет &quot;Программа &quot; laba!!!!!!.exe: Машинный код&quot; завершилась с кодом 3...

что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими)
Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы студента, номер...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru