聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 基于android的考试系统设计与实现

基于android的考试系统设计与实现

时间:2016-08-25 22:19:05    下载该word文档

word/media/image1_1.png

毕业论文

word/media/image2_1.png

题 目:基于android的考试系统设计与实现

姓 名:

word/media/image3.gif学 号:27

word/media/image4.gif指导教师(职称):吴玫(讲师)

word/media/image3.gifword/media/image3.gifword/media/image3.gifword/media/image3.gifword/media/image3.gif专 业:软件工程

班 级:2012软件工程02

所 在 学 院:计算机科学与工程学院

2016年6

学生姓名

指导教师 吴玫




考试作为检测教学质量以及判定学生收获程度的一种方法,多年以来被各大高校所普遍采用。传统考试方式指导教师从出题、打印试卷、组织考试、评阅试卷等流程下来既费时耗力,又易出错。而且紧张的考试氛围不利于考生的正常发挥,影响老师对学生学习程度的判断,降低教学效率。

伴随着移动互联网技术的快速发展,android手机等移动设备迅速融入人们的生活,使得人们的生活工作方式变得更加方便快捷。本文结合android手机等移动设备在高校的快速普及从便于在校学生考试、学习基本理论知识的角度考虑,设计了一套基于android平台的考试系统。该系统基于Android系统开发,利用Android系统手持便携设备(如:“智能手机”、“MID”“平板电脑”等)不需考生额外的额外的投资,不仅可满足考生随时随地针对性学习的要求,而且使得无需被紧张的考试氛围所影响全身心的投入考试中发挥出自己的水平

关键词:模拟考试系统便携设备基于android


Abstract

The system is a simulation test system based on android. This system mainly aims at is college students to carry out some of the basic theoretical knowledge of test system, some students do not want to open their own computer. At the same time, they don't want to go to classroom or examination to the paper version of the exam or some simulation test system of the disc area user. The system is based on the Android system development, using the Android system in handheld portable devices (such as: "smart phones", "mid" "tablet") and the popularity of advantage, to the user to provide convenient, comprehensive and has in practice, allowing the user to enter before the exam will be able to cope with the candidates in the examination of a variety of topics.

Key words: analog test systemportable equipment based on Android

第一章

1.1 课题背景

