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