Смекни!
smekni.com

Программа "Система обучения" (стр. 3 из 4)

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+"&bsol;"+ArrOfFile[k]));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("&bsol;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+"&bsol;"+ArrOfFile[k]));

System.out.println("11111");

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("&bsol;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("&bsol;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);

}

}

}}

}

3.7 Класс Modification

Методы этого класса реализуют возможности изменения лекционного материала, вопросов и ответов преподавателем.

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 + "&bsol;" + ArrOfFile[k]));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("&bsol;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+"&bsol;"+ArrOfFile[k]));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("&bsol;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("&bsol;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+"&bsol;"+ArrOfFile[k]));

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

data.append(in.nextLine()).append("&bsol;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("&bsol;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. Инструкция пользователя

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

Если студент уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется учебный материал. Если студент не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Студент", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" студент регистрируется и входит в систему. В следующем окне студенту доступны для изучения 10 занятий. Контроль проводится после каждого пройденного урока. Щелкая на кнопку "Ответ", возле соответствующего вопроса, студент в появившимся окне вводит свой ответ. После того как студент ответил на все вопросы, становится доступной кнопка "Результат", по нажатию на которую студент предоставляются результаты его обучения. Ознакомившись с результатами, студент может перейти обратно к лекциям, однако кнопки "Контроль" уже нет. Так же студент может выйти из системы обучения, нажав на кнопку "Выход".

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

Если преподаватель уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется меню преподавателя. Если преподаватель не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Преподаватель", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, верно указан ключ, который известен только преподавателям и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" преподаватель регистрируется и входит в систему. Далее преподаватель попадает в "Меню преподавателя". В этом окне преподаватель может выбрать то, что он желает сделать: править лекции, править вопросы и ответы, просмотреть результаты обучения. По нажатию на кнопку "Править лекции" преподаватель попадает в окно в котором он может добавить или изменить материал в лекциях. Для этого необходимо выбрать урок, который необходимо исправить, ввести информацию и нажать на кнопку "Сохранить". По нажатию на кнопку "Править вопросы", преподаватель попадает в окно, в котором можно править вопросы и ответы. Для этого в необходимом вопросе или ответе нужно изменить текст и нажать на кнопку "Сохранить". По нажатию на кнопку "Смотреть рез-ты обучения" преподаватель попадает в окно, в котором он может просмотреть результаты обучения студентов .Для этого необходимо выбрать из списка интересующего студента, и нажать на кнопку "Показать", после чего в текстовые поля запишется информация про этого студента