论文准备设计的课题是基于android考试系统。随着移动互联网技术的快速发展,现在不管是在高中还是大学,人们的学习和工作方式变得更加的智能化,同时出现考试系统也多种多样。其中最常见的考试系统是计分考试模拟考试。这些系统一方面可以提高工作效率,例如自动计分系统。利用该系统考生只需要做完题目,之后系统会自动根据做题情况出分数这样可以省去了大量的人工阅卷时间。另一方面该学习系统可以方便人们的学习本次论文设计目的是设计实现一种网上考试系统。学生通过在线登录的形式来进行考试。现如今利用该种考试形式有很多如驾照考试中的科目一和科目四,就是学员通过在线登录形式进入考试系统进行在线答题当答题结束提交试卷后,系统会自动给出开始成绩该种考试形式不仅方便快捷同时不用纸质版的试卷节约考试成本但是这种系统是java与数据库的相互结合不能满足通过大量的调取数据库来进行出题的要求本论文设计app可以储存大量的数据库(至少有几千道题系统自动通过数据库来调取题目给考生作答此外,此套系统可以考生答题结束后给出一个分数界面,方便考生了解自己的得分情况

1.1.1 研究基于android考试系统的目的

随着科技的发展,人们一天所能产生的数据量是非常大的,这就是大数据[1]。而如今人们为了解决大数据,推出了云计算帮助大家在网上多事情。同时,随着高校学生数量的不断越多,这对于统计高校学生的情况增加了困难[2]为解决上述问题,本文设计了基于android的学习系统里的基于android的考试系统。即考生可以通过登陆本文设计的考试系统,在网络上完成考试。这样不仅节省了老师们出题打印试卷的时间,同时也大大方便了学生。考生只需要有电脑不论身处何地都可完成这样的考试。还有,考生在完成考试以后可通过软件可以知道自己考试成绩错题仔细的进行分析,这同时也大大解决了大数据的问题。如果高校都有类相似的考试系统,那么将考试效率。这就是本文设计该考试系统的目的

1.1.2 基于android考试系统的意义

该套基于android平台的考试系统方便可以帮助在校生学习,提高老师工作效率。另一方面该套系统可以给高校甚至我们自己一个启示,在日常的工作学习过程中,在很多方面我们可利用app来帮助我们,比如高校可利用签到系统进行考勤学生可利用支付宝等支付软件进行校园消费等。虽然现如今好的科技产品层出不穷,但普及率却很低,如现在大部分学校好在坚持传统考试方式使用纸质版试卷

1.2 发展状况

1.2.1 Android在国内外发展状况

随着科技的快速发展, android系统越来越受到广大们的关注,据统计全球约有有七分之一的人在使用android手机[3]个比例可以说是非常庞大,而且这一比例在不断增加。现在除北美地区大部分手机用户使用ios系统之外,android系统的手机已经成为全球主流的系统,而且发展前景良好

Android系统能被大家普遍的接受不仅仅源于手机设备的支持,还在于android系统本身的巨大优势Android是一个相对开放的系统,而且完全开源,无需花钱购买权限开发者只需要精通android开发语言就可以对进行编程[4]因此使得中国以及日本等多家软件公司都是利用android平台进行开发由于android系统的开源加速了android平台软件的更新速度在软件方面,原来可能我们可能感觉无法实现的游戏或者高科技软件相继问世。比如支付宝软件该软件不仅可以完成支付转账功能,也可使的用户无需出门就可完成水电费的缴纳

Android系统相比其他操作系统易上手,更具人性化同时由于Android的开源,使得android设备的价格更加的亲民,更容易被普通群体所接受

从技术讲android系统相当于一个linux系统的辅助产品,然而相对其它开发系统来说,linux系统使用者较少,所以这对于android系统开发来说,是一个挑战。如何解决好这个挑战则成为了不可忽视的难题。

1.2.2 Android软件开发的趋势和前景

目前就android的发展而言,它的方向一般有两类,一类是偏向硬件驱动,另一类是偏向软件应用[6]如今,越来越多开发者偏向于后者,选择使用编程语言来进行android的开发,这也源于市场应用软件的大量需求基于android系统巨大应用软件市场需求这也使得和android系统相关行业从业人数需求大大增加,也促使众多人学习android开发语言从事这一行业。所以,目前来看,android这方面的人才还是可以找到很好的工作的。从事安卓开发行业就业压力不会太大,但技术是本行业的基石,必须注重对自己技术的提升不断完善自己,才能有更好的未来。

随着科技的不断进步和发展,手机的普及率越来越高,也因此带动android手机游戏行业的快速发展。如果人们更多的关注手机行业的发展手机开发市场的前景会更加的光明手机发展的优势也可归为以下几种原因。

1. 庞大的潜在用户群

正如前文所提到的,android系统手机具有非常高的使用率,是造成手机开发市场具有很大发展前景的一个很重要的原因。全球将近七分之一市场占有率,使得android手机遍布世界每一个角落。

2. 便携性

游戏是现在人们生活不可或缺的一种娱乐方式。由于手机具有便于携带的特点使得人们不论街头等人还是身处嘈杂的公交车,都可方便的玩自己喜欢的手机游戏电脑游戏相比,手机游戏虽然操作性较差,同时画质也不好,但手机游戏可给使用者短暂的放松消除满身的疲惫这是电脑游戏所无法满足的。这也使得越来越多的群体选择手机游戏来而不是电脑游戏

3. 支持网络

由于手机是网络通讯设备,人们可以随时随地的用手机上网进行聊天玩一些掌上游戏等。这极大的方便了人们的生活。

4. 手游占比逐年增长

近年来随着手机游戏的快速发展在全球游戏市场占有率也越来越高。随着越来越多从热播电视剧中移植来的手机游戏使得大家对手机游戏更加热衷。人们不仅可以从电视剧中了解到人物关系更好的玩游戏,也可以从游戏中加深对电视剧剧情的理解无形中推动了手机游戏的发展[5]这也是android系统市场占有率越来越高重要原因。

1.3 论文的研究内容

本文设计的基于android系统考试软件是一个可实现在线考试app考生可通过自己注册的账号登录系统完成考试。每当考生完成一道题目后,系统界面会自动出现下一道题目,当完成考试提交试卷老师可以通过网络在线批阅试卷

1.4 论文结构

本文利用android平台,设计了一款在线考试软件,以帮助学生可以更便捷的检验自己的学习情况,以便更具有针对性的学习本文具体工作如下

第一章:本章主要介绍课题的背景和意义以及android系统的国内外研究现状,并对论文的研究内容做了简要概述

第二章:本章主要介绍完成此次毕业设计所用到的一些基本工具,包括开发工具eclipse和数据库sqlserver

第三章:本章主要主要介绍了基于android的考试系统可行性分析和系统需求分析。此外简要介绍了本次考试系统任务目标运行环境

第四章:本章主要介绍了系统总体设计方案

:本章主要介绍了各个界面的详细设计方案

章:本章主要通过实例对所设计考试软件进行了测试,验证了方案的可行性

章:本章对论文以及大学四年学习生活进行了一个总结

1.5 本章

本章为全文的第一章,主要介绍了本文选题背景目的和意义。同时还介绍android系统的发展概况,使得大家更加容易的了解android同时为说明了论文的主要内容和整体结构规划


第二章 工具概述

2.1 Android概述

2.1.1 前言

课题的选择原因基于现在全世界使用android的人越来越多而且基本上使用android的人和使用ios的人差不多android作为大众长期使用的一种操作系统在使用方面有着特有优势。现在全世界大型的公司基本都使用android操作系统例如三星华为小米公司等[7]这些公司正是看在android系统的可靠性上选择使用它消费群体选择android系统是因为android操作系统迎合了市场需求[8]。这些市场需求就是android公司通过不断开发研究出的一种特殊产品,这种系统非常智能化,同时通过使用这种系统可以完成很多以前实现不了的功能

论文中的app就是基于android系统来完成的通过虚拟机在系统上模拟显示出一个手机界面并且建立的app也可以在这个界面上运行操作非常方便

2.1.2 Android的组成部分简介

Android系统由很多控件组成,而这些控件分别负责不同的功能,正是有了这些功能,才满足了用户对多样功能的需求[9]。其中android系统主要组成元素有很多,例如:android系统的内部核心,android控件的特殊的一种压缩形式,硬件当中则包括硬件抽象层,而软件则需要中介才可以运行,最后还需要一种安全形式来对软件进行维护,们相互不断地工作,进而组成了这种高效的android操作系统[10]。下面具体介绍它们各自的功能和组成

1. 系统内核

众所周知android最初是依赖于linux系统而创建的linux系统不同于广泛所使用的windows系统linux系统可以更好地进行代码的开源工作而且这个系统在开源性方面要比windows系统[11]开始android系统也是这样因为开始android系统的不确定性程序员要不断地修改正是这些修改不断完善着android系统的功能虽然android系统是依赖于linux系统的但是它的本质还是和linux系统有着很重要的区别有些不常用的软件支持android系统但不支持linux系统相反也有些软件支持linux系统而不支持android系统[13]这是因为linux除了android还有其他的方面,而android只是用linux所开发的,并不是所有的android项目都可以在linux上运行。这也是两者的区别。这种区别造成了现在android主要应用于手机,而linux主要应用与电脑。

2. 后缀简介

在虚拟机上安装完一个app通常可以看见apk结尾的控件APK是后缀名它是专门针对android应用程序的同时它本身是android的安装包。就像word文件的后缀名是.doc一样,apk也是android系统的后缀名。同时APK是一种文件格式。用户可以通过安装这个app到虚拟机来运行自己apk文件同时这种apk文件使用起来非常方便,进而对这种app的使用有了更好地了解

每当android程序需要运行apk工具的时候可以使用android的解压工具来解压缩同时用户可以像安装其他软件一样安装apk工具这样使用起来会很方便但是通过这种方式安装的应用和传统的所说的Windows端的PE文件是有区别通过这种方式安装新文件尽管安全性和保密性不高但是可以通过反编译原理来解决这个问题

Android平台中的vm的文件会自动生成apk文件以便方便人们可以很好的安装和打开最终运行这个文件的时候,会自动生成一个名字叫做androidmanifest.xml文件,从名字可以看出,这是一个以xml为后缀的文件,同时这里的文件具有xml文件的特性。用户在运行这个文件的时候仍然存在着很多特殊的要求。用户需要了解它的安全特性,同时,这个文件在一种特殊的情况下执行是不受限制的。

虽然用户平时安装的文件与所需要的文件夹有差异但是最终它也会自动安装在用户所需要的文件夹中,同时用户自己可以利用管理员的身份来访问它

3. 硬件抽像层

硬件也是android中不可缺少的一个部分每当用户需要使用或者了解一个系统时候除了软件以外硬件往往也是备受关注的同样android的硬件也是必不可少的组成android的硬件包括了本身的android框架同时还包括一个抽象层这个抽象层会让android框架和本身的kernel框架进行分开android可以独自进行工作而kernel也会独自进行工作,二者相互独立而不是相互依赖。同时android框架可以实现更好地发展

4. 中介软件

在程序中计算机的操作系统需要时不时地地与应用程序进行沟通和交流交流分为两层进行函数层和虚拟机运行android程序都需要有虚拟机因为要在电脑上模拟出这个软件在手机上是如何应用的状态 Bionic Android 改良libc的版本。Android同时还包含了一种通常在iphone手机中使用的引擎safari这种浏览器引擎的功能非常强大包含了普遍使用UC浏览器的功能还可以所看到的立体的一些事物或者新闻实现到浏览器中,使用起来方便快捷

Android采用OpenCORE作为基础多媒体框架。这个框架是模拟机进行调试程序时必不可少的部分。

Android 是可以搭配OpenGL一起使用同时它是以skia为主流的一种流行的图形引擎OpenGL是计算机图形学中必不可少的一个软件可以对图形进行编辑使其完成应有的效果。在android系统中,通常采用编程的数据库为SQLite,但是也可以采用SQLServer或者access数据库来进行编程。数据库分为很多种通常把数据库分为两类一类是共用数据库可以共享数据库中的内容一起使用它另一类是私有数据库当用户有一些重要的东西需要进行保密处理的时候这种私用数据库就会派上用场管理员通过私有数据库来对这些数据库进行加密处理只有通过了解码才可以访问它同时程序员可以使用特殊的类来访问这种共用数据库以取得一些自身所需要的信息

程序员在进行编程的时候很多的语言可供选择,比如C语言C++语言android常用的语言便是Java语言,同时要在android系统中运行Java语言需要借助虚拟机的帮助,而虚拟机就是运行android项目的一个平台。而当这些变量都放到这个虚拟机中的时候,系统就会减轻压力,因为系统的任务将会大大减少。

Dalvik虚拟机是由多个实例(Instance)来构成每一个特定的Dalvik虚拟机可以运行一个android程序这样做可以让android程序变得更加灵活人们可以更好地使用这个程序这种虚拟机和java语言还是有很大差别的android项目的本质是一种叫做apk的文件而这个虚拟机的本质是对一种后缀名为dex的文件进行运行

5. 安全权限机制

和其他的系统一样android也是一个操作系统而且这个操作系统有着他特有的特性,所以android也是一种独立的系统。它有着自己的权限当访问android一些自身很隐私的东西的时候系统会提示用户需要root其实root就是权限的意思它是管理员才具有的一种加密方式用户只有获得了root才可以对android系统中的一些特殊的文件进行访问同时获得自己想要的信息。这样做的原因是管理员可以保证android系统的安全,同时也可以保证这些文件不会被一些特殊人士所访问。这种方式大大增加了android的安全可靠性。

通常所说的android的核心架构是指:当没有权限的时候很多人无法访问一些文件而当管理员解密了这些文件有需要的人便可以访问它这其中包括一些隐私的应用和数据等

2.1.3 Android平台优势

我们介绍一个新的系统,这个系统的利弊备受关注的,同样android也有很多的优势,这些优势正是很多人选择使用它的原因在使用android的时候,用户需要把这些优点一一发挥出来。

首先每当提及android的时候我们最先想到的是它具有很强的待开发性很多人都可以通过代码来对它进行开发因为这种开发可以使得他们有更多的资源同时android的系统是基于linux系统而存在的所以这对于程序员们来说可以进行开源的就是说程序员可以对他们的代码直接进行修改样对程序员来说是很重要的。同时这种平台允许移动终端开发进来,而且如果更多的移动终端加进来,那么这个系统就会越做越大,最后可以走向一个巅峰。这个巅峰是非常重要的,因为它可以促进更多程序员参与到android工作的开发

android系统具备一定的开发性这种开发性会给android平台带来很多优势,人脉的积累就是其中很重要的一点。只有有了人脉才可能进一步的开发从而才会有更大的市场需求只有消费群体相信android平台可以推出好的产品并且可以获得消费群体的无条件信任时android才可能成为一个人尽皆知的品牌

第二点的优势也是基于android的开发性来说的。基于android的开发性很多公司会推出不同的产品正是因为每个android的产品不同这些产品可以生存下去的原因不尽相同硬件不同有可能不同的公司的产品在功能上也不尽相同,但是本质兼容性是不变的。这要归功于android强大的内核,这种强大的内核造成了各个产品功能不同,但是基本属性是一样的。例如,原来使用android手机的用户突然不想使用android手机可能会换成iphone手机。当手机中的一个软件的兼容性不变如果这个软件兼容android就会iphone手机无法使用

Android平台的本质是提供一个更加自由宽松的不受限制的环境给新的开发商使用android开发的语言有很多种其中最常用的便是Java它可以实现很多需要的功能例如编程工具中模拟一个andorid手机可以编写app代码对其进行进一步的编辑,这样可以更加迎合用户的需求但是有利就有弊,如何做到android平台一些暴力血腥的事件进行兼容仍然是目前面临的难题。

Google已经有了10多年的历史,在这10年中google从简单的搜索引擎发展到现在的强大功能引擎,用户可以利用Google做任何想做的事情。Google的飞速发展一方面与android的发展分不开另一方面则是源自于开发人员对Google这个系统不断地的完善android可以无缝对接Google服务使得android于用户来说是非常便捷的平台

2.2 Eclipse介绍

2.2.1 Eclipse简述

本文项目是基于一种常用的开发工具eclipseeclipse是一种可以让大家编写Java语言的代码工具和传统的编写java的工具editplus不同eclipse更加的强大eclipse可以对简单android程序进行编写同时可以用它进行一些开源的工作当需要修改代码的时候可以将代码粘贴到eclipse对它进行修改本文项目也是需要通过eclipse来对代码进行加工封装

同时文中所建app不仅需要eclipse作为铺垫虚拟机也是一个重要的部分每当安装一个虚拟机界面会模拟弹出一个类似于android手机的界面通过这个界面就可以进行对象的编辑和创建从而实现应有的功能提到eclipse就会联想到另外一种和eclipse相辅相成的工具JRE这个软件代表的android的最基本的内容如果没有安装这个工具就不能很好的运行这些软件,更不能很好的编写代码 并且eclipse还可以进行uml图的绘制等。

网页的制作也离不开eclipse需要后台运行一个tomcat服务器前端写好代码以后通过服务器或者apache传递给后台,后台对这些代码进行修改,这就是常说的Javaweb在代码方面,eclipse的优越性更加明显,因为它可以提示操作者哪里存在错误,有时也会提示操作者如何进行修改,以便操作者可以更好地对自己的代码进行把握和编辑Eclipse还可以作为其他与软件无关的工作的基础,帮助其他人员完成他们子人员的工作。

可以知道,Eclipse可以完成许多事情本文中做的app就是通过Eclipse来进行代码编写和调试的

2.2.2 Eclipse中必不可少的工具

eclipse中,如果想进行android的开发,必须要安装adtsdk这两种插件这两种插件都是基于对android开发必不可少的插件,同时这两种插件中还包括了AVD即安卓的虚拟机插件,大家只有进行安装虚拟机插件后才可以进行andorid程序的编写。同时虚拟机显示在电脑上,以方便调试工作。

2.3 Sql server2005数据库

2.3.1 数据库概述

文中项目需要做一个关于考试系统的app需要找个地方来存放考试题目这时候数据量很大但是平常大家的excel表只能存储少量一部分的数据这时数据库就发挥了很重要的作用数据库实质就是存放各种数据的仓库,当需要对数据库中的内容进行修改时,只需要编写最基本的语言就可以访问它,同时对它进行修改。这种管理数据的方法大大方便了管理员们现在的社会是一个高速发展的社会,而这种高速的发展促使一天中产生很多的数据,即所谓的大数据,而如果人们用了数据库的话,可以很好地存储这些数据[13]

在当今社会想要进行科学研究和决策,必须了解如何管理资源同时还要会合理地利用这些资源[13]数据库是解决这个问题的重要方法同时也是进行科学研究和决策管理的重要技术手段。本文建立的考试app就可以把考试题目都存放在数据库中,等到需要用的时候就是可以直接调用数据库进行存储

数据库就是存储电子文件的地方可以通过不同的方式来进行存储同时也可以对其中的文件进行增删改查的操作

数据库指的是把需要的数据用一种熟悉的方式来进行存储同时这种存储的方式又很简单,可以随时调用这些数据进行一个数据的编辑工作。

日常生活中,管理人员通常把一些信息放到这样的数据库中并根据管理的需要进行相应的处理。

例如:一个公们的员工的基本信息做一个统计(职工号,姓名,年龄,薪水,工龄),这时候就需要做一个数据库来统计这些信息,每个人统计单独统计不现实没有那么多时间和精力来进行这些事情。这时候,数据库就是非常重要的,数据库可以存储这些信息,并帮助使用者更好地了解信息,同时如果想要对这些信息进行增删改查,数据库也是一个不错的选择。这就是数据库存在的意义,可以利用数据库进行很多事情。

论文中使用的数据库是sqlserver数据库选择这个数据库是因为这个数据库可以更好地反映出对象和对象之间的关系众所周知数据库分为很多种例如access,oracle,这些数据库各自都有们本身的特点,而论文中用的数据库是sqlserver数据库,接下来简单这个数据库进行简单介绍。这个数据库是微软公司发布,它描述的是对象与对象之间简单的一种关系,同时这种关系可以在写代码的时候来现出来。基于对象与对象之间的关系才可以更好的完成代码编写。而sqlserver数据库可以很好的完成这个功能。

2.3.2 sql server2005特点

在了解一个数据库时候,除了要了解的优缺点之外,数据库本身的特点也是需要关注的sql server之所以可以立足在数据库行业,是因为它有很多独特的地方[14]接下来就重点介绍sql serve不同控件所带来的不同的效果。

1. NET框架主机
  sql server有着自己独特的框架主机结构,通过使用2005版本,开发人员可以使用visualbasic语言建立数据库对象这就是开发人之间将两个新定义的对象进行集合的过程。

2. XML技术
  xml技术在编程中使用很多同时在编写程序时候需要使用xml文件来调整layout以达到满意的效果而在数据库中xml文件同样适用当微软公司发布不同文件时这种语言则是一个很重要的评判标准,因为可以通过xml语言数据的进行存储和查询

NET2.0是对NET的一个全新升级,它可以对SQL提供新的支持,同时对MARS等工具进行数据的修改,存储和编辑以实现数据最大的灵活性和可靠性。

3. 增强的安全性
  SQL Server2005全新推出一种新型的模式这种模式的作用是将用户和对象分开,并且客户可以使用 fine-grainAccess进行存储存取等平时很难做到的工作、同时数据库允许对数据存取进行尽可能大的控制。还有数据库对数据中的数据进行另外的约束的方法是通过表格实现的

4. Transact-SQL的增强性能
  SQL Server2005还有一个很重要的作用就是为一些数据库网站提供了一种很方便的同时具有增强性的语言。这些增强的性能可以完成以前难以完成的工作例如处理代码错误问题、实现递归查询等最重要的是数据库在运算符方面的功能的强大它可以完成对运算符PIVOT和其他数据列排行功能极大的方便了客户的使用
5. SQL服务中介
  在数据库中sqlserver有很多的服务而这些服务可以将一些大型软件联系在一起论文中建立的app就需要这种服务中介来和文中最后呈现出来的app进行结合

6. 通告服务
  通告服务可以使业务变得更方便因为可以通过业务方法来建立非常丰富的通知软件同时这些软件可以向其他设备提供个人的信息和其他信息例如体育新闻招聘信息,考试信息等
7. Web服务
  使用SQL Server2005,开发人员可以利用数据库进行一些网络的开发工作web开发并且程序员还可以将SQL比作一个侦听器用来监听动态并且为网络服务中心提供一个现代化的数据存取

8. 报表服务
  在数据库中报表是必不可少可以通过报表服务来对数据库中的报表进行编辑工作同时这个数据库还有一个很重要的功能就是可以进行全文搜索而且在进行全文搜索的时候这个数据库中查询部分的代码会得到增强可以只通过一两个关键字就数据库中的对象进行搜索这大大提高了数据库的灵活性

9. Microsoft SQL Server 2005 组件

在数据库中有很多控件可以组成一个数据库而这些数据库组件中包括一种事务处理器大规模事务处理这种处理可以处理数据库中的数据同时进行分析数据修改数据和报表

10. 数据库引擎

数据库引擎可以对数据进行一些编辑工作包括存储数据处理数据以及对数据的进行加密工作管理员可以利用数据库引擎控制并访问那些原来管理员不知道的内容这就是常说的使用管理员权限打开,这种权限可以让一个公司中任何使用这台电脑的人都可以访问因此需要评估风险性

11. Analysis Services

这种服务是一种类似于分析的服务它可以对应用程序进行一个快速的分析这种快速分析可以很快的对数据进行一个更加公平的判断同时这种判断也会对数据处理有很大帮助

如果在数据库使用这个服务也可以对象有一个很好的分析和预判而这些对象都存储在访问的数据库中其中关系数据库是存储这些对象最多的地方因为关系数据库可以让要访问的数据源都处于一个单一模型中这种分析服务可以更加便捷地对模型进行分析,从底层到顶层,一点一点地用断点发来视图发现问题,然后管理员会把这些问题反馈到下一个模块,同时争取对其进行解决。

12. 数据挖掘

分析服务也可以利用通常不使用的一种方法来解决问题这个方法就是数据挖掘在生活中也经常使用数据挖掘算法进行一些工作,可以用它来进行数据的设计同时也可以创建并分析挖掘对象等,使用这种方式可以预测要挖掘的对象,同时还有一种语言也可以进行这种工作DMX语言,这种语言也是一种挖掘方法。这些工具可以组合使用也可以分开使用通过使用这些工具发现数据中存在的趋势和模式,然后对这些趋势和策略提出改进方法。

13. Integration Services

SQL Server 2005 Integration Services 是一种特殊的服务方式它也数据库中不可缺少的一部分

Integration Services是一种管理数据的平台可以用这个服务来进行下载文件或对复制文件这个服务还可以迫使系统更新数据库使用数据库的时候会自动弹出自动更新数据库等按钮这就和这个服务有关同时电子邮件也是此服务工作的方式它会将一些重要的通知通过电子邮箱的形式来发送同时可以了解最近有关数据库的一些概况等信息这个服务可以自己进行独立使用可以xml文件进行提取编辑,还可以通过这个服务同时加载一个或者多个数据

并且个服务还有一个很重要的功能进行服务转换这个服务可以将包中的内容进行管理和编辑。并且使用这个服务可以少写很多的代码。只需要对图形进行编辑就可以,既节约了时间,又可以达到需要的效果,可谓是一举两得。

14. 复制

复制是一种技术,它的作用是在数据库间进行复制和分发数据库对象,使得数据库间的操作具有一致性。使用复制可以将数据通过局域网、广域网、拨号连接、无线连接和网络分散到不同的地方从而形成不同的资源。SQL Server 提供的三种不同类型的复制:事务复制、合并复制和快照复制。

事务复制是最基本的一种复制方式它需要计算机有性能很高的服务器而这些服务器与其他的服务器相连形成一种新的事务这就称为事务复制合并复制则是为了处理数据之间的冲突而设计的当数据之间存在冲突的时候复制过程无法进行生活中也有这样的例子销售就是一种合并复制最后一种复制方法使用的不多但是同样不可缺少快照复制利用照片的形式对一些需要的东西进行复制这种复制方式很方便但如果数据很多不适合使用这种复制方式。这三种复制方式很常用因为SQL Server可以很容易的将数据进行复制同时使得系统的功能变强可以实现数据同步

15. Reporting Services

sql server2005中还有一种叫reporting services的服务方式。这种服务就是常说的报表服务。这个服务可以对表进行一个创建,编辑工作。同时这个服务也是基于android来进行的。用这个服务可以处理控件,处理数据源等。同时这个服务还可以与接口相连从而提供更多的关系数据

利用 Reporting Services,可以创建报表同时进行报表之间的一种切换还可以根据检索数据来计算打开报表所需要的时间Reporting Services 还允许用户创建报表,并且对表中数据进行一种查看和交换这对于开发人员来说是很方便的报表的方式有很多种常见的几种是桌面格式web形式等,程序员可以从这其中做出选择以数据打印的形式输出他们想要的报表

Reporting Services 的解决方案是基于浏览器的,可以通过几种不同的方法来对报表进行标准化处理首先对报表进行存储管理然后对报表模型进行安全加密最后控制报表如何进行处理和分布方式

2.4 Microsoft visio

在进行代码编写之前,需要进行uml图的绘制来保证代码的正常编写。这时候Microsoft visio必不可少的工具Microsoft VisioWindows操作系统下运行流程图和矢量绘图软件,它是Microsoft Office软件的一个部分。和rose一样在用visio的时候可以进行一些基本的uml图的绘制例如基本流程图用例图类图顺序图[15]这是编程中不可缺少的如果没有这些图的最开始的铺垫,将会很难进行一个完整的代码的编写同时可能会遗漏对象同时也可能对对象之间的关系没有一个明确的理解visio进行绘制的时候可以word直接插入visio可以节省了很多时间总之,microsoft visio有很多的优点值得去使用接下来重点介绍visio的一些特点。

visio是一种绘图工具使用的人很多如果想在word中插入自己的表格可以直接通过visio来进行画图最后只需要点击保存就可以将visio中的图放进word这种方式既高效又快捷管理员可以利用visio来绘制流程图统计图uml图等Uml在编程中必不可少的且要完成文档的撰写可以直接插入visio画的图表或者内容既方便又快捷

经常使用的visio的版本visio 2007因为2007版本足够符合现在用户的需求,同时2007也是用户反向很好的一个版本。

相比于其他的绘图工具rational roseposeidon)等visio有着独特的优势,首先下载起来很方便,因为属于office,和wordexcel一样,只需要下载office 就可以office visio 可以画很多的图,例如最基本的程序流程图类图,用例图等都可以通过visio绘制还可以通过使用 Office Visio Professional 2007 将图表与对象链接在一起从而可以不断地通过图表来对所绘制的对象进行智能化的修改和编辑

