cscope 15 $HOME/Source/PERSONAL/playground/CPP/cpp_book/chap6 0000007269
@approval.cpp
1
~<ve��
>
2
~<io��am
>
3
~"�ud�t_�fo.h
"
4
~"g�de.h
"
5
~"��ov�.h
"
7
bo�
$fg�de
(cڡ
Stud�tInfo
&
s
) {
8
`g�de
(
s
) < 60;
9
}
}
11
g�d
::
li�
<
Stud�tInfo
>
12
ex�a�_�s
(
13
�d
::
li�
<
Stud�tInfo
>&
�ud�ts
)
15
�d
::
li�
<
Stud�tInfo
>
�
;
16
g�d
::
li�
<
Stud�tInfo
>::
����
��
=
�ud�ts
.
beg�
();
18
g��
!�
�ud�ts
.
�d
()) {
19 i�(
fg�de
(*
��
)) {
20
�
.
push_back
(*
��
);
21
g��
=
�ud�ts
.
�a�
(
��
);
23
g��
++;
27
g�
;
@approval.h
1 #i�de�
APPROVAL_H
2
#APPROVAL_H
)
4
~<li�
>
5
~"�ud�t_�fo.h
"
7
bo�
fg�de
(cڡ
Stud�tInfo
&
s
);
8
g�d
::
li�
<
Stud�tInfo
>
ex�a�_�s
(
�d
::li�<Stud�tInfo>&
�ud�ts
);
@grade.cpp
1
~<ve��
>
2
~"�ud�t_�fo.h
"
3
~"med�n.h
"
4
~"g�de.h
"
6
$g�de
(
mid�rm
,
f��
,
homew�k
)
8 (
mid�rm
* 0.2 +
9
f��
* 0.4 +
10
homew�k
* 0.4);
11
}
}
14
g�de
(
mid�rm
,
f��
, cڡ
�d
::
ve��
<>&
hw
)
16 i�(
hw
.
size
() == 0)
17
throw
�d
::
doma�_�r�
("Student has�o homework");
19
g�de
(
mid�rm
,
f��
,
med�n
(
hw
));
22
$g�de
(cڡ
Stud�tInfo
&
s
)
24
`g�de
(
s
.
mid�rm
, s.
f��
, s.
homew�k
);
25
}
}
@grade.h
1 #i�de�
GRADE_H
2
#GRADE_H
)
4
~<ve��
>
5
~"�ud�t_�fo.h
"
7
g�de
(
mid�rm
,
f��
,
homew�k
);
8
g�de
(
mid�rm
,
f��
, cڡ
�d
::
ve��
<>&
hw
);
9
g�de
(cڡ
Stud�tInfo
&
s
);
@grades.cpp
1
~<iom��
>
2
~<ios
>
3
~<io��am
>
4
~<�r�g
>
5
~<li�
>
6
~<�gܙhm
>
7
~<�dex��
>
8
~"g�de.h
"
9
~"�ud�t_�fo.h
"
10
~"��ov�.h
"
12
us�g
g�d
::
c�
; us�g std::
�r�g
;
13
us�g
g�d
::
cout
; us�g std::
�dl
;
16
$ma�
()
18
�d
::
li�
<
Stud�tInfo
>
�ud�ts
,
�
;
19
Stud�tInfo
�c�d
;
20
�r�g
::
size_ty�
max�n
= 0;
22
`�ad_�ud�t
(
c�
,
�c�d
)) {
23
max�n
=
�d
::
`max
(max�n,
�c�d
.
�me
.
`size
());
24
�ud�ts
.
`push_back
(
�c�d
);
27
�ud�ts
.
`s�t
(
com��_�ud�ts
);
29
�d
::
li�
<
Stud�tInfo
>::
����
i
=
�ud�ts
.
`beg�
();
30
i
!�
�ud�ts
.
`�d
();
31
i
++) {
33
cout
<<
i
->
�me
34 <<
`�r�g
(
max�n
+ 1 -
i
->
�me
.
`size
(), ' ');
36
�y
{
37
f��_g�de
=
`g�de
(*
i
);
39
�d
::
��amsize
�ec
=
cout
.
`�ecisi�
();
40
cout
<<
�d
::
`���cisi�
(3�<<
f��_g�de
41 <<
�d
::
`���cisi�
(
�ec
);
42
cout
<< " - Student "
43 << (
`fg�de
(*
i
) ? "Failed" : "Approved");
45 }
`�tch
(
�d
::
doma�_�r�
&
e
){
46
cout
<<
e
.
`wh�
();
49
cout
<<
�dl
;
52
�
=
`ex�a�_�s
(
�ud�ts
);
54
�d
::
cout
<< "Fa�ed stud�ts: " << std::
�dl
;
56
�d
::
li�
<
Stud�tInfo
>::
����
i
=
�
.
`beg�
();
57
i
!�
�
.
`�d
();
58
i
++) {
59
�d
::
cout
<<
i
->
�me
<< std::
�dl
;
63
}
}
@median.cpp
1
~<ve��
>
2
~<�gܙhm
>
3
~<�dex��
>
5
med�n
(
�d
::
ve��
<>
vec
)
7
�d
::
ve��
<>::
size_ty�
mid
,
gsize
;
9
gsize
=
vec
.
size
();
11 i�(
gsize
== 0)
12
throw
�d
::
doma�_�r�
("median of�n�mpty vector");
14
s�t
(
vec
.
beg�
(), vec.
�d
());
16
gmid
=
size
/ 2;
18
gsize
% 2 =�0 ? (
vec
[
mid
] + vec[mid - 1]) / 2
19 :
vec
[
mid
];
@median.h
1 #i�de�
MEDIAN_H
2
#MEDIAN_H
)
4
~<ve��
>
6
med�n
(
�d
::
ve��
<>
vec
);
@split_str/split_str.cpp
1
~<io��am
>
2
~<ve��
>
3
~<c�y�
>
5
g�d
::
ve��
<
�d
::
�r�g
>
6
$�l�
(cڡ
�d
::
�r�g
&
s
) {
7
�d
::
ve��
<�d::
�r�g
>
�t
;
8
�d
::
�r�g
::
size_ty�
i
= 0;
11
i
!�
s
.
`size
()) {
20
i
!�
s
.
`size
(�&&
`is�a�
(s[i]))
21
i
++;
28
�d
::
�r�g
::
size_ty�
j
=
i
;
29
j
!�
s
.
`size
(�&& !
`is�a�
(s[j]))
30
j
++;
33 i�(
i
!�
j
) {
34
�t
.
`push_back
(
s
.
`sub�r
(
i
,
j
- i));
35
i
=
j
;
39
�t
;
40
}
}
42
g�d
::
�r�g
::
size_ty�
43
width
(cڡ
�d
::
ve��
<�d::
�r�g
>&
v
)
45
�d
::
�r�g
::
size_ty�
�t
= 0;
47
g�d
::
ve��
<
�d
::
�r�g
>::
cڡ_����
i
=
v
.
beg�
();
48
gi
!�
v
.
�d
();
49
gi
++)
50
g�t
=
�d
::
max
(
�t
,
i
->
size
());
52
g�t
;
55
g�d
::
ve��
<
�d
::
�r�g
>
56
�ame
(cڡ
�d
::
ve��
<�d::
�r�g
>&
v
) {
58
�d
::
ve��
<�d::
�r�g
>
�t
;
59
g�d
::
�r�g
::
size_ty�
w
=
width
(
v
);
60
g�d
::
�r�g
b�d�
(
w
+ 4, '*');
62
g�t
.
push_back
(
b�d�
);
64
g�d
::
�r�g
::
size_ty�
i
= 0;
65
gi
!�
v
.
size
();
66
gi
++)
67
g�t
.
push_back
("* " +
v
[
i
] +
�d
::
�r�g
(
w
- v[i].
size
(), ' ') + " *");
69
g�t
.
push_back
(
b�d�
);
71
g�t
;
74
g�d
::
ve��
<
�d
::
�r�g
>
75
v�t
(
76 cڡ
�d
::
ve��
<�d::
�r�g
>&
v1
,
77 cڡ
�d
::
ve��
<�d::
�r�g
>&
v2
) {
79
�d
::
ve��
<�d::
�r�g
>
�t
=
v1
;
81
g�d
::
ve��
<
�d
::
�r�g
>::
cڡ_����
i
=
v2
.
beg�
();
82
gi
<
gv2
.
�d
();
83
gi
++)
84
g�t
.
push_back
(*
i
);
86
g�t
;
89
g�d
::
ve��
<
�d
::
�r�g
>
90
h�t
(
91 cڡ
�d
::
ve��
<�d::
�r�g
>&
v1
,
92 cڡ
�d
::
ve��
<�d::
�r�g
>&
v2
) {
94
�d
::
ve��
<�d::
�r�g
>
�t
;
96
g�d
::
�r�g
::
size_ty�
w1
=
width
(
v1
) + 1;
99
g�d
::
ve��
<
�d
::
�r�g
>::
size_ty�
i
= 0,
gj
= 0;
101
gi
!�
v1
.
size
(�||
j
!�
v2
.size()) {
102
�d
::
�r�g
s
;
104 i�(
gi
!�
v1
.
size
())
105
s
=
v1
[
i
++];
107
gs
+�
�d
::
�r�g
(
w1
-
s
.
size
(), ' ');
109 i�(
gj
!�
v2
.
size
())
110
s
+�
v2
[
j
++];
112
g�t
.
push_back
(
s
);
115
g�t
;
118
$ma�
() {
120
�d
::
�r�g
s
;
121
`g�l�e
(
�d
::
c�
,
s
)) {
123
�d
::
ve��
<�d::
�r�g
>
vec
=
`�l�
(
s
);
125
vec
=
`�ame
(vec);
126
�d
::
ve��
<�d::
�r�g
>::
cڡ_����
i
=
vec
.
`beg�
();
127
i
<
vec
.
`�d
();
128
i
++) {
129
�d
::
cout
<< *
i
<< std::
�dl
;
133
�d
::
�r�g
a
= "Vai curintia fela da�uta";
134
�d
::
ve��
<�d::
�r�g
>
v1
=
`�l�
(
a
);
135
v1
=
`�ame
(v1);
136
�d
::
�r�g
b
= "Curintiano sao�udo�aus do caralho�orra�ocas";
137
�d
::
ve��
<�d::
�r�g
>
v2
=
`�l�
(
b
);
139
�d
::
ve��
<�d::
�r�g
>
v3
=
`h�t
(
v1
,
v2
);
140
�d
::
ve��
<�d::
�r�g
>::
cڡ_����
i
=
v3
.
`beg�
();
141
i
<
v3
.
`�d
();
142
i
++) {
143
�d
::
cout
<< *
i
<< std::
�dl
;
147
}
}
@student_info.cpp
1
~"�ud�t_�fo.h
"
3
bo�
$com��_�ud�ts
(cڡ
Stud�tInfo
&
a
, cڡ Stud�tInfo&
b
)
5
a
.
�me
<
b
.name;
6
}
}
8
g�d
::
i��am
&
�ad_homew�k
(
�d
::i��am&
�
, std::
ve��
<>&
hw
)
10 i�(
�
) {
11
hw
.
��r
();
13
gx
;
18
g�
>>
gx
)
19
ghw
.
push_back
(
x
);
21
g�
.
��r
();
24
g�
;
27
g�d
::
i��am
&
$�ad_�ud�t
(
�d
::
i��am
&
is
,
Stud�tInfo
&
s
)
30
is
>>
s
.
�me
>> s.
mid�rm
>> s.
f��
;
32
`�ad_homew�k
(
is
,
s
.
homew�k
);
33
is
;
34
}
}
@student_info.h
1 #i�de�
STUDENT_INFO_H
2
#STUDENT_INFO_H
)
4
~<io��am
>
5
~<�r�g
>
6
~<ve��
>
8
sStud�tInfo
{
9
m�d
::
�r�g
�me
;
10
mmid�rm
;
11
mf��
;
12
m�d
::
ve��
<>
homew�k
;
16
bo�
com��_�ud�ts
(cڡ
Stud�tInfo
&
a
, cڡ Stud�tInfo&
b
);
17
g�d
::
i��am
&
�ad_homew�k
(
�d
::i��am&
�
, std::
ve��
<>&
hw
);
18
g�d
::
i��am
&
�ad_�ud�t
(
�d
::i��am&
is
,
Stud�tInfo
&
s
);
@
1
.
1
/usr/include
10
129
approval.cpp
approval.h
grade.cpp
grade.h
grades.cpp
median.cpp
median.h
split_str/split_str.cpp
student_info.cpp
student_info.h
|