2024年6月7日发(作者:)

摘 要

随着科技的发展,网络技术已经深入到高校教育的每一个角落,带来了教育方

式的一次重大变革。而网络考试则是一个重要的方向。传统考试要求教师完成打

印试卷、安排考试、监考、收集试卷、改评试卷等一系列复杂繁琐的工作。基于

浏览器的各种在线考试系统也已经屡见不鲜,但是基于安卓手机的却很少。针对这

种情况,笔者在移动考试理论及应用模式研究的基础上,探究了如何基于Android

平台设计并实现个移动在线考试系统。

本系统采用Eclipse3.6+JDK1.6平台利用,利用Android的SDK2.2进行开发,

使用Android UI技术利用XML进行控制,后台数据库通过XML进行存储。本文的

主要工作如下:首先,介绍了论文中使用的相关技术;其次,根据实际进行需求

分析、数据库设计以及系统概要设计;最后是系统的具体实现部分以及效果。本

文是将移动考试理论付诸于实践的一次尝试,虽然最终的系统还存在这样那样的

问题,但对推动移动考试的发展有着积极的意义。

关键词:在线考试;Android;C语言;移动教学;

Abstract

With the development of science and technology, network technology has arrive

into every corner of college education deeply, has brought a significant change to the

way of education. The network examination is an important direction. Traditional test

requires teachers to finish the print paper, the arrangement of examination, supervise,

collected papers, review papers a series of complex tedious work. Various online

examination system that based on browser have also become common, but rarely based

on android at this situation, the author in the mobile test, on the basis of

theory and application mode research, explores how to based on the Android platform

was designed and implemented a mobile online examination system.

This system adopts the Eclipse3.6 + JDK1.6 platform use, use of the Android's

SDK2.2 development, the use of the Android UI technologies using XML to control,

background database through the XML storage .In this paper, the main work is as

follows: first of all, this paper introduces the related technologies used in the paper;

Secondly, according to the actual demand analysis, database design and system

summary design; The last is the specific implementation of the system and the effect.

This article is to move an attempt to test theory into practice, although the final system

still exist such problems, but is of great significance to promote the development of

mobile test.

Keywords: online examination;Android;C Language;Mobile teaching;

目 录

第1章 绪论 ..................................................... I

1.1课题开发的背景 ....................................................................................... 1

1.2 Android系统特点 ................................................................................... 1

1.3基于Android的在线考试系统概述 ....................................................... 4

1.4移动考试系统开发意义 ........................................................................... 5

第2章 系统开发环境和技术 ....................................... 6

2.1 Android开发环境的搭建 ....................................................................... 6

2.3 SQLite简介 ........................................................................................... 11

2.4 SQL语言 ................................................................................................. 11

2.5 Eclipse简介 ......................................................................................... 12

2.6 Android模拟器 ..................................................................................... 13

第3章 系统的需求分析 .......................................... 15

3.1 需求分析与安排 .................................................................................... 15

3.2 系统可行性分析 .................................................................................. 15

3.3 系统功能分析 ...................................................................................... 17

第4章 系统的总体设计 .......................................... 18

4.1系统设计原则 ......................................................................................... 18

4.2系统功能模块 ......................................................................................... 18

4.3 数据库设计及其实现 ............................................................................ 20

第5章 系统详细设计与实现 ...................................... 23

5.1 登录模块的设计 .................................................................................... 23

5.2注册模块的设计 ..................................................................................... 24

5.3 详细信息页面的设计 ............................................................................ 27

5.4用户管理模块的设计 ............................................................................. 28

5.5考题管理的设计 ..................................................................................... 29

I

5.6 报名考试模块的设计 ............................................................................ 32

第6章 系统测试 ................................................ 34

6.1 测试方法简介 ........................................................................................ 34

6.2系统测试中的问题及测试方法和解决办法 ......................................... 34

6.3系统维护 ................................................................................................. 35

结 论 ......................................................... 36

参考文献 ...................................................... 36

致 谢 ......................................................... 39

II

第1章 绪论

基于Android平台的《C语言》在线模拟考试系统,是以Android为终端,提供

在线考试以及相关服务,通过移动网络技术实现在线考试的系统。该系统使用移动