当通过visio新建一个模板可以根据模板来进行图形的绘制[15]通过 Office Visio 2007可以通过搜索来查找画图时所使用的图形这些图形都是常用的Office Visio 2007 提供了特定工具来满足不同人的不同需求做到物尽其用

使用一个工具的时候,需要了解工具的使用特点,然后才可以使用它选择一个图形的时候,都会有一个示例图,而示例图可以给大家一个很好的参考,同时通过示例图可以对要画的图做很多的评估。同时也可以对图进行一个修改。

同时在visio数据也是一个关键的部分需要将不同的数据放入表中用数据链接可以实现数据链接就是通过数据的方式将它强行压进表中这样当要使用表的时候也可以对其中的数据进行一个很好的编辑不需要再用连接的方式将数据和表进行连接因为visio新增了一个功能可以让自动完成这项任务比如说把表和数据库进行关联只需要通过自动链接完成即可极大的节省时间

使数据在图表中更引人注目。使用 Office Visio Professional 2007 中新增的数据图形功能,从多个数据格式设置选项中选择,以引人注目的方式显示与形状关联的数据。

轻松刷新图表中的数据。Office Visio Professional 2007 中的刷新数据功能可以自动刷新图表中的所有数据,这样就不用手动刷新从而浪费时间了。如果出现数据冲突,则可使用 Office Visio Professional 2007 中提供的刷新冲突任务窗格来轻松解决这些冲突。

