p align="left">ods1.writeUTF(S8); ods1.writeUTF(S9); ods1.writeUTF(S10); ods1.close(); } catch(IOException e) { System.out.println("Can not write file"+e); } } } private int ccc; private char[] pass = new char[20]; private String S13; private String S14; private boolean dd; private int t; private int t1=0; private String r="111111"; private String S1; private String S2; private String S3; private String S4; private String S5; private String S6; private String S7; private String S8; private String S9; private String S10; private String S11="lector"; } private JPasswordField Password; private JTextField login; private JLabel label1; private JLabel label2; } class CheckBoxFrame extends JFrame { public CheckBoxFrame() { setTitle("Test"); setSize(600,200); Container contentPane = getContentPane (); JPanel panel = new JPanel (); label = new JLabel ("Внимания, вы проходите тестирование - не дурачится и внимательно вчитывайтесь в вопрос!"); contentPane.add(label,BorderLayout.NORTH); replace1=new JButton("Finish"); replace = new JButton("Next"); panel.add(replace); panel.add(replace1); contentPane.add(panel,BorderLayout.SOUTH); try { FileInputStream is45 = new FileInputStream(new File("C:\\USER\\NOW.txt")); DataInputStream ids45 = new DataInputStream(is45); S2=ids45.readUTF(); FileInputStream is = new FileInputStream(new File("C:\\USER\\Control.txt")); ids = new DataInputStream(is); } catch(IOException e) { System.out.print("Can not read file888888"+e); } replace1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event2) { label.setText("Ваш результат - "+fff*10+"% угаданых вопросов от общего количества вопросов"); } }); replace.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event2) { w=0; c=0; try { if(y<10) { S3=ids.readUTF(); label.setText("<html>Внимания, вы проходите тестирование - не дурачится и внимательно вчитывайтесь в вопрос!<br>"+S3); } } catch(IOException e) { System.out.print("Can not read file5555"+e); } } }); buttonPanel = new JPanel(); group = new ButtonGroup (); addRadioButton("Дa",3); addRadioButton("Частично",1); addRadioButton("Нет",2); addRadioButton("Другой ответ",0); contentPane.add(buttonPanel,BorderLayout.CENTER); try { FileInputStream is4 = new FileInputStream(new File("C:\\USER\\Answers.txt")); ids4 = new DataInputStream(is4); } catch(IOException e) { System.out.print("Can not read file4444"+e); } } public void addRadioButton(String name, final int size) { boolean selected = size==mode; JRadioButton button = new JRadioButton(name,selected); group.add(button); buttonPanel.add(button); try{ OS=new FileOutputStream (new File("C:\\Student1\\"+S2+".txt")); ods = new DataOutputStream (OS); } catch (IOException e) { System.out.print("Can not read file3333"+e); } ActionListener listerner = new ActionListener() { public void actionPerformed(ActionEvent event1) { if(c==0) { if(y<10) { w++; if(w==1) { try { String S31=ids4.readUTF(); r=Integer.parseInt(S31); } catch(IOException e) { System.out.print("Can not read file2222"+e); } if(r==size) { fff++; try{ String X=""+y; ods.writeUTF(X); OS1=new FileOutputStream (new File("C:\\Student\\"+S2+".txt")); ods1 = new DataOutputStream (OS1); S3=""+fff; ods1.writeUTF(S3); } catch (IOException e) { System.out.print("Can not read file111"+e); } } } } } y++; } }; button.addActionListener(listerner); } private JLabel label; private JPanel buttonPanel; private ButtonGroup group; private static final int mode=0; private int fff=0; private int r=0; private JButton replace; private JButton replace1; private int y=0; private int c=1; private String S3; private String S2; private DataInputStream ids4 ; private DataInputStream ids; private FileOutputStream OS; private DataOutputStream ods; private FileOutputStream OS1; private DataOutputStream ods1; private int w=0; } class JFrame1 extends JFrame { public JFrame1() { setSize(400,300); ButtonPanel1 panel = new ButtonPanel1(); add(panel); } } class ButtonPanel2 extends JPanel { public ButtonPanel2() { S133 =JOptionPane.showInputDialog("Введите логин искомого студента"); JButton Change = new JButton("Change"); m_1=new JTextField(5); m_2=new JTextField(5); m_3=new JTextField(5); m_4=new JTextField(5); m_5=new JTextField(5); m_6=new JTextField(5); m_7=new JTextField(5); m_8=new JTextField(5); m_9=new JTextField(5); m_10=new JTextField(5); JLabel l = new JLabel("Please, give me a logical speach, if you already want to change:"); JLabel l1 = new JLabel("Массив в С++: его значение, применение, свойства:"); JLabel l2 = new JLabel("Размер передаваемого массива"); JLabel l3 = new JLabel("Передача массивов как указателей"); JLabel l4 = new JLabel("Преимущества передачи массива как указателя"); JLabel l5 = new JLabel("Проблемы связаны с передачой массива..."); JLabel l6 = new JLabel("Некоторые особенности поведения компилятора"); JLabel l7 = new JLabel("Примеры правильного кода"); JLabel l8 = new JLabel("Массив обявленный как ссылка"); JLabel l9 = new JLabel("Использование абстрактного контейнера - это плохо?"); JLabel l10 = new JLabel("Коечто о шаблонах их работе и многом другом"); JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(10,2)); add (l,BorderLayout.NORTH); panel1.add (l1); panel1.add (m_1); panel1.add (l2); panel1.add (m_2); panel1.add (l3); panel1.add (m_3); panel1.add (l4); panel1.add (m_4); panel1.add (l5); panel1.add (m_5); panel1. add (l6); panel1.add (m_6); panel1.add (l7); panel1.add (m_7); panel1.add (l8); panel1.add (m_8); panel1.add (l9); panel1.add (m_9); panel1.add (l10); panel1. add (m_10); add(panel1,BorderLayout.CENTER); add (Change,BorderLayout.SOUTH); Change.addActionListener( new ActionListener(){public void actionPerformed(ActionEvent event) { try{ S2 = m_1.getText(); S3 = m_2.getText(); S4 = m_3.getText(); S5 = m_4.getText(); S6 = m_5.getText(); S7 = m_6.getText(); S8 = m_7.getText(); S9 = m_8.getText(); S10 = m_9.getText(); S11 = m_10.getText(); FileOutputStream OS=new FileOutputStream (new File("C:\\KURS\\"+S133+".txt")); DataOutputStream ods = new DataOutputStream (OS); ods.writeUTF(S2); ods.writeUTF(S3); ods.writeUTF(S4); ods.writeUTF(S5); ods.writeUTF(S6); ods.writeUTF(S7); ods.writeUTF(S8); ods.writeUTF(S9); ods.writeUTF(S10); ods.writeUTF(S11); ods.close(); } catch(IOException e) { System.out.print("Can not read file99999"+e); } } }); } public ButtonPanel2(int e) { w=e; m1[0]=0; m1[1]=1; m1[2]=2; m1[3]=3; m1[4]=4; m1[5]=5; m1[6]=6; m1[7]=7; m1[8]=8; m1[9]=9; } private JTextField m_1; private JTextField m_2; private JTextField m_3; private JTextField m_4; private JTextField m_5; private JTextField m_6; private JTextField m_7; private JTextField m_8; private JTextField m_9; private JTextField m_10; private String S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S133; protected int [] m1=new int[10]; int w=0; public int[] getPrivios () { return m1; } } class JFrame2 extends JFrame { public JFrame2() { setSize(650,325); ButtonPanel2 panel1 = new ButtonPanel2(); add(panel1); } } class ButtonPanel1 extends JPanel { public ButtonPanel1() { JButton NextButton = new JButton("Next"); textArea = new JTextArea(12,35); textArea.setEditable(false); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); scrollPane = new JScrollPane(textArea); add(scrollPane,BorderLayout.CENTER); add (NextButton); S2 = new String(); try { FileInputStream is = new FileInputStream(new File("C:\\USER\\NOW.txt")); DataInputStream ids = new DataInputStream(is); S2=ids.readUTF(); FileInputStream is1 = new FileInputStream(new File("C:\\KURS\\"+S2+".txt")); DataInputStream ids1 = new DataInputStream(is1); String S30=ids1.readUTF(); String S31=ids1.readUTF(); String S32=ids1.readUTF(); String S33=ids1.readUTF(); String S34=ids1.readUTF(); String S35=ids1.readUTF(); String S36=ids1.readUTF(); String S37=ids1.readUTF(); String S38=ids1.readUTF(); String S39=ids1.readUTF(); d1[0]=Integer.parseInt(S30); d1[1]=Integer.parseInt(S31); d1[2]=Integer.parseInt(S32); d1[3]=Integer.parseInt(S33); d1[4]=Integer.parseInt(S34); d1[5]=Integer.parseInt(S35); d1[6]=Integer.parseInt(S36); d1[7]=Integer.parseInt(S37); d1[8]=Integer.parseInt(S38); d1[9]=Integer.parseInt(S39); } catch (IOException e) { System.out.print("Can not read file0000"+e); } Color1Action NextAction = new Color1Action(d1); NextButton.addActionListener(NextAction); } private class Color1Action implements ActionListener { public Color1Action(int[]o) { try{ BufferedReader in = new BufferedReader(new FileReader("device.dat")); newStaff=readData(in); in.close(); } catch(IOException exception){ exception.printStackTrace(); } for(int y=0;y<10;y++) { m[y]=o[y]; } } public void actionPerformed(ActionEvent event) { if(d<10) { i=m[d]; d++; textArea.setText(newStaff[i].getName()); } } private int ccc1; private String S1; private int i=0; private int d=0; private int [] m= new int [10]; } private JTextArea textArea; private JScrollPane scrollPane; private String S2; private Device[] newStaff = new Device[10]; private int[] d1= new int[10]; static Device[] readData(BufferedReader in) throws IOException { int n = Integer.parseInt(in.readLine()); Device [] e=new Device[n]; for(int i=0;i<n;i++) { e[i] = new Device(); e[i].readData(in); } return e; } } class Device { private String name; public Device() {} public Device (String n) { name=n; } public Device (Device e){ name=e.name; } public String getName () { return name; } public void writeData(PrintWriter out) throws IOException out.println(name+" public void readData(BufferedReader in) throws IOException "); name=t.nextToken(); } 5. Структуры файлов: Структура файлов данной системы простая: 1. Она содержит единственный файл, содержащий код программы - Main. 2. Она использует 5 папок вспомогательных файлов, переменного количества файлов в каждой папке. 3. Папка RGR содержит файлы типа .txt - названия которых - это логины, а содержащаяся в них информация - пароли соответствующих пользователей. 4. Папка USER - содержит несколько файлов : - NOW.txt - содержит имя пользователя, присутствующего в системе в данный момент. - Time.txt - содержит время захода пользователя в систему; - Control.txt - содержит вопросы тестирования; - Answers.txt - содержит правильные ответы на вопросы тестирования; - teacher.txt - содержит 0(если пользователь - учитель) или 1 (если пользователь - студент). 5. Папка KURS - содержит файлы последовательности вывода информации на экран для каждого пользователя в отдельности. 6. Папка Student - содержит номера разделов, на которые студент дал правильный ответ. 7. Папка Student1 - содержит количество правильных ответов студента 6. Инструкция пользователя и контрольный пример: Все последующие пункты будут базироваться на следующих принципах: 1. Начало каждого пункта - теоретическая часть - это первый пункт инструкции, который дает информацию: что и почему мы это делаем. 2. Окончание - практическая часть - это первый пункт примера, который наглядно показывает действия описанные в теоретической части. Сделано это было для удобства пользователя и повышения его восприятия описанной выше информации. Пункты совместной инструкции и примера: 1. Сначала мы должны пройти регистрацию, и не просто пройти, а соблюсти некоторые правила. Если вы хотите зарегистрироваться как студент - у вас нет никаких ограничений, кроме шестизначного пароля, но если вы хотите зарегистрироваться как преподаватель, то вам придется ввести заданные значения полей логина и пароля, а именно - «lector» и «111111» соответственно. Это нужно, так как программа реализирует функции для студентов и преподавателей, а так как они не могут работать вместе, было решено их распараллелить в выборе доступных им функций. Для стабильной работы программы необходимо наличие хотя бы одного студента, поэтому мы сначала зарегистрируемся как студент: 2. После нажатия кнопки Begin мы войдем в систему как студент ааа: 3. Как вы видите на рисунке наши действия как преподавателя в профиле студент невозможны, но возможны следующие действия: «Просмотреть материал» - Как вы видите ничего нет пока мы не нажмем кнопку Next И таким образом мы можем просмотреть любое количество материала выложенное на освоение студентами. 4. «Проверить знание»: Чтобы правильно продолжить выполнение программы нужно нажать кнопку Next, не нажимая ничего другого: При выборе вариантов вы можете только один раз нажать любой предложенный вариант, остальные не будут засчитаны, кроме того вы должны нажать правильный ответ даже, если в нем при переходе, будет чёрная точка. 5. Наступит момент, когда нажатие кнопки Next не принесет каких-либо изменений в структуре окна, тогда нажмите кнопку Finish и вы получите результат: 6. Только пройдя все пункты у вас возникает выбор: или повторить пункты 4 и 5 или воспользоваться функцией «Выход»: При нажатии кнопки ОК вы завершите программу. 7. Теперь вы зайдите как преподаватель: 8. Вы видите, что часть функций студента прикрыта, но все остальные функции вам доступны: проверяем функцию «Изменить»: В этом окне вы должны ввести логин студента, которому вы хотели бы изменить порядок изложения материала: Причем вы можете ввести любое целое число от 0 до 9. 9. Последняя функция - «Посмотреть»: При нажатии на кнопку ОК вы выйдите из системы. Список использованной литературы: 1. Методичні вказівки до курсової роботи «Обєктно-орієнтоване програмування» - Одеса, ОНПУ - 2007 р.; 2. Кей Хорстман, Гарри Корнел :«Том І. Основы» - Киев: «Вильямс» - 2007 год; 3. Кей Хорстман, Гарри Корнел :«Том 2. Тонкости програмирования» - Киев: «Вильямс» - 2007 год;
Страницы: 1, 2, 3, 4
|