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

Не получается сделать рандомный вывод ответа в классе "Предсказатель" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ использование клавиш http://www.cyberforum.ru/cpp-beginners/thread137531.html
Как задать такое условие в while(?), чтобы при нажатии определенной клавиши, был выход из while и чтоб при этом он не ждал нажатии клавиши, т.е. функции в while выполнялись. или же например произвольно движущая фигура, при нажатии клавиши скажем F1, цвет фигуры изменялся на чистом Си. И порекомендуйте литературу на счет этой темы(использование клавиш на Си), а то в инете ни че не нашел.
C++ Количество строк матрицы, в которых есть хотя бы один нулевой элемент Как сделать штоб ета прога ище вивадила количество рядов каторие имеют хотяб один нулевой елемент. #include <iostream> #include <cmath> int main() { const int n = 6; int matr; int temp; int i = 0, j = 0, k = 0; std::cout<<"Введите матрицу:"<<std::endl; http://www.cyberforum.ru/cpp-beginners/thread137530.html
Машина Тьюринга в С++ C++
Нужно построить машину Тьюринга, которая переводит унарную запись числа в бинарную. помогите, кто разбирается. заранее - громадное спасибо
C++ количество рядов которые имеют хотя бы один нулевой элемент.
Как сделать штоб ета прога ище вивадила количество рядов каторие имеют хотяб один нулевой елемент. #include <iostream> #include <cmath> int main() { const int n = 6; int matr; int temp; int i = 0, j = 0, k = 0; std::cout<<"Введите матрицу:"<<std::endl;
C++ Вопросы по динамической памяти. http://www.cyberforum.ru/cpp-beginners/thread137521.html
У меня вопросы по работе с динамической памятью. Пожалуйста, помогите разобраться с этой темой. - чем отличается free() от delete? и каким из них я должна пользоваться при очищении памяти из-под одномерного динамического массива структур? - если в функции я использую динамические массивы, то их нужно обязательно очищать в конце этой функции? Кроме массива, указатель на который возвращается...
C++ Создать текстовый файл f, состоящий из 2-3 строк текста произвольной длины Помогите с решением. Создать текстовый файл f, состоящий из 2-3 строк текста произвольной длины. Перезаписать содержание файла f в файл h, так, чтобы в файле h все строки были по 20 символов (кроме последней) и в начале каждой строки стоял ее номер. Добавлено через 2 часа 43 минуты как так сохранить текстовый файл, чтобы в файле h все строки были по 20 символов (кроме последней) и в начале... подробнее

Показать сообщение отдельно
Bald
0 / 0 / 0
Регистрация: 10.02.2010
Сообщений: 7
29.05.2010, 20:32     Не получается сделать рандомный вывод ответа в классе "Предсказатель"
Нужно разработать класс предсказатель. Обязательные методы :
- Заполнение перечня ответов (да, нет, не знаю и т.д.)
- Ответ (выдает случайным образом) словом.
- Ответ выдает случайным образом буквами.

Представить тестовое приложение демонстрирующее работу с классом. В тестовом приложении должны объекты класса создаваться как статически, так и динамически. Предусмотреть конструктор и конструктор копирования.
Вообщем проблемма такая не могу сделать рандомный вывод ответа. Не знаю какую переменую и где прописать что ответ выдавался рандомно.
Также не понял пока как создать конструктор и деструктор.
Вот что у меня получилось:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <conio.h>
//#include <stdlib>
#include <string>
 
using namespace std;
 
class Pred{
public:
   void VvodPol (string);
   void VvodOtr (string);
   void VvodNet (string);
   void Vivod ();
private:
   string polozh;
   string otritz;
   string neznay;
};
 
void Pred::VvodPol (string s1)
{
   polozh=s1;
}
void Pred::VvodOtr (string s2)
{
   otritz=s2;
}
void Pred::VvodNet (string s3)
{
   neznay=s3;
}
void Pred::Vivod ()
{
cout << "Otvet " << polozh << endl; 
}
 
