Смекни!
smekni.com

Объектно-ориентированное программирование (стр. 4 из 4)

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