Class ButtonFrame11 – класс, отвечающий за правильное расположения окна регистрации и вызов самого класса регистрации – ButtonPanel11

41230
знаков
0
таблиц
14
изображений

2.         Class ButtonFrame11 – класс, отвечающий за правильное расположения окна регистрации и вызов самого класса регистрации – ButtonPanel11.

3.         Class ButtonPunel11 – класс, отвечающий за регистрацию, вход в систему и авторизацию. Содержит в себе элементы окна регистрации и внутренний класс ColorAction11, который отвечает за получение и обработку данных, полученных от пользователя. В зависимости от этого он может вызвать, а может и не вызвать класс ButtonFrame. Единственный метод этого класса – ActionPerformed () – отвечает за считывание данных, сравнения их с существующими, создания или не создания различных файлов в различных ситуациях.

4.         Class ButtonFrame – класс, содержащий в себе элементы главного окна, отвечающий за распределения возможностей между студентом и преподавателем, отвечающий за правильное расположение главного окна. В нем имеется встроенный класс ColorAction – отвечающий за идентификацию действия, который вызывает пользователь. И в зависимости от этого может вызвать следующие классы: JFrame1, JFrame2, CheckBoxFrame, MyTimer, MyTimer1.

5.         Class JFrame1 – это класс, который отвечает за расположения окна частичного вывода материала. Его главная задача – вызов класса ButtonPanel1.

6.         Class ButtonPanel1 – класс, содержащий все элементы окна, и отвечающий за чтение и вывод информации на экран. Для этого он имеет функцию readData () – отвечающую за чтение, и встроенный класс – Color1Action – отвечающий за преобразования на экране, что, в свою очередь, осуществляет функция actionPefrormed ().

7.         Class JFrame2 – это класс, который отвечает за расположения окна изменение порядка вывода материала. Его главная задача – вызов класса ButtonPanel2.

8.         Class ButtonPanel2 – – класс, содержащий все элементы окна, и отвечающий за принятие и обработку информации, введенной пользователем. Для этого он имеет функцию getPrevios() – отвечающую за преобразование информации, и функцию actionPefrormed (), которая отвечает за считывание.

9.         Class CheckBoxFrame – это класс, содержащий все элементы и свойства окна тестирование знаний, который отвечает за вывод информации из файла на экран, принятия информации пользователя, формулирования и вывод результатов на экран, а также их последующая запись в файл. Функция addRadioButton () – отвечает за добавления кнопки и элементов идентификации. Функция actionPerformed () – отвечает за чтение и сравнение информаций пользователя и конкретного задания.

10.      Class MyTimer – это класс, отвечающий за выход из системы и вывод на экран результатов работы системы, для чего в нем предусмотрена функция readData () – для чтения информации из файла, а также функция actionPerformed () – для выхода с системы.

11.      Class MyTimer1 – класс, отвечающий за те же функции, что и класс MyTimer, содержащий те же элементы, но имеется существенное исключение : MyTimer – выдавал информацию о текущем клиенте, а класс MyTimer1 – выдает информацию о любом студенте.

12.      Class Device – отвечает за первоначальную запись и чтение элементов в файле, так как они являются объектами класса, это реализует функции readData () и writeData (), а доступ к элементам класса функция getName ().

4. Коды классов

package javaapplication20;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import java.io.*;

import java.util.*;

import java.text.*;

import java.net.*;

import java.lang.reflect.*;

public class Main

