на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Объектно-ориентированное программирование учебных систем
p align="left">}

JOptionPane.showMessageDialog(null, newlec.getPath());

}

}

});

oplog.addActionListener(new ActionListener (){

public void actionPerformed(ActionEvent e) {

JFrame slog = new JFrame ("Log");

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

JScrollPane js = new JScrollPane (je);

slog.add(js);

je.setEditable(false);

BufferedReader rd;

try {

rd = new BufferedReader(new FileReader(Consts.log));

je.read(rd, "rtf;Content-Type = windows-1251");

} catch (IOException ex) {

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

}

slog.setSize (700, 400);

slog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

slog.setVisible (true);

slog.setSize(300, 500);

slog.setVisible(true);

}

});

contr.addActionListener(new ActionListener (){

public void actionPerformed(ActionEvent e) {

JFrame frame = new JFrame ("Оценки");

JEditorPane je = new JEditorPane ("text/html;Content-Type = windows-1251", "");

JScrollPane js = new JScrollPane (je);

frame.add(js);

je.setEditable(false);

BufferedReader rd;

try {

rd = new BufferedReader(new FileReader(Consts.marks));

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

} catch (IOException ey) {

Logger.getLogger(KMainWin.class.getName()).log(Level.SEVERE, null, ey);

}

frame.setSize (200, 400);

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setVisible (true);

}

});

button = new JPanel ();

button.setLayout(new FlowLayout());

button.setPreferredSize(new Dimension (210, 180));

button.add (newl);

button.add (newt);

button.add (oplog);

button.add (contr);

button.add(time);

button.add (logout);

button.add (exit);

add(button);

setSize (470, 215);

info = new JPanel();

info.setPreferredSize(new Dimension (230, 170));

}

//who == 0

else {

starttest = new JButton ("Начать тестирование");

starttest.setPreferredSize(bigsize);

readl = new JButton ("Прочитать лекцию");

readl.setPreferredSize(bigsize);

starttest.addActionListener(new ActionListener (){

public void actionPerformed(ActionEvent e) {

try {

KTestWin n = new KTestWin(login, password, f);

bd.write(new Date().getHours() + ":" + new Date ().getMinutes() + " " + new Date ().getDay() + "/" + new Date ().getMonth() + "/" + new Date ().getYear() + "\n");

bd.write(login + " started test\n");

} catch (FileNotFoundException ex) {

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

} catch (IOException ex) {

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

}

}

});

readl.addActionListener(new ActionListener (){

public void actionPerformed(ActionEvent e) {

try {

new KLec(curlec, "Подготовка к тестам", false, login);

bd.write(new Date().getHours() + ":" + new Date().getMinutes() + " " + new Date().getDay() + "/" + new Date().getMonth() + "/" + new Date().getYear() + " ");

bd.write(login + " began read lec\n");

} catch (IOException ex) {

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

}

}

});

button = new JPanel ();

button.setLayout(new FlowLayout());

button.setPreferredSize(new Dimension (210, 125));

button.add(starttest);

button.add(readl);

button.add(logout);

button.add(exit);

add(button);

setSize (470, 170);

info = new JPanel();

info.setPreferredSize(new Dimension (230, 120));

}

name = new JLabel ();

surnm = new JLabel ();

email = new JLabel ();

icq = new JLabel ();

group = new JLabel ();

mark = new JLabel();

try {

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

name.setText(rd.readLine());

name.setPreferredSize(size);

surnm.setText(rd.readLine());

surnm.setPreferredSize(size);

email.setText(rd.readLine());

email.setPreferredSize(size);

icq.setText(rd.readLine());

icq.setPreferredSize(size);

group.setText(rd.readLine());

group.setPreferredSize(bigsize);

rd.close ();

BufferedReader rdm = new BufferedReader(new FileReader(Consts.pprofiles + login + ".mrk"));

mark.setText("Оценка: " + rdm.readLine());

rdm.close();

mark.setPreferredSize(size);

}catch (IOException et) {

//BufferedWriter bw = new BufferedWriter(new FileWriter(Consts.pprofiles + login));

//bw.write("Имя : \nФамилия : \nE-Mail : \nICQ : \nГруппа : ");

//bw.close();

}

