軟件工程實(shí)習(xí)報(bào)告_第1頁
軟件工程實(shí)習(xí)報(bào)告_第2頁
軟件工程實(shí)習(xí)報(bào)告_第3頁
軟件工程實(shí)習(xí)報(bào)告_第4頁
軟件工程實(shí)習(xí)報(bào)告_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余7頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件工程實(shí)習(xí)報(bào)告中國石油大學(xué)(華東)計(jì)通學(xué)院軟件編程實(shí)踐實(shí)習(xí)報(bào)告題目我的“ 2048”學(xué)號姓名認(rèn)知實(shí)習(xí) 成績編程實(shí)習(xí) 成績總成績1407030108劉聰1407030106賈如舉1407030117王悅1407030119吳宇鋮評語20152015 年 7 7 月軟件工程實(shí)習(xí)報(bào)告、題目介紹(包括:題目背景簡介、系統(tǒng)達(dá)到目標(biāo)等)2048是一款比較流行的數(shù)字游戲,最早于2014 年 3 月 20 日發(fā)行。原版2048 首先在 GitHub 上發(fā)布,原作者是 Gabriele Cirulli,后被移植到各個(gè)平臺。這款游戲是基于1024和小 3 傳奇的玩法開發(fā)而成的新型數(shù)字游戲。HlbNYo2014

2、年 Gabriele Cirulli利用周末的時(shí)間寫 2048 這個(gè)游戲的程序,僅僅只是好玩而已。他想用一種不同的視覺展現(xiàn)效果和更快速的動畫來創(chuàng)造屬于我自 己的游戲版本Ohl6 P。AsherVollmer 和 GregWohIwenc 作為 Threes 的開發(fā)者,他們在開發(fā)這款游戲的時(shí)候投入了大量的時(shí)間和精力。在制作2048 的過程中,他決定把項(xiàng)目托管到Github 上去,并且通過 Github 完成項(xiàng)目。完成了這個(gè)游戲之后,通過 GithubPages 發(fā)布,并發(fā)表在 DesignerNews 上。由于本人十分喜歡2048這款手游,在了解 了本次課程設(shè)計(jì)是設(shè)計(jì)一個(gè) QT 平臺下的軟件之后

3、,就選定了2048作為本次課程論文的課題。在此次課程開題報(bào)告的制作過程中,我們研究小組將運(yùn)用學(xué)習(xí)到的知識以及 C+編程知識通過網(wǎng)上現(xiàn)有的資料嘗試完成此次課程的開發(fā)。t2tZR。此次,本研究小組決定在2048原有的基礎(chǔ)上進(jìn)行界面等設(shè)計(jì)修改,希望給人煥然一新的感覺,能夠給人新有的感覺,在功能上進(jìn)行設(shè)計(jì),使其具有獨(dú) 特的功能。XSawe二、主要內(nèi)容(詳細(xì)介紹系統(tǒng)總體功能、模塊劃分,以及每個(gè)模塊的具體實(shí)現(xiàn))系統(tǒng)化具體功能:有 16 個(gè)格子,初始時(shí)會有兩個(gè)格子上安放了兩個(gè)數(shù)字 2, 每次可以選擇上下左右其中一個(gè)方向去滑動,每滑動一次,所有的數(shù)字方塊都會 往滑動的方向靠攏外,系統(tǒng)也會在空白的地方隨即出現(xiàn)一