{

public static void main(String[] args)throws IOException

{

DataInputStream inData = new DataInputStream(System.in);

String T0="Оцените утверждение : массив в С++ никогда не передается по значению";

String T1="Верно ли, что размер массива важен при объявлении параматра?";

String T2="Действительно ли, что указатель указывает на нулевой элемент массива, при передачи массива";

String T3="Оцените утверждение: изменение значения аргумента внутри функции затрагивает сам переданный объект и его локальную копию ";

String T4="Верно ли, размер массива не является частью типа параметра ";

String T5="Действительно ли, функция знает реальный размер передаваемого массива?";

String T6="Правда ли, что в конце каждого массива имеется , который указывает на конец массива";

String T7="Оцените утверждение: другой способ сообщить функции размер массива-параметра – объявить параметр как ссылку ";

String T8="Верно ли, что использование абстрактный контейнерный тип - это один из способов получения размера передаваемого массива";

String T9="Правда ли, что параметры шаблона заключаются в круглые скобки";

String T10="3";

String T11="2";

String T12="3";

String T13="1";

String T14="3";

String T15="2";

String T16="2";

String T17="3";

String T18="3";

String T19="2";

try{

FileOutputStream OS=new FileOutputStream (new File("C:\\USER\\Control.txt"));

DataOutputStream ods = new DataOutputStream (OS);

ods.writeUTF(T0);

ods.writeUTF(T1);

ods.writeUTF(T2);

ods.writeUTF(T3);

ods.writeUTF(T4);

ods.writeUTF(T5);

ods.writeUTF(T6);

ods.writeUTF(T7);

ods.writeUTF(T8);

ods.writeUTF(T9);

ods.close();

FileOutputStream OS1=new FileOutputStream (new File("C:\\USER\\Answers.txt"));

DataOutputStream ods1 = new DataOutputStream (OS1);

ods1.writeUTF(T10);

ods1.writeUTF(T11);

ods1.writeUTF(T12);

ods1.writeUTF(T13);

ods1.writeUTF(T14);

ods1.writeUTF(T15);

ods1.writeUTF(T16);

ods1.writeUTF(T17);

ods1.writeUTF(T18);

ods1.writeUTF(T19);

ods1.close();

}

catch (IOException e)

{

System.out.print("Can not read file55555"+e);

}

ButtonFrame11 frame1 = new ButtonFrame11 ();

frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame1.setVisible(true);

Device[] staff = new Device[10];

staff[0] = new Device("Массив в С++ никогда не передается по значению, а только как указатель на его первый, точнее нулевой, элемент");

staff[1] = new Device("Размер массива неважен при объявлении параметра");

staff[2] = new Device("Передача массивов как указателей имеет следующие особенности:");

staff[3] = new Device("изменение значения аргумента внутри функции затрагивает сам переданный объект, а не его локальную копию. Если такое поведение нежелательно, программист должен позаботиться о сохранении исходного значения. Можно также при объявлении функции указать, что она не должна изменять значение параметра, объявив этот параметр константой: ");

staff[4] = new Device("размер массива не является частью типа параметра. Поэтому функция не знает реального размера передаваемого массива. Компилятор тоже не может это проверить");

staff[5] = new Device("При проверке типов параметров компилятор способен распознать, что в обоих случаях тип аргумента int* соответствует объявлению функции. Однако контроль за тем, не является ли аргумент массивом, не производится.");

staff[6] = new Device("По принятому соглашению C-строка является массивом символов, последний элемент которого равен нулю. Во всех остальных случаях при передаче массива в качестве параметра необходимо указывать его размер. Это относится и к массивам символов, внутри которых встречается 0. Обычно для такого указания используют дополнительный параметр функции.");

staff[7] = new Device("Другой способ сообщить функции размер массива-параметра – объявить параметр как ссылку. В этом случае размер становится частью типа, и компилятор может проверить аргумент в полной мере.");

staff[8] = new Device("Еще один способ получить размер переданного массива в функции – использовать абстрактный контейнерный тип. (Такие типы были представлены в главе 6. В следующем подразделе мы поговорим об этом подробнее");

staff[9] = new Device("Параметры шаблона заключаются в угловые скобки. Ключевое слово class означает, что идентификатор Type служит именем параметра, при конкретизации шаблона функции putValues() он заменяется на реальный тип – int, double, string и т.д. (В главе 10 мы продолжим разговор о шаблонах функций");

Device[] staff3 = new Device[10];

staff3[0] = new Device("Передача массивов в С++");

staff3[1] = new Device("Размер массива ");

staff3[2] = new Device("Передача массивов как указателей имеет следующие особенности...");

staff3[3] = new Device("Свойство 1");

staff3[4] = new Device("Свойство 2");

staff3[5] = new Device("Расмотрение примера");

staff3[6] = new Device("Дополнительный параметер функции");

staff3[7] = new Device("Объявление параметра как ссылку");

staff3[8] = new Device("Абстрактный контейнерный тип");

staff3[9] = new Device("Шаблоны");

try

{

PrintWriter out = new PrintWriter( new FileWriter("device.dat"));

writeData(staff,out);

out.close();

PrintWriter out1 = new PrintWriter( new FileWriter("device1.dat"));

writeData(staff3,out1);

out1.close();

}

catch(IOException exception){

exception.printStackTrace();

}

}

static void writeData(Device[] e, PrintWriter out)

throws IOException

{

out.println(e.length);

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

e[i].writeData(out);

}

}