网络与服务器端连接,进行考试等操作。提出这种在线考试系统目的是将现在教育

与社会发展充分结合起来,简化现在考试的流程和减少考试过程中人力投入,实现

无纸化教育,从而降低教育的成本,促进现在教育方式发展。

1.1课题开发的背景

在安卓手机的逐渐普及下,越来越多的学生接触并使用安卓系统的移动终端,

考试系统是一个学校管理中不可缺少的一部分,对于学校的管理者以及学生本人

来说都至关重要。互联网的普及和网上考试系统的更趋向于成熟化,系统应该为

学生用户提供更加方便的考试与信息管理方式。开发一款基于智能手机平台、功

能简单、可随时利用无线网络进行在线报名、模拟考试、成绩查询、了解考试信

息的软件,为学生提供方便、可移动、准确的服务。

1.2 Android系统特点

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动

设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发

[1]

。尚

未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作

系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手

机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方

式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。A

ndroid逐渐扩展到平板电脑及其他领域上。 2011年第一季度,Android在全球的

市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占

据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。2013年09月

24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设

备数量已经达到10亿台

[2]

近几年,3G的全球覆盖使世界快速步入移动互联网时代,网络的应用范围变

得更加广泛,移动智能终端在市场上迅速渗透,成为移动互联网发展的强大动力。

根据市场调研机构Gartner发布的最新统计报告显示,2011年一季度全球手机销售

量共4.278亿部,其中智能手机销量超过1亿部,现在高校师生的智能移动通讯

1

设备拥有率已经和PC拥有率相近。而智能手机操作系统中,Android系统的市场

份额又远远大于其他的手机操作系统。Android是Google于2007年11月5日发

布的基于Linux内核的移动平台,该平台由操作系统、中间件、用户界面、应用

软件组成;从软件分层的角度来说,Android平台由应用程序、应用程序框架、A

ndroid运行时库层以及Linux内核共4部分构成,是一个真正开放的移动平台

[3]

Android操作系统是一款基于Linux平台开发的开源操作系统,底层与中间层

由C/C++语言开发,上层使用JAVA语言开发。Android的系统架构图如图1-1所示,

分为五个层次,从高到低分别为应用层、应用程序框架层、库层、运行时层、Linu

x内核层。

图1-1 Android系统框架图

1.应用程序层

应用层中,Android有一系列默认安装的应用程序,以实现智能终端最基本的

功能,如导航地图、Email邮件、电话短信、网络浏览器、日历时间控制等。

2.应用框架层

通过提供应用框架层,Android开放者能够开发丰富的应用程序,这一层是主

要提供了编写各种APP程序所使用的API框架。通过框架层可以简化复用程度。

在Android中,应用程序主要包括以下几项。

视图(View),主要负责应用程序展示界面的视图组件。包括了文本框组件、列

表组件、按钮组件等。

内容提供者(Content Providers),负责储存并共享数据,通过该组件可以访

问自身或其他APP中储存的数据。

资源管理器(Resource Manager),提供访问非代码资源,如本地化字符串、图

形和布局文件等。

2

通知管理器(Notification Manager),通过该组件显示、控制应用程序的告警

信息。

活动管理器(Activity Manager),该组件负责APP程序的全生命周期管理。

3.库

Android libraries属于中间层,提供了一系列功能的类库集合,主要由C/C++

语言编写。应用框架层的API最终通过本层实现功能。下面列出一些核心库。

系统C库,一个从BSD继承来的标准C系统函数库(libc),它是专门为基于em

bedded linux的设备定制的。

媒体库,媒体库主要支持多种格式的多媒体文件的解码、播放、录制等工作。

编码格式包括 MPEG4, H.264, MP3, AAC, AMR, JPQ PNG。

Surface Manager,主要负责管理子系统,为上层应用程序提供图层的融合与

交互。

LibWebCore, Android Web browser组件,用于提供浏览器相关功能与视图组

件。

4.运行时库

运行时库中主要包括了一个基于Linux内核的JAVA应用虚拟机Dalvik,上层

所有的应用都是在该虚拟机中加载运行,包括线程控制、内存管理等。

内核

Android操作系统的底层是基于Linux内核的,Linux内核层负责连接底层硬

