Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пример программного кода

.pdf
Скачиваний:
7
Добавлен:
02.06.2015
Размер:
144.99 Кб
Скачать

Разработка программных систем

Примеры программного кода

Геннадий Андреевич Чистяков

Вятский государственный университет

10 сентября 2014 г.

Г.А. Чистяков (ВятГУ)

РПС

10 сентября 2014 г.

1 / 13

Быстрое считывание

Быстрое считывание

Класс FastReader

1import j a v a . i o . ;

2

import j a v a . u t i l . ;

 

 

 

 

3

p u b l i c c l a s s FastReader {

 

 

4

 

 

5

p r i v a t e B u f f e re d R e ad e r br ;

 

 

6

p r i v a t e S t r i n g T o k e n i z e r s t ;

 

 

7

p r i v a t e S t r i n g eat ( ) {

 

 

8

 

 

9

t r y

{

 

 

 

10

 

 

r e t u r n br . r e a d L i n e ( ) ;

 

 

11

} catch ( IOException e ) {

 

 

12

 

 

System . e r r . p r i n t l n ( " E r r o r w h i l e

 

 

 

 

r e a d i n g " ) ;

 

 

13

 

 

System . e r r . p r i n t l n ( e . getMessage ( ) ) ;

 

14

 

 

System . e r r . f l u s h ( ) ;

 

 

15

 

 

r e t u r n n u l l ;

 

 

16

}

 

 

 

 

 

17

}

 

 

 

 

 

 

 

 

 

 

 

 

Г.А. Чистяков (ВятГУ)

 

РПС

 

10 сентября 2014 г.

2 / 13

Быстрое считывание

Быстрое считывание (продолжение)

Класс FastReader

 

 

 

 

 

 

 

 

 

 

18

p r i v a t e S t r i n g next ( ) {

 

 

 

 

19

w h i l e ( ! s t . hasMoreTokens ( ) ) {

 

 

20

 

S t r i n g s t r = eat ( ) ;

 

 

21

 

i f ( s t r == n u l l )

 

 

22

 

 

r e t u r n n u l l ;

 

 

23

 

s t

= new S t r i n g T o k e n i z e r ( s t r ) ;

 

 

24

}

 

 

 

 

 

 

25

r e t u r n s t . nextToken ( ) ;

 

 

26

}

 

 

 

 

 

 

27

p r i v a t e i n t n e x t I n t ( ) throws IOException {

 

 

28

 

 

29

S t r i n g s t r = next ( ) ;

 

 

30

i f ( s t r == n u l l )

 

 

 

 

31

 

throw new

IOException ( " I n t e g e r

 

 

 

 

 

number

excepted " ) ;

 

 

32

r e t u r n I n t e g e r . valueOf ( s t r ) ;

 

 

33

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Г.А. Чистяков

(ВятГУ)

 

РПС

 

10 сентября 2014 г.

3 / 13

Быстрое считывание

Быстрое считывание (продолжение)

Класс FastReader

 

 

 

 

 

 

 

 

 

 

 

 

 

 

34

p u b l i c v o i d run ( ) throws IOException {

 

 

35

i n t n = n e x t I n t ( ) ;

 

 

 

36

f o r ( i n t

i = 0 ; i < n ; i ++)

{

 

 

37

 

 

 

 

System . out . p r i n t l n ( n e x t I n t ( ) ) ;

 

 

38

}

 

 

 

 

 

 

 

 

39

System . out . f l u s h ( ) ;

 

 

 

40

}

 

 

 

 

 

 

 

 

41

p u b l i c FastReader ( S t r i n g fileName ) throws

 

 

42

 

 

 

FileNotFoundException {

 

 

 

43

br

=

new

B uf fe r e dR e a d e r (new

F i l e R e a d e r (new

 

 

 

 

 

 

F i l e ( fileName ) ) ) ;

 

 

 

44

s t

=

new

S t r i n g T o k e n i z e r ( "" ) ;

 

 

45

}

 

 

 

 

 

 

 

 

46

 

 

 

 

 

 

 

 

 

47

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Г.А. Чистяков (ВятГУ)

 

 

 

РПС

 

10 сентября 2014 г.

4 / 13

Сериализация

Сериализация

Класс Element

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

import j a v a . i o . S e r i a l i z a b l e ;

 

 

 

 

 

2

c l a s s Element

implements

 

 

 

 

 

 

3

S e r i a l i z a b l e

{

 

 

 

4

i n t a ,

b ;

 

 

 

 

 

 

 

5

S t r i n g s t r ;

 

 

 

 

 

 

 

6

Element l i n k ;

 

 

 

 

 

 

 

7

Element ( i n t a ,

i n t b ,

 

 

 

 

 

8

S t r i n g

s t r ) {

 

 

9

 

t h i s . a

=

a ;

 

 

 

 

 

10

 

t h i s . b

=

b ;

 

 

 

 

 

11

 

t h i s . s t r = s t r ;

 

 

 

 

12

}

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

14

Element ( Element

 

arg )

{

 

 

 

 

15

 

l i n k =

arg ;

 

 

 

 

 

16

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Г.А. Чистяков (ВятГУ)

 

 

 

РПС

 

10 сентября 2014 г.

5 / 13

Сериализация

Сериализация (продолжение)

Класс Element

17

p u b l i c S t r i n g t o S t r i n g ( ) {

18

i f ( l i n k != n u l l )

19

r e t u r n

">" + l i n k . t o S t r i n g ( ) ;

20

e l s e

 

21

r e t u r n

" Element arguments a r e " + a

 

+ " , " + b + " , " + s t r ;

22

}

 

23

 

 

24

}

 

Г.А. Чистяков (ВятГУ)

РПС

10 сентября 2014 г.

6 / 13

Сериализация

Сериализация (продолжение)

Класс Main

 

 

 

 

 

 

 

 

 

 

 

 

1

import j a v a . i o . ;

 

 

 

 

 

 

2

p u b l i c

c l a s s Main {

 

 

 

 

 

 

3

 

 

 

 

 

 

4

 

p u b l i c v o i d run ( ) throws IOException ,

 

 

5

 

 

 

 

 

ClassNotFoundException {

= new

 

 

6

 

ObjectOutputStream oos

 

 

 

 

 

ObjectOutputStream (new FileOutputStream ( "

 

 

 

 

o b j e c t s . dat " ) ) ;

 

 

 

 

 

7

 

Element

e1 = new Element (1 ,

10 , " Object1 " ) ;

 

 

8

 

Element

e2 = new Element ( x1 ) ;

 

 

9

 

System . out . p r i n t l n ( " Before

 

s e r i a l i z a t i o n " ) ;

 

 

10

 

System . out . p r i n t l n ( " e1 :

"

+

e1 ) ;

 

 

11

 

System . out . p r i n t l n ( " e2 :

"

+

e2 ) ;

 

 

12

 

oos . w r i t e O b j e c t ( e1 ) ;

 

 

 

 

 

13

 

oos . w r i t e O b j e c t ( e2 ) ;

 

 

 

 

 

14

 

oos . c l o s e ( ) ;

 

 

 

 

 

15

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Г.А. Чистяков

(ВятГУ)

 

РПС

 

 

10 сентября 2014 г.

7 / 13

Сериализация

Сериализация (продолжение)

Класс Main

16

. . .

 

 

new

 

17

ObjectInputStream o i s =

 

 

 

ObjectInputStream (new

F i l e I n p u t S t r e a m ( "

 

 

o b j e c t s . dat " ) ) ;

 

 

 

18

e2

=

( Element ) o i s . r ea d Ob j ect ( ) ;

19

e1

=

( Element ) o i s . r ea d Ob j ect ( ) ;

20

o i s . c l o s e ( ) ;

 

 

 

21

System . out . p r i n t l n ( " A f t e r

s e r i a l i z a t i o n " ) ;

22

System . out . p r i n t l n ( " e1 :

"

+

x1 ) ;

23

System . out . p r i n t l n ( " e2 :

"

+

x2 ) ;

24

System . out . f l u s h ( ) ;

 

 

 

25

}

 

 

 

 

 

26

p u b l i c s t a t i c

v o i d main ( S t r i n g [ ]

 

a r g s ) throws

27

 

 

IOException , ClassNotFoundException {

28

new Main ( ) . run ( ) ;

 

 

 

29}

30}

Г.А. Чистяков (ВятГУ)

РПС

10 сентября 2014 г.

8 / 13

Многопоточное приложение

Многопоточное приложение

Класс Prime

1

p u b l i c c l a s s Prime

implements

Runnable

{

2

p r i v a t e

 

 

 

 

 

 

3

Thread th ;

 

 

 

4

p r i v a t e

i n t

l o c a l R e s =

0 ,

from ,

to ;

5

s t a t i c i n t g l o b a l R e s = 0 ;

 

 

6

p u b l i c

Prime ( i n t

 

i n t

 

 

7

from ,

to )

{

8

 

t h i s . from

= from ;

 

 

9

 

t h i s . to = to ;

 

 

 

10

 

th

= new

Thread ( t h i s ) ;

 

11

 

th . s t a r t ( ) ;

 

 

 

12

}

 

 

 

 

 

 

Г.А. Чистяков (ВятГУ)

РПС

10 сентября 2014 г.

9 / 13

Многопоточное приложение

Многопоточное приложение (продолжение)

Класс Prime

13

p u b l i c v o i d run ( ) {

 

 

14

f o r ( i n t i = from ;

i < to ; i ++) {

15

boolean f l a g = t r u e ;

16

f o r ( i n t j

= 2 ;

j <= Math . s q r t ( i +

 

0.0000001) ;

j++)

17

i f ( ( i % j ) == 0) {

18

 

 

f l a g = f a l s e ;

19

 

 

break ;

20

}

 

 

21

i f ( f l a g )

 

 

22

l o c a l R e s ++;

23

}

 

 

24

g l o b a l R e s += l o c a l R e s ;

 

25

}

 

 

Г.А. Чистяков (ВятГУ)

РПС

10 сентября 2014 г.

10 / 13