class ButtonFrame extends JFrame

{

public ButtonFrame()

{

Toolkit kit = Toolkit.getDefaultToolkit();

Dimension screenSize = kit.getScreenSize();

int screenHeight = screenSize.height;

int screenWidth = screenSize.width;

setSize(screenWidth/2,screenHeight/2);

setLocation(screenWidth/4,screenHeight/4);

Image img = kit.getImage("icon.gif");

setIconImage(img);

setTitle("CenteredFrame");

Container contantPane = getContentPane();

JMenuBar menuBar = new JMenuBar();

JMenu stMenu = new JMenu("Студент");

JMenuItem WorkSpace = new JMenuItem("Просмотреть материал",new ImageIcon("page_bookmark.gif"));

stMenu.add(WorkSpace);

menuBar.add(stMenu);

JButton yellowButton = new JButton("WorkSpace");

JButton greenButton = new JButton("I_want_to_see");

JButton blueButton = new JButton("I am a teacher");

JButton redButton = new JButton("Check_Knowlarge");

JButton ExitButton = new JButton("Exit");

JPanel wer= new JPanel();

wer.add(yellowButton);

wer.add (blueButton);

wer.add(redButton);

wer.add(ExitButton);

wer.add(greenButton);

//contantPane.add(wer,BorderLayout.SOUTH);

contantPane.add(menuBar,BorderLayout.NORTH);

ColorAction yellowAction = new ColorAction(2);

ColorAction blueAction = new ColorAction(3);

ColorAction redAction = new ColorAction(4);

ColorAction ExitAction = new ColorAction(5);

ColorAction greenAction = new ColorAction(6);

yellowButton.addActionListener(yellowAction);

blueButton.addActionListener(blueAction);

redButton.addActionListener(redAction);

ExitButton.addActionListener(ExitAction);

greenButton.addActionListener(greenAction);

WorkSpace.addActionListener(yellowAction);

JMenuItem Check = new JMenuItem("Проверить знания",new ImageIcon("icon_security.gif"));

stMenu.add(Check);

Check.addActionListener(redAction);

JMenuItem Exit = new JMenuItem("Выход",new ImageIcon("action_stop.gif"));

stMenu.add(Exit);

Exit.addActionListener(ExitAction);

JMenu prMenu = new JMenu("Преподаватель");

JMenuItem teacher = new JMenuItem("Изменить",new ImageIcon("page_down.gif"));

prMenu.add(teacher);

teacher.addActionListener(blueAction);

JMenuItem teacher1 = new JMenuItem("Посмотреть",new ImageIcon("icon_world_dynamic.gif"));

prMenu.add(teacher1);

teacher1.addActionListener(greenAction);

menuBar.add(prMenu);

try

{

FileInputStream is = new

FileInputStream(new

File("C:\\USER\\teacher.txt"));

DataInputStream ids = new DataInputStream(is);

String S2=ids.readUTF();

n=Integer.parseInt(S2);

}

catch(IOException exception){

System.out.println("bgbvhgfj");

}

if(n==0)

{

teacher.setEnabled(false);

teacher1.setEnabled(false);

System.out.println(n);

}

else

{

Check.setEnabled(false);

Exit.setEnabled(false);

System.out.println(n);

}

}

private class ColorAction implements ActionListener

{

public ColorAction(int c)

{

ccc=c;

}

public void actionPerformed(ActionEvent event)

{

if(ccc==2)

{

JFrame1 frame2 = new JFrame1 ();

frame2.setVisible(true);

}

if(ccc==3)

{

JFrame2 frame3 = new JFrame2 ();

frame3.setVisible(true);

}

if(ccc==4)

{

CheckBoxFrame frame3 = new CheckBoxFrame();

frame3.setVisible(true);

}

if(ccc==5)

{

MyTimer frame3 = new MyTimer();

frame3.setVisible(true);

}

if(ccc==6)

{

MyTimer1 frame3 = new MyTimer1();

frame3.setVisible(true);

}

}

private int ccc;

}

private int n=0;

}

