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.out.println("11111");
StringBuffer data = new StringBuffer();
while (in.hasNext()) {
data.append(in.nextLine()).append("\n");
String s1 = data.toString();
int i = s1.indexOf("#");
int r = s1.indexOf("~");
int t = s1.indexOf("%");
int u = s1.indexOf("&");
int h = s1.indexOf("\n");
String L1 = s1.substring(0, i);
String L2 = s1.substring((i+1), r);
String L3 = s1.substring((r+1), t);
String L4 = s1.substring((t+1), u);
String L5 = s1.substring(u+1,h );
System.out.println(L5+" минут");
T.setText(L5+" минут");
}}
catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}}
}
Методы этого класса реализуют возможности изменения лекционного материала, вопросов и ответов преподавателем.
public class Modification
{
public Modification(){}
public void ModificationLek(String s,JTextArea t)
{
String u1 = t.getText();
PrintWriter writer = null;
try {
writer = new PrintWriter(
new OutputStreamWriter(
new FileOutputStream(s)));
writer.write(u1);
writer.close();
} catch (Exception ex) {}
}
public void ModificationAQ(String s,JTextField t)
{
String u2 = t.getText();
PrintWriter writer = null;
try {
writer = new PrintWriter(
new OutputStreamWriter(
new FileOutputStream(s)));
writer.write(u2);
writer.close();
} catch (Exception ex) {}
}
}
3.8 Класс ShowResultForTeacher
Класс реализует демонстрацию результатов обучения студентов преподавателю.
Метод public void CreateResultFile(String path) создает файл с результатами обчунеия при регистрации студента.
Метод public void SetResultInFile(String path, String info) записывает результаты обучения в файл для результатов этого студента.
Метод public void SetInList(String path, JComboBox j)записывает ФИО студента в список доступних для просмотра преподавателем студентов(если он прошел контроль и получил конечный документ).
Метод public void ShowResultForEach(String path,JTextField t1,JTextField t2,JTextField t3,JTextField t4,JTextField t5,JTextField t6,JComboBox j) записывает в текстовые поля информацию про студента котрого выбрал преподаваетль из списка.
Метод public void ShowTime(String path , JTextField T, JComboBox j) записывает в текстовое поле информацию про время обучения выбранного из списка студента.
public class ShowResultForTeacher
{
public ShowResultForTeacher(){}
public void CreateResultFile(String path)
{
File f1;
f1=new File(path);
if(!f1.exists())
{
try
{
f1.createNewFile();
}
catch (Exception ex) { }
}
else {
}
}
public void SetInList(String path, JComboBox j)
{
File F = new File(path);
String ArrOfFile[] = F.list();
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 s1 = data.toString();
if(!s1.equals("")){
int i = ArrOfFile[k].indexOf(".");
String L1 = ArrOfFile[k].substring(0, i);
j.addItem(L1);}
} catch (FileNotFoundException ex) {
Logger.getLogger(ShowResultForTeacher.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void SetResultInFile(String path, String info)
{
try {
File f1;
f1 = new File(path);
PrintWriter writer = null;
writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(path)));
writer.write(info);
writer.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(ShowResultForTeacher.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void ShowResultForEach(String path,JTextField t1,JTextField t2,JTextField t3,JTextField t4,JTextField t5,JTextField t6,JComboBox j)
{
String s = (String) j.getSelectedItem()+".txt";
File F = new File(path);
String ArrOfFile[] = F.list();
System.out.println(ArrOfFile.length);
boolean b;
for( int k =0;k<ArrOfFile.length;k++)
{
if(s.equals(ArrOfFile[k]))
{
try {
b=false;
Scanner in = new Scanner(new File(path+"\"+ArrOfFile[k]));
StringBuffer data = new StringBuffer();
while (in.hasNext()) {
data.append(in.nextLine()).append("\n");
String s1 = data.toString();
System.out.println(b);
int i = s1.indexOf("#");
int r = s1.indexOf("~");
int t = s1.indexOf("%");
int u = s1.indexOf("&");
int h = s1.indexOf("\n");
String L1 = s1.substring(0, i);
String L2 = s1.substring((i+1), r);
String L3 = s1.substring((r+1), t);
String L4 = s1.substring((t+1), u);
String L5 = s1.substring(u+1,h );
t1.setText(L1);
t2.setText(L2);
t3.setText(L3);
t4.setText(L4);
t5.setText(L5);
}
}
catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} } }}
public void ShowTime(String path , JTextField T, JComboBox j)
{
String s = (String) j.getSelectedItem()+".txt";
File F = new File(path);
String ArrOfFile[] = F.list();
for( int k =0;k<ArrOfFile.length;k++)
{
if(s.equals(ArrOfFile[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 s1 = data.toString();
int i = s1.indexOf("#");
int r = s1.indexOf("~");
int t = s1.indexOf("%");
int u = s1.indexOf("&");
int h = s1.indexOf("\n");
String L1 = s1.substring(0, i);
String L2 = s1.substring((i+1), r);
String L3 = s1.substring((r+1), t);
String L4 = s1.substring((t+1), u);
String L5 = s1.substring(u+1,h );
T.setText(L5+" минут");
}}
catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}}
}
4. Структура файлов
В системе предусмотрено 6 каталогов для хранения файлов. Папка Lection содержит 10 текстовых файлов, в которых хранится 10 порций учебного материала. Папка Question содержит 10 текстовых файлов, в которых хранятся контрольные вопросы. Папка Answer содержит 10 текстовых файлов, в которых хранятся ответы на контрольные вопросы.
Папка User_Stud содержит текстовые файлы, в которых хранится информация про зарегистрированных студентах. Когда студент регистрируется в системе, то в этой папке создается файл, в котором хранится информация про этого пользователя.
Рис. 15
Сначала идет ФИО, затем группа, логин, пароль, и время пребывания студента в системе. Данные отделены служебными символами. Папка User_Prep содержит текстовые файлы, в которых хранится информация про зарегистрированных преподавателях. Когда преподаватель регистрируется в системе, то в этой папке создается файл, в котором хранится информация про этого пользователя. Папка Rez содержит текстовые файлы, в которых хранятся результаты обучения студентов. Когда студент регистрируется, то создается в этой папке файл пустой, когда студент проходит контроль, то в него записываются результаты обучения.
Рис. 16
5.1 Инструкция для пользователя "студент"
Если студент уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется учебный материал. Если студент не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Студент", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" студент регистрируется и входит в систему. В следующем окне студенту доступны для изучения 10 занятий. Контроль проводится после каждого пройденного урока. Щелкая на кнопку "Ответ", возле соответствующего вопроса, студент в появившимся окне вводит свой ответ. После того как студент ответил на все вопросы, становится доступной кнопка "Результат", по нажатию на которую студент предоставляются результаты его обучения. Ознакомившись с результатами, студент может перейти обратно к лекциям, однако кнопки "Контроль" уже нет. Так же студент может выйти из системы обучения, нажав на кнопку "Выход".
5.2 Инструкция для пользователя "преподаватель"
Если преподаватель уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется меню преподавателя. Если преподаватель не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Преподаватель", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, верно указан ключ, который известен только преподавателям и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" преподаватель регистрируется и входит в систему. Далее преподаватель попадает в "Меню преподавателя". В этом окне преподаватель может выбрать то, что он желает сделать: править лекции, править вопросы и ответы, просмотреть результаты обучения. По нажатию на кнопку "Править лекции" преподаватель попадает в окно в котором он может добавить или изменить материал в лекциях. Для этого необходимо выбрать урок, который необходимо исправить, ввести информацию и нажать на кнопку "Сохранить". По нажатию на кнопку "Править вопросы", преподаватель попадает в окно, в котором можно править вопросы и ответы. Для этого в необходимом вопросе или ответе нужно изменить текст и нажать на кнопку "Сохранить". По нажатию на кнопку "Смотреть рез-ты обучения" преподаватель попадает в окно, в котором он может просмотреть результаты обучения студентов .Для этого необходимо выбрать из списка интересующего студента, и нажать на кнопку "Показать", после чего в текстовые поля запишется информация про этого студента