cscope 15 $HOME/Source/PERSONAL/playground/CPP/cpp_book/chap6 0000007269 @approval.cpp 1  ~ 2  ~ 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  ~ 5  ~"¡ud’t_šfo.h " 7 boŞ fg¿de (cÚ¡ Stud’tInfo & s ); 8 g¡d :: li¡ < Stud’tInfo > exŒaù_çs ( ¡d ::li¡& ¡ud’ts ); @grade.cpp 1  ~ 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  ~ 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  ~ 2  ~ 3  ~ 4  ~<¡ršg > 5  ~ 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 << "Faed 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  ~ 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  ~ 6  medŸn ( ¡d :: veùÜ <> vec ); @split_str/split_str.cpp 1  ~ 2  ~ 3  ~ 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 saoudo…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  ~ 5  ~<¡ršg > 6  ~ 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