大家通过visio可以很直接的看到一些很复杂的信息同时可以对这些信息进行一个识别和分析而软件开发人员通过这些信息可以对他们的程序进行一个很好的修改从而绘制出来一个都满意同时又很简洁的图这对后面的代码编写工作的帮助同时也可以更好的发挥出office visio2007的功能。

最重要的一个功能是通过visio所画的图可以更好地分析问题写代码也是这样牵一发而动全身如果图形不能很好的反映出想要表达的东西那就不能很好的进行代码编写工作但是visio的数据字典可以解决这个问题。可以通过数据字典来确定问题,同时也可以对问题进行一个分析,然后通过修改图来优化代码以达到最佳效果。同时visio可以直观地查看问题报告的信息,然后给出修改建议。这是很方便的。这种问题分析的功能可以快速的找出问题并解决减少在找问题上浪费时间

Visio 2010visio一个比较成功的版本相比于前面的visio版本有了很大的改进例如创建图表更加容易、提供更多的查找的形状、实现实时预览功能、自动调整图片大小、自动调整图片间距、增加Visio的其他服务等这些新功能极大的方便了用户使用这种工具,同时还在流程管理、SharePoint支持方面有很大改进

现在有了一些工具来替代visio,比如rational rose可以通过这个工具来自动进行代码的生成从而可以更好的节省代码。

2.5 虚拟机

2.5.1 虚拟机概述

在编程的时候,由于需要通过android系统来进行app的编写,所以需要一个平台来显示app,这个时候需要在电脑上免费下载一个android的虚拟机,来对虚拟机进行编辑,同时可以将要显示的app显示在虚拟机上。

通过在电脑安装一个类似于android虚拟机可以完成在手机上的所有功能例如聊天游戏等功能[16]所以编程时候虚拟机是一个不错的选择

虚拟系统可以生成一种和他具有相同能力的镜像,进入虚拟系统后,可以独立安装运行软件,保存数据,同时还可以进行数据的管理。通常会使用虚拟机和虚拟系统在使用时候要明白二者的区别虚拟系统不会降低电脑的性能,而且在启动虚拟系统的浪费很多时间[17]虚拟机可以运行更加快捷的运行程序虚拟机所能模拟的系统有限大家通过虚拟系统只能模拟其中一种常用的系统例如windows系统如果要运行的app与本身系统不同那么无法进行模拟。而虚拟机则可以做到这一点它可以模拟出其他种类的操作系统[18];虚拟机需要指令才可以完成,所以大部分人可能会选择虚拟机而不是虚拟系统因为虚拟系统的模拟的特殊性虚拟机的优点被无限放所以更多人可能会青睐虚拟机

2.5.2 虚拟机技术

虚拟机技术是虚拟化技术的一种,其本质就是将一种事物从一种既定的形式转化成另一种形式[19]最常用的就是虚拟内存就是用虚拟空间存储对象用虚拟内存可以使得计算机本来的内存扩大同时增加存储空间。但是在实际运行中,所需要的真正内存空间要远远大于物理内存,这个时候,可以利用内存的虚拟化来增加一部分内存,这样计算机就可以存储更多的内容,在使用计算机的时候可能更流畅,同时避免了卡顿情况的发生。这就在物理内存和虚拟内存中开辟了一条通道。通过这条通道实现两者的不断的转化。

早在六七十年代,IBM公司就曾经提出过虚拟机技术这个概念,只是当时这种技术并没有被人们所重视,虚拟机技术,顾名思义就是通过虚拟来完成一些功能,可以进行系统的模拟,同时也可以进行软件的模拟,这种技术给软件开发提供了一种新的方式。虚拟机监视器(Virtual Machine MonitorVMM)是虚拟机技术的核心,它是一种位于操作系统和计算机语言之间的工具[20]。它可以将硬件平台分割成多个虚拟机。VMM 运行在运行模式下的主要作用是隔离并且管理上层运行的多个虚拟机,使得他们相互制约并且可以判断出对底层硬件的用,并为每个操作系统虚拟设计一套独立于实际硬件的虚拟环境。VMM 采用某种调度算法在各个虚拟机之间共享 CPU,如采用时间片轮转调度算法

2.6 本章小结

本章主要介绍了常用的一些工具例如:android语言eclipse,数据库,和android虚拟机的介绍。这为论文以后的编程的工作提供了借鉴和帮助。



第三章 可行性分析和需求分析

3.1 可行性分析

传统考试要求指导教师完成考试试卷拟题、打印、统一组织安排考试等一系列程序繁杂的工作流程,不仅效率低,而且紧张的考试氛围不利于学生的正常发挥因此对高校现有的常规考试模式进行改进,设计一个在校生营造一种新的没有紧张考试氛围并且能够及时有效跟踪在校生的学习情况,合理分析学生的学习效果考试方式显得尤为重要

由于互联网技术不断进步,无线局域网新型网络的使用逐渐渗透到人们生活的各个方面使得高校管理方式也逐步信息化数字化。信息网络化时代下的在线网络考试可以说是对传统考核方式的重大改革。特别是随着移动通讯技术的快速发展,Android智能手机在各大高校快速普及,由此,设计了一款基于Android手机平台的考试软件传统考试比较不仅可以解决考生因紧张考试氛围过度紧张的问题,而且可以满足学生随时随地模拟测试需求。此外学生不但可以通过手机完成考试,也可以通过其它随身携带的移动设备完成考试,该考试方案具有便捷、高效特点。高校教师在教学中使用该方案不仅可以提高考试的工作效率也能够促进教学手段的信息化,能更好更便捷、更迅速的为学生服务。

此外在其它平台也存在类似的考试软件普遍存在掺杂其它插件,广告弹窗,交互界面不够友好等问题,影响考生考试发挥,降低做题效率针对上述问题,本文设计基于android的考试系统不仅没有掺杂无用插件而且还加大交互界面优化力度,使的界面简单、整洁、美观,操作使用方便,让考生全身心投入考试,无需分心操作以及界面问题

3.2 系统需求分析

需求分析常被应用于系统软件工程设计应用开发中,是指根据新设计的系统计划需要完成的功能而去改变某一应用程序的现状或当前模型。该过程是系统在开发设计阶段不可或缺的一个组成部分,也是设计中的一个重要过程。设计者可以通过需求分析来了解很多原来不清楚的一些内容在这个过程中,软件开发人员需要确定顾客的需求和问题以此针对这些问题拿出很好的解决方案来

