Скачать 83.19 Kb.
|
ОПИСАНИЕ ВОЗМОЖНОСТЕЙ РАЗРАБОТАННОЙ ПРОГРАММЫ «ГОТОВИМСЯ К ЕГЭ». При составления тестирующих программ основной вопрос, с которой сталкивается программист, является проблема хранения данных. Как было отмечено выше программа «Готовимся к ЕГЭ» разработана школьникам для решения тестовых заданий единого государственного экзамена. Как известно, эти задания содержат в себе: изображения, формулы, таблицы, графики. Следовательно, хранения данных тестовых заданий в базе данных MS Access можно осуществить лишь с использованием OLE – объектов. Но данный способ «не всегда работает», так как при переносе OLE – объектов из базы данных MS Access возникает ряд проблем. Поэтому нами была предпринята идея хранения заданий в документе Microsoft Word с использованием «тегов». Приведем фрагмент <t> 0:01:00 <\t> <a> Лазер излучает свет с длиной волны 600 нм. Свет лазера делят на два пучка, которые затем направляют на экран. Определите оптическую разность хода пучков, при которой на экране наблюдается максимум освещенности. <\a> <d> <\d> <s> <\s> <t> 0:01:00 <\t> <b> Билет на автобус стоит 15 рублей. Какое максимальное число билетов можно будет купить на 100 рублей после повышения цены билета на 20%? <\b> <ans>5<\ans> <d> Ответом на задани должно быть целое число или конечная десятичная дробь. Ответ следует записать в бланк ответов №1 справа от номера выполняемого задания, начиная с первой клеточки. Каждую цифру, знак минус и запятую пишите в отдельной клеточке в соответствии с приведенными в бланке образцами. Единицы измерений писать не нужно. <\d> <s> Расшифруем обозначение «тегов».
Задается время на отведенное задание
Задается описание вопроса задания
Задается вариант ответа
Ответ на поставленное задание
Описание требований записи ответа
Описание подробного решения
Начало тестирования При нажатии кнопки начать тест генерируется следующее событие: procedure TMainForm.StartBtnClick(Sender: TObject); var i:integer; blob : TAdoBlobStream; FileName:WideString; ArchiveItem: TZFArchiveItem; begin if StartBtn.Caption = 'Начать тест' then begin TegNum:=1; tegnumprev:=1; zipForge1.FileName:='test.'+IntToStr(SubjectBox.ItemIndex+1)+'.zip'; zipForge1.Password:='8989'; try // Открытие архива ZipForge1.OpenArchive(fmOpenRead); FileName:=IntToStr(SubjectBox.ItemIndex+1)+'.'+YearBox.Text+'.'+NumberBox.Text+'.doc'; if (ZipForge1.FindFirst(FileName,ArchiveItem,faAnyFile-faDirectory)) then begin ZipForge1.ExtractFiles(ArchiveItem.FileName); fn:=ExtractFilePath(Application.ExeName)+ArchiveItem.FileName; ZipForge1.CloseArchive(); // Открытие файла Word WappConnect_Open(Wordapp,false,false,CkRunningOrNew,fn); TestTime:=TimeShow(WordApp); MainForm.BorderIcons:= [biMinimize, biMaximize]; time:=Now; Image.Visible:=false; SubjectBox.Visible:=false; YearBox.Visible:=false; NumberBox.Visible:=false; MainPnl.Visible:=true; VisibleLabel.Caption:=SubjectBox.Text+' за '+YearBox.Text+' № '+NumberBox.Text; //Подсчет вопросов части A KolA:=UmyWApp.KolTeg(WordApp,'a'); for i := 1 to kolA do begin {Create the buttons} RunTimeButtons[i] := TSpeedButton.Create(Self); with RunTimeButtons[i] do begin parent:=ButtonBox; Width:=35; Height:=35; Caption := 'A' + IntToStr(i); Left := 8+(i-1) * Width; Top:=50; GroupIndex:=1; AllowAllUp := False; Tag := i; Font.Size:=12; {Assign a OnClick handler} Visible := True; OnClick := RunTimeButtonclick; end; end; // Подсчет вопросов части B KolB:=UmyWApp.KolTeg(WordApp,'b'); for i := kolA+1 to kolB+kolA do begin {Create the buttons} RunTimeButtons[i] := TSpeedButton.Create(Self); with RunTimeButtons[i] do begin parent:=ButtonBox; Width:=35; Height:=35; Caption := 'B' + IntToStr(i-kolA); Left := 8+(i-1-kolA) * Width; Top:=50+height; GroupIndex:=1; AllowAllUp := False; Tag := i; Font.Size:=12; {Assign a OnClick handler} Visible := True; OnClick := RunTimeButtonclick; end; end; // Подсчет вопросов части C KolC:=UmyWApp.KolTeg(WordApp,'c'); for i := kolA+kolB+1 to kolB+kolA+KolC do begin {Create the buttons} RunTimeButtons[i] := TSpeedButton.Create(Self); with RunTimeButtons[i] do begin parent:=ButtonBox; Width:=35; Height:=35; Caption := 'C' + IntToStr(i-kolA-kolB); Left := 8+(i-1-kolA-kolB) * Width; Top:=50+2*height; GroupIndex:=1; AllowAllUp := False; Tag := i; Font.Size:=12; {Assign a OnClick handler} Visible := True; OnClick := RunTimeButtonclick; end; end; // Удаление всех записей из таблицы with DataForm.AnswerTable do begin First; while not eof do delete; insert; end; DataForm.AnswerTable.FieldByName('Тест').AsString:=IntToStr(SubjectBox. ItemIndex+1)+'.'+YearBox.Text+'.'+NumberBox.Text+'.doc'; RunTimeButtons[1].Click; RunTimeButtons[1].Down:=true; RunTimeButtons[1].Font.Color:=clRed; StartBtn.Caption:='Завершить тест'; timer.Enabled:=true; end else MessageDlg('Отсутствует тест в базе',mtInformation, [mbYes], 0); except MessageDlg('Отсутствует база с тестами',mtError, [mbYes], 0); end; end else begin …………… Завершение работы теста …………… end; end. Опишем ключевые моменты выше указанной процедуры: 1) Открываем архив для чтения, извлекаем из него фаил с названием IntToStr(SubjectBox.ItemIndex+1)+'.'+YearBox.Text+'.'+NumberBox.Text+'.doc'; 2) Связываем компонент WordАрр c фаилом тестового задания. 3) Подсчитывая количество вопросов части А, В и С, происходит создание соответствующих кнопок. После чего фаил с тестовым задание приобретает вид (производится номерация тегов): <t> 0:01:00 <\t> B1 <b1> Билет на автобус стоит 15 рублей. Какое максимальное число билетов можно будет купить на 100 рублей после повышения цены билета на 20%? <\b> Ответом на задани должно быть целое число или конечная десятичная дробь. Ответ следует записать в бланк ответов №1 справа от номера выполняемого задания, начиная с первой клеточки. Каждую цифру, знак минус и запятую пишите в отдельной клеточке в соответствии с приведенными в бланке образцами. Единицы измерений писать не нужно. <\d> <s.b1> Решение После повышения цены билета на 20% его стоимость составит: рублей. Значит, на 100 рублей можно будет купить 5 билетов, так как . Ответ: 5. <\s> <t> 0:01:00 <\t> <a1> Лазер излучает свет с длиной волны 600 нм. Свет лазера делят на два пучка, которые затем направляют на экран. Определите оптическую разность хода пучков, при которой на экране наблюдается максимум освещенности. <\a> <v.a1.1>200 нм<\v> <\d> <s.a1> <\s> Процесс тестирования. В данном пункте опишем процедуру извлечения тестовых вопросов из файла тестовых заданий. При выборе вопроса генерируется следующее событие: procedure TMainForm.RunTimeButtonClick(Sender: TObject); begin SolBtn.Caption := 'Решение'; //Отображается вопрос QuestionShow(MainForm.WordApp, OleContainer,(Sender as TSpeedButton).Caption); (Sender as TSpeedButton).Font.Color:=clRed; //Отображается критерии записи ответа DescriptionMemo.Text:=DescriptionShow(WordApp,(Sender as TSpeedButton).Caption); if (Sender as TSpeedButton).Caption[1]='A' then begin AnswerDBEdit.Visible:=false; AnswerGroup.Items.Clear; AnswerGroup.Items:=AnswerShow(MainForm.WordApp, (Sender as TSpeedButton).Caption); AnswerGroup.DataField:=(Sender as TSpeedButton).Caption; TegNum:=(Sender as TSpeedButton).Tag; AnswerGroup.Visible:=true; end else Begin AnswerGroup.Visible:=false; AnswerDBEdit.Visible:=true; AnswerDBEdit.DataField:=(Sender as TSpeedButton).Caption; AnswerDBEdit.SetFocus; TegNum:=(Sender as TSpeedButton).Tag; end; if DataForm.AnswerTable.FieldByName( RunTimeButtons[TegNumPrev].Caption).AsString<>'' then RunTimeButtons[TegNumPrev].Font.Color:=clGreen else RunTimeButtons[TegNumPrev].Font.Color:=clBlack; tegnumprev:=tegnum; end; Чтобы было понятно, опишем ключевые моменты выше указанной процедуры на конкретном примере. Например, при нажатии кнопки с надписью А1 программа:
Завершение тестирования Для завершения теста нажимаем кнопку «завершить тестирование», после чего генерируется следующее событие: procedure TMainForm.RunTimeButtonClick(Sender: TObject); ……………. StartBtn.Caption:='Начать тест'; if DataForm.AnswerTable.Modified then DataForm.AnswerTable.Post else DataForm.AnswerTable.Cancel; SubjectBox.Visible:=true; YearBox.Visible:=true; NumberBox.Visible:=true; Timer.Enabled:=false; VisibleLabel.Caption:=''; MainPnl.Visible:=false; Image.Visible:=true; // Отображаем форму ответов ResultForm.ShowModal; for i := 1 to kolA+KolB+kolC do RunTimeButtons[i].Destroy; QuitWordAppNotSave(WordApp); deleteFile(fn); MainForm.BorderIcons:= [biSystemMenu, biMinimize, biMaximize]; end; end; Опишем работу выше указанной процедуры:
procedure TResultForm.FormActivate(Sender: TObject); Var i, right:integer; begin StringGrid1.Cells[0,0]:='№ вопроса'; StringGrid1.Cells[1,0]:='Задача'; StringGrid1.Cells[2,0]:='Ваш ответ'; StringGrid1.Cells[3,0]:='Правильный ответ'; StringGrid1.Cells[4,0]:='Бал'; StringGrid1.RowCount:=MainForm.kolA+MainForm.kolB+1; for i:=1 to MainForm.KolA+MainForm.kolB+MainForm.kolC do begin StringGrid1.Cells[0,i]:=IntToStr(i); StringGrid1.Cells[1,i]:=MainForm.RunTimeButtons[i].Caption; StringGrid1.Cells[2,i]:=DataForm.AnswerTable.FieldByName( MainForm.RunTimeButtons[i].Caption).AsString; StringGrid1.Cells[3,i]:=RightShow(MainForm.WordApp,MainForm.RunTimeButtons[i].Caption); if StringGrid1.Cells[2,i] = StringGrid1.Cells[3,i] then begin StringGrid1.Cells[4,i]:='1'; right:=right+1; end else StringGrid1.Cells[4,i]:='0'; end; AnswerLabel.Caption:=IntToStr(right)+' правильных ответов из ' + IntToStr(MainForm.kolA+MainForm.kolB+MainForm.kolB); TimeLabel.Caption:='Ваше время : '+ MainForm.TimeNowLbl.Caption; end; Опишем кратко выше указанную процедуру:
3. На заключительном этапе происходит удаление временного файла. Разработанная программа обеспечивает простую работу при создании тестовых заданий, а также заменяет онлайн тестирование для школьников не имеющих доступ к интернету. |
Программа по формированию навыков безопасного поведения на дорогах... Живая физика. Живая геометрия; Готовимся к егэ. Физика; Готовимся к егэ. Математика; Физика. 7 9 класс ч. 1 | Готовимся сдавать егэ по русскому языку в 11 классе Автор: учитель... Знакомят учащихся с процедурой проведения егэ и процедурой проведения егэ по технологии сга | ||
«Десять шагов по подготовке к егэ» Памятка для учителя – предметника Шаг 1 Егэ. Серия дисков «Готовимся к егэ» (русский язык, география, история, физика, математика), серия книг «егэ: контрольно- измерительные... | Программа элективного курса «Готовимся к егэ по физике» Автор программы курса: Недбальская И. В Муниципальное бюджетное общеобразовательное учреждение: Казакларская средняя общеобразовательная школа Высокогорского муниципального... | ||
Программа составлена на основе авторской программы под редакцией... Михеева Е. В. Информационные технологии: Учеб пособие для сред проф образования – М.: Издательский центр «Академия», 2005 | Готовимся к егэ (советы психолога) Региональная оценка качества образования учащихся. 2012 г. Русский язык 9 класс 9094(/4) | ||
Программа способна заменить целый шкаф учебных таблиц Математика. Готовимся к егэ. Решение экзаменационных задач в интерактивном режиме | Готовимся к егэ. Запишите слово, пропущенное в схеме ... | ||
Тематическое планирование по русскому языку Спецкурс «Стилистика русского языка» Классы Планирование составлено на основе: Готовимся к егэ. Русский язык / О. Ф. Вакурова, С. И. Львова, И. П. Цыбулько. 5-е изд., стереотипное.... | «Готовимся к егэ по русскому языку» факультативный курс для 10-11... Котюрова М. П. Лингвистическое выражение связности речи в научном стиле (сравнительно с художественным) : Автореферат диссертации... | ||
Уважаемые участники егэ, родители, учителя! Егэ (например, вам предлагают купить «задания егэ» и даже «готовые ответы» егэ). Рособрнадзор предостерегает вас от обращений к услугам... | Использование возможностей интерактивной доски при организации итогового... | ||
Информация для участников егэ 2013 года о сроках, местах и порядке... Егэ (например, вам предлагают купить «задания егэ» и даже «готовые ответы» егэ). Рособрнадзор предостерегает вас от обращений к услугам... | 525О. В. Загоровская, О. В. Григоренко Русский язык. Готовимся к... «Товароведение однородных групп продовольственных товаров» для студентов подготовки 100800. 62 «Товароведение» разработано в соответствии... | ||
Краткое описание ким егэ 2011 года по математике Сентябрь- октябрь 2011г. –мониторинговые обследования готовности первоклассников к обучению в школе | Рабочая программа разработана на основе авторской программы «Основы... Рабочая программа разработана на основе авторской программы «Основы безопасности жизнедеятельности», разработанной В. Н. Латчуком... |