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