class MyTimer extends JFrame

{

public MyTimer()

{

setSize(650,350);

setTitle("Your answer");

try

{

FileInputStream is = new

FileInputStream(new

File("C:\\USER\\NOW.txt"));

DataInputStream ids = new DataInputStream(is);

S2=ids.readUTF();

GregorianCalendar d = new GregorianCalendar();

int year=d.get(Calendar.YEAR);

int mouth=d.get(Calendar.MONTH);

int day=d.get(Calendar.DAY_OF_MONTH);

int hour=d.get(Calendar.HOUR);

int minute=d.get(Calendar.MINUTE);

int seconds=d.get(Calendar.SECOND);

FileInputStream is1 = new

FileInputStream(new

File("C:\\USER\\Time.txt"));

DataInputStream ids1 = new DataInputStream(is1);

String S22=ids1.readUTF();

int year_0=Integer.parseInt(S22);

String S33=ids1.readUTF();

int mouth_0=Integer.parseInt(S33);

String S44=ids1.readUTF();

int day_0=Integer.parseInt(S44);

String S55=ids1.readUTF();

int hour_0=Integer.parseInt(S55);

String S66=ids1.readUTF();

int minute_0=Integer.parseInt(S66);

String S77=ids1.readUTF();

int seconds_0=Integer.parseInt(S77);

if(seconds<seconds_0)

{

seconds_1=seconds-seconds_0+60;

minute=minute-1;

}

else

{

seconds_1=seconds-seconds_0;

}

if(minute<minute_0)

{

minute_1=minute-minute_0+60;

hour=hour-1;

}

else

{

minute_1=minute-minute_0;

}

if(hour<hour_0)

{

hour_1=hour-hour_0+24;

day=day-1;

}

else

{

hour_1=hour-hour_0;

}

if(day<day_0)

{

if(mouth==0||mouth==2||mouth==4||mouth==6||mouth==8||mouth==10)

g=31;

if(mouth==3||mouth==5||mouth==7||mouth==9||mouth==11)

g=30;

if(mouth==1)

g=28;

if(mouth==1 && year==2012)

g=29;

day_1=day-day_0+g;

mouth=mouth-1;

}

else

{

day_1=day-day_0;

}

if(mouth<mouth_0)

{

mouth_1=mouth - mouth_0+12;

year=year-1;

}

else

{

mouth_1=mouth - mouth_0;

}

year_1=year-year_0;

FileInputStream is12 = new

FileInputStream(new

File("C:\\Student\\"+S2+".txt"));

ids13 = new DataInputStream(is12);

String E=ids13.readUTF();

int f=Integer.parseInt(E);

df=new Device[f];

m1=new int [f];

FileInputStream is121 = new

FileInputStream(new

File("C:\\Student1\\"+S2+".txt"));

ids131 = new DataInputStream(is121);

for(int r123=0;r123<f;r123++)

{

String E1=ids131.readUTF();

int f1=Integer.parseInt(E1);

m1[r123]=f1;

}

BufferedReader in = new BufferedReader(new FileReader("device1.dat"));

newStaff1=readData(in);

in.close();

for(int g1=0;g1<f;g1++)

{

r3=m1[g1];

df[r34]=newStaff1[r3];

r34++;

}

label9= new JLabel("FFF");

for(int g1=0;g1<f;g1++)

{

String rrr=df[g1].getName();

hhh=hhh+"<br>"+rrr;

}

label9.setText("<html><br> Вы правильно ответили на следующие темы(это - "+(f*10)+"%)<br>"+hhh+"</html>");

Container contentPane = getContentPane ();

JPanel panel = new JPanel();

JPanel panel1 = new JPanel();

label = new JLabel ("Вниманиe "+S2+" , вы прошли тестирование");

label1 = new JLabel ("Ваше время пребывания:");

label2 = new JLabel (year_1+" лет ");

label3 = new JLabel (mouth_1+" месяцев ");

label4 = new JLabel (day_1+" дней ");

label5 = new JLabel (hour_1+" часов ");

label6 = new JLabel (minute_1+" минут ");

label7 = new JLabel (seconds_1+" секунд ");

contentPane.add(label,BorderLayout.NORTH);

panel1.add(label1);

panel1.add(label2);

panel1.add(label3);

panel1.add(label4);

panel1.add(label5);

panel1.add(label6);

panel1.add(label7);

panel1.add(label9);

replace2 = new JButton("OK");

panel.add(replace2);

contentPane.add(panel,BorderLayout.SOUTH);

contentPane.add(panel1,BorderLayout.CENTER);

}

catch (IOException e)

{

System.out.print("Can not read file66666"+e);

}

replace2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event2)

{

System.exit(0);

}

});

}