4、個(gè)數(shù)字方塊,相同數(shù)字ioad2。的方塊在靠攏、相撞時(shí)會相加。不斷的疊加最終拼湊出 2048 這個(gè)數(shù)字就算成功。2048中每個(gè)格子的數(shù)據(jù)和顏色的都在不斷地刷新,在每一次移動之后,幾乎Ulcob。軟件工程實(shí)習(xí)報(bào)告在這 4*4 的每一個(gè)方格上的數(shù)據(jù)都會變化,因此在每一次移動之后,每一個(gè)方格 上的數(shù)據(jù)都要刷新一次。相對的,每一個(gè)數(shù)的背景顏色是不同的,也就是說,在 每一次數(shù)據(jù)刷新的時(shí)候,每一個(gè)方格上的顏色也要同樣的刷新一次。當(dāng)屏幕上沒 有沒有寫有數(shù)據(jù)的方格并且屏幕上的數(shù)據(jù)沒有哪兩個(gè)相鄰的數(shù)據(jù)是一樣的兩個(gè) 數(shù),那么就判定為游戲結(jié)束。游戲所產(chǎn)生的分?jǐn)?shù)將被記錄下來,如果此分?jǐn)?shù)超過 以前的最高分?jǐn)?shù),此分?jǐn)?shù)會將其

5、取代,成為最高分“ High score ”。vjPvt。模塊劃分:1)主界面的設(shè)計(jì)。提供用戶更多的選擇,游戲分為鼠標(biāo)板和鍵盤版兩種,用戶可隨意自由選擇自己喜歡的玩法。hID1V。2)分?jǐn)?shù)計(jì)算。在移動方向?qū)⑾噜彽?2 個(gè)數(shù)相加;。3)移動控制。控制分為兩種方式,一種為鼠標(biāo)控制,一種為鍵盤控制,用戶可根據(jù)自己喜好,自由選擇自己喜歡的玩法。鼠標(biāo)板:用戶可在 4X4 界面按 住鼠標(biāo)左鍵進(jìn)行上下左右移動控制。鍵盤版:分為上下左右四種移動方式,通過 鍵盤上的 W A、S、D 或者TJ-控制。6TFf7。4)移動前后數(shù)組數(shù)值的改變。 通過重新創(chuàng)建數(shù)組, 將移動后的數(shù)值填入、并用 0 將數(shù)組補(bǔ)成 4X4 的

6、數(shù)組,來實(shí)現(xiàn)移動前后數(shù)值的改變。游戲結(jié)束后,一旦 此次分?jǐn)?shù)超過之前的最高分?jǐn)?shù),此分?jǐn)?shù)將會取代其成為最高分。一直到下一個(gè)最 高分將其取代為止。k5ffU5) 利用概率隨機(jī)數(shù)來實(shí)現(xiàn) 2 和 4 的生成。6) 成功與失敗的判斷等。) 當(dāng)游戲結(jié)束時(shí),能夠詢問用戶是否重新開始。游戲技巧:最大數(shù)盡可能放在角落。數(shù)字按順序緊鄰排列。首先滿足最大數(shù)和次大數(shù)在的那一列 / 行是滿的。軟件工程實(shí)習(xí)報(bào)告時(shí)刻注意活動較大數(shù)(32 以上)旁邊要有相近的數(shù)。7lqro以大數(shù)所在的一行為主要移動方向不要急于“清理桌面”。三、開發(fā)團(tuán)隊(duì)學(xué)號姓名職責(zé)詳細(xì)任務(wù)1407030108劉聰界面設(shè)計(jì)、部分 代碼研究富有創(chuàng)意的設(shè)計(jì)程序的界面

