на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Объектно-ориентированное программирование учебных систем
p align="left">cb[i].setSelected(false);

ans[i] = Boolean.parseBoolean(tst.readLine());

}

} catch (IOException ex) {

Logger.getLogger(KTestWin.class.getName()).log(Level.SEVERE, null, ex);

}

if (((megotime - date.getTime())/1000)<0){

bnext.hide();

}

}

});

final ActionListener listener = new ActionListener (){

public void actionPerformed(ActionEvent e) {

numtrue = 0;

for (int i = 0; i < 4; i++){

if (cb[i].isSelected() == ans[i]){

numtrue++;

}

}

if (numtrue == 4){

num++;

}

bstop.hide();

JButton close = new JButton ("Close");

numproi++;

tv.setTitle("Статистика");

lrans.hide();

lttend.hide();

bnext.hide();

question.setText("Количество правильных ответов: " + num);

panel.add(new JLabel("Запись результатов в файл..."));

try{

String buf[] = new String [3];

BufferedWriter mrk = new BufferedWriter(new FileWriter(Consts.pprofiles + login + ".mrk"));

mrk.write(num + "/" + numall);

mrk.close();

BufferedWriter marks = new BufferedWriter(new FileWriter(Consts.marks));

BufferedReader prof = new BufferedReader (new FileReader (Consts.pprofiles + login));

buf[0] = prof.readLine();

buf[1] = prof.readLine();

prof.readLine();

prof.readLine();

buf[2] = prof.readLine();

marks.write(buf[0] + " " + buf[1] + " " + buf[2] + " has " + num + "/" + numall + "\n");

prof.close();

marks.close();

}catch(Exception ey){

System.out.print(ey);

}

panel.add(new JLabel("Запись успешно завершена"));

for (int i = 0; i<4 ; i++)

cb[i].hide();

try {

tst.close();

} catch (IOException ex) {

Logger.getLogger(KTestWin.class.getName()).log(Level.SEVERE, null, ex);

}

close.addActionListener(new ActionListener (){

public void actionPerformed(ActionEvent e) {

dispose();

}

});

g.setSize (600, 255);

add(close);

g.repaint();

}

};

Timer timer = new Timer(time, listener);

timer.setRepeats(false);

timer.start();

bstop.addActionListener(listener);

panel.setBorder(tv);

add(panel);

add(new JLabel ("Всего вопросов : " + numall));

add(bnext);

add(bstop);

setSize (600, 280);

setVisible(true);

}

}

1

Рис.3.4.2. Начало теста

1

Рис3.4.3. Окончание теста:

5. Класс подготовки пользователя

Задача класса - подготовка пользователя к тестированию.

Рис. 3.5.1. Алгоритм записи времени чтения

Исходный код класса:

package KursPackage;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Date;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.*;

public class KLec extends JFrame {

JEditorPane je;

JScrollPane js;

long time;

long curtime;

KLec (String lec, String title, boolean iseditable, final String login) throws IOException{

super (title);

je = new JEditorPane ("text/html;Content-Type = windows-1251", "<html><i><center>Подготовка к тестам</center>");

js = new JScrollPane (je);

je.setEditable(iseditable);

if (title.equals("Подготовка к тестам")){

BufferedReader tt = new BufferedReader(new FileReader(Consts.pprofiles + login + ".tme"));

time = Long.parseLong(tt.readLine());

curtime = new Date().getTime();

tt.close();

}

BufferedReader rd = new BufferedReader(new FileReader(lec));

je.read(rd, "text/html;Content-Type = windows-1251");

rd.close();

setSize (700, 400);

add(js);

this.addWindowListener(new WindowListener (){

public void windowClosing(WindowEvent e) {

BufferedWriter tm = null;

try {

BufferedWriter ctt;

ctt = new BufferedWriter(new FileWriter(Consts.pprofiles + login + ".tme"));

curtime = new Date().getTime() - curtime;

time += curtime;

ctt.write(time + "");

ctt.close();

String[] buf = new String[3];

tm = new BufferedWriter(new FileWriter(Consts.time));

BufferedReader prof = new BufferedReader(new FileReader(Consts.pprofiles + login));

buf[0] = prof.readLine();

buf[1] = prof.readLine();

prof.readLine();

prof.readLine();

buf[2] = prof.readLine();

tm.write("общее время обучения " + buf[0] + " " + buf[1] + " " + buf[2] + " : " + time + "\n");

prof.close();

tm.close();

dispose();

} catch (IOException ex) {

Logger.getLogger(KLec.class.getName()).log(Level.SEVERE, null, ex);

} finally {

try {

tm.close();

} catch (IOException ex) {

Logger.getLogger(KLec.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

public void windowClosed(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

public void windowOpened(WindowEvent e) {}

});

setVisible (true);

}

}

1

Рис.3.5.2. Интерфейс окна чтения лекции

6. Интерфейс констант

Интерфейс содержит константы.

package KursPackage;

import java.awt.Dimension;

import java.awt.Image;

import java.awt.Toolkit;

public interface Consts {

public String pdatabase = new String ("d:\\database.dat");//путь к базе данных

public String pprofiles = new String ("d:\\profiles\\");//путь к профайлам

public String prevlec = new String ("d:\\lec\\prev.dat");//путь к пред. лекции

public String curlec = new String ("d:\\lec\\cur.dat");//путь к текущей лекции

public String curtest = new String ("d:\\tests\\cur.dat");//путь к текущим тестам

public String prevtest = new String ("d:\\tests\\prev.dat");//путь к пред. тестам

public String curtesttime = new String ("d:\\tests\\cur.conf");//путь к файлу времени пров. тек. теста

public String prevtesttime = new String ("d:\\tests\\prev.conf");//путь к файлу времени пров. пред. теста

public String marks = new String ("d:\\marks.dat");//путь к файлу оценок

public String log = new String ("d:\\log.log");//путь к логу

public String time = new String ("d:\\time.dat");//путь к логу времени

public Dimension size = new Dimension (100, 23);

public Dimension bigsize = new Dimension(size.width * 2 + 5, size.height);

public Image image = Toolkit.getDefaultToolkit().getImage("d:\\icon.jpg");

}

4 Инструкция пользователя

После запуска программы появляется окно (рис. 4.1) где нужно ввести логин и пароль и нажать на кнопку «Войти».

1

Рис.4.1. Окно входа в систему

Если Вы еще не зарегистрированы в системе, то Вам нужно пройти регистрацию. Чтобы зарегистрироваться необходимо в окне входа в систему (рис.4.1) нажать на кнопку «Регистрация». После этого появится окно регистрации нового пользователя системы (рис. 4.2). В этом окне Вам будет предложено ввести регистрационные данные. После заполнения всех полей нажмите на кнопку «Регистрация».

1

Рис.4.2. Регистрация нового пользователя

Если регистрация в системе прошла успешно, то появится уведомление об успешном окончании регистрации (рис.4.3).

1

Рис.4.3. Успешное окончание регистрации

После регистрации Вы можете войти в систему(рис.4.4.).

1

Рис.4.4. Окно входа в систему под логином login и паролем password.

После нажатия на кнопку «Войти» Вы войдете в систему как login с правами пользователя. После входа в систему появится главное окно программы (рис. 4.5.).

1

Рис. 4.5. Главное окно системы пользователя

При нажатии на кнопку «Начать тестирование» появится окно тестирования (рис.4.6)где Вам будет дан вопрос и варианты ответа. На выполение теста будет дано определенное преподавателем.

1

Рис.4.6. Окно тестирования пользователя

После окончания теста Вам будет выдана оценка(рис.4.7.)

1

Рис.4.7. Статистика прохождения тестов.

Также в главном окне(рис.4.5) можно получить доступ к лекциям с помощью кнопки «Прочитать лекцию». После нажатия на эту кнопку появится окно (рис.4.8) с лекцией.

1

Рис.4.8. «Подготовка к тестам»

При авторизации в системе с правами администратора или с правами преподавателя появляется окно со следующим интерфейсом (рис.4.9.).

1

Рис.4.9. Главное окно системы пользователя с правами администратора

При нажатии на кнопку «Новая лекция» появится окно выбора файла лекции(рис.4.10.)

1

Рис. 4.10. Выбор файла лекции

При нажатии на кнопку «Новый тест» появляется окно выбора файла (рис.4.11)

1

Рис.4.11. Окно выбора файла теста.

При нажатии на кнопку «Открыть лог-файл» откроется окно просмотра лог-файла(рис.4.12.)

1

Рис.4.12. Просмотр лог-файла.

При нажатии на кнопку «Оценки» появляется окно с результатами тестирования пользователей(рис.4.13.)

1

Рис.4.13. Окно просмотра результатов тестирования

При нажатии на кнопку «Время обучения» появляется окно просмотра общего времени обучения пользователей в миллисекундах (рис.4.14.).

1

Рис.4.14. Окно просмотра общего времени обучения пользователя.

При нажатии на кнопку «Выход» программа завершает свою работу.

Список литературы

1.Давыдов В.И. Кунгурцев А.Б. Объектно-ориентированное программирование. Одесса: Автограф, 2003. - 124с.

2.Кунгурцев О.Б. Основы программирования на языке Java.Середовище Net Beans. Одесса. : ВМВ, 2006. -182с.

2.Грады Буч. Объектно-ориентированный анализ и проектирование с программа приложений на С + +. СПБ: БИНОМ, 2000. 560 с.

3.Дейтел Х. М., Дейтел П. Дж. БСантары С.И. Технология программирования на Java 2. Кн. 1. Как программировать на С + +. М.: БИНОМ, 2003. 560 с.

4.Грегоры К. Использование Visual C + + 6. М-СПБ: Дом «Вильямс», 2001. 864 с.

5.Дейтел Х. М., Дейтел П. Дж. Как программировать на С + +. М.: БИНОМ, 2001. 1152с.

Страницы: 1, 2, 3, 4



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