件与上层软件,提供了底层核心功能,如内存管理,进程管理,硬件驱动管理,网络

传输管理,系统安全管理等。

但需要注意的是,Android系统并不是Linux系统的一个版本或分支。Google

会保证Linux内核的稳定更新。

1.2.1Android的程序结构

Android 应用程序中由四部分组成:活动(Activity) 、活动内容接受器(Int

ent Receiver)、服务(Service)、内容提供器(Content Provider)。 活动(Activ

ity):在应用程序中,一个 activity 是最基本的组成部分,通常就是一个单独

的屏幕。每一个 activity都被实现为一个独立的类,并且继承于Activity这个

基类。这个 activity类将会显示由几个 Views 控件组成的用户接口,并对事件

做出响应。大部份的应用都会包含多个的屏幕。例如,一个邮件应用程序将会有

一个屏幕用于显示联系人列表,第二个屏幕用于写邮件,同时还会有用于浏览收

件箱及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏

幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一

个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。

用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆

栈中删除。默认情况下,Android 将会保留从主屏幕到每一个应用的运行屏幕。

3

Android 利用一个叫 Intent的特殊类控制屏幕间的切换。一个Intent描述

了一个应用程序想要做什么,由两个的部分组成:动作和动作对应的数据。典型

动作的值有 MAIN(活动的入口),VIEW、PICK、EDIT 和其他一些。数据用 URI 表

示。例如,浏览一个人的联系信息,需要创建一个带有 VIEW 活动的 intent,并

将 URI的数据集指向那个人。与 Intent 有关系的一个类叫Intent Filter,一

个 intent filterm于描述一个activity(或者 Intent Receiver)能够操作哪些

intent。一个activity如果要能够显示一个人的联系方式时,需要声明一个Int

ent Filter,这个 Intent Filter 要知道 怎 么 去 处 理 VIEW 动 作 和 表

示 一 个 人 的 URI 。Intent Filter 需 要 在Android 中定义。

活动内容接受器(Intent Receiver):可以理解为中断或者是对外界的响应,可

以使用一个 Intent Receiver 来让应用程序被一个外部事件(如电话呼入时,发

现新数据网络可用时)触发,它会在后台运行使用 Notification Manager 通知用

户。Intent Receiver 在 Android 中注册,但也可以在代码中使

用Context.Register Receiver()进行注册。服务(Service):Service 是一段长

生命周期的后台程序。比如:有一个正在从播放列表中播放歌曲的媒体播放器。

在这个应用中,会有多个 activity,让使用者可以选择歌曲并播放歌曲。然而,

音乐重放这个功能并没有对应的 activity,因为使用者重放时并没有导航到其他

屏幕。在这个例子中,媒体播放器这个 activity会使用ervice0

来启动一个service,从而可以在后台保持音乐的播放。

同时,系统也将保持这个 service 一直执行,直到这个 service 运行结束。

另外,我们还可以通过使用 Context.bindService0 方法,连接到另一个 servi

ce 上(如果这个 service 还没有运行将启动它)。当连接到另一个 service 之

后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,

开发者还可以进行暂停、重播等操作。

内容提供器(Content Provider):应用数据与其他的应用共享时,通过Cont

ent Provider 将它们的数据保存到文件中、SQL 数据库中,甚至是任何有效的设

备中。一个 Content Provider类实现了一组标准的方法,从而能够让其他的应用

保存或读取此 Content Provider处理的各种数据类型。

1.3基于Android的在线考试系统概述

基于Android的移动在线系统是学校考试系统的重大改革,该系统的客户端

运行于当下最流行的智能手机操作系统——Android智能手机操作系统之上。通过

GPRS(通用无线分组业务)或WLAN(无线局域网)等无线数据传输平台,为学生

建立使用移动终端随时随地报名考试的平台,了解考试信息,查询考试成绩,及

时、快速、准确的了解自身学习情况。管理员不但可以上传考试题目,而且还可

以利用智能手机操作系统进行管理例如添加管理员、进行批卷上分、管理用户信

4

息等。

1.4移动考试系统开发意义

基于Android的移动学习系统的用户无论在任何场合。只要通过搭载有该客

户端的Android手机就能随时随地的登陆系统进行考试。从而使用户远离传统考

试的束缚,而且 Android设备有价格的优势,在相对廉价的同时其性能也没有丢

去,具有很高的性价比。在学生中还是占有很大的比例,同时相对于传统的在线

考试来说,在举办考试的便捷性及成本控制方面,使用Android设备作为考试客

户端还是具有相当大的优势。

5

第2章 系统开发环境和技术

本系统采用C/S结构,运行平台为Windows 7,系统开发平台为Eclipse,系

统开发语言为JAVA,系统后台数据库为SQLITE。

2.1 Android开发环境的搭建

1. 安装JDK

Sun公司为所有的java程序员提供了一套免费的java开发和运行环境

[4]

。可

以通过访问Http:///j2se,根据提示下载支持Windows操作系统的

JDK到本地硬盘。

安装的时候可以选择安装到任意的硬盘驱动器上。正确安装之后,在JDK目

录下有bin、demo、lib、jre等子目录。然后是设置JDK的环境变量,其设置方

法如下:

在Windows操作系统下,用鼠标右键单击【我的电脑】,弹出菜单选择【属

性】,弹出【系统特性】对话框,再单击该对话框中的【高级选项】,然后单击

【环境变量】按钮,添加如下的系统环境变量。

变量名:PATH

变量值:D:javabin;%PATH%(其内容根据JDK安装的目录变化)设置完成

点击【确定】即可。

2. Eclipse的安装

访问/downloads/,下载Eclipse IDE for Java De

velopers(92M)的win 32bit版,解压后即可使用。

3. Android SDK安装

在Android Developers下载android-sdk_,下载完成后解

压到任意路径。

运行SDK ,点击Available Packages。如果没有出现可安装的包,

请点击Settings,选中Misc中的"Force ..."这项,再点击Available

Packages 。

选择希望安装的SDK及其文档或者其它包,点击Installation Selected、A

ccept All、Install Accepted,开始下载安装所选包

下载完成后,添加如下环境变量:

变量名:PATH

变量值:D:Android_SDKandroid-sdktools(其内容根据JDK安装的目录

变化)然后单击确定即可。

6

4. ADT的安装

打开 Eclipse,进入菜单中的 "Help" -> "Install New Software"

在Work with中输入网址/android/eclipse/,如

图2-1所示。

图2-1 ADT的安装

然后选中Devrloper Tools单击“下一步”完成即可。完成之后选择Window >

,在左边的面板选择Android,然后在右侧点击并选

中SDK路径,点击Apply、OK,配置完成。

5. 创建AVD

为使Android应用程序可以在模拟器上运行,必须创建AVD。

(1)在Eclipse中。选择Windows > AVD Manager

(2)点击左侧面板的Virtual Devices,再右侧点击New

(3)填入Name,选择Target的API,SD Card:512MB(保证模拟器运行流

畅),Skin随便选,Hardware目前保持默认值。

B/S结构具有异地浏览和信息采集的灵活性;还具有开发简单、共享性强的特

性,简化了系统的开发和维护,并且特别适用于网上信息发布。因此,驾校考试

系统采用了基于B/S模式的体系结构。

2.2 Android DRM framework

Android平台提供了一个可扩展的DRM框架,允许应用程序根据和内容相关联

的许可约束来管理受权限保护的内容。DRM框架支持多种DRM方案,一般来说某个

设备支持的DRM方案是基于该设备制造商设计实现的。

7

Android提供的DRM Framework是在下面两个层次上实现的:

图 2-2 Android DRM framework

Framework API,它通过Android应用程序框架层暴露给应用程序使用,

并且运行在标准应用程序所应用的Dalvik虚拟机中。

层的DRM Manager,它实现了 DRM框架并且为DRM plug-ins暴露了

接口,用来处理权限管理和各种DRM方案的解密。而最终的DRM技术都是在

Plug-ins中以插件的形式实现的。对应用程序幵发者而言,DRM Framework提供了

一个抽象的,统一的API接口,用于简化管理受保护的内容。API隐藏了复杂的DRM

操作,并根据不同的DRM模式为受权限对象保护的和未受权限对象保护的内容提

供了一个统一的操作模式。对于设备制造商、内容拥有者和互联网数字媒体供应

商而言,Android提供DRM Plug-in结构,使Android系统能够支持不同的DRM方案。

我们也可以从图2-3中更加清晰了解Android所提供的DRM的结构层次:

图2-3 Android DRM详细结构层次

8

从上图可以看出,Android提供了一套Java Leve丨的DRM API,这套AM存在

于Android的开发工具包SDK中。同时也实现了一个C/C++和Java level的DRM

Manager,各个具体DRM方案的实现则是以Plug-In (插件)的方式link到DRM

Manager,这些插件存在于Android系统底层源码中[i7]。版权提供商或设备制造商

根据实际需要的DRM标准来实现DRM Plugin插件;而APP应用程序幵发者则通

过调用标准封装的DRM API幵发实现相关应用程序。Android DRM API 存在于

Android SDK(软件开发工具包)的 package中,提供了一系列的接口与

类。

在Android 4.0中,提供了支持OMA DRM VI .0的DRM plug-in,相关代码存在

于Android源码的以下目录中:

frameworks/base/media/java/android/drm/mobilel

frameworks/base/media/libdrm/moblilel

从 Android 操作系统来看,Google 的原生 Android (Android Open Source

Project,简称AOSP)系统仅仅集成了 OMA DRM VI.0的Forward Lock功能作为

plugin demo,但就功能而言,Forward Lock版本较为简单,并不能构成一个全面的

DRM系统。因此,版权所有者若想在Android平台中集成DRM系统,需要自己另外

选择合适的DRM标准,并在Android DRM框架内实现。例如,Google就提供了

Widevine DRM标准软件包,如需采用该DRM标准只需向Google申请授权,就可以

将Widevine集成到自己的Android设备中来。

虽然Android提供了 plug-in的机制,允许不同厂商定制符合自身需求的DRM

系统,但是由于商业目的,为了更好的推广Google自身开发的Widevine DRM,并没

有公开DRM plugin开发的相关文档资料,Android DRM framework在Native层的运

行流程,接口设置,功能实现需要我们自行研究摸索。

DRM Framework API 层研究

Androd DRM Framework架构为不同的DRM标准提供了一套统一的、抽象的

DRM API接口,隐藏了底层复杂的DRM算法与调用过程,简化了 DRM的使用方法,

方便上层APP开发者统一调用。统一的DRM API接口由若干类与函数构成,提供

了典型DRM模型使用过程中需要的各个接口。

类与接口介绍

Androd DRM Framework API 主要在 package 中呈现,其中其包

括的具体类与接口如下所示。

接口(Interface):

1. rListener

该接口定义的回调函数用于接收DRM框架发生的错误

agerClient. OnEventListener

该接口定义的回调函数用于接收DRM处理事件的信息

Listener

9

该接口定义的回调函数用于接收在注册和权限获取过程中的状态信息和警告

信息

aintsColumns

该接口定义的属性表示DRM的限制(constraints)

类(Class):

1. DrmConvertedStatu

它是一个实体类,用于打包转换后的数据,转换状态和偏移量(该偏移量用于添

加包头和数字签名)

2. DrmErrorEvent

它是一个实体类,传递给onErrorO回调的函数

3. DrmEvent

一个基类,用于为DRM框架发送异步事件信息

4. Drmlnfo

一个实体类,用于描述在设备和在线DRM服务器之间发送交易的信息

5. DrmInfoEvent

传递给onlnfoO回调函数的实体类

6. DrmlnfoRequest

一个实体类,用于传递信息给在线DRM服务器

7. DrmlnfoStatus

一个实体类,用于打包设备和在线服务器之间通信的结果

8. DrmManagerClient

DRM框架中最重要的编程接口

9. DraiRights

一个实体类,用于打包从在线DRM服务器上检索得到的许可证信息

10. DrmStore

定义在DRM Framework中用到的常量

11.

定义能够在受权限保护的对象上使用的动作

12. ectType

定义DRM对象类型

13. ck

定义对象的播放状态

14. Status

定义数字版权的状态通告

15. DrmSupportlnfo

一个实体类,用于包装每个DRM Plug-in(agent)的功能,比如DRM Plug-in可以

处理的MIME类型和文件后缀

10

16. DrmUtils

一个工具类,提供如下操作:解析嵌入在DRM约束信息中的扩展元数据

17. edMetadataParser

一个实体类,用于解析嵌入在DRM约束信息中的扩展元数据

18. ProcessedData

一个实体类,用于打包processDrmlnfoO在设备与DRM服务器之间处理后的结

利用这些类与接口,可以管理DRM内容,决定DRM plugin的能力,其中

DRM API的主要功能如下:

1.判断设备上安装的是哪一类DMR plug-ins (agents)。

2.检索特定plug-ins的信息,如它们所支持的MIME类型和文件后缀类型。

3.通过在线的DRM服务去注册用户或者设备。

4.为受权限保护的内容检索许可证约束信息。

5.检查用户是否有适当的权限去播放或者使用受版权保护的内容。

6.将受保护的内容与相关权限相关联,这样就可以使用MediaPlayerAPI来播放

内容。

2.3 SQLite简介

SQLite是d Hipp用C语言编写的开源嵌入式数据库引擎。它支持大

多数的SQL92标准,并且可以在所有主要的操作系统上运行。SQLite由以下几个

部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数

据库引擎(VDBE),是调试、修改和扩展SQLite的内核变得更加方便。所有SQL语

句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。

在事务处理方面,SQLite通过数据库级上的独占性和共享锁来实现独立事务

处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可

以写入数据。在某个进程或线程想数据库执行写操作之前,必须获得独占锁。在

获得独占锁之后,其他的读或写操作将不会再发生。SQLite采用动态数据类型,

当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不

匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为

本身的类型存储,SQLite称这为“弱类型”。但有一个特例,如果是INTEGER

PRIMARY KEY,则其他类型不会被转换,会报一个“datatype missmatch”的错误。

概括来讲,SQLite支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,分别代表

空值、整型值、浮点值、字符串文本、二进制对象。

2.4 SQL语言

SQL(Structured Query Language)语言是一种介于关系代数与关系演算之

11

间的结构化查询语言,其功能不仅仅是查询,SQL是一个通用的功能极强的关系数

据库语言。SQL语言集数据查询﹑数据操纵﹑数据定义和数据控制功能于一体

[5]

SQL的主要特点包括以下几点:

1.综合统一:SQL语言集数据定义语言DDL﹑数据操纵语言DML﹑数据控制语

言DCL的功能于一体。语言风格统一,可以独立完成数据库生命周期中的全部活

动,包括定义关系模式﹑插入数据建立数据库﹑查询﹑更新﹑维护﹑数据库重构

﹑数据库安全性控制等一系列操作要求,这就为数据库应用系统的开发提供了良

好的环境。用户在数据库系统投入运行后,还可根据需要随时地逐步地修改模式,

并不影响数据库的运行,从而使系统具有良好的可扩展性。在关系模型中实体和

实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一,

查找﹑插入﹑删除﹑修改等每一种操作都只需一种操作符,从而克服了非关系系

统由于信息表示方式的多样性带来的操作复杂性。

2.高度非过程化:用SQL语言进行数据操作,只要提出“做什么”,而无须

指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作

过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3.面向集合的操作方式:SQL语言采用集合操作方式。不仅操作对象﹑查找

结果可以是元组的集合,而且一次插入﹑删除﹑更新操作的对象也可以是元组的

集合。

4.语言简捷,易学易用:SQL语言功能极强,但语言十分简捷,完成核心功

能只用了九个动词,SQL语言接近英语口语,因此容易学习,容易使用。

2.5 Eclipse简介

Eclipse是著名的跨平台的自由集成开发环境(IDE),最初主要用来Java语

言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的

开发工具。Eclipse原本只是一个框架平台,提供插件开发环境(Plug-in

Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件

开发人员,允许构建与 Eclipse 环境无缝集成的工具,众多插件的支持使得

Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。由于 Eclipse 中

的每样东西都是插件,给 Eclipse 提供插件,为用户提供一致和统一的集成开发

环境,使所有工具开发人员都具有同等的发挥场所

[7]

1. 文件存放

Eclipse将源代码以文本方式保存。

安装Eclipse之后,在安装路径的下一层路径中会有一个work space文件夹。

每当在Eclipse中新生成一个项目,缺省情况下都会在work space中产生和项目

同名的文件夹以存放该项目所用到的全部文件。可以用Windows资源管理器直接

12

访问或维护这些文件。

2. Eclipse开发环境

Eclipse开发环境被称为Workbench,它主要由三个部分组成:视图

(Perspective),编辑窗口(Editor)和观察窗口(View)。编辑窗口,所有文

件的显示和编辑都包含在编辑窗口里。缺省情况下打开的多个文件是以标签

(TagTable)方式在同一个窗口中排列,可以用拖动方式将这些文件排列成各种

布局。方法是拖动某一个文件的标签(tag)到编辑窗口的边框,当光标有相应的

变化时再释放。

3. 编译与运行

在Java视图中,工具栏中有两个按钮,分别用来进行调试和运行。并且可能

由于安装的插件不同,Eclipse会存在多种运行/调试程序的方式,为了确定当前

项目用那一种方式运行,需要在项目的属性选项中的设置Launcher Run/Debug选

项。通常我们需要用的是"Java Application"方式

[8]

。在这种方式下,如果当前位

置是包含main()方法的Java程序,点击调试/运行按钮就会立即开始执行调试/

运行功能。如果当前位置是在包或项目上,Eclipse会搜索出当前位置所包含的所

有可执行程序,然后由程序员自己选择运行那一个。

在目前的Eclipse的Release和Stable版本中缺省安装了插件开发环境

(Plug-in Development Environment,即PDE,它本身也是一个插件),此时系

统除了"Java Application" 运行方式,可能还有另外两种方式:"Run-time

WorkBench"和"Run-time WorkBench with Tracing",当用PDE开发插件的时候会

用到这两种运行方式。

4. 版本管理

可以把Eclipse的版本管理分为个人(或称为本地)和团队两种。Eclipse提

供了强大的个人版本管理机制,每一次被保存的更改都可以得到恢复。而且可以

精确到每一个方法的版本恢复。操作也十分方便,在任何一个能看到所要操作文

件的观察窗口中,例如资源浏览窗口,选中该文件,点击右鼠标键,选择Compare

with或Replace with,如果是恢复已经被删除的方法则可以选择Add from local

history,之后相应的本地历史记录就会显示出来,按照需求找到相应的版本就可

以了。Eclipse缺省为版本管理工具CVS提供了接口,可以非常方便的连接到CVS

服务器上。

2.6 Android模拟器

SDK 自带一个移动设备模拟器,它是可以让开发者不需使用物理设备就可以

可预览、开发和测试 Android 应用程序

[6]

。 Android 模拟器能够模拟除了接听和

拨打电话外的所有移动设备上的典型功能和行为。如图 2-4 所示,Android 模拟

器提供了大量的导航和控制键,开发者可以通过鼠标或键盘点击这些按键来为你

13

的应用程序产生事件。同时它还有一个屏幕用于显示 Android 自带应用程序和开

发的应用程序。

图 2-4Android SDK 自带的模拟器

14

东北石油大学本科生毕业设计(论文)

第3章 系统的需求分析

需求分析是软件工程中的一个关键过程。在这个过程中,软件工程师确定顾

客的需要。分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统

功能

[9]

3.1 需求分析与安排

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、

技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能

够得到的最好的技术方法结合起来的学科。它最终目标是以较少投资获得易维护、

易理解、可靠、高效率的软件产品,虽然它的方法理论建立在计算机软件的开发

之上,但是对于移动终端的应用开发同样适用。

本次课题开发按照软件工程的指导思想进行,将整个开发过程分为:需求分

析、结构设计和功能实现三个阶段。需求分析是任何系统开发的第一个阶段,是

理解用户需求,就软件功能与客户达成一致,最终形成开发计划的一个复杂过程。

通过需求分析,必须回答开发的移动学习终端平台“做什么”的问题,这直接关

系到软件开发的成败。

3.2 系统可行性分析

需求分析的第一件事情就是决定是否建立一个系统,也就是要进行系统的可

行性分析。可行性分析从操作可行性、技术可行性和经济可行性三方面着手。操

作可行性分析系统是否符合总体目标;技术可行性考虑系统是否能在现有的技术

条件、预算和时间限制内完成,能否与已经存在的其他系统集成;经济可行性考

虑该项目的实施是否具有经济效益。

目前随着移动 3G 已经开始商业运营,完全能够满足复杂移动在线考试平台

对数据传输的要求,另外随着智能手机的发展,新一代的智能手机平台——

Android为移动在线考试平台的实现提供了高性能的终端设备和完善的开发与测

试工具,该平台在技术上已经具备开发条件,预计该项目若进一步改善和应用,

15

东北石油大学本科生毕业设计(论文)

应该能够对相应的移动在线考试开发会起到一定的推动作用。

3.2.1技术可行性

移动考试系统采用C/S模式开发适合手持设备使用的客户端软件以及在WEB

服务器上部署的服务器软件。

该系统充分按照简单使用性原则设计,客户端软件简单易用,同时充分考虑

到无线网络和手持设备的特殊性,最大化的利用网络资源。在设计功能的同时,

考虑到系统的可伸缩性;在设计和代码的实现上,给程序预留了可扩展的接口,

以便需要时可以快速的增加上相应的功能。

3.2.2 经济可行性

随着经济的发展,信息化管理势在必行。基于Android的移动在线模拟考试系

统的用户无论是在任何地点。只要通过搭载有该客户端的Android手机就能随时随

地的登陆系统进行考试。从而使用户远离的纸化考试的束缚,移动在线考试能满

足大多数人的需求,经济投入少。而采用基于Android 平台进行开发经济实惠,

市场占有率高,可选择余地大,价格便宜。

3.2.3 操作可行性

客户机/服务器 (C/S)结构,是大家熟知的软件系统体系结构,将任务合理

分配到客户端和服务器端。其中,服务器端主要提供数据管理、数据共享、数据

及系统维护和并发控制等,客户端程序主要完成用户的具体的业务,省去了中间

的其他环节。从而,提高了系统的响应速度,降低了系统的通讯开销,但是需要

安装客户端才可进行相应的管理操作。

同时,在C/S架构中客户端与服务器之间相互分离,可以对客户端进行单独

的设计。使客户端的操作界面漂亮、形式多样,可以充分满足客户自身的个性要

求。且此结构还具有较强的事务处理能力,能实现负载的业务流程等优点。

因此,鉴于C/S架构的优点、手机操作系统、网络速度以及当前大多数Android

手机应用都采用C/S架构的考虑。基于Android的移动在线模拟考试系统采用客户

端/服务器(C/S)结构

[10]

16

东北石油大学本科生毕业设计(论文)

3.3 系统功能分析

移动在线考试系统基于现有的网上考试系统的数据库,设计目的就是将现在

教育与社会发展充分结合起来,简化现在考试的流程和减少考试过程中人力投入,

实现无纸化教育,从而降低教育的成本,促进现在教育方式发展,为广大的师生提

供随时随地方便快捷的考试和查询成绩等功能。以原有的考试系统为基础,在不

影响原有系统正常运行和使用的情况下增加通过手机考试的功能以扩充原有的考

试系统,使考试的方式更加的灵活方便,且考试不受地域场所的限制,老师随时

上传题目、安排考试等功能,同时也分流了B/S模式下服务器超负荷的压力。

移动考试系统—管理员模块系统总共包含六个功能模块:系统登录、考题管

理、考试安排、报名管理、成绩录入和用户管理。

系统登录:通过输入用户名和密码验证合法的身份,避免了恶意登录系统的

情况。同时根据用户名提取满足其要求的信息

考题管理:管理员上传题目。

考试安排:管理员输入有关考试的相关事项。

报名管理:管理注册的用户信息。

成绩录入:管理员根据用户答题情况上传分数

用户管理:修改该用户信息,添加新管理员。

移动考试系统—用户模块系统总共包含四个功能模块:报名考试、报名信息

修改、查看成绩、开始考试。

报名考试:用户在线报名考试。

报名信息修改:用户自己修改自身信息。

查看成绩:用户考试完成后成绩查询。

开始考试:用户开始答题。

17