7、,給人以獨(dú)特的感覺。同時(shí)大部分時(shí)間協(xié)助賈如舉 修改代碼。1407030106賈如舉主要代碼研究通過上網(wǎng)查閱資料,學(xué)習(xí),研 究代碼的作用,使其應(yīng)用到程 序中,并對代碼進(jìn)行了大量的 修改。1407030117王悅部分代碼探究、實(shí)習(xí)報(bào)告書寫實(shí)習(xí)報(bào)告,通過劉聰與賈 如舉的反饋將其記錄于報(bào)告 中。同時(shí)協(xié)助賈如舉修改代 碼。完成代碼等研究。1407030119吳宇鋮游戲測試測試游戲是否符合預(yù)期的標(biāo) 準(zhǔn),尋找其中的 bug四、技術(shù)總結(jié)1.( 1 1)“我的 20482048”游戲程序流程圖5)軟件工程實(shí)習(xí)報(bào)告(2(2)游戲界面整體流程圖軟件工程實(shí)習(xí)報(bào)告2.主要技術(shù):工希面,主要技術(shù)包括界面設(shè)計(jì),界面轉(zhuǎn)換,鼠

8、標(biāo)、鍵盤控制事件,頁面布局,方塊的大小和顏色設(shè)定,游戲的組合,信號與槽的應(yīng)用等一系列問題NjHNd3.遇到的技術(shù)問題及解決方法:1)代碼錯(cuò)誤:網(wǎng)上的教程雖然很全,但是按照教程所建立的工程,以及添加所需的每個(gè)類和每個(gè)文件,把代碼寫上之后發(fā)現(xiàn)了很多錯(cuò)誤,這些錯(cuò)誤有些是能解決,OIP C7。而大多數(shù)并不能解決,真的令我們很頭疼。解決方案:經(jīng)過組員的不懈努力,以及上網(wǎng)查資料、請教同學(xué)和老師,終于逐漸的解決了一個(gè)個(gè)的大問題,程序終于可以運(yùn)行,但是距離成功還是很遙遠(yuǎn),因?yàn)檫@只是剛剛構(gòu)建好,好多功能還沒有實(shí)現(xiàn),但我們的基礎(chǔ)工作己經(jīng)做好。uQnvf。2)界面的轉(zhuǎn)換:我們之前并不知道該怎么在點(diǎn)擊一個(gè)按鈕的時(shí)候關(guān)

9、掉當(dāng)前界面同時(shí)開啟另一個(gè)界面,這也是個(gè)很大的問題,因?yàn)榻缑娌晦D(zhuǎn)換,我們的所有功能將無法實(shí)現(xiàn)。1t7KB。解決方案:負(fù)責(zé)界面設(shè)計(jì)的劉聰同學(xué)運(yùn)行了幾個(gè)其他的程序,從其他程序中研究代碼,尋找轉(zhuǎn)化界面的方法,并請教了本班同學(xué)麻寶鑫,終于不負(fù)眾望,解決了這個(gè)重大的問題,使程序可以運(yùn)行下去。此問題的解決劉聰同學(xué)功不可沒,同時(shí)感謝麻寶鑫同學(xué)的鼎力相助。QKbEI3)顏色的設(shè)定:為了讓游戲界面看起來不是那么單調(diào),于是我們想讓方塊再出現(xiàn) 不同數(shù)字時(shí)顯示不同的數(shù)字。這個(gè)功能對于程序的影響不大,只不過是令游戲更軟件工程實(shí)習(xí)報(bào)告軟件工程實(shí)習(xí)報(bào)告美觀而已。但要想實(shí)現(xiàn)這個(gè)功能,難度還是很大的對于小組成員來說,因?yàn)槲覀冏源?/p>

10、一開始學(xué)習(xí)的 c 語言以及 C+都沒有學(xué)到關(guān)于顏色的設(shè)定,組內(nèi)成員一度想放棄這個(gè)功能,但是負(fù)責(zé)代碼編寫的賈如舉并沒有放棄。9vhjO。解決方案:經(jīng)過大量的程序研究,再加上從論壇、貼吧、qq 群查詢到的資料,終于找到了是添加顏色的方案,以及方塊數(shù)字變化時(shí)顏色的改變,然而這距離預(yù)4)程序的整合,我們的“ 2048”分為鍵盤版和鼠標(biāo)版兩種,看似一個(gè)游戲,其實(shí) 是兩個(gè)不同的游戲整合到一起,但大部分功能的實(shí)現(xiàn)還是一樣的,只有鍵盤控制 和鼠標(biāo)控制這部分的設(shè)計(jì)是不同的。想要一同實(shí)現(xiàn)這兩個(gè)功能,需要把兩個(gè)工程整合到一起。剛開始我們認(rèn)為本來很容易就能整合到一起,但事實(shí)并非如此。整 合到一起以后,代碼出現(xiàn)大量錯(cuò)誤

