Как написать программу с вариантами ответов

Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..

Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Создаем приложение с авторизацией и тестом в Visual Studio 2017, используя CheckBox и RadioButton

Delphi в задачах и примерах

Игры и полезные программы

63. Напишите программу тестирования, в которой вопрос может сопровождаться иллюстрацией, а количество вариантов ответа к каждому вопросу может быть от двух до 4

Пример окна программы приведен на рис. 1.70.

Рис. 1.70. Окно программы

Вопросы теста должны находиться в текстовом файле, имя которого должно передаваться программе тестирования как параметр командной строки.
Предлагается следующая структура файла теста. Первая строка файла теста — название теста, за которым следуют разделы:

  • заголовка;
  • оценок;
  • вопросов.

Сейчас Вам будут предложены вопросы о знаменитых памятниках
и архитектурных сооружениях Санкт-Петербурга. Вы должны
из предложенных нескольких вариантов ответа выбрать правильный.

За заголовком следует раздел оценок, в котором приводятся на звания оценочных уровней и количество баллов, необходимое для достижения этих уровней. Название уровня должно располагаться в одной строке. Вот пример раздела оценок:

Отлично
100
Хорошо
85
Удовлетворительно
60
Плохо
50

За разделом оценок следует раздел вопросов теста. Каждый вопрос начинается текстом вопроса, за которым может следовать имя файла иллюстрации, размещаемое на отдельной строке и начинающееся символом . Имя файла иллюстрации является признаком конца текста вопроса. Если к вопросу нет иллюстрации, то вместо имени файла ставится точка. После, вопроса следуют альтернативные ответы.

Текст альтернативного ответа может занимать несколько строк. В строке, следующей за текстом ответа, располагается оценка (количество баллов) за выбор этого ответа. Если альтернативный ответ не является последним для текущего ответа, то перед оценкой ставится запятая, если последний — то точка.

Как Решать Тест – 5 Правил и 1 Секретное Оружие

Читайте также:
Как назвать программу на 9 мая


Вот пример вопроса:

Архитектор Исаакиевского’ собора:
isaak.bmp
Домеиико Трезини
,0
Огюст Монферран
,1
Карл Росси
.0

В приведенном вопросе первый и третий варианты ответа помечены как не правильные (оценка за их выбор равна нулю).
Вид формы программы тестирования приведен на рис. 1.71.

I Универсальная программа тестирования.
(с) Культин Н.Б., 2003 )
unit tester_;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
jpeg;
type
TForml = class(TForm)
// вопрос
Label5: TLabel;
// альтернативные ответы
Label1: TLabel;
Рис. 1.71. Форма программы тестирования
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
// переключатели выбора ответа
RadioButtonl: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Imagel: TImage; // область вывода иллюстрации
Buttonl: TButton;
Panell: TPanel;
RadioButton5: TRadioButton;
procedure FormActivate(Sender: TObject);
procedure ButtonlClick(Sender: TObject);
procedure RadioButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
// Эти объявления вставлены сюда вручную
procedure Info;
procedure VoprosToScr;
procedure ShowPicture; // выводит иллюстрацию
procedure ResetForm; // «очистка» формы перед выводом
// очередного вопроса
procedure Itog; // результат тестирования
private
/’ Private declarations >
public
I Public declarations j
end;
var
Forrnl: TForml; // форма
implementation

