Пример программного кода
.pdfРазработка программных систем
Примеры программного кода
Геннадий Андреевич Чистяков
Вятский государственный университет
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 |