private JLabel label;

private JLabel label1;

private JLabel label2;

private JLabel label3;

private JLabel label4;

private JLabel label5;

private JLabel label6;

private JLabel label7;

private JLabel label9;

private JButton replace2;

private String S2;

private String hhh=new String("");

private int seconds_1;

private int minute_1;

private int hour_1;

private int day_1;

private int mouth_1;

private int year_1;

private int g;

private int r34=0;

private int r3=0;

private DataInputStream ids13;

private Device [] df;

private int [] m1;

private DataInputStream ids131;

private Device [] newStaff1=new Device[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 MyTimer1 extends JFrame

{

public MyTimer1()

{

setSize(650,350);

setTitle("His answer");

try

{

S2 =JOptionPane.showInputDialog("Введите логин искомого студента");

FileInputStream is12 = new

FileInputStream(new

File("C:\\Student\\"+S2+".txt"));

ids13 = new DataInputStream(is12);

String E=ids13.readUTF();

int f=Integer.parseInt(E);

df=new Device[f];

m1=new int [f];

FileInputStream is121 = new

FileInputStream(new

File("C:\\Student1\\"+S2+".txt"));

ids131 = new DataInputStream(is121);

for(int r123=0;r123<f;r123++)

{

String E1=ids131.readUTF();

int f1=Integer.parseInt(E1);

m1[r123]=f1;

}

BufferedReader in = new BufferedReader(new FileReader("device1.dat"));

newStaff1=readData(in);

in.close();

for(int g1=0;g1<f;g1++)

{

r3=m1[g1];

df[r34]=newStaff1[r3];

r34++;

}

label9= new JLabel("FFF");

for(int g1=0;g1<f;g1++)

{

String rrr=df[g1].getName();

hhh=hhh+"<br>"+rrr;

}

label9.setText("<html><br> Он правильно ответили на следующие темы(это - "+(f*10)+"%)<br>"+hhh+"</html>");

Container contentPane = getContentPane ();

JPanel panel = new JPanel();

JPanel panel1 = new JPanel();

panel.add(label9);

replace2 = new JButton("OK");

panel1.add(replace2);

contentPane.add(panel,BorderLayout.CENTER);

contentPane.add(panel1,BorderLayout.SOUTH);

}

catch (IOException e)

{

System.out.print("Can not read file66666"+e);

}

replace2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event2)

{

System.exit(0);

}

});

}

