计算机控制系统课程设计中期报告,课程设计中期报告模板.doc
課程設(shè)計(jì)中期報(bào)告模板概要
新疆大學(xué)
信息科學(xué)與工程學(xué)院
《程序設(shè)計(jì)》課程設(shè)計(jì)中期報(bào)告
題目:
專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)
學(xué) 生 姓 名
學(xué) 號(hào)
聯(lián) 系 方 式
班 級(jí) 計(jì)算機(jī)15-班
組 員 姓 名
聯(lián) 系 方 式
檢 查 日 期 2016.7.29
新疆大學(xué)信息科學(xué)與工程學(xué)院
目 錄
1. 課程設(shè)計(jì)內(nèi)容概述1
1.1 項(xiàng)目來(lái)源及開(kāi)發(fā)目的和意義1
1.2總體設(shè)計(jì)內(nèi)容及方案1
1.3 本人所承擔(dān)任務(wù)(模塊)說(shuō)明3
1.4 開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具6
1.4.1 開(kāi)發(fā)語(yǔ)言6
1.4.2 開(kāi)發(fā)工具6
1.4.3 開(kāi)發(fā)環(huán)境7
1.5 項(xiàng)目原定進(jìn)度安排7
2. 中期完成情況說(shuō)明8
2.1 預(yù)定計(jì)劃的執(zhí)行情況8
2.2 中期工作說(shuō)明及成果匯報(bào)8
2.3 存在的困難與問(wèn)題13
2.4 如期完成預(yù)定任務(wù)的可能性分析13
2.5 后期工作安排14
1. 課程設(shè)計(jì)內(nèi)容概述
1.1 項(xiàng)目來(lái)源及開(kāi)發(fā)目的和意義
(以下為范例)
1.2總體設(shè)計(jì)內(nèi)容及方案
(以下為范例)
本項(xiàng)目主要任務(wù)Run-Time Type Identification運(yùn)行時(shí)類型識(shí)別Simplified Wrapper and Interface Generator)輕松實(shí)現(xiàn)由C/C++接口到腳本的綁定。
編輯器(editor模塊),編輯器是本游戲引擎的一個(gè)集成開(kāi)發(fā)環(huán)境,包括腳本的編寫、調(diào)試,游戲場(chǎng)景的制作、游戲資源文件的制作等。這是引擎中相對(duì)復(fù)雜的一個(gè)模塊。
1.3 本人所承擔(dān)任務(wù)(模塊)說(shuō)明
(以下為范例)
本人在整個(gè)項(xiàng)目中的具體任務(wù)是ReferenceCounted,記錄當(dāng)前的引用計(jì)數(shù)并實(shí)現(xiàn)了加減操作并負(fù)責(zé)對(duì)引用計(jì)數(shù)降為0是對(duì)象的釋放。Pointer類就是我們的智能指針類,它是一個(gè)模板類,在構(gòu)造、拷貝、賦值運(yùn)算、銷毀時(shí)確保正確地對(duì)它所控制的Object類的指針進(jìn)行增減引用計(jì)數(shù)操作。
文件系統(tǒng):使用了開(kāi)源庫(kù)PhysFS并進(jìn)行了簡(jiǎn)單的接口包裝。
editor模塊:
使用開(kāi)源的界面庫(kù)wxWidgets2.8.9進(jìn)行界面的開(kāi)發(fā),選擇的理由:
開(kāi)源、跨平臺(tái),符合我們引擎的設(shè)計(jì)初衷。
它不僅僅是一套界面庫(kù),還提供了一些其他的平臺(tái)無(wú)關(guān)的類庫(kù)。
它使用操作系統(tǒng)的原生控件。
眾多的contrib庫(kù)和輔助開(kāi)發(fā)程序,并且有Code::Blocks等IDE也是使用它來(lái)開(kāi)發(fā)的。
編輯器的總體設(shè)計(jì):
圖-1 編輯器組成示意圖
編輯器主要功能使用動(dòng)態(tài)庫(kù)的方式實(shí)現(xiàn),并對(duì)外提供一套API接口,主程序通過(guò)調(diào)用此動(dòng)態(tài)庫(kù)來(lái)完成相應(yīng)的功能,并且主程序提供編輯器的主要的UI框架與用戶交互。為什么不將兩者合在一起實(shí)現(xiàn)呢?這是因?yàn)槲覀兊木庉嬈饕С謹(jǐn)U展,支持?jǐn)U展的代價(jià)就是要對(duì)外開(kāi)放接口,而開(kāi)發(fā)接口的最好的方法就是動(dòng)態(tài)庫(kù)。這樣第三方擴(kuò)展插件便可以輕松地使用編輯器的接口來(lái)完成它的功能,但它也必須遵從一定的規(guī)范才能被編輯器的主程序識(shí)別并順利地加載,這個(gè)規(guī)范就是:插件一定要實(shí)現(xiàn)“插件接口”,編輯器內(nèi)留出了多種支持的插件類型的接口,如:調(diào)試器插件用于對(duì)腳本語(yǔ)言的調(diào)試、向?qū)Р寮糜谛陆骋活愋偷奈募⑽募愋吞幚聿寮糜趯?duì)特定類型的文件進(jìn)行編輯(材質(zhì)編輯、粒子編輯、UI編輯都屬于這種類型)。
編輯過(guò)程中與用戶的交互是無(wú)法避免的,如何把在編輯過(guò)程中用戶觸發(fā)的事件在編輯器和插件之間以及插件和插件之間傳遞需要由一個(gè)系統(tǒng)來(lái)處理——事件系統(tǒng):
圖-2 編輯器事件系統(tǒng)示意圖
用戶進(jìn)行編輯操作時(shí)會(huì)觸發(fā)編輯器內(nèi)部的事件,事件進(jìn)入編輯器的事件處理系統(tǒng),處理系統(tǒng)根據(jù)其類型查找相應(yīng)的EventSinks,然后依次調(diào)用注冊(cè)的回調(diào)函數(shù)將消息分派下去處理。這樣一些插件就可以通過(guò)注冊(cè)某些關(guān)心的事件的回調(diào)函數(shù)來(lái)響應(yīng)用戶操作。
要實(shí)現(xiàn)相同的功能還有另一種方式:為每一個(gè)類型的事件寫一個(gè)虛函數(shù),由插件繼承并實(shí)現(xiàn)此接口,利用C++的多態(tài)特性來(lái)實(shí)現(xiàn)。相比較而言,我們的處理方式更加靈活,并且性能更好(因?yàn)槎鄬哟蔚睦^承C++的虛函數(shù)表會(huì)造成性能問(wèn)題)。
調(diào)試器的實(shí)現(xiàn):調(diào)試有2種實(shí)現(xiàn)方式:單進(jìn)程使用線程調(diào)試和多進(jìn)程使用進(jìn)程間通信的方式。
方式一:容易編碼,但需要保證調(diào)試和運(yùn)行能夠“友好”地相處,我們的編輯器不滿足這種條件,編輯器和游戲是兩個(gè)不同的進(jìn)程,并且編輯器本身也使用游戲的一些庫(kù),著非常容易造成資源的混亂。
方式二:必須進(jìn)行進(jìn)程間的通信,進(jìn)程間的通信又主要有三種方式:管道、共享內(nèi)存、套接字
總結(jié)
以上是生活随笔為你收集整理的计算机控制系统课程设计中期报告,课程设计中期报告模板.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js中new操作符
- 下一篇: java 系统类型_Java获取操作系统