Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 19:41   #1
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию Тест (Делфи)

Доброго времени. У меня осталась последняя задача для ГОСов, в которой никак не могу разобраться, несмотря на ее легкое понимание многими.
Цитата:
Создать элементарную программу Файл тестовых заданий должен иметь текстовый формат без шифрования данных. Текс вопроса и варианты ответа могут занимать от одной и нескольких строк текста. Каждому вопросу соответствуют от 3 до 5 вариантов ответа. Результат необходимо выдать процентной форме и в виде оценки по следующим критериям: от 90 до 100% - оценка «5», от 75 до 90% - оценка «4», от 60 до 75% - оценка «3», меньше 60% - оценка «2»
Как организовать алгоритм, чтения из 1! текстового файла вытягивание вопроса одного за другим, обработка ответа и подсчет оценок? В принципе подсчет оценок догадываюсь как сделать.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 17.03.2010, 21:45   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

нужно сделать разделение вопросов, ответов, и баллов за них
очень удобное разделение предоставляет формат xml, за день изучишь этот формат и все вопросы снимутся
можно попроще - воспользоваться тегами, как браузер
например так:
вопрос начинается с тега
<?>Где родился Пушкин А.С.<?>
ответы построить так
<=>Царицыно<=>
<=>Не знаю<=> и т.п.
а баллы за ответы построить в том же порядке, что и ответы
<!>4<!>
<!>2<!>

теперь конкретнее про считывание
читаем вопрос: ищем тег ? заключ в скобки <>, если нашли читаем в строку вопрос до тега <?>
читаем ответы: тут считаем кол-во ответов до тега баллов также как вопрос
ну и т.д.

надеюсь понятно объяснил )
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 18.03.2010, 07:36   #3
Егор527
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 14
По умолчанию

Да можно проще.
Формат файла делай такой(для удобства)
-вопрос
-ответ1
-ответ2
-ответ3
-2(номер правильного овтета)
Потом считываешь этот файл в скрытый листбкс(чтобы с чтением из файла не парится)А уже из листбокса можешь считывать построчно например в label(вопрос),а ответы в RadioGroup.
Вот как то так если делать по простому...
Если хочешь пиши сделаю.
Егор527 вне форума Ответить с цитированием
Старый 18.03.2010, 09:03   #4
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Саму загрузку я сделал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Items.LoadFromFile('v\1.txt');
label1.Caption:=listbox1.Items.Strings[0];
radiogroup1.Items.Strings[0]:=listbox1.Items.Strings[1];
radiogroup1.Items.Strings[1]:=listbox1.Items.Strings[2];
radiogroup1.Items.Strings[2]:=listbox1.Items.Strings[3];
radiogroup1.Items.Strings[3]:=listbox1.Items.Strings[4];
end;
Но как делать обработку результатов. И загружать следующий вопрос.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 18.03.2010, 09:03   #5
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Почитав на форуме одну из тем "Одиночества в сети", по применению 1 баттона к разным действиям. Сложил с переложением "Егор527".
Получилось все хорошо, только опять таки не могу выводить результаты. С присваиванием путаюсь:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var p,s:integer;
begin
    s:=1;
button1.tag:=button1.tag+1;
     case button1.tag of
  1: begin  p:=0;
   if radiogroup1.ItemIndex=0 then   p:=p+s else p:=0; label2.Caption:=inttostr(p);
listbox1.Items.LoadFromFile('v\2.txt');
label1.Caption:=listbox1.Items.Strings[0];
radiogroup1.Items.Strings[0]:=listbox1.Items.Strings[1];
radiogroup1.Items.Strings[1]:=listbox1.Items.Strings[2];
radiogroup1.Items.Strings[2]:=listbox1.Items.Strings[3];
radiogroup1.Items.Strings[3]:=listbox1.Items.Strings[4];
   end;
  2:begin
     if radiogroup1.ItemIndex=1 then  p:=p+s  else p:=p; label2.Caption:=inttostr(p);
 button1.Tag:=0;end;




end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
listbox1.Items.LoadFromFile('v\1.txt');
label1.Caption:=listbox1.Items.Strings[0];
radiogroup1.Items.Strings[0]:=listbox1.Items.Strings[1];
radiogroup1.Items.Strings[1]:=listbox1.Items.Strings[2];
radiogroup1.Items.Strings[2]:=listbox1.Items.Strings[3];
radiogroup1.Items.Strings[3]:=listbox1.Items.Strings[4];
end;

end.
Получается 1 раз, если отвечают правильно, засчитывается 1 балл. когда на втором вопросе отвечают правильно или неправильно, получается ответ: 4369113 или 4369112. Помогите шаг и буфер организовать.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics

Последний раз редактировалось grom333; 18.03.2010 в 12:14.
grom333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тест в делфи марго20 Помощь студентам 9 04.07.2009 12:03
тест Йоваши на делфи Серый Рыйцарь Общие вопросы Delphi 1 14.05.2009 16:35