private JLabel label9;

private JButton replace2;

private String S2;

private String hhh=new String("");

private int r34=0;

private int r3=0;

private DataInputStream ids13;

private Device [] df;

private int [] m1;

private DataInputStream ids131;

private Device [] newStaff1=new Device[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 ButtonFrame11 extends JFrame

{

public ButtonFrame11()

{

Toolkit kit = Toolkit.getDefaultToolkit();

Dimension screenSize = kit.getScreenSize();

int screenHeight = screenSize.height;

int screenWidth = screenSize.width;

setSize(screenWidth/3,screenHeight/5);

setLocation(screenWidth/4,screenHeight/4);

Image img = kit.getImage("icon.gif");

setIconImage(img);

setTitle("CenteredFrame");

ButtonPanel11 panel = new ButtonPanel11();

add(panel);

}

}

class ButtonPanel11 extends JPanel

{

public ButtonPanel11()

{

JButton BeginButton = new JButton("Begin");

JButton ReButton = new JButton("Registration");

Password = new JPasswordField("",6);

login = new JTextField(15);

label1 = new JLabel("Please,input your name");

label2 = new JLabel("Please,input your password");

JPanel panel = new JPanel();

panel.setLayout(new GridLayout(2,2));

panel.add (label1);

panel.add (login);

panel.add (label2);

panel.add (Password);

add(panel,BorderLayout.CENTER);

JPanel panel1 = new JPanel();

panel1.add(BeginButton);

panel1.add (ReButton);

add(panel1,BorderLayout.SOUTH);

ColorAction11 BeginAction = new ColorAction11(2);

ColorAction11 ReAction = new ColorAction11(3);

BeginButton.addActionListener(BeginAction);

ReButton.addActionListener(ReAction);

}

private class ColorAction11 implements ActionListener

{

public ColorAction11(int c)

{

ccc=c;

t=0;

S1=new String("0");

S2=new String("1");

S3=new String("2");

S4=new String("3");

S5=new String("4");

S6=new String("5");

S7=new String("6");

S8=new String("7");

S9=new String("8");

S10=new String("9");

}

public void actionPerformed(ActionEvent event)

{

if(ccc==2)

{

S13 = login.getText();

pass = Password.getPassword();

S14=new String(pass,0,6);

try

{

FileInputStream is = new

FileInputStream(new

File("C:\\RGR\\"+S13+".txt"));

DataInputStream ids = new DataInputStream(is);

String S15=ids.readUTF();

if (S15.length() == S13.length())

{

if(S13.regionMatches(0, S15, 0, S15.length()))

{

String S16 = ids.readUTF();

if(S13.regionMatches(0, S11, 0, S11.length()))

{

t1=1;

}

if (S14.length() == S16.length())

{

if(S14.regionMatches(0, S16, 0, S16.length()))

{

if(S14.regionMatches(0, r, 0, r.length()))

{

t1=2;

}

FileOutputStream OS=new FileOutputStream (new File("C:\\USER\\NOW.txt"));

DataOutputStream ods = new DataOutputStream (OS);

ods.writeUTF(S13);

ods.close();

GregorianCalendar d = new GregorianCalendar();

int year=d.get(Calendar.YEAR);

int mouth=d.get(Calendar.MONTH);

int day=d.get(Calendar.DAY_OF_MONTH);

int hour=d.get(Calendar.HOUR);

int minute=d.get(Calendar.MINUTE);

int seconds=d.get(Calendar.SECOND);

String S111=""+year;

String S122=""+mouth;

String S133=""+day;

String S144=""+hour;

String S155=""+minute;

String S166=""+seconds;

FileOutputStream OS2=new FileOutputStream (new File("C:\\USER\\Time.txt"));

DataOutputStream ods2 = new DataOutputStream (OS2);

ods2.writeUTF(S111);

ods2.writeUTF(S122);

ods2.writeUTF(S133);

ods2.writeUTF(S144);

ods2.writeUTF(S155);

ods2.writeUTF(S166);

ods2.close();

if(t1==2)

{

FileOutputStream OS6=new FileOutputStream (new File("C:\\USER\\teacher.txt"));

DataOutputStream ods6 = new DataOutputStream (OS6);

ods6.writeUTF("1");

ods6.close();

}

else

{

FileOutputStream OS6=new FileOutputStream (new File("C:\\USER\\teacher.txt"));

DataOutputStream ods6 = new DataOutputStream (OS6);

ods6.writeUTF("0");

ods6.close();

}

ButtonFrame frame = new ButtonFrame ();

frame.setVisible(true);

}

}

}

}

else

{

System.out.print("You full!");

}

}

catch (IOException e)

{

System.out.print("Can not read file77777"+e);

}

}

if(ccc==3)

{

try{

t++;

S13 = login.getText();

System.out.println(S13);

pass = Password.getPassword();

System.out.println(pass);

S14=new String(pass,0,6);

File file = new File("C:\\RGR\\"+S13+".txt");

File file1 = new File("C:\\KURS\\"+S13+".txt");

File file2 = new File("C:\\Student\\"+S13+".txt");

File file3 = new File("C:\\Student1\\"+S13+".txt");

try

{

file.createNewFile();

file1.createNewFile();

file2.createNewFile();

file3.createNewFile();

}

catch(IOException e)

{

System.out.println("Can not create new file"+e);

}

FileOutputStream OS=new FileOutputStream (new File("C:\\RGR\\"+S13+".txt"));

DataOutputStream ods = new DataOutputStream (OS);

ods.writeUTF(S13);

ods.writeUTF(S14);

ods.close();

FileOutputStream OS1=new FileOutputStream (new File("C:\\KURS\\"+S13+".txt"));

DataOutputStream ods1 = new DataOutputStream (OS1);

ods1.writeUTF(S1);

ods1.writeUTF(S2);

ods1.writeUTF(S3);

ods1.writeUTF(S4);

ods1.writeUTF(S5);

ods1.writeUTF(S6);

ods1.writeUTF(S7);

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

{

String s=in.readLine();

StringTokenizer t= new StringTokenizer(s,"|");

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 год;


Информация о работе «Объектно-ориентированное программирование»
Раздел: Информатика, программирование
Количество знаков с пробелами: 41230
Количество таблиц: 0
Количество изображений: 14

Похожие работы

Скачать
29390
0
1

... используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.     2.  Объект - как базовое понятие в объектно-ориентированном программировании Понятию “объект” сопоставляют ряд дополняющих друг друга определений. Ниже приведены некоторые из них. Объект - это осязаемая реальность, характеризующаяся четко определяемым ...

Скачать
15943
1
3

... поставленной задачи. 1. Постановка задачи Для формирования четкого представления о предложенном методе необходимо подробно рассмотреть предметную область, а именно, параметрический анализ структуры Тьюринга [2]. В общем случае под термином структура Тьюринга понимают систему дифференциальных уравнений определенного вида. Для реакции двух веществ с одномерной диффузией система уравнений будет ...

Скачать
71340
1
0

... решила эту проблему лишь частично. На основе Си в 80-е годы был разработан язык Си++, вначале названный "Си с классами". Си++ практически включает язык Си и дополнен средствами объектно-ориентированного программирования. Рабочая версия Си++ появилась в 1983 г. С тех пор язык продолжает развиваться и опубликовано несколько версий проекта стандартов Си и Си++. Рядом фирм, производящих программное ...

Скачать
57413
0
22

... = 0;  while (!treeSortIter.EndOfList())  {  arr[i++] = treeSortIter.Data();  treeSortIter.Next();  } } Рис. 20. 3. Алгоритм реализации АВЛ – деревьев через классы объектно – ориентированного программирования. Программа создана на объектно – ориентированном языке программирования C++ в среде быстрой разработки (RAD) Bolrand C++ Builder 6.0, имеет графический интерфейс. Текст ...

0 комментариев


Наверх