p align="left">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); } } }} } 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 + "\\" + 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. Инструкция пользователя
5.1 Инструкция для пользователя "студент" Если студент уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется учебный материал. Если студент не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Студент", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" студент регистрируется и входит в систему. В следующем окне студенту доступны для изучения 10 занятий. Контроль проводится после каждого пройденного урока. Щелкая на кнопку "Ответ", возле соответствующего вопроса, студент в появившимся окне вводит свой ответ. После того как студент ответил на все вопросы, становится доступной кнопка "Результат", по нажатию на которую студент предоставляются результаты его обучения. Ознакомившись с результатами, студент может перейти обратно к лекциям, однако кнопки "Контроль" уже нет. Так же студент может выйти из системы обучения, нажав на кнопку "Выход".
5.2 Инструкция для пользователя "преподаватель" Если преподаватель уже зарегистрирован в системе, то он вводит свой логин и пароль, и если он верный то попадает в окно, где ему предоставляется меню преподавателя. Если преподаватель не зарегистрирован в системе, то он нажимает на кнопку "Регистрация" и попадает в окно регистрации пользователя. Там студент ставит переключатель в позицию "Преподаватель", заполняет поля регистрации, если поля заполнены верно(т.е заполнены все поля, пароль указан одинаково два раза, верно указан ключ, который известен только преподавателям и не использованы служебные символы(~,#,%,&)), то по нажатию на кнопку "Регистрация" преподаватель регистрируется и входит в систему. Далее преподаватель попадает в "Меню преподавателя". В этом окне преподаватель может выбрать то, что он желает сделать: править лекции, править вопросы и ответы, просмотреть результаты обучения. По нажатию на кнопку "Править лекции" преподаватель попадает в окно в котором он может добавить или изменить материал в лекциях. Для этого необходимо выбрать урок, который необходимо исправить, ввести информацию и нажать на кнопку "Сохранить". По нажатию на кнопку "Править вопросы", преподаватель попадает в окно, в котором можно править вопросы и ответы. Для этого в необходимом вопросе или ответе нужно изменить текст и нажать на кнопку "Сохранить". По нажатию на кнопку "Смотреть рез-ты обучения" преподаватель попадает в окно, в котором он может просмотреть результаты обучения студентов .Для этого необходимо выбрать из списка интересующего студента, и нажать на кнопку "Показать", после чего в текстовые поля запишется информация про этого студента 6. Тестирование работы системы 6.1 Тестирование работы для пользователя "студент" Для того, что бы проверить правильность работы системы с пользователем "студент", я зарегистрирую двух студентов и для каждого пройду все стадии обучения, и сравню полученные результаты с ожидаемыми. Для начала я зарегистрирую в системе двух студентов, после чего в папке User_Stud должны появиться файлы с данными регистрации для каждого из зарегистрированного студента и в папке Rez должны появиться два пустых файла для записи в них результатов обучения конкретного студента.Пройдя все этапы работы с системой я убедился что система с пользователем "студент" работает правильно. 6.2 Тестирование работы для пользователя "преподаватель" Для того, что бы проверить правильность работы системы с пользователем "преподаватель", я зарегистрирую одного преподавателя и проверю правильность работы системы. При регистрации преподавателя, в папке User_Prep должен появиться файл с его данными регистрации: Рис. 21 Далее проверим возможность преподавателя править лекции. Для этого в первой лекции добавим, какую либо надпись, сохраним, и проверим, изменилась ли лекция. Для этого, после изменений лекции я зайду как студент и прочитаю изменённую лекцию. Рис. 21 Далее проверим возможность преподавателя править вопросы и ответы. Для этого в первом вопросе и ответе добавим, какую либо надпись, сохраним, и проверим, изменилась ли лекция. Для этого, после изменений лекции я зайду в папку с вопросами и в папку с ответами, и просмотрю изменённые файлы. Рис. 22 Наконец проверим возможность преподавателя смотреть результаты обучения всех студентов: Рис. 23
Заключение В ходе выполнения курсовой работы по дисциплине "Объектно-ориентированное программирование", я разработал и протестировал систему обучения, отвечающую требованиям моего варианта, тем самым углубил и закрепил свои знания, полученные мною в результате курса обучения по дисциплине "Объектно-ориентированное программирование" и получил практические навыки с разработке программ с графическим интерфейсом пользователя. Так же я убедился, что объектно-ориентированная методология создания программных продуктов представляет собой очень мощное и гибкое средство для разработки программного обеспечения. Список литературы 1. ГСТУ 3008-95. Документация. Отчёты в сфере науки и техники. Структура и правила оформления. - Киев: Изд-во стандартов, 1995. - 38 с. 2. МУ к курс. работе по курсу "Языки объектно-ориентированного программирования" /: ОГПУ, 2007г. 3. Давыдов В.И. Кунгурцев А.Б. Объектно-ориентированное программирование. Одесса :Автограф, 2003. 4. Кунгурцев О.Б. Основи програмування на мові Java.Середовище Net Beans. Одеса. :ВМВ, 2006. -182с.
Страницы: 1, 2, 3
|