基于SQLServer数据库的CRH3型动车组模拟驾驶仿真系统教员管理设计
2018-03-04
(武汉铁路职业技术学院,湖北武汉 430205)
1 动车组模拟驾驶仿真器的实训教学管理模式设计
为满足实训课堂教学需求,CRH3型动车组模拟驾驶仿真系统在设计中采用了以一台教员机终端来对多个学员机进行管理和监控的模式设计,教员通过教员终端的管理系统来实现对于所有学员操作的实时管理和监控。教员终端和学员机通过交换机组建的计算机局域网互联,其基本组成结构如下图1所示。
图1 基于计算机网络平台的教学管理分区设计
2 基于三层架构的教员终端管理软件
三层架构(Three-tier architecture)是在软件结构设计中最常见也是最重要的软件结构,三层分布式结构,从上至下把系统分为表示层、业务逻辑层和数据访问层三部分。其中表示层表示客户端软件,表示层一般不直接与数据库进行交互,而是通过数据访问层与业务逻辑层建立连接,再经由业务逻辑层与数据库进行交互。业务逻辑层主要负责处理合法性校验、数据访问和业务逻辑等工作。数据访问层则是主要负责数据库的访问,并对数据库进行相关操作,比如查询、增加、删除、修改等。
(1)表示层(User Interface Layer)
表示层是系统的用户接口部分,它担负着用户与系统间的对话功能。它用于检查用户从键盘输入的数据,显示应用输出的数据。
(2)业务逻辑层(Business Logic Layer)
业务逻辑层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。
(3)数据访问层(Data access Layer)
数据访问层是负责管理对数据库数据的读写。数据访问层必须能迅速执行大量数据的更新和检索。因此,一般从业务逻辑层传送到数据访问层的要求大都使用SQL语言。
软件设计采用三层架构主要有如下一些优势:①具有灵活的硬件构成。②增加了系统开发的灵活性。各层可以并行开发,并且可以选择不同的语言进行开发。③由于三层在逻辑上保持相对的独立性,增强了系统的可维护性和可扩展性。④有利于系统开发的标准化。⑤利用业务逻辑层有效的隔离开表示层和数据访问层,增强了系统管理的安全性。
动车组模拟仿真系统的教员终端系统管理监控软件的设计建立在经典的三层架构基础之上,其教员终端用户界面UI即为表示层,教员在界面的操作访问通过业务逻辑层和数据访问层传递至后台数据库,从而能够完整地实现在系统运行过程中对后台资源的实时访问和处理,为使用人员充分建立人机信息交互的平台,从而保障系统高效而稳定的运行。
3 基于SQL Server数据库平台的软件设计
动车组模拟驾驶仿真器的系统软件程序设计编写采用C++语言,利用Microsoft visual studio作为编译测试平台。数据库是采用SQL Server作为后台,可以通过SQL结构化查询语句对信息进行查询和修改。
系统的数据库设计中,要利用系统分析阶段建立的数据字典,对照数据流程对各个数据项进行分类、组织,确定系统中每个实体、以及确定各个实体之间的联系。这种联系用E-R图(Entity-Relationship Approach)及“实体—联系方法”来描述,反映现实世界的概念模型。E-R图主要是由实体、属性和联系三个要素构成的。E-R图基本图形符号如图2所示。
图2 E-R图符号
实体型 (Entity)表示有相同属性,相同的特征和性质的实体。属性(Attribute)是指实体具有的某种特性,一个实体可以有很多属性。联系(Relationship):也可以称其为实体间关系,是在信息世界中将实体内部或各个实体间的联系表示出来。本文采用自底向上的概念结构设计方法,根据需求分析得到结果,对系统软件的各个要素进行抽象,来设计该系统功能模块数据库的实体E-R关系图。
动车组模拟驾驶仿真学员管理软件的后台采用SQLServer数据库软件作为平台,从而更加有利于大量数据资源的存储和管理,数据库资源存放于教员终端教员机上。当系统开启时,教员通过相应账号密码登录教学管理监控软件系统中,同时可以通过后台数据库的信息管理平台及IP网络来直接访问各个学员机并对其进行实时监控和管理。本系统所设计的数据库的英文名称是CRH3_JIAOXUE。
系统数据库CRH3_JIAOXUE的在教学管理方面的实体设计主要包括以下三部分的内容:(1)学员基本信息:学号、姓名、性别、年龄、专业编号、驾龄。(2)教员基本信息:教员编号、教员姓名、年龄、性别、评分。(3)设备信息:动车组升弓、制动、主断路、安全设备等。数据库CRH3_JIAOXUE实体关系E-R关系图设计如下图3所示。
图3 数据库CRH3_JIAOXUE实体关系(E-R)设计图
4 基于SQL数据库的数据结构表的设计
在动车组模拟驾驶仿真系统的数据库中含有大量有关动车组车辆设备信息、课程信息、教员学员信息及各个实体按键操作和机车逻辑电路信息等。其中,有关教学管理信息方面的数据表主要有学员信息表、教员信息表和课程信息表。其具体设计如下:
(1)学员信息表的设计
学员信息表(Infor_Student)是用来存储学员的基本信息的数据表,其中定义字段学员编号(ID)用来标识学员身份,字段Name标识学员姓名,字段ProID标识专业编号,字段ClassID标识课程编号,字段Age对应年龄,字段Sex对应性别,字段DriveAge对应驾龄,字段Remark对应评分。Infor_Student学员信息表的数据结构如下表1所示。
表1 学员信息表(Infor_Student)结构
在实际对应的数据信息存储列表中导入多名学员的编号、姓名、专业编号、年龄和性别等信息如下表2所示。
表2 学员信息表数据
(2)教员信息表的设计
教员信息表(Infor_Teacher):在教学管理数据库系统中需设置教员信息表来对教师的信息进行管理和存放。定义字段ID标识教员编号,字段Name标识教员姓名,字段Age标识年龄,字段Sex标识性别,字段Remark标识评分。Infor_Teacher信息表的结构如下表3所示。
表3 教员信息表(Infor_Teacher)设计
(3)课程信息表的设计
课程信息表(F_A_Lesson):是用来储存课程的信息。自定义字段ID为课程编号在该系统中F_A_Lesson的结构如下表4所示。
表4 课程信息表(F_A_Lesson)设计
5 利用ADO应用程序接口访问数据库
在成功建立了教学管理方面数据库资源后,在教员管理软件的编译代码中添加相应链接到SQL数据库的工程代码,以实现对于数据库的实时访问和处理。其中,需利用ADO(ActiveX Data Objects)技术来对数据库CRH3_JIAOXUE进行连接并获取教学课程信息数据表内资源。其关键工程代码如下:
#include
#include
#include
#import"C:ProgramFilesCommonFilesSystemadomsado15.dll"no_namespace rename("EOF","adoEOF")
using namespace std;
void main()
{
_bstr_t ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Student;Data Source=(local)";//定义连接字符串
_bstr_t CommandString = "select * from Student_INF";//定义命令字符串
_ConnectionPtr MyConnection;//定义连接指针
_RecordsetPtr Records = NULL;//定义记录集指针
_variant_t Count;//定义影响行数变量
//初始化COM编程环境
if(FAILED(::CoInitialize(NULL)))
{
cout<<"初始化COM环境失败!"< getch(); return; } MyConnection.CreateInstance(_uuidof(Connection));//创建连接对象 Records.CreateInstance(_uuidof(Recordset));//创建记录集对象 MyConnection->ConnectionString = ConnectionString;//指定连接字符串 MyConnection->ConnectionTimeout = 10;//指定连接超时为10s try { MyConnection->Open("","","",adConnectUnspecified);//打开连接 if(MyConnection->State == adStateOpen) { cout<<"数据库连接成功!"< getch(); } } catch(_com_error e) { cout<<"数据库连接失败!原因如下:"< cout<<" "< getch(); return; } Records = MyConnection->Execute(CommandString,&Count,adCmdText); if(Records != NULL) cout<<”获取记录集成功!”< else cout<<”获取记录集失败!”< if(MyConnection->State == adStateClosed) MyConnection->Close(); ::CoUninitialize();//释放COM环境 } 在系统软件测试过程中通过ADO类调用并访问数据库CRH3_JIAOXUE中所设计数据信息表资源,并在软件界面下拉框中添加所有数据信息,从而实现实训教学中对于所有参与人员的信息管理和编辑。一方面有利完善了系统整体在满足教学方面的功能需求,另一方面也实现了课堂教学过程中通过计算机网络平台的硬件管理模式,使现代教学信息化管理方式在实训教学中得到充分发挥和体现。6 结 语