孤挺在疾風中的勁草

我是一個大四生,小時候全家原來住在中部一個偏遠山區,爸爸是一個有年紀的退伍老兵,他老人家在生病前,每天靠牽著一輛破舊的腳踏車跋涉十幾公里穿梭在鄰近鄉鎮中做資源回收來維持家計。媽媽是一個原住民,在九二一大地震時就不幸與我們天人永隔了。後來我很幸運地考上了大學,爸爸就帶著我和弟弟搬到大學附近的鎮上居住。弟弟小我三歲,原本就有天生的智能障礙,在他國一時,因為同學欺負他的弱智,結果在一次校園霸凌事件中,被七個同班同學動手兇狠施暴之後,不幸失去了大部分的視力,現在成了一個弱智加上弱視的人。弟弟的狀況需要特殊的照護,實在很不得已,我們只能送他去遠離我們一百公里外的慈善公益學校照護。以我們家的經濟狀況,連我的學費和生活費都是靠就學貸款以及熱心的里長伯伯幫我向好心的鎮民代表募來的,我們根本付不出車錢每週或每月去探視弟弟,只能在每年媽媽忌日的時候,再向里長伯伯借車資,然後我和爸爸帶著媽媽遺照去看他。去年九月,我們去看他的時候,他認不出我和爸爸了,我和爸爸在回家的火車上,積在眼框的眼淚再也無法忍住,父子兩相擁躲在車上廁所裡痛哭,二人很想一起走上絕路算了。

其實一年前,爸爸就患了輕微的老人失智症,到今年年中時情況急速惡化,再也無法做資源回收了,有一次他走到隔壁鄉鎮工作時就忘記回家的路,失蹤了三天後,幸好有認識他的好心路人在公園發現他才把他送回家。我本來想放棄學業去工作賺錢養他照顧他,可是學校師長們極力阻止我,因為我在學校的成績還不錯,有機會可以考到好的研究所,所以他們希望我先參加推甄,看看結果再做最後決定。老師們自掏腰包而且也幫我向學校和社會局申請一筆急難救助金來應急推甄報名費和基本家計,讓我好感動,下定決心日後一定要回報他們,所以就接納了師長們的意見。但是,在此之前,我必須先無奈地讓爸爸住到榮民之家裡去,這樣他才能獲得比較好的照護,而我也可以專心的衝刺,這是自從送走弟弟後第二件讓我心碎欲裂的事情。當在榮民之家裡和爸爸道別的那一刻,我心中吶喊著:「可憐的爸爸啊!請您千萬千萬不要忘記我!等著我把您和弟弟一起接回來享福!老天啊!請您不要再對我吝嗇,給我一點點卑微的機會吧!」

我的興趣是軟體設計,因為我覺得台灣有很多行業需要寫程式軟體的人,也許不能賺大錢,但至少也比較容易找到工作,而且我也一直夢想著自己將來也能像很多資訊名人如比爾蓋茲和楊致遠一樣,從默默無名的小人物靠著開發出名垂不朽的軟體系統而變成一個對世界有重大影響力的大人物。於是在學校班導師的熱心協助下,花了將近四個月的時間每天幫我密集訓練,訓練我的程式設計能力和做專題研究,我內心一直都有著一股動力支撐著我,讓我不眠不休的努力,最後終於寫了一篇網路多媒體軟體系統設計的論文投稿到國際會議裡被接受了。接著推甄面試的時刻來臨了,進入考場,第一關就是程式設計測驗,全部考生集體在電腦教室裡解題,題目只有一個如下:

同學們應該都學過分數和複數吧!請設計二個類別分別為分數類別(Fraction)和複數類別(Complex),分數類別中須包含二個資料成員numerator(分子)和denominator(分母),複數類別則須包含real(實部)和imaginary(虛部),這些資料成員都是正整數型態

定義完這二個類別後。請試著設計一個樣板函數NewElement(),讓我們可以利用此NewElement函數產生一個Fraction物件或是Complex物件(物件內的資料成員值以隨機方式決定)。

然後,再請設計二個加法函數分別是
Fraction AddFraction(Fraction &f1, Fractin &f2);  //執行二分數相加f1+f2並回傳結果
Complex AddComplex(Complex &c1, Complex &c2);     //執行二複數相加c1+c2並回傳結果

(註:如果能把上面二個加法函數設計成一個樣板函數 Add(T &o1, T &o2)更好。)

接著,請利用STL的vector,宣告二個vector容器,再利用NewElement函數為每個vector容器產生八個資料,其中一個放Complex資料,另一個放Fraction資料,然後請利用AddComplex和AddComplex(或是你設計出來的Add()函數)算出二個容器向量中的各自所有資料的加總後並輸出。

最後,請使用STL的sort()函數,並為二種類別的物件定義適當的比較函數(或比較仿函數)後,對二個vector容器內的資料做排序,使其依照降冪順序排列。請注意:複數的大小比較定義如下:如果(a*a+b*b>c*c+d*d)則(a+bi)>(c+di),至於二個分數(a/b和c/d)的比較則為若ad-bc>0則(a/b)>(c/d),排完序後請將結果顯示出來。

我花了將近二十分鐘的時間思考解題方向,最後使用STL的技巧來解決。很幸運地,我順利在一個小時內解題成功了。接下來的面試,不知道是口試教授同情我的遭遇還是對我程式解題能力和專題研究成果的肯定,竟然都沒有為難我,還一直勉勵我。終於,放榜了,我在正取名單中看到了我的名字,我激動地從教室一路疾奔到學校司令台跪下來嚎滔地大哭了出來!心裡又再度吶喊:「爸!弟!我會努力給你們看,你們等著,很快地,我一定會讓這個家再度成為一個完整的家,請你們一定要等著!」

雖然是一個部份虛擬的故事,但從報紙上的報導,可以確認這個社會上有這樣悲慘遭遇的人並非沒有,而且可能也不少。大家看了之後感想如何?逆境中求生存的人總是把一絲一毫的機會視為奢求,所以知道要珍惜並努力,因為下一次不一定能再度獲得上天的眷顧。各位同學絕大部分都是有父母和親人呵護的幸福人,機會天生就比很多人更多更好,是否更應該要把握呢?現在,給各位同學們試試看,各位來解解上面那題程式題,看看各位如果給同樣的機會參加甄試,各位能否如上文中的主角一樣發揮實力在自己的人生旅途上順利地往前跨出一步?

P.S.:應數系同學如果不善用C++的物件導向設計,可以用自己熟悉的C來設計。修資工系班級的同學則請依照老師的題目規定設計。

Available from: Friday, 1 May 2009, 11:30 PM
Due date: Wednesday, 13 May 2009, 12:30 PM