int MainMenu();
 
 
int main ()
{
Pred vanga;
string s1,s2,s3;
 
bool run = true;
while(run)
switch (MainMenu())
{
                case 0: run = false; break;
                case 1:
                {
                       // clrscr();
                        cout << "Vvedite polozhiteln otvet: ";
                        cin >> s1;
                        vanga.VvodPol(s1);
                        cout << "Vvedite otricateln otvet: ";
                        cin >> s2;
                        vanga.VvodOtr(s2);
                        cout << "Vvedite netraln otvet:  ";
                        cin >> s3;
                        vanga.VvodNet(s3);
                }
                break;
                case 2:
                    { 
                    string s4;
                    cout << "Skoncetriruetes i obdumayte vopros" << endl;
                    cout << "Teper vvedite voros i nazhmite enter" << endl;
                    cin >> s4;
                    vanga.Vivod();
                    }
break;
 
 
        }
return 0;
}
int MainMenu()
{      // clrscr();
    cout << "=====[ Main Menu ]=====" << endl;
    cout << " [1] Dobavit otvetu" << endl;
    cout << " [2] Zadat vopros" << endl;
    cout << " [0] EXIT" << endl;
    cout << "=======================" << endl;
    int em;
    cin >> em;
    return em;
}
Кто поможет заранее буду очень благодарен.

Добавлено через 8 минут
Также же есть еще один код, там вроде и рандом есть, и коструктор и деструктор. Компилируется без ошибок, но в отладке при добавлении ответов, вылетает с ошибкой cx0000000 в общем что то с указателем, а что понять не могу.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <CONIO.H>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
using namespace std;
 
class CPred {
int len;
char *data[50];
int b;
 
public:
 
void default_data(void){
  this->len = 3;
  /*this->data[0] = "Da";
  this->data[1] = "Net";
  this->data[2] = "Neznay";*/
}
 
CPred(){
 char c=' ';
 this->len  = -1;
 cout<<"Hotite izmenit otvet? (y|n) ";
 cin>>c;
 if(c == 'y' || c =='Y'){
  cout<<"Skolko otvetov hotite vnesti(<50)?\n";
  while(this->len <=0 || this->len >=50){
   cin>>this->len;
   if(this->len <=0 || this->len >=50)
    cout<<"\nNevernoe kolichestvo!!!\nVvedite novoe=> ";
  }
  this->add();
 } else {
   this->default_data();
 }
 cout<<"\nWrote answer by a Latter? (y|n): ";
 cin>>c;
 if(c == 'y' || c =='Y')
  this->b=1;
 else
  this->b=0;
}
 
void get(void){
 int i = random(this->len);
 char c = (char)(97+i);
 if(this->b==0)
 cout<<this->data[i];
 else
  cout<<c<<" ("<<this->data[i]<<")";
}
void add(void){
 cout<<"\nVvedite otvetu:\n";
 int i;
 i = 0;
 while(i< this->len){
  cout<<"Vvedite "<<i+1<<" otvet=> ";
  cin>>this->data[i];
  i++;
 }
}
 
CPred(const CPred &Ob){
  this->len = Ob.len;
  for(int i=0; i<this->len; i++)
   this->data[i] = Ob.data[i];
  this->b = Ob.b;
}
};
 
 
void main(void){
char c;
// clrscr();
  cout<<"Static:\n";
  randomize();
  CPred P;       //CREATE
// clrscr();
  cout<<"Vvedite vopros:\n";
  cin>>c;
  cout<<"Otvet na vash vopros: ";
  P.get();
  cout<<"\n";
  cin>>c;
 
// clrscr();
  cout<<"Dynamic:\n";
  CPred *Q = new CPred();//CREATE
// clrscr();
  cout<<"Vvedite vopros:\n";
  cin>>c;
  cout<<"Otvet na vash vopros: ";
  Q->get();
  cout<<"\n";
  cin>>c;
 
// clrscr();
  cout<<"Copy from the first method:\n";
  CPred *O = new CPred(*Q);//CREATE
// clrscr();
  cout<<"Vvedite vopros:\n";
  cin>>c;
  delete Q;
  cout<<"Otvet na vash vopros: ";
  O->get();
  cout<<"\n";
  cin>>c;
  getch();
}
Добавлено через 5 часов 13 минут
Как из этих двух кодов сделать 1 хорошо работающий?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru