Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx55 / Курсовик (2).docx
Скачиваний:
30
Добавлен:
01.08.2013
Размер:
119.32 Кб
Скачать

Код программы

В данном разделе будут приведён код программы, написанный мной, а не студией, с основными комментариями(помимо описанных выше структур классов и заголовочных файлов):

  1. CCursDlg:

void CCursDlg::OnBnClickedButton2() /*процедура нажатия на клавишу «Начать игру»*/

{

// TODO: добавьте свой код обработчика уведомлений

h_dlg.m_History=(CString)"2125 год. Большая часть планеты не пригодна для жизни. Вокруг пустыни и скалы. Государства и страны больше не существуют. Природные ресурсы исчерпаны. Воды осталось так мало, что её норма строго дозированна. Сто литров воды стоят больше, чем хороший дом. Всё изменилось. Осталось всего три города, число жителей в которых строго ограничено. Детей, после рождения, помещают в специальное обучающее заведение. После 10 лет, ребёнок проходит несколько тестов на определение мировоззрения, психического здоровья и умственного развития. Если хотя бы один коэффициент меньше заданного, то его убивают. Один из писателей шутливо назвал новый мир - Утопичная Дистопия. Чёткая иерархия людей и полное подчинение правилам - новый закон существования. Детям, как писал Олдос Хаксли, уже определяют всю их жизнь. На место одного человека претендуют двое или трое детей. И только лучший, либо никто, получит право гордо заявить о своём существовании. Вы будете играть за одного из таких детей, желающего выжить даже в этом, суровом и схематичном мире. Начнём процедуру испытания."; /* текст, который появится в окне Истории (HistoryDlg) */

h_dlg.DoModal(); //вызов окна History

}

  1. CHistoryDlg:

list<game> player; //список типа game(вышеописанная структура данных)

list<game>::iterator beg,end; //два итератора для списка (начало и конец)

vector<CString> Rch(16); /*вектор строк, содержащий выборы, результаты и три основных финала */

int keyb,keyf,keyn,j; /*соответственно: ключ начала игры, ключ нестандартного финала, ключ конца игры, счётчик(необходим для выбора основного финала) */

vector<float> Rez(4); //результаты в процентном виде

game start; //переменная типа game

player.push_back(start);

beg=player.begin();

end=player.end();

beg->evil=0;

beg->good=0;

beg->intellect=0;

beg->psycho=0;

while(keyn!=1)

{

if(keyb==0)

{

m_History=(CString)"Добро пожаловать в центр воспитания и проверки. Сейчас вы находитесь в блоке А. Сегодня важный день. Приготовьтесь к сдаче испытаний. Тест на исследование психики будет проходить в блоке С. Тест на мировоззрение проходит в блоке В. Тест на интеллектуальный способности проходит в главном корпусе. Успеха вам в испытании.";

keyb=1;

UpdateData(FALSE);

}

else

{

c_dlg1.m_choise=Rch[0];//первый выбор

c_dlg1.DoModal(); //вызов диалога выбора

if(c_dlg1.c_key==1) //если результат первый

fetch1();

else

if(c_dlg1.c_key==2) //второй

fetch2();

else

fetch3(); //третий

}

}

if(keyf==0) //если концовка стандартная

{

player.push_back(t_dlg1.Testing); //добавляем результаты тестов

beg=player.begin();

end=beg;

end++;

Rez[0]=(beg->evil+end->evil)*10; //проценты

Rez[1]=(beg->good+end->good)*10;

Rez[2]=(beg->intellect+end->intellect)*10;

Rez[3]=(beg->psycho+end->psycho)*10;

for(int i=0;i<4;i++) //избавление от казусов

{

if(Rez[i]>100)

Rez[i]=100;

}

if((Rez[0]+Rez[1])>100) //добро и зло считаются вместе

{

int j=(Rez[0]+Rez[1])-100;

Rez[1]=Rez[1]-j;

}

for(int i=0;i<4;i++) //избавление от казусов

if(Rez[i]<0)

Rez[i]=0;

for(int i=0;i<4;i++) //преобразование в CString

{

char empty[20];

CString test;

test.Format((CString)"%f",Rez[i]);

Rch[i+9]=test;

}

for(int i=1;i<4;i++) //выбор основных финалов

{

if(Rez[i]<50)

j=1;

}

if(j==0)

{

float sum;

sum=0;

for(int i=1;i<4;i++)

{

sum = sum + Rez[i];

}

sum=sum/50;

if(sum<4)

j=2;

}

if(j==0)

j=3;

m_History=(CString)"Поздравляем. Вы прошли все испытания. Вот ваши результаты в процентном соотношении: Добро - "+Rch[10]+(CString)" Зло - "+Rch[9]+(CString)" Психическое состояние - "+Rch[12]+(CString)" Интеллект - "+Rch[11]+(CString)" Ваш итог: "+Rch[13+j-1]; //вывод финального текста

UpdateData(FALSE);

}

}

void CHistoryDlg::InitVector(void)

{

Rch[0]="Перед вами пост безопасности. Охрана куда-то отошла. Вокруг никого не видно. Вы замечаете лежащий без присмотра нож. Вы можете: 1. Взять и спрятать оружие. 2. Пройти мимо, не обращая внимания. 3. Сообщить по связи на посту, что оружие лежит без присмотра.";

Rch[1]="Вы выходите в коридор и замечаете плачущую девушку, которая проходит тесты в параллельной группе детей. Судя по всему, она плохо готова к первому тесту на мировоззрение. Вы можете: 1. Пройти мимо, не обратив внимания. 2. Сообщить психологам о эмоциональной нестабильности проходящей испытание. 3. Попытаться успокоить и помочь разобраться с трудностями";

Rch[2]="Вы сталкиваетесь с детьми, проходящими тесты с вами. Они с ненавистью смотрят на вас. Видимо, уже узнали результаты первого теста. Один из них толкает вас плечом, проходя мимо. Вы можете: 1. Пойти дальше, не обратив внимания. 2. Сделать замечание о неправильном поведении. 3. Избить его в ответ";

Rch[3]="В коридоре вы встречаете работника отдела психоанализа. Он выражает вам благодарность за сообщение о неправильном поведении мальчика. Оказывается, тот был склонен к физическому насилию. Он говорит, что начальство позволяет вам самому выбрать, что с ним делать: 1. Убить 2. Сделать частичную лоботомию 3. Позволить продолжить испытание под наблюдением";

Rch[4]="Вы проходите мимо комнаты наблюдения и замечаете начальника охраны, который просматривает видеозаписи. Видимо, ищут пропавшее оружие. Вы можете: 1. Убить начальника охраны и стереть запись, отправившись дальше. 2. Пройти мимо и избавиться от ножа при первом удачном случае. 3. Зайти и отдать нож, сказав, что взял его в целях безопасности.";

Rch[5]="Вас нашли и обыскали, но оружие не нашли. Решив, что видеозапись некачественна, искали по корпусу и вскоре нож нашёлся. Отпечатков на нём не было. Вам предлагают признаться в содеяном, потому что вы - единственный, кто проходил мимо. Вы можете: 1. Признаться в содеянном. 2. Отрицать факт ношения оружия. 3. Сказать, что ваши соперники угрожали вам, чтобы вы взяли его.";

Rch[6]="Выходя из блока, вы натыкаетесь на трёх девушек, которые весьма недовольны вашей помощью одной из их соперниц. Недолгая стычка заканчивается вашим поражением. Вы можете: 1. Сделать вид, что ничего не произошло. 2. Сообщить охране и психологам о произошедшем. 3. Найти их и отомстить";

Rch[7]="Проходя мимо крыла психиатрии, вы замечаете деушку, которую недавно видели плачущую. Она полусидит-полулежит на стуле, возле кабинета психолога. Судя по всему, ей подписали смертный приговор. Вы можете: 1. Пройти мимо, не обратив внимания. 2. Подхватить девушку и спрятать где-нибудь. 3. Присесть рядом и проводить её к крылу казни, проводив в последний путь.";

Rch[8]="Выйдя из-за поворота, вы замечаете девушку, которую недавно видели плачущую. Она угрожает ножом одному из руководителей испытаний. Вы можете: 1. Сообщить охране о нападении ребёнка на сотрудника. 2. Тихо уйти, оставив всё, как есть. 3. Наброситься на девушку, выхватив нож и позже передать её охране"; //инициализация выборов

for(int i=0;i<4;i++) //результаты в процентах

Rez[i]=0;

Rch[13]="Ваши результаты не удовлетворяют средней границе. Вы - неподходящий член нашему обществу. С сожалением сообщаем, что ваша жизнь будет прервана в течение двадцати минут. Бежать бесполезно. Игра окончена.";

Rch[14]="Поздравляем! Ваши результаты превысили порог, и вы всего лишь в шаге от долгожданной свободы и жизни. К сожалению, в вашей группе нашёлся человек, который прошёл испытание лучше. Вы - неподходящий член для нашего общества. С сожалением сообщаем, что ваша жизнь будет прервана";

Rch[15]="Поздравляем! Ваши результаты лучшие среди группы. Вам позволено стать дойстойным гражданином. Просим вас собрать вещи и пройти в блок D для завершения регистрации. С уважением, Администрация Центра Воспитания и Тестирования"; //три основных финала

}

