|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2010, 20:30 | #1 |
Новичок
Джуниор
Регистрация: 29.05.2010
Сообщений: 2
|
Рандомный вывод ответа в классе
Нужно разработать класс предсказатель. Обязательные методы :
- Заполнение перечня ответов (да, нет, не знаю и т.д.) - Ответ (выдает случайным образом) словом. - Ответ выдает случайным образом буквами. Представить тестовое приложение демонстрирующее работу с классом. В тестовом приложении должны объекты класса создаваться как статически, так и динамически. Предусмотреть конструктор и конструктор копирования. Вообщем проблемма такая не могу сделать рандомный вывод ответа. Не знаю какую переменую и где прописать что ответ выдавался рандомно. Также не понял пока как создать конструктор и деструктор. Вот что у меня получилось: Код C++ #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; } Кто поможет заранее буду очень благодарен. |
29.05.2010, 20:31 | #2 |
Новичок
Джуниор
Регистрация: 29.05.2010
Сообщений: 2
|
Также же есть еще один код, там вроде и рандом есть, и коструктор и деструктор. Компилируется без ошибок, но в отладке при добавлении ответов, вылетает с ошибкой cx0000000 в общем что то с указателем, а что понять не могу.
Код C++ #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(); } Как из этих 2 кодов сделать 1 хорошо работающий? |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не рандомный рандом ))))) | Junk1E | Общие вопросы C/C++ | 6 | 09.12.2009 18:51 |
Интервал ответа | Pavelok | Работа с сетью в Delphi | 3 | 16.05.2009 22:08 |
создать в файле рандомный двумерный массив | loon | Помощь студентам | 2 | 25.06.2008 08:32 |
Рандомный вывод | Forrest Gamp | Общие вопросы C/C++ | 6 | 10.02.2008 15:03 |
вывод ответа на соответвующий вопрос | Phoenix53 | Общие вопросы Delphi | 5 | 26.04.2007 00:59 |