Программа "Система обучения"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?о нажатию на кнопку "Править лекции" преподаватель попадает в окно в котором он может изменять учебный материал. Преподаватель выбирает нужный урок, вносит изменения и нажимает на кнопку "Сохранить" и изменения сохраняются.
Рис .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.