Программа "Система обучения"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

toString();

} catch ( Exception ex ) {

ex.printStackTrace();

return "";

}

}

public String GetTextFromFile(String s)

{

try {

Scanner in = new Scanner(new File(s));

StringBuffer data = new StringBuffer();

while (in.hasNext())

data.append(in.nextLine()).append("\n");

return data.toString();

} catch ( Exception ex ) {

ex.printStackTrace();

return "";

} }}

 

3.4 Класс WorkWithQuestion

 

Класс реализует оценивание ответа на вопрос. Если в диалоговое окно предназначенное для ответа введена пустая строка то выдается соответствующее предупреждение. Если ответ совпал с эталонном или не совпал с эталонном ответа то соответственно увеличивается или не увеличивается счетчик ответов верных, но в том и другом случае, кнопка предназначенная для ответа на этот вопрос становится нерабочей, что бы пользователь не мог ответить на него второй раз. Так же, если студент ответил на 15 вопросов, делается рабочей кнопка "Результат".

 

public class WorkWithQuestion

{

WorkWithQuestion(){}

public void Answer(String s,JButton B )

{

String answ = JOptionPane.showInputDialog("Введите ваш ответ");

String answ1=answ+"\n";

char ch2[] = answ1.toCharArray();

try {

Scanner in = new Scanner(new File(s));

StringBuffer data = new StringBuffer();

while (in.hasNext())

{ data.append(in.nextLine()).append("\n");}

char ch[] =data.toString().toCharArray();

boolean b = Arrays.equals(ch, ch2);

if(answ.equals(""))

{

JOptionPane.showMessageDialog(Main.F4,"Вы не ответили на етот вопрос");

return;

}

if(b)

{

Main.i++;

if(Main.i==10)

{

Main.F4.R.setEnabled(true);

}

JOptionPane.showMessageDialog(Main.F4,"Верно");

Main.t++;

B.setEnabled(false);

System.out.println(Main.i);

}

else

{

Main.i++;

if(Main.i==10)

{

Main.F4.R.setEnabled(true);

}

JOptionPane.showMessageDialog(Main.F4,"Неверно");

B.setEnabled(false);

}

}

catch ( Exception ex ) {

ex.printStackTrace();

} } }

 

3.5 Класс TimeInSystem

 

Класс, реализует подсчет времени, в течение которого студент находился в системе обучения. Метод этого класса создает счетчик времени и увеличивает его на единицу после каждой минуты пребывания в системе, и останавливает таймер и записывает в файл время студента которое он провел в системе. В случае повторного захода студента в систему берется значение времени из файла этого студента и к нему уже прибавляется новое время пребывания.

 

public class TimeInSystem

{

public static Integer c;

public static Integer i =0;

public static java.util.Timer timer = new java.util.Timer();

public TimeInSystem(){}

public void time( String T1,int flag,String path)

{

if(flag==1)

{

Main.T.c = Main.T.c.parseInt(T1);

TimerTask task = new TimerTask() {

public void run()

{ Main.T.i++; }

};

timer.schedule( task,30000, 60000 );

}

if(flag==2)

{

Main.T.timer.cancel();

Main.T.timer.purge();

try {

Scanner in = new Scanner(new File(path));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("\n");

}

String s = data.toString();

int i = s.indexOf("#");

int r = s.indexOf("~");

int t = s.indexOf("%");

int u = s.indexOf("&");

int h = s.indexOf("\n");

String L1 = s.substring(0, i);

String L2 = s.substring(i + 1, r);

String L3 = s.substring(r + 1, t);

String L4 = s.substring(t + 1, u);

String L5 = s.substring(u + 1, h);

Integer y = Main.T.i+Main.T.c;

String Rez = y.toString();

String F = L1 + "#" + L2 + "~" + L3 + "%" + L4 + "&" +Rez ;

File f1;

f1 = new File(path);

PrintWriter writer = null;

writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(path)));

writer.write(F);

writer.close();

} catch (FileNotFoundException ex) {

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

} } }}

 

3.6 Класс ShowResult

 

Релизует демонстрацию студенту его конечного результата обучения, тесть его оценок. Методы класса записывают в текстовые поля окна, в котором будут отображться результаты обучения, ФИО студента, группу, количесвто верных ответов, баллы, и текстовый эквивалент.

 

public class ShowResult

{

public ShowResult(){}

public void SetFIO_and_Group(String path,String toCompare ,JTextField FIO, JTextField Group)

{

File F = new File(path);

String ArrOfFile[] = F.list();

boolean b;

for ( int k= 0;k<ArrOfFile.length;k++)

{

try {

Scanner in = new Scanner(new File(path+"\\"+ArrOfFile[k]));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("\n");

String s = data.toString();

int i = s.indexOf("#");

int r = s.indexOf("~");

int t = s.indexOf("%");

int u = s.indexOf("&");

String L1 = s.substring(0, i);

String L2 = s.substring((i+1), r);

String L3 = s.substring((r+1), t);

String L4 = s.substring((t+1), u);

if((L3+L4).equals(toCompare))

{

System.out.println(L3+L4);

FIO.setText(L1);

Group.setText(L2);

}}

}

catch (FileNotFoundException ex) {

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

}} }

public String Result_Q()

{

String Rez="";

if(Main.t==0)

{Rez =Main.t + " вопросов";}

if(Main.t==1)

{ Rez = Main.t + " вопрос";}

if(Main.t>1 && Main.t<5)

{Rez=Main.t + " вопроса";}

if(Main.t>4 && Main.t<10)

{Rez = Main.t + " вопросов"; }

Main.F5.T3.setText(Rez);

return Rez;

}

public String Result_B()

{

int ball=0;

String s = "";

switch(Main.t)

{

case 10: ball=100;break;

case 9: ball=90;break;

case 8: ball=80;break;

case 7: ball=70;break;

case 6: ball=60;break;

case 5: ball=50;break;

case 4: ball=40;break;

case 3: ball=30;break;

case 2: ball=20;break;

case 1: ball=10;break;

case 0: ball=0;break;

}

s=ball +" баллов";

Main.F5.T4.setText(s);

return s;

}

public String Result_T()

{

String T="";

if(Main.t>8 && Main.t<11)

{ T="Отлично";}

if(Main.t>6 && Main.i<9)

{ T="Хорошо";}

if(Main.t>5 && Main.t<7 )

{T="Удовлетворительно"; }

if(Main.t>2 && Main.t<6)

{ T="Плохо";}

if(Main.t<3 )

{T="Очень плохо"; }

Main.F5.T5.setText(T);

return T;

}

public void ShowTime(String path , JTextField T)

{

String s = Main.this_name+".txt";

System.out.println(s);

File F = new File(path);

String ArrOfFile[] = F.list();

for(int i =0;i<ArrOfFile.length;i++)

System.out.println(ArrOfFile[i]);

for( int k =0;k<ArrOfFile.length;k++)

{

if(s.equals(ArrOfFile[k]))

{

try {

Scanner in = new Scanner(new File(path+"\\"+ArrOfFile[k]));

System.