void CHistoryDlg::fetch1(void) //если на первый выбор выбран первый вариант

{

while(keyn!=1)

{

t_dlg1.k_test=1; //первый тест

t_dlg1.m_test="Добро пожаловать в блок С. Сейчас вы должны будете пройти тест на психическое здоровье. Нажмите 'Далее' для начала испытания.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[4]; //второй выбор

c_dlg1.DoModal();

if(c_dlg1.c_key==1) //определение результатов второго выбора

{

m_History="Кровь стекает с ваших рук. Вы хищно улыбаетесь, но тут же улыбка сползает с вашего лица - в коридоре слышны шаги. Кажется, приближается охрана. Вы бегло оглядываетесь и видите, что кнопка тревоги нажата. Сжимая рукоять ножа, вы готовитесь встретить проверяющих. Дверь открывается, и вы успеваете услышать выстрел. Вы умерли. Игра закончена";

keyn=1; //нестандартный финал

keyf=1;

UpdateData(FALSE);

}

else

{

if(c_dlg1.c_key==2)

{

t_dlg1.k_test=2; //второй тест

t_dlg1.m_test="Добро пожаловать в блок В. Сейчас вам предстоит пройти тест на мировоззрение. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[5]; //третий выбор

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

beg->psycho--; //результаты третьего выбора

}

else

{

if(c_dlg1.c_key==2)

{

beg->evil++;

}

else

{

beg->evil++;

}

}

t_dlg1.k_test=3;

t_dlg1.m_test="Добро пожаловать в главный корпус. Сейчас вам предстоит пройти тест на интеллектуальные способности. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal(); //третий тест

keyn=1;

}

else

{

m_History="Начальник охраны улыбается вам и нажимает кнопку тревоги. Звук сирены бьёт по ушам. Вы слышите топот людей. Вы вспоминаете, что за ношение оружия обычными людьми, полагается ступенчатая казнь, включающая в себя несколько часов мучений. Вырвав нож из рук начальника охраны, вы вгоняете его себе в сердце. Прощальная улыбка скользит по губам. Охранник смотрит на вас с презрением. Вы умерли. Игра закончена.";

keyn=1;

keyf=1;

UpdateData(FALSE);

}

}

}

}

void CHistoryDlg::fetch2(void) //см. fetch1

