#!/usr/bin/perl -w use 5.004; use strict; use CGI qw(:standard); use Fcntl qw(:flock); my($TITLE, $RESULTTITLE, $i, @choices, $s, $podsum, $sum, $picture); $TITLE = 'Умеете ли Вы быть счастливым?'; $RESULTTITLE = 'Результаты теста "Умеете ли Вы быть счастливым?"'; print header; if (! defined(param())) { print start_html(-title => $TITLE, -bgcolor => 'silver'), h1($TITLE), hr; CGI->new(); # текущий запрос print blockquote(strong("У каждого человека в жизни бывают мгновения счастья. Но бывают и черные дни, когда человек ненавидит себя и весь мир. Важно, чтобы такие дни были короче и проходили быстрее. Нужно уметь принимать неприятности стойко, противостоять им с философским спокойствием и чаще радоваться подаркам жизни. А умеете ли быть счастливым Вы? На каждый вопрос выберите один из трех ответов.\n")), hr; print start_form; print p("1. Иногда Вы задумываетесь над прошлым", br, radio_group( -name => 'radio1', -values => [qw(a b c)], -labels => { a => 'Вам кажется, что все было скорее плохо, чем хорошо.', b => 'Было скорее хорошо, чем плохо.', c => 'Все было отлично.'}, -linebreak => 'true') ), p("2. В конце дня", br, radio_group( -name => 'radio2', -values => [qw(a b c)], -labels => { a => 'Вы обыкновенно собой недовольны.', b => 'Считаете, что день мог бы пройти лучше.', c => 'Засыпаете с чувством удовлетворения от правильно прожитого дня.'}, -linebreak => 'true') ), p("3. Когда Вы смотритесь в зеркало, то чаще всего думаете:", br, radio_group( -name => 'radio3', -values => [qw(a b c)], -labels => { a => '"Ужас! Лучше не смотреть!".', b => '"А что, совсем неплохо!".', c => '"Все прекрасно!".'}, -linebreak => 'true') ), p("4. Вы узнаете о крупном выигрыше кого-то из знакомых, думаете:", br, radio_group( -name => 'radio4', -values => [qw(a b c)], -labels => { a => '"Ну, мне-то никогда не повезет!".', b => '"Ну почему - не я?".', c => '"Мне тоже повезет когда-нибудь!".'}, -linebreak => 'true') ), p("5. Когда Вы узнаете по радио, телевизору или из газет о каком-либо происшествии, то говорите себе:", br, radio_group( -name => 'radio5', -values => [qw(a b c)], -labels => { a => '"Вот так однажды будет и со мной".', b => '"К счастью, меня эта беда миновала!".', c => '"Эти репортеры умышленно нагнетают страсти!".'}, -linebreak => 'true') ), p("6. Когда Вы просыпаетесь утром, то чаще всего:", br, radio_group( -name => 'radio6', -values => [qw(a b c)], -labels => { a => 'Вам ни о чем не хочется думать.', b => 'Взвешиваете, что день грядущий Вам готовит.', c => 'Довольны, что начался новый день, и могут быть новые радости.'}, -linebreak => 'true') ), p("7. Вы думаете о ваших приятелях:", br, radio_group( -name => 'radio7', -values => [qw(a b c)], -labels => { a => 'Что они не столь интересны и отзывчивы, как хотелось бы.', b => 'Конечно, у них есть недостатки, но в целом они вполне терпимы.', c => 'Замечательные люди!'}, -linebreak => 'true') ), p("8. Сравнивая себя с другими, Вы находите:", br, radio_group( -name => 'radio8', -values => [qw(a b c)], -labels => { a => 'Что Вас недооценивают.', b => 'Вы не хуже остальных.', c => 'Вы годитесь в лидеры, и это, пожалуй, признают все.'}, -linebreak => 'true') ), p("9. Если Ваш вес увеличился на 4-5 килограммов, то Вы:", br, radio_group( -name => 'radio9', -values => [qw(a b c)], -labels => { a => 'Впадаете в панику.', b => 'Считаете, что в этом нет ничего особенного.', c => 'Тут же переходите на диету и усиленно занимаетесь физическими упражнениями.'}, -linebreak => 'true') ), p("10. Если Вы находитесь в подавленном состоянии, то:", br, radio_group( -name => 'radio10', -values => [qw(a b c)], -labels => { a => 'Клянете судьбу.', b => 'Знаете, что плохое настроение пройдет.', c => 'Стараетесь развлечься.'}, -linebreak => 'true') ), p(submit("отправить"), reset("очистить")), end_form, hr, end_html; } else { #форма заполнена @choices = (); for $i (1..10) { @choices = (@choices, param("radio"."$i")); } $s = join('', @choices); print start_html(-title => $RESULTTITLE, -bgcolor => 'silver'), h1($RESULTTITLE), hr; $s =~ s/a//gs; # a - 0 $sum = $s =~ s/b//gs; # b - 1 $podsum = $s =~ s/c//gs; $sum = $sum+ 2*$podsum; # c - 2 if ((20 >= $sum) && ($sum>=17)) { $sum = 'Вы до того счастливый человек, что даже не верится, что это возможно! Вы так радуетесь жизни, что не обращаете внимания ни на какие неприятности. Как жизнерадостный человек, Вы привлекаете окружающих своим оптимизмом, но... Не слишком ли поверхностно Вы относитесь ко всему происходящему? Немного трезвости Вам не повредит.'; $picture = 'amvictor.gif'; } elsif ((16 >= $sum) && ($sum >= 13)) { $sum = 'Вы - по-настоящему счастливый человек, и радости в Вашей жизни явно больше, чем печали. Вы мужественны, хладнокровны, у Вас трезвый склад ума и легкий характер. Не паникуете, сталкиваясь с трудностями, спокойно их оцениваете. Окружающим с Вами удобно.'; $picture = 'amhappy.gif'; } elsif ((12 >= $sum) && ($sum >= 8)) { $sum = 'Счастье и несчастье для Вас выражаются известной формулой "пятьдесят на пятьдесят". Если хотите склонить чашу весов в свою пользу, старайтесь не пасовать перед трудностями, стойко встречайте их, опирайтесь на друзей, не оставляйте их в беде.'; $picture = 'amconfus.gif'; } elsif ((7 >= $sum) && ($sum >= 0)) { $sum = 'Вы привыкли на всё смотреть сквозь тёмные очки. Считаете, что судьба уготовила Вам печальную участь, и даже иногда бравируете этим. А стоит ли? Старайтесь чаще проводить время с веселыми, оптимистически настроенными людми. Хорошо бы Вам чем-то увлечься, найти "хобби".'; $picture = 'amproble.gif'; } print blockquote(strong(em($sum))), end_html; }