на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Створення навчальної програми по вивченню іноземної мови
p align="left">image[n] = ldir+imgdir+sbuff[0]+".jpg";

} catch(ArrayIndexOutOfBoundsException e){

image[n]=defimg;

}

// Звук (вимова)

try{

wav[n] = ldir+snddir+sbuff[0]+".wav";

} catch(ArrayIndexOutOfBoundsException e){

wav[n]=defwav;

}

// Час на тест

try{

time[n] = Integer.parseInt(sbuff[3]);

} catch(ArrayIndexOutOfBoundsException e){

time[n]= 0;

}

// Слово

try {

word_orig[n] = sbuff[0].toUpperCase();

} finally {

n++;

}

}

}

finally {

input.close();

}

}

catch (IOException ex){

ex.printStackTrace();

}

}

Після чого програма чекає натиснення кнопки "Розпочати тест" (рис. 4).

Рисунок 4 - Вікно привітання

Коли тест розпочато і для даного слова є обмеження по часу, вмикається таймер реалізований об'єктом timer класу Timer. По закінченні часу об'єкт timer викликає метод Main.test.Click(), цей же метод викликається, коли користувач натискає кнопку "Дати відповідь" або клавішу Enter на клавіатурі.

Метод Main.test.Click() викликає приватний метод doClick() об'єкта test. Він перевіряє чи є ще тести в списку і, якщо нема, викликаєтеся метод doSumary(), який видає результат тесту на екран та записує їх в файл results.txt.

За вивід голосових підказок (звуку в форматі wav) відповідає клас Wave.

Рисунок 5 -- Елементи управління тестом

На рисунку 5 зображенні елементи управління та взаємодії тесту:

1 -- екран візуального зображення слова; якщо файл з картинкою відсутній, то буде показаний логотип програми;

2 -- поле відповіді; в сірих квадратиках літери, які відомі; в білих, які треба вписати; ввід літери здійснюється з клавіатури; вибір та навігація здійснюється курсором миші та стрілками на клавіатурі, також працює клавіша “Backspace” та можна обрати букву, натиснувши на цифру на клавіатурі, відповідну тій, яка написана над квадратиком маленьким шрифтом;

3 -- кнопка відповіді та переходу до наступного тесту; аналогічну функцію виконує клавіша “Enter” на клавіатурі;

4 -- таймер зворотнього відліку у секундах; по закінченню відліку виконується функція, аналогічна натисненню кнопки 3;

5 -- переклад слова;

6 -- кнопка голосової (звукової) підказки; якщо звукового файлу не знайдено, кнопка не зображується;

7 -- порядковій номер тесту.

Розглянемо порядок роботи з текстом.

Дамо відповідь на перший тест (рис. 6). Натискаємо на клавіатурі клавіші “p” та “l” англійської розкладки, на українську розкладку клавіатури програма не реагує.

Рисунок 6 -- відповідь на перший тест

Натискаємо “Enter” або кнопку “Дати відповідь” і тестування переходить до другого тесту.

На другий тест навмисно відповімо невірно (рис. 7). Замість літери “A” запишемо “O”. Це нам потрібно для перевірки роботи алгоритму оцінювання.

Рисунок 7 -- Навмисно не вірна відповідь на тест 2

Далі відповідаємо вірно на тести від 3 до 10, всього в уроці “first” 10 тестових слів (тестів).

На третій тест правильна відповідь слово “DOG”, зображена на рисунку 8.

Рисунок 8 -- Відповідь на третій тест

У вікні тесту номер 4 відсутній таймер (рис. 8), також відсутній таймер в тесті 2. Це означає що тест буде очікувати відповіді доти, доки не буде натиснена кнопка “Дати відповідь” або клавіша “Enter” на клавіатурі. Це сталось завдяки тому, що в рядках файлу words.csv відсутнє або дорівнює 0 значення в 4-й колонці: cat;c_t;Кішка -- другий тест, та doll;d_ll;Лялька;0 -- четвертий тест.

Відповідь на тест номер 4 - “DOLL”.

Рисунок 9 -- відповідь на четвертий тест

Дамо відповіді на тести, що залишилися:

- відповідь на тест 5 “TREE”;

- відповідь на тест 6 “DOOR”;

- відповідь на тест 7 “CLOCK”;

- відповідь на тест 8 “BIRD”;

- відповідь на тест 9 “CLOUD”;

- відповідь на тест 10 “BEAR”.

По закінченню тестування на екран видається результат тестування, як показано на рисунку 10.

Рисунок 10 -- Результати тестування

У результати тестування входять такі пункти:

- прізвище та ім'я тестованого учня;

- назва уроку;

- загальне число балів, яке дорівнює кількості невідомих літер у всіх тестах, та кількість правильно названих літер у всіх тестах;

- процент успішності відповіді, який вираховується по формулі “100 ділити на кількість невідомих літер та помножити на кількість правильно названих літер” в методі,getProcent класу Words та округлюється до цілого за допомогою класу BigDecimal:

int getProcent() {

double pr;

pr = (100.00 / all) * all_clear;

BigDecimal x = new BigDecimal(pr);

return x.setScale(0, BigDecimal.ROUND_HALF_DOWN).intValue();

};

- оцінка в балах от 2 до 5, яка вираховується в залежності від проценту успішності в методі getBale() класу Words:

int getBale() {

float procent;

procent = getProcent();

if(procent<50){

return 2;

} else

if (procent<=75) {

return 3;

} else

if (procent<=95){

return 4;

} else

if (procent>95) {

return 5;

} else {

return -1;

}

}

При проценті менше 50% - оцінка 2, від 50% до 75% оцінка 3, від 75% до 95% оцінка 4, 95% і більше оцінка 5;

- виводиться таблиця, в якій перший стовпець це номер тесту, другий -- вірне слово, третій -- введене користувачем слово.

Також всі результати дописуються (без стирання попередніх результатів тестування інших учнів) в файл results.txt для наступного перегляду їх вчителем, в такому форматі:

Результати тестування Махно Марія (урок lessons/first/):

Загальне число балів 14 из 15.

Оцінка: 4 (93% успіху)

Тест №1 слово APPLE написано як APPLE

Тест №2 слово CAT написано як COT

Тест №3 слово DOG написано як DOG

Тест №4 слово DOLL написано як DOLL

Тест №5 слово TREE написано як TREE

Тест №6 слово DOOR написано як DOOR

Тест №7 слово CLOCK написано як CLOCK

Тест №8 слово BIRD написано як BIRD

Тест №9 слово CLOUD написано як CLOUD

Тест №10 слово BEAR написано як BEAR

Для завершення програми достатньо натиснути кнопку “Вихід”, або скористатись функціоналом операційної системи і закрити вікно.

3.4 З а х о д и п о о б с л у г о в у в а н н ю п р о г р а м и

Всі сирцеві коди та саму програму я розмістила в мережі Інтернет за адресою: http://code.google.com/p/smallenglish/, а тому, розробленна мною програма доступна всім зацікавленим.

Також можна скористатися системою контролю версій SVN (Subversion) і отримати зріз актуальної гілки розробки. Зробити це можна командою svn checkout http://smallenglish.googlecode.com/svn/trunk/ smallenglish-read-only або скориставшись одним із менеджерів роботи с SVN, наприклад qsvn.

Установка програми на операційній системі GNU\Linux (на прикладі openSUSE 11.0):

- установка java: sudo zypper install java-1_6_0-sun

- отримання архіву прогрими: wget http://smallenglish.googlecode.com/ files/SmallEnglish.tar.gz

- розкриття архіву: tar xvfz SmallEnglish.tar.gz

- запуск програми: cd SmallEnglish && sh run.sh

Структура вихідних кодів:

src

`-- mahno

`-- masha

`-- smallenglish

|-- Login.java

|-- Main.java

|-- Test.java

|-- Timer.java

|-- Wave.java

`-- Words.java

3.5 Л і с т і н г к о д у п р о г р а м и L o g i n. j a v a:

package mahno.masha.smallenglish;

import java.awt.BorderLayout;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.GridBagLayout;

import java.awt.GridBagConstraints;

import java.awt.Dimension;

import java.awt.Point;

import java.io.File;

import javax.swing.JComboBox;

class Login {

private JFrame jFrame = null;

private JPanel jContentPane = null;

private JLabel jLabel = null;

private JButton jButton = null;

private JPanel jPanel = null;

private JTextField name = null;

private JPanel jPanel1 = null;

String l;

private JLabel jLabel2 = null;

private JComboBox Lesss = null;

/**

* This method initializes jFrame

*

* @return javax.swing.JFrame

*/

JFrame getJFrame() {

if (jFrame == null) {

jFrame = new JFrame();

jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jFrame.setSize(300, 200);

jFrame.setLocation(new Point(0, 0));

jFrame.setResizable(false);

jFrame.setContentPane(getJContentPane());

jFrame.setTitle("Вхід");

}

return jFrame;

}

/**

* This method initializes jContentPane

*

* @return javax.swing.JPanel

*/

private JPanel getJContentPane() {

if (jContentPane == null) {

jLabel = new JLabel();

jLabel.setText("Ввести прізвище та ім'я:");

jContentPane = new JPanel();

jContentPane.setLayout(new BorderLayout());

jContentPane.add(getJPanel1(), BorderLayout.SOUTH);

jContentPane.add(getJPanel(), BorderLayout.CENTER);

}

return jContentPane;

}

/**

* This method initializes jButton

*

* @return javax.swing.JButton

*/

private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButton.setText("Вхід");

jButton.setEnabled(false);

jButton.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

doLogin();

}

});

}

return jButton;

}

void doLogin(){

if(jButton.isEnabled()){

Main.setEnv(name.getText(),l);

jFrame.setVisible(false);

jFrame.dispose();

}

}

/**

* This method initializes jPanel

*

* @return javax.swing.JPanel

*/

private JPanel getJPanel() {

if (jPanel == null) {

GridBagConstraints gridBagConstraints12 = new GridBagConstraints();

gridBagConstraints12.fill = GridBagConstraints.VERTICAL;

gridBagConstraints12.gridy = 3;

gridBagConstraints12.weightx = 1.0;

gridBagConstraints12.gridx = 0;

GridBagConstraints gridBagConstraints11 = new GridBagConstraints();

gridBagConstraints11.gridx = 0;

gridBagConstraints11.gridy = 2;

jLabel2 = new JLabel();

jLabel2.setText("Урок");

GridBagConstraints gridBagConstraints1 = new GridBagConstraints();

gridBagConstraints1.gridx = 0;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.