本文所设计的系统是一个基于android的考试系统,考生通过进入考试系统答题的方式来完成考试,同时达到自我检测的目的。本系统是一个基于andorid的模拟考试系统,系统主要针对在校大学生去进行一些基本理论知识测试系统。本系统是基于android平台所开发,同时人们可以在有android系统的便携设备中运行本系统。给用户提供便捷、全面并且具有针对性的练习,使得用户能够在步入考场前就能够应付考生在考场中的各种题目。

本系统根据不同的科目设定不同的题库考生可以选择最基本的驾驶证考试,也可以选择一些自己专业的考试,例如:计算机,数学等。在驾照考试模式中,系统主要针对理论考试中出现的常识或者一些基本的理论知识进行考试,题库完全按照驾照考试大纲设计,学生们有很多个模式可以选择顺序练习,就是考生通过题库中给出来的顺序进行练习,同时也是考生对答案进行一个记忆的过程。随机练习就是题库中随机抽取题库巩固记忆专题训练主要是针对考生掌握比较薄弱的题目,进行重点的有效地测试,该模式可以更好的对考生掌握薄弱的地方进行巩固。模拟考试则是考生通过模拟真实考试的形式对自己进行检测,包括考试的记录时间和记录分数的工作。考试的错题本则可以让大家明白如何去进行有效的复习在系统联系模块中,该部分内容的学习不可一蹴而就,而根据自身的学习能力及学习水平,选择具有针对性的练习题循序学习的过程,进而实现能够顺利完成考试并且可以取得好成绩,而且系统基于Android便携设备这样也大大方便了考生的使用。

本模拟考试系统以Eclipse 3.6 + JDK 1.6 + Android SDK 2.2为开发环境并且用Java语言进行编程,通过编写验证了方案的可行性

3.2.1任务目标

Eclipse软件编程开发平台,设计开发一基于Android在线考试系统,任务目标主要有:

1. 通过算法的实现,完成基本模块的设计,包含有顺序练习、随机练习、专题测试及模拟考试等。

2. 设计包含试题随机抽取与组卷功能两个方面的应用

3. 设计包含评判功能及正确答案显示两个方面的应用

4. 模拟考试系统UI设计。

3.2.2 运行环境

1. Android 2.2系统 手机 或者 模拟器

2. Sansung Hummingbird CPU 1GHz ARM CORTEX-A8 C110

3. 512M RAM

4. DVGA960*640)分辨率

3.3 本章小结

本章主要主要介绍了基于android的考试系统可行性分析和系统需求分析。此外简要介绍了本次考试系统任务目标运行环境

第四章 系统的总体设计

4.1 系统的总体设计

程序设计可以理解为对类和UI布局的设计,其中对UI的设计将会在下一章提及,本章主要阐述程序类的设计。本课题设计的app分为以下几类,第一类是主界面main第二类是顺序练习类seq第三类是Rand(即随机练习类),第四类是科目类,学生们可以根据自身需要选择相应类别。同时增加errorlist错题本类,包含其内部所使用的用于存储功能的Data类、题目条款的Item类及XML解析类的设计。下面分别针对以上分类进行相应阐述。

1Main类:Main类是应用程序的入口,也是整个设计中显示Activity的实现类,主界面是其他类的基础,如果没有主界面,其他的类也不复存在Main的主要任务是控制及管理其他模块考生通过主类来进行其他类管理。考生可以在界面中选择练习考试错题等各种模式

2SeqRandSubject类:在Main设计中,根据初始化代码的不同分为顺序、随机和专题测试不同功能和类设计。此三部分类的功能均是用于练习界面显示的布局布设,且均是利用相同的test.xml来实现。除此以外,该三部分类在界面上同时实现了Button监听事件功能可以对题目图片进行显示设计和完成对用户的选择进行即时评分的功能。该三部分类间不可以相互调用,均通过基于Main类的调用方法实现对功能的显示。

3Test类:该类用于完成模拟考试功能的设计。Main类中也可以调用Test,但其仅是完成题目的分类与抽选Test类中更为具体的功能是实现具体的模拟考试时间倒计时的提示与计时功能,同时设计部分还包含考试答案评分与计算总得分等。与Seq.java等类相比,该类同样完成了视图界面上的按钮监听及显示布局功能。

4Error类:该类主要是用于存放错题的错题本,考生在考试结束后可以随时查看自己所错的题目以便以后更好的进行复习。

5DataItem类:两者均为JavaBeanData根据List类完成题量条目的搭建,Item类主要完成对题库题目的问题、答案和图片格式的设计。

为了更好的反映系统的整体架构,使其中每一个类中的操作属性更加完整化,本课题设计通过UML来实现。通过UML图可以更好的对运用这些类的属性和操作来实现相应操作,相应操作由编写代码实现。在编写代码前,需要了解这些属性,以及它们之间所隶属的关系,此时UML图就显得尤为重要。通过UML可以反映出类和类之间的关系,这种关系对于编程实现必不可少的。反映本设计所需要的类,以及类和类之间的关系UML如图4.1所示

4.1 UML类图

4.1.1 Main类的设计

Main类是整个系统能够可靠执行的主要功能类,用于实现对运行流程和模块间的数据初始化,获取数据并进行页面跳转功能。其具体设计过程如下:首先建立一个test类对象,并将其定义为menu变量,利用values下的string.xml资源文件,实现layout.xml界面的布局,并按照一定的方法将其加入到menu菜单。然后利用menu对象实现Button按键监听事件,并根据点击类型的不同实现页面的跳转,其跳转程序主要采用switch-case语句进行判断与处理。可以通过不同的button和不同状态下的case语句来跳转到不同的模块每个。其中,Case0是完成题库的导入,同时实现跳转至顺序练习Intent及完成Seq类的功能;Case1是完成跳转至随机联系页面的功能,并以随机选取的方式对题库中的题目进行抽取题目列表,实现分数的打印以及判断题目的对错,并且打印输出;Case2对错题进行收藏,考生可以通过错题的分类来选择自己的 Subject.java同时进行不同科目的练习;Case3用于完成模拟考试,首先将题库分为选择题和判断题,然后在对应的模块随机抽取题目,最后通过调用数据库中的内容来完成题目的输出。同时Main类还可以自主的选择如何去跳转到另一个模块中以实现模块之间的切换。

实现Main类的流程图如图4.2所示。

word/media/image6.gif

4.2 Main类的流程图

4.1.2 Seq类的设计

Seq类的功能是完成题目类型的判断,能够以顺序化的方式实现对相应选择、判断及多选选择的显示,同时完成对作答的正误判断。Seq类的设计流程图如图4.3所示。

word/media/image7.gif

4.3 Seq类的流程图

4.1.3 RandSubject类的设计

Seq类的设计,在应用设计思路上与Rand类和Subject类相同,因为在Rand类中是指的是随机抽取题目进行练习所以其main类中的调用时相同的这个过程和subject是相同的Main类实现调用时,各自类有相对应的初始化数据。此不再阐述。

4.1.4 Error类的设计

ErrorList基于List的一个链表形式类,该类主要完成对错题的列表显示,同时在对应的错题下方给出题库中的正确求解。该应用的设计过程并不复杂,首先,将错题列表data.listTest类中进行生成对象并引入,再将错题列表循环逐项与题库中的正确答案相对比,完成在数据库中的简单存储,并利用testView类进行界面显示。ErrorList类的实现流程图如图4.4所示。

4.1.5 Test类的设计

Test类设计Seq类设计相比,其不同点在于Test类中多引入了一个线程,该线程用于对考试时间的控制,且增加考试完成时的交卷功能,总体上完成了考试考卷的正误判断同时将使用者的错题传送至ErrorList类进行误题的处理及输出。

word/media/image8.gif word/media/image9.gif