{

t_dlg1.k_test=1;

t_dlg1.m_test="Добро пожаловать в блок С. Сейчас вы должны будете пройти тест на психическое здоровье. Нажмите 'Далее' для начала испытания.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[2];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

m_History="Вы идёте в следующий блок. В проходе между блоками, вас встречают дети, проходящие испытание с вами. Один из них, с которым вы совсем недавно встречались в коридоре, держит в руках нож. Кажется, он взял его на посту охраны. Они хищно улыбаются. Вы слишком поздно вспоминаете, что в коридорах между блоками нет камер. Вас убили. Игра окончена";

keyn=1;

keyf=1;

UpdateData(FALSE);

}

else

{

if(c_dlg1.c_key==2)

{

t_dlg1.k_test=2;

t_dlg1.m_test="Добро пожаловать в блок В. Сейчас вам предстоит пройти тест на мировоззрение. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[3];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

beg->evil++;

}

else

{

if(c_dlg1.c_key==2)

{

beg->evil++;

}

else

{

beg->good++;

beg->psycho--;

}

}

t_dlg1.k_test=3;

t_dlg1.m_test="Добро пожаловать в главный корпус. Сейчас вам предстоит пройти тест на интеллектуальные способности. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

keyn=1;

}

else

{

m_History="Прибегает охрана. Вас схватили и оттащили от пострадавшего. Мальчик смотрит на вас со страхом и ужасом. Он утверждает, что вы напали на него. Охрана молча тащит вас в корпус психологии, где расположен отдел эвтаназии. Физическое насилие давно под страхом смертной казни. Игра окончена";

keyn=1;

keyf=1;

UpdateData(FALSE);

}

}

}

void CHistoryDlg::fetch3(void)

{

t_dlg1.k_test=1;

t_dlg1.m_test="Добро пожаловать в блок С. Сейчас вы должны будете пройти тест на психическое здоровье. Нажмите 'Далее' для начала испытания.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[1];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

t_dlg1.k_test=2;

t_dlg1.m_test="Добро пожаловать в блок В. Сейчас вам предстоит пройти тест на мировоззрение. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[8];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

beg->psycho++;

}

else

{

if(c_dlg1.c_key==2)

{

beg->evil++;

}

else

{

beg->good++;

}

}

t_dlg1.k_test=3;

t_dlg1.m_test="Добро пожаловать в главный корпус. Сейчас вам предстоит пройти тест на интеллектуальные способности. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

keyn=1;

}

else

{

if(c_dlg1.c_key==2)

{

t_dlg1.k_test=2;

t_dlg1.m_test="Добро пожаловать в блок В. Сейчас вам предстоит пройти тест на мировоззрение. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[7];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

beg->psycho++;

}

else

{

if(c_dlg1.c_key==2)

{

m_History="Вас и похищенную девушку быстро нашли, отследив записи камер наблюдения. Вас насильно заставили пройти курс психоанализа. По его результатам, у вас выявили склонность к противозаконным действиям. Вы будете ликвидированы вместе с девушкой. Игра окончена";

keyn=1;

keyf=1;

UpdateData(FALSE);

}

else

{

beg->good++;

beg->psycho--;

}

}

t_dlg1.k_test=3;

t_dlg1.m_test="Добро пожаловать в главный корпус. Сейчас вам предстоит пройти тест на интеллектуальные способности. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

keyn=1;

}

else

{

t_dlg1.k_test=2;

t_dlg1.m_test="Добро пожаловать в блок В. Сейчас вам предстоит пройти тест на мировоззрение. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

c_dlg1.m_choise=Rch[6];

c_dlg1.DoModal();

if(c_dlg1.c_key==1)

{

beg->good++;

}

else

{

if(c_dlg1.c_key==2)

{

beg->psycho++;

}

else

{

m_History="Вы быстро находите обидчиц и в считанные минуты расправляетесь с ними. Охрана успевает к тому моменту, когда они уже едва двигаются. Вас хватают и отводят в корпус психологии. Физическое насилие под страхом смертной казни. Вы будете устранены. Игра окончена.";

keyn=1;

keyf=1;

UpdateData(FALSE);

}

}

t_dlg1.k_test=3;

t_dlg1.m_test="Добро пожаловать в главный корпус. Сейчас вам предстоит пройти тест на интеллектуальные способности. Нажмите 'Далее', чтобы начать испытание.";

t_dlg1.DoModal();

keyn=1;

}

}

}

  1. CChoiseDlg:

