课程设计中期报告模板概要

新疆大学

信息科学与工程学院

《程序设计》课程设计中期报告

题目:

专 业 计算机科学与技术

学 生 姓 名

学 号

联 系 方 式

班 级 计算机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相关推荐

  1. 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,具有一阶纯滞后环节设计.doc...

    文档介绍: 目录 第一部分设计任务及方案 1.设计题目及要求 2.设计方案分析论证 第二部分方案各模块分析 1.被控对象分析 2.测量元件热电阻及前置放大电路 3.A/D转换器 4.控制器(单片机) ...

  2. 计算机专业车辆控制,智能无人驾驶汽车的计算机控制系统详细介绍和要求及设计资料概述...

    一.智能无人驾驶汽车计算机控制系统简介 1.智能无人驾驶简介 智能无人驾驶汽车是一个集环境感知.规划决策.多等级辅助驾驶等功能于一体的综合系统,对车辆的操作实质上可视为对一个多输入.多输出.输入输出关 ...

  3. 计算机专业试讲10分钟教案,10分钟试讲教案模板.doc

    10分钟试讲教案模板 精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 10分钟试讲教案模板 试讲单位: 课程名称: 专业年级: 试讲学生: 教 ...

  4. 小学网管中心计算机使用规定,中小学网管中心管理制度范本模板.doc

    中小学网管中心管理制度 规章制度包括行政法规.章程.制度.公约四大类.不同的类别,反映不同的需要,适用于不同的范围,起着不同的作用. 规章制度的主要功能是: 1. 规范管理,能使企业经营有序,增强企业 ...

  5. 计算机控制系统转换的指标,(计算机控制系统实验平台.doc

    (计算机控制系统实验平台 计算机控制系统实验平台 (本文由袁绍强及夏洁撰写) 为完成本科计算机控制系统课实验的教学,北京航空航天大学自动化学院控制实验中心,研制和开发了多种计算机控制系统实验平台.与本 ...

  6. 计算机微机原理与接口技术课程设计课题,微机原理与接口技术课程设计报告

    <微机原理与接口技术课程设计报告>由会员分享,可在线阅读,更多相关<微机原理与接口技术课程设计报告(12页珍藏版)>请在人人文库网上搜索. 1.微机原理与接口技术课程设计设计题 ...

  7. 计算机控制课设直流电机控制,计算机控制系统课程设计 直流电机测速调速系统 (精选可编辑)...

    <计算机控制系统课程设计 直流电机测速调速系统 (精选可编辑)>由会员分享,可在线阅读,更多相关<计算机控制系统课程设计 直流电机测速调速系统 (精选可编辑)(31页珍藏版)> ...

  8. 合肥工业大学《系统硬件综合设计》(《计算机组成原理》,CPU)课程设计报告(2020)

    文章目录 1 课程设计概述 1.1 设计目的 1.2 设计任务 1.3 设计要求 1.4 技术指标 2 总体方案设计 2.1 MIPS体系结构 2.1.1 MIPS寄存器 2.1.2 MIPS指令集 ...

  9. java计算机设计总结,java课程设计报告--计算器设计

    java课程设计报告--计算器设计 1 课 程 Java 程序设计 题 目 计算器设计 年 级 2010 级 专 业 信息一班 学 号 姓 名 组 员 指导教师 课程设计题目计算器设计 2 课程设计论 ...

  10. 计算机课程编程设计贪吃蛇游戏设计,c语言课程设计报告--贪吃蛇游戏系统

    c语言课程设计报告--贪吃蛇游戏系统 院 系 计算机科学技术学院 班 级 组 长 学 号 指导教师 2017 年 3 月 2 日 C 语言语言基础课程设计基础课程设计 贪贪贪贪吃吃吃吃蛇蛇蛇蛇游游游游 ...

最新文章

  1. 送一台高清航拍无人机
  2. shell实现简单的进程监控脚本
  3. CodeForces - 1551F Equidistant Vertices(暴力+dp)
  4. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸
  5. ChartCtrl源码剖析之——CChartAxis类
  6. Javassist实现JDK动态代理
  7. HA集群实现原理 切换 JAVA_HA(一)高可用集群原理
  8. 企业微信_通讯录管理,获取部门列表部门成员及详情
  9. STM32的优先级NVIC_PriorityGroupConfig的理解及其使用(转)
  10. matlab使用mex,c – 如何在Matlab中配置MEX功能
  11. 软件设计师07-程序语言基础知识
  12. 使用JavaScript创建Table时,用cellSpacing而不是cellspacing
  13. C++ 和ws2def.h相关的一坨错误
  14. dc持久内存与mysql_英特尔傲腾数据中心级持久内存的五大用例
  15. 400元DIY实现手机 笔记本 GPS导航
  16. 打造Win10+WSL开发环境(2)
  17. 微分几何与广义相对论教程
  18. uniapp ios原生插件开发 (framework,cocoapods)
  19. macOS 安装lrzsz
  20. VS编译时一些常见错误积累LNK,比如LNK2019、LNK2001(实时更新)

热门文章

  1. 为什么建议你使用枚举?
  2. iBatis for net 框架使用
  3. 华为交换机telnet和ftp服务开启/关闭命令
  4. Shiro并发登录人数控制遇到的问题和解决
  5. linux 链接文件 通配符,linux globbing文件通配符
  6. 启动盘Linux windows,Linux 中创建 USB 启动盘来拯救 Windows 用户
  7. superset mysql数据源配置_superset 性能优化1-已经使用中的superset更改默认数据源sqlite到mysql...
  8. linux上安装python2.6.9_在Linux CentOS 6.6上安装Python 2.7.9
  9. UC浏览器PC版新版有什么特点
  10. 糖果浏览器和139邮箱巧妙应用:将网页文字一键发送到手机上