4.4 ErrorList类的实现流程图 4.5 Test类的流程图

4.1.6 数据库表的设计

对于考试系统的设计,需要从考试系统中进行题库的抽取工作题库的抽取工作是需要使用数据库才可以完成数据库的设计通过链表实现,题目列表参见表4-1

4-1 题目列表

考生作答选择题的同时,题库通过调用选择题题库对考生进行考核。题目列表参见4-2,其主要是通过存放选择题来创建。

4-2 选择题列表

判断题作为考试中不可缺少的题型,题库可以通过抽取判断题来考学生的能力判断题参见表4-3

4-3 判断题列表

考生的错题采用专用错题本存放,考生可以通过进行错题的重复练习来达到巩固学习目的错题列表参见表4-4

4-4 错题列表

4.2 本章小结

章通过绘制uml图形来反应不同类之间的关系,并对各个类进行设计,给出了较为详细的流程图,完成了系统的总体设计

第五章 详细设计

5.1 模块实现

和一般的Java程序不同,android的程序是在虚拟机或者真机上跑的,因而其设计与纯基于java语言的程序有所不同。主要体现在以下几个方面。

首先,在UI的设计上,程序员对于此部分设计的界面布局要求是非常的简练的,不需要太多的其他花哨的东西,只要可以实现既定的基本功能就可以。程序设计的基本要求是界面简单功能实用,太多的嵌套显得相当繁琐且使用不便,因而需要大量利用嵌套设计复杂UIXml语句作为android中常用的一个文件,通过Xml语句布局来修改写好的代码在做基于androidapp时候xml语句是必不可少的。同时当需要把几个文件结合在一起实现某些复杂功能时,也只需要配置xml语句即可实现各种功能的切换。尽管使用xml编码在语句执行的效率上要稍低,但是从另一个方面来说,只要不进行复杂的UI设计,利用XML语句来进行用户界面可以大大降低设计难度,使得程序更加简洁明了。

其次,在程序代码编写方面,由于系统是基于Java语言的,所以Android系统中的sdk需要兼容API才可以不断的运行,因此开发上区别出入不会太大,程序代码编写习惯也是非常相似。只是基于Android系统的开发还是要遵循嵌入式系统开发的原则,控制好程序进程的生命周期,在尽量利用有限的系统资源的同时还要完善系统功能,这就需要优化代码的编写,调高算法执行效率。也是因为这样使得AndroidAPI很多方法和类是经过优化和JAVAAPI中定义的方法和类有所出入的。

最后,基于java语言的程序在调试运行的时候都是编译以后直接在电脑上运行即可一旦出现运行问题,可以实时修改相应的程序。而基于android语言程序有所不同程序编译时需要在电脑上安装虚拟机,就是所谓的AVD也可以通过直接将手机插入接口中实现。当一个app完成之后,如果电脑上安装了AVD文件,就可以直接运行程序,同时系统会生成一个apk文件,当打开apk文件的时候,就直接可以进入考试系统,过程十分方便快捷。在系统运行时要注意app的兼容性,这对用户的实用体验是非常重要的。

5.1.1欢迎界面

客户端第一次打开的时候都是需要跟服务端联网获取数据的,为了实现人机交换界面友好及适当的缓冲作用,设计了欢迎界面,用于提示考生即将进入考试系统。模块程序以及界面截图如下:

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_gravity=

"center_vertical|center_horizontal"

android:background="@drawable/bg"

>

<ListView android:id="@+id/menu"

android:layout_marginTop="110dip"

android:layout_width="fill_parent"

android:layout_marginLeft="50dip"

android:layout_marginRight="50dip"

android:layout_height="fill_parent>

5.1欢迎界面

5.1.2 登录界面

登录界面指的是需要提供帐号密码验证的界面,有控制用户权限、记录用户行为,保护操作安全的作用,为了保护用户隐私,同时方便用户登录,设计了如图5.2所示的登录界面。考生通过输入自己的账号密码来进入考试系统。

5.2登陆界面

5.1.3 QQ登录界面

伴随通讯软件的迅速发展,一款界面友好的APP需要增加第三方登录界面。本设计考虑到可能尚未注册或者遗忘账号密码的情况,增加了qq登录方式QQ登录使系统更好的为用户所接受,其界面如图5.3所示。

5.3 qq登陆界面

5.1.4 注册界面

为了更好的推广此款APP,同时方便统计用户数量,本系统设计了注册界面。若考生没有账号密码,其可以通过注册来进行注册。注册界面如图5.4所示

5.4 注册界面

5.1.5 主界面

主界面是考生登录系统后显示的界面,包括模拟练习,章节练习,强化练习,顺序练习,模拟考试,错题本,统计等内容。通过此界面考生可以实现对自己的目前学习情况的综合评价。部分代码及界面截图如下

<TextView android:textSize="30px"

android:id="@+id/q"

android:layout_width="wrap_content">

android:layout_height="wrap_content">

<ImageView android:id="@+id/img">

……

<RadioGroup android:id="@+id/radiogroup">

RadioGroup>

<TextView android:id="@+id/result"

android:layout_weight="1"/>

<LinearLayout android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

<Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:id="@+id/preview"

android:text="@string/preview"/>

5.5 主界面

5.1.6 模拟考试

模拟考试界面用于考生完成相应题目的考察,通过测试成绩来了解自己对各个部分知识的掌握程度模拟考试界面如图5.6所示

5.6 模拟考试界面

5.1.7 统计

模拟考试结束后,系统对考生成绩进行评价,对考生日期、用时、正误数量、正确率进行统计,通过统计界面显示,考生可以看到自己考试成绩。统计界面如图5.7所示

5.7 成绩统计界面

5.1.8 项目界面

为方便考生了解每次模拟考试的实际情况,以便有针对性的复习来达到既定要求,特设计项目界面,界面如图5.8所示。

5.8 项目界面

5.2 本章

本章介绍了各个界面的功能及部分代码程序,直观清晰的展示了本课题设计的效果,基本达到了预定的设计要求。


软件测试

6.1 软件测试

6.1.1 前言

软件测试是为了发现错误而执行程序的过程,其目的是为了在投入生产性运行之前,尽可能多地发现并排除软件中潜藏的错误,从而提高软件的质量软件测试可以作为程序员评判软件的优劣的标准,同时还可以判定此款软件是否可以继续使用等。软件测试作为编程结束后必不可少的环节可以作为预测市场前景的参考。因而完成代码编写工作后,需要及时进行测试与维护,以发现用户使用过程中可能遇到的问题,更好的扩大市场占有率,增加盈利。

软件测试的过程如下:进入系统后系统自动出现题目,然后用户进行模拟答题,来检测系统的运行情况,及时发现错误以便处理。如果出现错误,通过完善编程代码对系统进行完善,使得系统bug不断减少,达到系统所设定的要求,满足用户实际需求。

6.1.2 软件测试的种类

软件设计完成后,需要进行完善的测试,包括功能测试、健壮性测试、接口测试、强度测试、压力测试、性能测试、用户界面测试、可靠性测试、安装/反安装测试、文档测试等。其测试方法分类方法很多,其中最常用的一类是分为静态测试和动态测试静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,检查等等操作,而动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这两种方法各有利弊。在静态测试中,只能通过检查一行行的代码来找出问题,使得操作复杂、进度慢,很容易遗漏错误,但是,静态测试可以不断地完善代码以达到设定所需要的功能。根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:单元测试集成测试系统测试验收测试回归测试动态测试通过对最后的结果进行系统测试,发现并找出需要修改的地方,通过改变各个控件的位置或者通过修改xml文件来满足预设要求,达到测试目的。

本课题完成的app设计将动态与静态测试结合起来进行软件测试。首先进行动态测试,并且对测试结果有个大概的评估,以发现明显地方需要修改的错误然后通过静态测试,进一步改正系统的错误,逐段读取代码检查系统中不合理的地方,优化代码以满足系统可靠性要求,总之,充分发挥两种软件测试方法的优势来完成系统测试。

