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

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

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

?о нажатию на кнопку "Править лекции" преподаватель попадает в окно в котором он может изменять учебный материал. Преподаватель выбирает нужный урок, вносит изменения и нажимает на кнопку "Сохранить" и изменения сохраняются.

 

Рис .11

 

По нажатию на кнопку "Править вопросы" преподаватель попадает в окно в котором он может изменять вопросы и ответы. Преподаватель изменяет вопросы или ответы и сохраняет изменения по нажатию на соответствующую кнопку.

 

Рис. 13

По нажатию на кнопку "Рез-ты обучения" преподаватель попадает в окно в котом он может смотреть результату обучения для всех студентов, которые прошли контроль. Каждый студент прошедший контроль, попадает в список доступных для просмотра преподавателем студентов, преподаватель выбирает студента, результаты которого он хочет просмотреть и нажимает на кнопку "Показать"

 

Рис. 13

 

3. Описание и коды классов системы

 

3.1 Класс Enter

 

Класс Enter реализует авторизацию и регистрацию пользователя в системе. Метод public boolean Registration(String info,String name) создает файл с регистрационными данными пользователя. Если регистрируется преподаватель то в папку для преподавателей если студент то для студента.

Метод public boolean Authorisation(String path , String toCompare) реализует авторизацию пользователя( то есть проверяют есть ли такой пользователь и правильный ли он ввёл пароль).

 

public class Enter

{

public Enter(){}

public boolean Registration(String info,String name){

File f1;

f1=new File(name);

if(!f1.exists()){

try {

f1.createNewFile();

PrintWriter writer = null;

writer = new PrintWriter(

new OutputStreamWriter(

new FileOutputStream(name)));

writer.write(info);

writer.close();

return true;

}

catch (Exception ex) { return true;}

}

else {

return false;}

}

public boolean Authorisation(String path,String toCompare){

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("&");

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);

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

Main.this_path ="User_stud\\"+ArrOfFile[k];

Main.this_time = L5;

Main.this_name = L1;

Main.this_group = L2;

return true;

}

}

}

catch (FileNotFoundException ex) {

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

return false;

}

}

return false;

}

}

 

3.2 Класс Check

 

Класс реализует 3 проверки: проверку на использование в полях для регистрации и авторизации "служебных символов"(тех символов которые я использую в качестве разделителей в файлах), проверку на то что такой пользователь уже существует и проверку на то что пользователь прошел контроль и получил результаты. Метод public boolean Chek_on_Symbol(String s1, String s2, String s3) выполняет проверку на использование в полях для регистрации и авторизации служебных символов.

Метод public boolean Check_on_Reg(String name, String path) реализует проверку на то, что в папке, где хранятся зарегистрированные пользователи уже существует такой пользователь.

Метод public boolean Check_on_Rez(String fullpath) реализует проверку на то, что пользователь прошел контроль и его итоговый результат записан в файл, в следствии чего он становится видимым для преподавателя когда преподаватель хочет просмотреть результаты обучения

public class Check

{

public Check(){}

public boolean Chek_on_Symbol(String s1, String s2, String s3)

{

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

{

if(s1.charAt(i)==~ || s1.charAt(i)==# || s1.charAt(i)==% ||s1.charAt(i)==&)

{

return false;

}

}

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

{

if(s2.charAt(i)==~ || s2.charAt(i)==# || s2.charAt(i)==% ||s2.charAt(i)==&)

{

return false;

}

}

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

{

if(s3.charAt(i)==~ || s3.charAt(i)==# || s3.charAt(i)==% ||s3.charAt(i)==&)

{

return false;

}

}

return true;

}

public boolean Check_on_Reg(String name, String path)

{

File F = new File(path);

String toCompare = name+".txt";

String ArrOfFile[] = F.list();

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

{

if(toCompare.equals(ArrOfFile[i]))

{

return false;

}

}

return true;

}

public boolean Check_on_Rez(String fullpath)

{

try {

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

StringBuffer data = new StringBuffer();

while (in.hasNext()) {

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

}

String s = data.toString();

if(s.equals(""))

{

return false;

}

return true;

} catch (FileNotFoundException ex) {

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

return false;

}

}

}

 

3.3 Класс ShowFile

 

Класс реализует следующие методы: чтение лекционного материала из файла и запись его в текстовое поле, чтение вопросов/ответов из файла и запись их в текстовое поле, и просто чтение текста из файла.

Метод public String SetLek(String s,JTextArea t) читает лекционный материал из файла и записывает в текстовое поле.

Метод public String ShowAQ(String s,JTextField t) читает вопросы или ответы(взависимости от того, что требуется), и записывает в текстовое поле.

Метод public String GetTextFromFile(String s) читает текст из файла.

 

public class ShowFile

{

public ShowFile(){}

public String zap(String s,JTextArea t){

try {

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

StringBuffer data = new StringBuffer();

while (in.hasNext())

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

t.setText(data.toString());

return data.toString();

} catch ( Exception ex ) {

ex.printStackTrace();

return "";

}

}

public String ShowAQ(String s,JTextField t){

try {

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

StringBuffer data = new StringBuffer();

while (in.hasNext())

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

t.setText(data.toString());

return data.