11、。解決方案:經(jīng)過對錯(cuò)誤代碼的研究,發(fā)現(xiàn)錯(cuò)誤的原因是很多變量定義重復(fù),因 此經(jīng)過修改,將重復(fù)代碼改正。解決了大量問題以后,程序終于可以運(yùn)行。(附游戲界面圖片一張)4.關(guān)鍵代碼: 1)鼠標(biāo)控制游戲所需代碼:void GameWidget:mouseReleaseEve nt(QMouseEve nt *e)/如果在播放動畫效果則直接退出防止重復(fù)產(chǎn)生手勢事件 if (isA ni mat ing)期的結(jié)果還有很大的差距。我們在一直改進(jìn)MhQ27UyVvl軟件工程實(shí)習(xí)報(bào)告return;/根據(jù)終點(diǎn)坐標(biāo)和起點(diǎn)坐標(biāo)計(jì)算 XY 坐標(biāo)的增量 float dX = (float)(e-pos().x() - st

12、art Pos.x();float dY = (float)(e- pos().y() - start Pos.y();/確定手勢方向 if (abs(dX) abs(dY)if (dX 0)emit GestureMove(LEFT);elseemit GestureMove(RIGHT);elseif (dY 0)emit GestureMove(U P);elseemit GestureMove(DOWN);2)判斷游戲是否勝利:bool GameWidget:checkWi n()/循環(huán)檢測是否某個(gè)方格的數(shù)字為2048 for (i nt i = 0; i 4; i+)for (i n

13、t j = 0; j 4; j+)if (boardij = 2048)軟件工程實(shí)習(xí)報(bào)告return true;return false;3)存貯每個(gè)數(shù)字對應(yīng)的顏色:/顏色數(shù)組存儲每個(gè)數(shù)字對應(yīng)的背景色0 x33),lRite。QColor:fromRgb(0 xFF, 0 x00, 0 x00);五、心得體會轉(zhuǎn)眼間幾天實(shí)習(xí)已經(jīng)過去,雖然倍感折磨,但是收獲卻是很大的。“紙上得來終覺淺,絕知此事要躬行! ”通過實(shí)訓(xùn),我們都有這樣一個(gè)感覺, 所學(xué)的理論知識與現(xiàn)實(shí)差距太大,深深的體會到了自己在編程方面的欠缺和不足, 也意識到了我們作為一名軟件工程專業(yè)的學(xué)生,要想在以后的職業(yè)中嶄露頭角, 除了要有過硬的

14、理論知識,健康的體魄之外,還必須具備良好的心理素質(zhì),是自QColor digitBkg11QColor:fromRgb(OxFF,OxFF,0 xCC),QColor:fromRgb(0 xFF,0 xFF,0 x99),4zpAT。QColor:fromRgb(0 xFF,0 xCC,0 xCC),QColor:fromRgb(0 xFF,0 xCC,0 x99),InsJg。QColor:fromRgb(0 xFF,0 x99,0 x99),QColor:fromRgb(0 xFF,0 x99,0 x66),0vDlc。QColor:fromRgb(0 xFF,0 x66,0 x66),Q