void CChoiseDlg::OnBnClickedButton1() /*обработка нажатия кнопки «Сделать выбор»*/

{

// TODO: добавьте свой код обработчика уведомлений

UpdateData(TRUE);

OnOK();

}

void CChoiseDlg::OnBnClickedRadio3() //результат выбора

{

// TODO: добавьте свой код обработчика уведомлений

c_key=1;

}

void CChoiseDlg::OnBnClickedRadio1()

{

// TODO: добавьте свой код обработчика уведомлений

c_key=2;

}

void CChoiseDlg::OnBnClickedRadio2()

{

// TODO: добавьте свой код обработчика уведомлений

c_key=3;

}

  1. CTestDlg:

vector<int> keys(15); //ключи пройденных вопросов (3 теста * 5 вопросов)

vector<CString> GTest(15); //содержание текстов

int keyt; //нужен для регуляции кнопок

void CTestDlg::OnBnClickedButton2() //нажатие на клавишу «Далее»

{

// TODO: добавьте свой код обработчика уведомления

InitVector();

if(keyt==0) //т.е. не было нажатия ранее

{

if(k_test==1) //ищем нужный тест

{

Execute1(); //выполнение теста

keyt=1;

}

else

if(k_test==2)

{

Execute2();

keyt=1;

}

else

if(k_test==3)

{

Execute3();

keyt=1;

}

}

UpdateData(FALSE);

}

void CTestDlg::Execute1(void) //выполнение первого теста

{

if(keys[0]==1) //анализ первого вопроса

{

switch(t_ch)

{

case 1:

Testing.psycho=Testing.psycho+2;

break;

case 2:

Testing.psycho--;

break;

case 3:

Testing.psycho=Testing.psycho-2;

break;

}

keys[0]=2;

}

if(keys[1]==1) //анализ второго вопроса

{

switch(t_ch)

{

case 1:

Testing.psycho=Testing.psycho-2;

break;

case 2:

Testing.psycho=Testing.psycho+2;

break;

case 3:

Testing.psycho=Testing.psycho--;

break;

}

keys[1]=2;

}

if(keys[2]==1)

{

switch(t_ch)

{

case 1:

Testing.psycho=Testing.psycho-2;

break;

case 2:

Testing.psycho=Testing.psycho--;

break;

case 3:

Testing.psycho=Testing.psycho+2;

break;

}

keys[2]=2;

}

if(keys[3]==1)

{

switch(t_ch)

{

case 1:

Testing.psycho=Testing.psycho+2;

break;

case 2:

Testing.psycho--;

break;

case 3:

Testing.psycho=Testing.psycho-2;

break;

}

keys[3]=2;

}

for(int i=0;i<5;i++) //вывод на экран следующего вопроса

{

if(keys[i]==0)

{

m_test=GTest[i];

keys[i]=1;

UpdateData(FALSE);

if(i==4)

k_test=0;

break;

}

}

}

void CTestDlg::Execute2(void) //см. Execute1