6.1.3 软件实例测试

本课题设计的考试系统用于多种类型的考试,包括大学学期模拟考试、日常测试等。现在较为常用的驾考宝典作为接受度较高的APP,其功能比较完善,接下来以驾校考试为例,本文设计的系统进行测试。模拟进入考试、考试过程及考试结果的界面测试效果分别如图6.16.26.3所示。

6.1 模拟考试进入界面 6.2模拟考试界面 6.3考试结算界面

6.2 本章

本章介绍了软件测试的概念以及分类,同时有针对性的介绍本课题设计的app对考试进入界面、模拟考试界面、考试结算界面其进行详细全面的软件测试,达到了设计目标。


本系统主要包括以下几个方面:了解收集有关androideclipsejava的语言基本知识,同时数据库也是必不可少的。平常,人们最常使用的数据库是SQL SERVER数据库,所有的数据都是储存在数据库中的,包括题目的相关信息,例如:题目编号,题目数量等信息,这就需要程序员在数据库创建一张表,而表中存放刚才所有的信息。在本系统中,本人需要建立不止一张表,因为考试系统不仅仅包括一种题型,除了最基本的客观题外,还需要有判断题和填空题等等一些题型。这些题型每一个都需要有一张表。除了数据库以外,visio工具也是完成本次系统必不可少的工具,利用visio工具可以完成很多图的绘制例如:基本系统流程图,UML图等等。其中,程序流程图是完成一个系统的最基本要素,流程图反映的是完成这个系统需要的步骤,本系统也不例外。在这个系统中,流程图可以使得本人更好制定完成整个系统的计划。本个项目分为很多模块,注册登陆界面是给那些可以上网的考生,通过注册账号或者登陆本人的QQ进入到考试系统。而对于无法及时上网的考生,本考试系统也有解决方法,考生可以不用账号密码也可以进入到考试系统。只是二者的区别在于,如果考生通过账号进入考试系统,其所有的考试记录都会被保存。而如果考生选择直接进入系统,其记录将会被公开,其他考生可以看见任意考生的答题记录。而在随机练习界面,考生可以任意地选择自己并不熟悉的题目或者经常出错误的题目进行练习。这对其巩固自己的知识点并且发现问题非常有帮助。考试界面是本系统的一个重点界面,当考生选择进入模拟考试模块以后,屏幕中会弹出题目,同时也会有倒计时的装置,而当考试者完成一道题目以后,下一题会自动弹出,当时间进度条走完后,考试终止。此时,考试界面会切换成一个计分系统,考生可以通过查看自己的成绩来对自己进行一个很好的评估。而这个评估反映到下一个模块就是错题本模块,当考生完成考试或者练习以后,系统会自动把错题放入到错题本模块中,考生可以随时查阅错题并且进行反复练习。错题本功能用来反映考生对知识掌握的程度同时也有一个对知识巩固的过程。在完成这个app的过程中,本人也遇到了很多的问题,最大的一个问题就是如何通过数据库将题目导入系统中,因为这是将数据库和系统相结合起来。如何从题库中抽出题目是本系统的一个难点,因此,网上的资料则是必不可少,通过上网,一些最基本的代码可以对本人有一个很好的提示作用。通过代码的学习,对于这种和考试系统类似的问题,我有一种通用的解决方案。于是,应用到考试系统中,通常是通过JDBC来对数据库进行连接,然后对题目进行导出。这样系统中就会存放很多道题目,形成一个题库。考生登陆到系统中进行考试时候就可以保证有足够多的题目供考生进行作答。在解决了主要的问题之后,通常情况下,软件测试是必不可少的一步。一般会有专门的测试员对程序进行一个测试,然后指出系统中存在的问题并修改。本系统也不例外,本系统中,主要进行的软件测试时通过驾校系统来完成的,之所以选择这个驾照系统,是因为在驾校考试中,题目多而且杂,数据库容易形成一个题库并且供系统选择。而且考生完成考试后可以立即看到自己的分数,这就对计分系统进行了一个测试。然而这种测试方法也会存在隐患,就是测试员无法进行主观题目的测试,因为驾校考试系统,只有客观题。这就需要本人对系统进行更好的修改并且将这些问题解决然后体现在下一版中。

大学四年的时光马上就要过完了,最后的这个毕业论文是对同学们大学四年的一个很好的检测,通过论文可以看出本人是否可以将老师所讲和自己所学习的内容相结合。这对于本人以后的学习和生活都有很强的激励作用

转眼间大学生活马上就要过去了,在这四年中,有过很多帮助过我的人,他们对我起到了很好的帮助作用,首先是感谢老师对我的帮助,没有老师们的帮助,我不可能有现在答辩的机会,当我每次遇到困难的时候,老师们都可以帮助我度过难关。同时我也可以从老师那里学到不少东西,用在我以后的生活中。其次,我要感谢我的同学,我有很多知心的朋友,这些朋友可以使得我的大学四年生活充满乐趣。大家一起玩啊,一起学习,这样我的大学生活变得非常充实。最后,我要感谢的我的父母,我的父母培养了我并且把我送到大学读书,现在到了我回报他们的时候了。



参考文献

[1] 伯内特,张波等.Android基础教程[M].北京:人民邮电出版社,2006.

[2] 罗杰,李耀亮等.Android应用开发[M].北京:人民邮电出版社,2010.

[3] 杨丰盛. Android应用开发揭秘[M].北京:机械工业出版社,2010.

[4] E2EColud工作室.深入浅出Google Android[M].北京:人民邮电出版社.2009.

[5] 张利国,代闻,龚海平等.Android移动开发案例详解[M].北京:人民邮电出版社.2013.

[6] 靳岩,姚尚朗. Android 开发入门与实战[M].北京:人民邮电出版社.2012.27-28.

[7] 余志龙,陈昱勋,郑名杰,陈小凤,郭秩均. Google Android SDK开发范例大全[M].北京:人民邮电出版社.201330-32.

[8] IEEE Committee Report.Computer aided coordination of line protection schemesIEEE Transactions on Power Delivery[J]19916(2)575583.

[9] Fang H, Chen J, Xu B. The Interaction Mechanism based on JSON for Android Database Application[J]. Information Technology Journal, 2013, 12(1).

[10] Manigrasso M R, Ferroni P, Santilli F, et al. Association between circulating adiponectin and interleukin-10 levels in android obesity: effects of weight loss.[J]. Journal of Clinical Endocrinology & Metabolism, 2005, 90(10):5876-9.

[11] W.M.Thron et al. A computer program for setting transmission line relays. Proceedings of American Power Conference, 1973, Vol.35: 1025-1034.

[12] Reto Meier. Intents and Broadcast Receivers [J]. John Wiley & Sons, Inc.10475 Crosspoint Boulevard ,2012, 165-201.

[13] 孟小峰,周龙骧,王珊.数据库技术发展趋势[J].软件学报,2004,15(12):1822-1836.

[14] 王文玲,金茂忠.UML模型及其应用[J].计算机工程与应用,1999,(11):47-50.

[15] 王锦,张激.UML模型一致性问题研究[J].计算机工程,2004,30(21):67-70.

[16] 李鹏宇.计算机开发与数据结构模型应用探究[J].电子制作,2013(24):70-74.

[17] 李强,郝沁汾,肖利民等.云计算中虚拟机放置的自适应管理与多目标优化[J].计算机学报,2011,34(12):2253-2264.

[18] 黎丰泽 杨达 周鹏, 虚拟环境下虚拟机应用性能建模[J].计算机系统应用, 2015(9):9-15.

[19] 管惠维,孙永强.智能计算机的研究现状[J].自然杂志,1992,20(2):104-108.

[20] 蒋云松.虚拟机应用于网络操作系统实训的新探索[J].科技创新导报,2006(34):82-82.

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服