15、Color:fromRgb(0 xCC,0 x99,0 x66) ,hbuOEQColor:fromRgb(0 xCC,0 x33,0 x33),QColor:fromRgb(0 xCC,0 x00,軟件工程實(shí)習(xí)報(bào)告己在以后的途中無論經(jīng)歷什么樣的困難,都立于不敗之地。通過實(shí)訓(xùn)老師的課堂 講解與企業(yè)文化標(biāo)準(zhǔn)的培訓(xùn),使我們加深了對自己專業(yè)的認(rèn)識。4C5XU。這次實(shí)習(xí)讓我們深深體會到一個(gè)團(tuán)隊(duì)中的各個(gè)成員合作的重要性,要善于團(tuán) 隊(duì)合作,善于利用別人的智慧,這才是大智慧。靠單一的力量是很難完成一個(gè)大項(xiàng)目的,在進(jìn)行團(tuán)隊(duì)合作的時(shí)候,還要耐心聽取每一個(gè)成員的意見,積極參與到 團(tuán)隊(duì)合作中去,這樣會有意想不到的驚

16、喜。7zaT8o這次實(shí)習(xí)讓我們學(xué)到很多東西,不僅在理論上讓我們對編程有了全新的認(rèn)識, 讓我明白工作中需要能力,素質(zhì),知識之外,更重要的是學(xué)會了如何去完成一個(gè) 任務(wù),懂得了享受工作。在實(shí)踐能力上也得到了很大的提高,真正做到了學(xué)以致 用,對我們來說受益匪淺。更讓我們真切的體會到作為一名未來程序員到所需要 的素質(zhì):耐心,勤思好問,享受 團(tuán)隊(duì)不斷努力的樂趣,學(xué)以致用。當(dāng)遇到問題, 冷靜,想辦法一點(diǎn)一點(diǎn)的排除障礙,到最后獲取成功,一種自信心就由然而生, 這應(yīng)該就是工作的樂趣。有時(shí)候不懂的就需要問別人了,虛心請教,從別人的身 上真的能學(xué)到自己沒有的東西,每一次的挫折都會使我更接近成功。還有學(xué)會了 在工作中

17、與人的合作與交流,同樂同累,合作互助,這是團(tuán)體的精神,也是必須 學(xué)習(xí)的東西。WJA8g我們深刻的認(rèn)識到要成為一名優(yōu)秀的軟件開發(fā)人員不是一件容易的事情。想成為一個(gè)合格的程序員就有具備一種自學(xué)能力,在工作中會遇到很多從未接觸 過的問題,當(dāng)有了問題時(shí)要去解決,在你不斷努力,尋找答案的過程中,自己的 能力也在潛移默化的提升。有時(shí)遇到問題時(shí)可能有很多想法但卻不知道那個(gè)正確, 這就需要我們不斷地去探索,不斷地嘗試。TU5Cg除此之外,從一起做項(xiàng)目的同學(xué)身上我看到了謙虛謹(jǐn)慎、細(xì)心努力的態(tài)度,從他們身上找尋我所缺少的品質(zhì),不斷學(xué)習(xí)。從老師那里我看到了企業(yè)人的生活面 貌,沒有事情可以不勞而獲,今天老師們能夠領(lǐng)導(dǎo)我們是他們之前努力的結(jié)果, 雖然老師沒有和我們講很多公司里的事情,可是他們的言行中所表現(xiàn)出來的都是 比我們要嚴(yán)謹(jǐn)?shù)亩嗟膶ぷ鞯膽B(tài)度。MCzlSo實(shí)習(xí)中學(xué)到了 QT 編程的知識,我們小組所做的“我的 2048”小游戲,把學(xué)到的知識運(yùn)用到具體實(shí)踐中,不僅加深我們對理論的掌握和運(yùn)用,真正地做到了 學(xué)以致用,還讓我們擁有一次又一次的難忘團(tuán)隊(duì)開發(fā)經(jīng)歷,這也是實(shí)訓(xùn)最大的收 獲。tiREO。通過實(shí)訓(xùn),我們都有這樣一個(gè)感覺,所學(xué)的理論知識與現(xiàn)實(shí)差距太大,實(shí)訓(xùn),開闊了我們的視野,同時(shí)也鍛煉了我們踏實(shí)、穩(wěn)重的能力,每個(gè)人都很珍惜這次 實(shí)訓(xùn)。Pnjis。在匆匆過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論