Смекни!
smekni.com

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

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:&bsol;USER&bsol;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:&bsol;USER&bsol;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:&bsol;USER&bsol;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:&bsol;Student&bsol;"+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:&bsol;Student1&bsol;"+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:&bsol;Student&bsol;"+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:&bsol;Student1&bsol;"+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 ();