const
N_LEV=4; // четыре уровня оценки
N_ANS=4; // четыре варианта ответов
var >
f:TextFile;:
fn:string; // имя файла вопросов
// сумма, соответствующая уровню
level:array[l..N_LEV] of integer;
// сообщение, соответствующее уровню
mes:array[1..N_LEV] of string;
score: array[ 1. .N_ANS] of integer; //’ оценка за выбор ответа
suirnia: integer; // набрано очков
vopros:integer; // номер текущего вопроса
otv:integer; // номер выбранного ответа
// вывод информации о тесте
procedure Tforml.Info;
var
s,buf:string;
begin
readln(f,s);
Forml.Caption := s;
buf:=»;
repeat
readln(f,s);
if s[l] <>
then buf := buf +s + #13;
until s[1] =’.’ ;
Label5.caption:=buf;
end;
// прочитать информацию об оценках за тест
Procedure GetLevel;
var
i:integer;
buf:string;
begin
i:=l;
repeat
readln(f,buf) ;
if buf[1] <> ‘.’ then begin
mes[i]:=buf; // сообщение
readln(f,level[i]); // оценка
i:=i+l;
end;
until buf[1]=’.’;
end;
// масштабирование иллюстрации
Procedure TForml.ShowPicture;
var
w,h: integer; // максимально возможные размеры картинки
begin
// вычислить допустимые размеры картинки
w:=C.lientWidth-10;
h:=ClientHeight
— Panell.Height -10
— Label5.Top
— Label5.Height — 10;
// вопросы
if Label1.Caption О »
then h:=h-Labell.Height-10;
if Label2.Caption <> »
then h:=h-Label2.Height-10;
if Label3.Caption <> »
then h:=h-Label3.Height-10;
if Label4.Caption <> »
then h:=h-Label4.Height-10;
// если размер картинки меньше w на h,
// то она не масштабируется
ImageI.Top:=Forml.Label5.Top+Label5.Height+10;
if Image1.Picture.Bitmap.Height > h
then Imagel.Height:=h
else Imagel.Height:= Imagel.Picture.Height;
if Imagel.Picture.Bitmap.Width > w
then Imagel.Width:=w
else Imagel.Width:=Imagel.Picture.Width;
Imagel.Visible := True;
end;
// вывести вопрос
Procedure TForml.VoprosToScr;
var
i:integer;
s,buf:string;
ifn:string; // файл иллюстрации
begin
vopros:=vopros+l;
caption:=’Вопрос ‘ + IntToStr(vopros);
// прочитать вопрос
buf:=»;
repeat
readln(f,s);
if (s[l] о ‘.’) and (s[l] <> ‘V)
then buf:=buf+s+’ ‘;
until (s[l] =’.’) or (s[l] =»);
Label5.caption:=buf; // вывести вопрос
I Иллюстрацию прочитаем, но выведем только после
того, как прочитаем альтернативные ответы
и определим максимально возможный размер
области формы, который можно использовать
для ее вывода.>
if s[l] <> ‘V
then Imagel.Tag:=0 // к вопросу нет иллюстрации
else // к вопросу есть иллюстрация
begin
Imagel.Tag:=l;
ifn:=copy(s,2,length(s)) ;
try
Imagel.Picture.LoadFromFile(ifn) ;
except
on E:EFOpenError do
Imagel. Tag:=0;
end;
end;
// читаем варианты ответов
i:=l;
repeat
buf:=»;
repeat // читаем текст варианта ответа
readln(f,s);
if (s[l]<>’ . ‘ ) and (s[l] <> ‘, ‘ )
then buf:=buf+s+’ ‘;
until (s[l] = r, ‘ )or(s[l] = ‘ . ‘) ;
// прочитан альтернативный ответ
scored] := StrToInt (s [2] ) ;
case i of
1: Labell.caption:=buf;
2: Label2.caption:=buf;
3: Label3.caption:=buf;
4: Label4.caption:=buf;
end;
i:=i+l;
until s[l] = ‘ . ‘ ;
// здесь прочитана иллюстрация и альтернативные ответы
// текст вопроса уже выведен
if Imagel.Tag =1 // есть иллюстрация к вопросу
then ShowPicture;
// вывод альтернативных ответов
if Forml.Labell.Caption О »
then begin
if Forml.Imagel.Tag =1
then Labell.Top:=Imagel.Top+Imagel.Height+10
else Labell.Top:=Label5.Top+Label5.Height+10;
RadioButtonl.Top:=Labell.Top;
Labell.visible:=TRUE;
RadioButtonl.visible:=TRUE;
end;
if Forml.Label2.Caption <> »
then begin
Label2.top:=Labell.top+ Labell.height+10;
RadioButton2.top:=Label2.top;
Label2 . visible: =TRUE;
RadioButton2.visible:=TRUE;
end;
if Forml.Label3.Caption о »
then begin
Label3.top:=Label2.top+ Label2.height+10;
RadioButton3.top:=Label3.top;
Label3.visible:=TRUE;
RadioButton3.visible:=TRUE;
end;
if Forml.Label4.Caption О ‘ then begin
Label4.top:=Label3.top+ Label3.height+10;
RadioButton4.top:=Label4.top;
Label4.visible:=TRUE;
RadioButton4.visible:=TRUE;
end;
end;
Procedure TForml.ResetForm;
begin // сделать невидимыми все метки и переключатели
Labell.Visible:=FALSE;
Labell.Caption:=»;
Labell.Width:=ClientWidth-Labell.left-5;
RadioButtonl.Visible:=FALSE;
Label2.Visible:=FALSE;
Label2.Caption:=»;
Label2.Width:=ClientWidth-Label2.left-5;
RadioButton2.Vis ible:=FALSE;
Label3.Visible:=FALSE;
Label3.Caption:=»;
Label3.Width:=ClientWidth-Label3.1eft-S;
RadioButton3.Visible:=FALSE;
Label4.Visible:=FALSE;
Label4.Caption:=»;
Labe14.Width:=C1ientWidth-Label4.lett-5;
RadioButton4.Visible:=FALSE;
Label5.Width:=ClientWidth-Label5.left-5;
Imagel.Visible:=FALSE;
end;
// определение достигнутого уровня
procedure TForml.Itog;
var
i:integer;
buf:string;
begin
buf:=»;
buf:=’Результаты тестирования’+ #13
+’Всего баллов: ‘+ IntToStr(summa);
i:=l;
while (summa

Читайте также:
Программ блок точка ком

Источник: programm.ws

Задачи по C++. Выбор правильного ответа.

Задачи по C++

Автор cyber На чтение 2 мин.

Условие задачи : написать программу проверки знания футбола . Программа должна вывести вопрос на экран с вариантами ответа, а пользователь должен выбрать один из них.

Сложность : легкая .

Задача довольно простая . Сделаем мы её с помощью if else . Для начала нам надо придумать какой-нибудь вопрос. Я решил его сделать про «Золотой мяч».

Допустим вопрос у нас есть . Давайте теперь создадим каркас нашей задачи с переменными которые нам нужны.
Нам понадобиться только одна переменная под ответ.

#include // подключаем библиотеку ввода и вывода using namespace std; // используем именное пространство std int main() < setlocale(LC_ALL,»Rus»); // включаем русский язык int otvet; >

Теперь мы выводим вопрос и варианты ответа :

cout

Теперь мы говорим пользователю, чтобы он ввел номер ответа. Дальше мы пишем условие :

cout > otvet; if (otvet = 3) cout 3) cout