TitledBorder tb = new TitledBorder ("Info");

info.setLayout(new BoxLayout (info, BoxLayout.Y_AXIS));

info.add(name);

info.add(surnm);

info.add(email);

info.add(icq);

info.add(group);

info.add(mark);

info.setBorder(tb);

add (info);

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

this.setResizable(false);

//this.setIconImage(image);

setVisible (true);

}

boolean transfer (String from, String to){

boolean result = false;

try {

FileChannel ic = new FileInputStream(from).getChannel();

FileChannel oc = new FileOutputStream(to).getChannel();

ic.transferTo(0, ic.size(), oc);

ic.close();

oc.close();

result = true;

} catch (FileNotFoundException ex) {

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

result = false;

} catch (IOException ex) {

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

result = false;

}

return result;

}

}

1

Рис.3.3.2. «Интерфейс для администрирования»

1

Рис.3.3.3. Интерфейс программы для пользователя

4. Класс проверки знаний пользователя

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

Рис.3.4.1. Алгоритм тестирования

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

package KursPackage;

import java.util.*;

import javax.swing.*;

import javax.swing.Timer;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

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.logging.Level;

import java.util.logging.Logger;

import javax.swing.border.TitledBorder;

public class KTestWin extends JDialog/*JFrame*/{

KTestWin g;

int numall;//всего вопросов

int numtrue;//к-во правильных ответов на данной странице

int num;//к-во правильных ответов студента

int time;//время на выполнение теста

int numproi;

Date date;

JLabel lttend;//время до окончания теста

JLabel lrans;//к-во прав. ответов студента

JLabel question;

JButton bnext;

JButton bstop;

JCheckBox cb[] = new JCheckBox[4];

boolean ans[] = new boolean [4];//правильные ответы

JPanel panel;

long megotime;

TitledBorder tv; KTestWin (final String login, String password, KMainWin d) throws FileNotFoundException, IOException{

super(d, "Тест", true);

g = this;

setLayout(new FlowLayout ());

date = new Date();

//узнаем время данное на выполнение теста

BufferedReader tt = new BufferedReader(new

FileReader(Consts.curtesttime));

time = Integer.parseInt(tt.readLine());

tt.close();

//узнали

megotime = date.getTime() + time;

panel = new JPanel ();

panel.setLayout(new FlowLayout ());

//узнаем кво вопросов

BufferedReader test = new BufferedReader(new

FileReader(Consts.curtest));

if (test.ready())

{

while (test.ready()){

if (test.readLine().equals("<q>"))

numall++;

}

}

else {

JOptionPane.showMessageDialog(null, "Не найден файл \" " + Consts.curtest + " \"");

dispose();

}

test.close();

//узнали

//------------------------------init------------------------------------

numproi = 1;

num = 0;

tv = new TitledBorder ("Вопрос");

lrans = new JLabel ("Количество правильных ответов: 0");

lttend = new JLabel ("Время осталось: " + String.valueOf((megotime - date.getTime())/1000) + " sec");

question = new JLabel();

bnext = new JButton ("Далее");

bstop = new JButton ("Стоп");

final BufferedReader tst = new BufferedReader(new

FileReader(Consts.curtest));

add(lttend);

add(lrans);

panel.setLayout(new BoxLayout (panel, BoxLayout.Y_AXIS));

panel.setPreferredSize(new Dimension (580, 180));

tst.readLine();

question.setText(tst.readLine());

panel.add(question);

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

cb[i] = new JCheckBox (tst.readLine(), false);

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

panel.add(cb[i]);

}

if (numproi == numall)

{

bnext.hide();

}

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

bnext.hide();

}

bnext.addActionListener(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++;

}

numproi++;

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

lttend.setText("Время осталось: " + String.valueOf((megotime - new Date().getTime())/1000) + " sec");

if (numproi == numall)

{

bnext.hide();

}

try {

tst.readLine();

question.setText(tst.readLine());

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

cb[i].setLabel(tst.readLine());

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



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