{

if(keys[5]==1)

{

switch(t_ch)

{

case 1:

Testing.evil++;

Testing.good++;

break;

case 2:

Testing.good=Testing.good+2;

break;

case 3:

Testing.evil=Testing.evil+2;

break;

}

keys[5]=2;

}

if(keys[6]==1)

{

switch(t_ch)

{

case 1:

Testing.good=Testing.good+2;

break;

case 2:

Testing.evil++;

Testing.good++;

break;

case 3:

Testing.evil=Testing.evil+2;

break;

}

keys[6]=2;

}

if(keys[7]==1)

{

switch(t_ch)

{

case 1:

Testing.evil=Testing.evil+2;

break;

case 2:

Testing.evil++;

Testing.good++;

break;

case 3:

Testing.good=Testing.good+2;

break;

}

keys[7]=2;

}

if(keys[8]==1)

{

switch(t_ch)

{

case 1:

Testing.evil++;

Testing.good++;

break;

case 2:

Testing.evil=Testing.evil+2;

break;

case 3:

Testing.good=Testing.good+2;

break;

}

keys[8]=2;

}

for(int i=5;i<10;i++)

{

if(keys[i]==0)

{

m_test=GTest[i];

keys[i]=1;

UpdateData(FALSE);

if(i==9)

k_test=0;

break;

}

}

}

void CTestDlg::Execute3(void) //см. Execute1

{

if(keys[10]==1)

{

switch(t_ch)

{

case 1:

Testing.intellect=Testing.intellect+2;

break;

case 2:

Testing.intellect--;

break;

case 3:

Testing.intellect=Testing.intellect-2;

break;

}

keys[10]=2;

}

if(keys[11]==1)

{

switch(t_ch)

{

case 1:

Testing.intellect=Testing.intellect-2;

break;

case 2:

Testing.intellect=Testing.intellect+2;

break;

case 3:

Testing.intellect++;

break;

}

keys[11]=2;

}

if(keys[12]==1)

{

switch(t_ch)

{

case 1:

Testing.intellect=Testing.intellect-2;

break;

case 2:

Testing.intellect=Testing.intellect+2;

break;

case 3:

Testing.intellect--;

break;

}

keys[12]=2;

}

if(keys[13]==1)

{

switch(t_ch)

{

case 1:

Testing.intellect=Testing.intellect+2;

break;

case 2:

Testing.intellect--;

break;

case 3:

Testing.intellect=Testing.intellect-2;

break;

}

keys[13]=2;

}

for(int i=10;i<15;i++)

{

if(keys[i]==0)

{

m_test=GTest[i];

keys[i]=1;

UpdateData(FALSE);

if(i==14)

k_test=0;

break;

}

}

}

void CTestDlg::InitVector(void)

{

if(k_test==1) /*инициализация только при первом тесте, далее результат остаётся*/

{

Testing.evil=0;

Testing.good=0;

Testing.intellect=0;

Testing.psycho=0;

}

GTest[0]="Какая система общества из предложенных наиболее продуктивна? 1. Иерархическая 2. Анархизм 3. Равноправие";

GTest[1]="Все ли дети заслуживают право на жизнь? 1. Конечно, ведь все мы - одного вида. 2. Нет. Общество только выиграет, если мы будем поддерживать искусственный отбор. 3. Нет, но стоит снизить требования.";

GTest[2]="Вы, наверняка, знаете, что с недавних пор литература под запретом. Выберите наиболее близкое для вас мнение: 1. Мне кажется, что вместе с литературой мы потеряли огромную часть культурной составляющей жизни. 2. Не вся литература опасна. Считаю, что стоит разрешить часть из неё. 3. Я считаю, что культура развращает, прививает чужеродные теории. Давно пора.";

GTest[3]="Знаете ли вы, что такое - религия? 1. Нет. Никогда не слышал подобного слова. 2. Не уверен. Слышал пару раз слово, но не вникал в его суть. 3. Да, знаю.";

GTest[4]="Поддерживаете ли вы закон о запрете оружия? 1. Нет, оружие - то, что обеспечит всем защиту и равенство. 2. Да, оружие - средство убийства, которое следует запретить. 3. Я не думал над этим";

GTest[5]="Какое определение добра и зла вам ближе: 1. Добро и зло - наше собственное мировоззрение, зажатое в рамки. 2. Добро и зло формируются обществом/властью и принимаются нами априори 3. Добро и зло диктуются нам различными учениями. Например, религией.";

GTest[6]="Почему обществу необходимо введение чёткого контроля над людьми? 1. Людям свойственно лгать и ошибаться. Государству следует ограничить количество населения таким числом людей, которое оно сможет контролировать. 2. Контроль рождаемости улучшает качество людей (генофонд), что способствует развитию человека. 3. Не задумывался над этим вопросом.";

GTest[7]="Выберите наиболее близкое вам утверждение: 1. Не желающие зла точно так же причиняют боль, как и желающие. 2. Никому не позволено сомневаться в добре. Мы за это ноги отрываем. 3. Добро и зло можно подчинить, если ты обладаешь властью";

GTest[8]="Как вы относитесь к тем, кто проходит испытание вместе с вами? 1. Презрительно. Я, однозначно, заслуживаю жизни больше, чем они. 2. С ненавистью. Никто не имеет права ограничивать моё желание жить. 3. С равнодушием. Обществу нужны только лучшие из нас. Я думаю, что тот, кто будет лучшим, станет достойным членом обществом. В этой ситуации нельзя думать только о себе. ";

GTest[9]="Что из приведённого является добром? 1. Помощь окружающим людям 2. Эгоизм 3. Ничего из двух вариантов";

GTest[10]="Назовите пятое число ряда Фибоначчи: 1. '5' 2. '8' 3. '6'";

GTest[11]="Расшифруйте фразу Memento Mori: 1. Истина в Вине 2. Помни, что умрёшь 3. Мёртвая природа";

GTest[12]="Решает ли все проблемы 'rm -rf /*' от root? 1. Да 2. Нет 3. Только если хочешь что-то поменять в жизни";

GTest[13]="Ответ на главный вопрос жизни, Вселенной и вообще? 1. 42 2. Гедонизм 3. Смысла жизни нет";

GTest[14]="Смотреть бесконечно можно на три вещи: горящий огонь, текущую воду и: 1. Компиляцию ядра 2. Красивую девушку 3. Сублимацию личности";

//вопросы теста

}

void CTestDlg::OnBnClickedButton3() //нажатие кнопки «Следующий вопрос»

{

// TODO: добавьте свой код обработчика уведомлений

if(keyt==1) //если уже была нажата клавиша «Далее»

{

UpdateData(TRUE);

if(k_test==0) //если тест закончен, то анализируем последний выбор

{

if(keys[4]==1)

{

switch(t_ch)

{

case 1:

Testing.psycho=Testing.psycho-2;

break;

case 2:

Testing.psycho=Testing.psycho+2;

break;

case 3:

Testing.psycho--;

break;

}

keys[4]=2;

}

if(keys[9]==1)

{

switch(t_ch)

{

case 1:

Testing.evil++;

Testing.good++;

break;

case 2:

Testing.evil=Testing.evil+2;

break;

case 3:

Testing.good=Testing.good+2;

break;

}

keys[9]=2;

}

if(keys[14]==1)

{

switch(t_ch)

{

case 1:

Testing.intellect--;

break;

case 2:

Testing.intellect=Testing.intellect+2;

break;

case 3:

Testing.intellect=Testing.intellect-2;

break;

}

keys[14]=2;

}

keyt=0; //кнопка «Далее» не нажималась

OnOK(); //закрываем окно

}

if(k_test==1)

Execute1();

else

if(k_test==2)

Execute2();

else

if(k_test==3)

Execute3();

}

}

void CTestDlg::OnBnClickedRadio1() //анализ выбора в вопросе

{

// TODO: добавьте свой код обработчика уведомлений

t_ch=1;

UpdateData(TRUE);

}

void CTestDlg::OnBnClickedRadio4()

{

// TODO: добавьте свой код обработчика уведомлений

t_ch=2;

UpdateData(TRUE);

}

void CTestDlg::OnBnClickedRadio2()

{

// TODO: добавьте свой код обработчика уведомлений

t_ch=3;

UpdateData(TRUE);

}

Соседние файлы в папке docx55