Вот и вся задача.

Весь код программы :

#include // подключаем библиотеку ввода и вывода using namespace std; // используем именное пространство std int main() < setlocale(LC_ALL,»Rus»); // включаем русский язык int otvet; cout > otvet; if (otvet == 3) < cout else < if ((otvet < 1) || (otvet >3)) cout system(«PAUSE»); // чтобы программа не закрывалась return 0 ; // возвращаем функции main() ноль >

Источник: cyberlesson.ru

Тест по Java с несколькими вариантами ответов: как вводить вопросы из текстового файла?

Я создаю тест с несколькими вариантами ответов, используя Java. У меня есть реальная программа, работающая со всеми 10 вопросами, когда они жестко закодированы в исходный код, но мне нужно поместить 7 из этих вопросов в текстовый файл, который будет вводиться из .txt и отвечать точно так же . Единственная разница, конечно же, состоит в том, что эти 7 вопросов поступают из текстового файла, а не непосредственно в исходном коде.

Читайте также:
Какую программу установить для елм 327 на Андроид

Может ли кто-нибудь объяснить или показать мне способ ввести этот текстовый файл в мой исходный код и запустить тест таким образом?

Вот мой общий исходный код:

import java.util.Scanner; import java.util.*; String q1 = «What is hardware?n» + «(a)virtual machinen(b)the physical machinen(c)applications such as browsersn(d)part of the processorn»; String q2 = «What does counter++; do?n» + «(a)Adds 1 to countern(b)Adds 2 to countern(c)Gets the sumn(d)Multiplies the numbersn»; String q3 = «What is a loop that never stops?n» + «(a)For Loopn(b)Infinite Loopn(c)Do-While Loopn(d)Full Loopn»; Question [] questions = < new Question(q1, «b»), new Question(q2, «a»), new Question(q3, «b»), new Question(q4, «c»), new Question(q5, «d»), new Question(q6, «a»), new Question(q7, «a»), new Question(q8, «c»), new Question(q9, «a»), new Question(qF, «c») >; Collections.shuffle(Arrays.asList(questions)); takeTest(questions); > public static void takeTest(Question [] questions) < int score = 0; Scanner keyboardInput = new Scanner(System.in); for(int i = 0; i < questions.length; i++) < System.out.println(questions[i].prompt); String answer = keyboardInput.nextLine(); if (answer.equals(questions[i].answer)) < score++; >> System.out.println(«You got » + score + «/» + questions.length); >

А мой текстовый файл — это просто семь вопросов, которые я изначально поместил в исходный код:

String q4 = «In a while loop, if the boolean expression is true, what will the loop do?n» + «(a)Breakn(b)Program will exitn(c)Repeatn(d)Continue through programn»; String q5 = «What special value is designated for controlling a loop?n» + «(a)Control valuen(b)Mutator Methodn(c)Accessor Methodn(d)Sentinel Valuen»; String q6 = «What is a method?n» + «(a)A collection of statements grouped together to perform an operationn(b)A value returned from a method using the return statementn(c)The portion of the program where the variable can be accessed.n(d)The combination of the name of a method and the list of its parametersn»; String q7 = «What is an object?n» + «(a)Representation of an entity in the real world that can be distinctly identifiedn(b)A static method can be called without creating an instance of the classn(c)Instance variable/instance mthodn(d)A template, blueprint or contract that defines what an object’s data fields and methods will be.n»; String q8 = «What is an array?n» + «(a)Numbers of items ArrayList can store without increasing its sizen(b)Number used as an index to pinpoint a specfic element within an arrayn(c)Object that can store a group of values, all of the same typen(d)Method of locating a specific item in a larger collection of datan»; String q9 = «You use this statement to throw an exception manually.n» + «(a)Thrown(b)call stackn(c)try blockn(d)thrownn»; String qF = «When an exception is generated, it is said to have been what?n» + «(a)Createdn(b)Calledn(c)Thrownn(d)Generatedn»;
Комментарии (2)

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru