微震监测数据处理系统详细设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微震监测数据处理系统
软件详细设计说明书
学生姓名王建旭学号 0808140505 学生姓名王智杰学号 0808140512 学生姓名汤玉杰学号 0808140119 学生姓名毕国兴学号 0808140727 专业电子信息科学与技术年级 08级
指导教师劳彩莲职称副教授
学院信息与电气工程学院
中国农业大学教务处制
2011年 7月
目录
1 目的 (3)
2 代码框架描述 (3)
2.1 源文件说明 (3)
2.2 系统配置文件说明 (3)
3 系统结构关系图 (4)
4 单文档多视的创建与通讯子模块详细设计说明 (4)
4.1 数据结构 (5)
4.2 处理流程详细说明 (5)
4.3 编码设计 (6)
5 OpenGL子模块详细设计说明 (7)
5.1 数据结构 (8)
5.2 处理流程详细说明 (10)
5.3 部分重要编码设计 (10)
5.3.1函数SetGoal(float x,float y,float z,float color) (11)
5.3.2函数RenderScene() (12)
6 微震列表子模块详细设计说明 (12)
6.1 数据结构 (13)
6.2 处理流程详细说明 (13)
6.3 编码设计 (18)
7 SQL Server数据库详细设计说明 (19)
7.1 数据结构 (21)
7.1.1 数据库信息模型: (21)
7.1.2数据库逻辑模型 (21)
7.1.3数据库结构的详细设计 (21)
7.2 数据库系统的建立 (22)
7.2.1 数据库建立 (22)
7.2.2表的建立和管理 (22)
8 详细微震情报表子模块详细设计说明 (22)
8.1 数据结构 (23)
8.2 处理流程详细说明 (23)
8.3 编码设计 (24)
微震监测数据处理系统详细设计说明书
1 目的
微震监测数据处理系统详细设计说明书旨在介绍该系统的详细过程,以及技术要点等内容。
2 代码框架描述
2.1 源文件说明
2.2 系统配置文件说明
3 系统结构关系图
4 单文档多视的创建与通讯子模块详细设计说明
单文档多视图的创建,我们用的是静态切分窗口的方法。用到的主要数据结构是CSplitterWnd类,该类是用于实现对窗口的分割。将窗口切分成为四个子窗口,分别用于显示不同的内容,用到的函数是CSplitterWnd类的构造函数CreateStatic,还用到CSplitterWnd类的另一个函数CreateView为静态窗口填充视图,将窗口与视图联系起来为每一个子窗口关联一个View类用于对该窗口进行操作。
单文档多视图之间的通讯是通过文档中的变量进行实时传输的。在某一个窗口中,通过文类的指针对文档中的变量进行修改完成窗口向文档的数据传送,并发送UpdateAllView消息对所有的窗口进行刷新,在其他窗口中响应Update消息函数完成文档向窗口的数据传送。
4.1 数据结构
在分割窗口时,定义了CSplitterWnd类的三个对象m_splitter1,m_splitter2,m_splitter3用于创建切分窗口。定义了CRect 类的对象r 用于获取当前窗口大小,根据窗口大小为子窗口设定区域。定义了CSize类的几个对象Size,Size1,Size2,Size3,Size4,设定子窗口的大小。
在窗口之间通讯时,在weizhenDoc文件中定义了CString类的对象m_zhenji,m_energy,m_fanwei,m_death,m_hurt,m_economy,m_work,m_jingdu,m_weidu,m_shendu,m_name,m_path用于传输从第一个窗口中向其他窗口传输信息。
4.2 处理流程详细说明
(1) 分割窗口
(2)窗口通讯
4.3 编码设计(1)、分割窗口
5 OpenGL子模块详细设计说明
OpenGL (即开放性图形库Open Graphics Library)是近几年发展起来的一个性能卓越的三维图形标准。OpenGL作为一个性能优越的图形应用程序设计界面(API),具有广泛的可移植性,它独立于硬件系统、操作系统和窗口系统。
由于OpenGL能实现高性能的三维图形功能,这使得科学计算可视化,仿真可视化技术发展迅速。可视化系统不仅可以帮助技术人员形象直观地查看仿真结果,而且一定程度上可以提高设计水平,减少错误的发生。
这里用OpenGL进行了三维电子地形图的制作。因为线划地图和实体地形图虽然具有一定的立体效果,但信息量不租,实用性不强,而三维真实感地形图能较逼真地反映外部真实世界,可它又缺乏动态特性。通常上述三种地形图的原始数据是提前作为文件存储起来的,这不仅在存储空间的占用方面付出了不小的开销,还要对这些数据再进行大量的采样计算,直接影响了地形生成的实时性。本文提出的一种动态地形仿真方法首先给出了层次细节简化思想的本质含义,然后利用分形理论静态拼嵌高度场数组,生成逼真程度很高的静态地形。
5.1 数据结构
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// CFractalTerrainView为基于OpenGL的一个绘图窗口类,执行绘图操作。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CFractalTerrainView : public CView
//OpenGL画图模块继承了CView类
BOOL renderCloudMap ();
//// 渲染天空背景纹理
BOOL renderTeximageMap ();
// 渲染地形纹理
BOOL renderFullImage ();
//渲染全部图像,包括天空背景,地面纹理
void SetGoal(float x,float y,float z,float color);
//地震地点定位函数
virtual ~CFractalTerrainView();
//析构函数
void drawSphere(GLfloat xx, GLfloat yy, GLfloat zz, GLfloat radius, GLfloat M, GLfloat N);
//画球函数
BOOL RenderScene();
//场景的绘制和渲染函数
BOOL SetupPixelFormat(void);
//设置像素格式
void SetLogicalPalette(void); // 设置逻辑调色板
BOOL InitializeOpenGL(CDC* pDC);// 初始化openGL场景
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUA L(CFractalTerrainView)
protected:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
// Generated message map functions
protected:
//{{AFX_MSG(CFractalTerrainView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);//响应WM_CREATE消息
afx_msg void OnSize(UINT nType, int cx, int cy);// 响应WM_SIZE消息
afx_msg void OnDestroy();//响应WM_DESTROY消息
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);//响应按键消息