基于智能手机的课堂教学反馈系统设计说明书文档格式.docx
《基于智能手机的课堂教学反馈系统设计说明书文档格式.docx》由会员分享,可在线阅读,更多相关《基于智能手机的课堂教学反馈系统设计说明书文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
Access、MySQL
Oracle是一种关系型数据库管理系统,是一个协调服务器和用于支持任务决定型应用程序的开放型RDBMS。
Orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。
Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在大中型系统中具有广泛的应用,。
DB2是IBM公司研制的一种关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。
Access是美国Microsoft公司于1994年推出的微机数据库管理系统。
它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。
主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。
MySQL是一个由瑞典MySQLAB公司开发的关系型数据库管理系统。
MySQL是一种关联数据库管理系统,MySQL软件采用了双授权政策,其体积小、速度快、总体拥有成本低,一般搭配PHP和Apache可组成良好的开发环境。
SQLServer是美国Microsoft公司推出的一种关系型数据库系统。
SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
2.2.2数据库的选择
Oracle、Sybase、DB2三种数据库均适用于大中型系统,应用在本次系统上完全没必要,并且我的笔记本电脑也很难完美运行,所以不适用本系统。
Access与Android的兼容性很低,很难互联,所以不再选择之列,MySQL功能太少且经常出错不适合本系统,经过考虑,决定使用SQLServer2008。
MicrosoftSQLServer2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的MicrosoftSQLServer版本。
基于他的新特性、优点和功能,本系统选择SQLServer2008作为数据库的开发工具。
其主要特点如下:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。
SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
SQLserver本身提供了一些存储过程,用于管理SQLserver和现实有关数据库和用户的信息,称之为系统存储过程。
系统存储过程放在master数据库中,归系统管理员所有,但其中很多过程都可以运行在数据库中。
用户也可以编写自己的存储过程,并把它存放在数据库中。
这样就可以做到充分发挥数据库服务器的功能,尽量减少网络上的阻塞。
使用存储过程时,数据可以在数据库服务器上完成。
把完成某一数据库处理的功能涉及为存储过程,就可以在各个程序中反复调用,从而减轻了程序编写的工作量。
此外,存储过程还可以间接实现一些安全控制功能。
微软的这个数据平台满足数据爆炸和下一代数据驱动应用程序的需求,支持数据平台愿景:
关键任务企业数据平台、动态开发、关系数据和商业智能。
2.3连接方式介绍及选择
WebService是一项新技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。
依据WebService规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
WebService是自描述、自包含的可用网络模块,可以执行具体的业务功能。
WebService也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如XML和HTTP。
WebService减少了应用接口的花费。
服务端可以写成Webservice也可以写成Website,前者只是提供一种服务,而后者是可以提供用户界面等具体的页面,后者也就是平时所说的“网站”。
两者的区别:
WebService只提供程序和接口,不提供用户界面,WebSite提供程序和接口,也提供用户界面(网页)
由于本系统只是需要一个中介来访问SQLServer,所以写成Webservice足够了。
2.4Android平台相关技术
2.4.1开发工具Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台,目前最好的Android开发工具。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Android开发工具(AndroidDevelopmentTools,ADT)。
Eclipse的插件机制是轻型软件组件化架构在客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。
已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。
插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。
目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。
SDK(SoftwareDevelopmentKit)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
在Android中,它为开发者提供了库文件以及其它开发所用到的工具。
简单理解为开发工具包集合,是整体开发中所用到的工具包,所以用Eclipse作为开发工具,不需要下载ADT,只下载SDK即可开发。
2.4.2Android平台系统架构
基于Android平台的应用软件开发,需要了解Android平台的相关技术和设计理念,尤其是Android系统架构的应用框架层。
Android应用开发需要继承、实现应用框架层的有关类和接口,或者直接调用系统类库中的方法,以实现具体的功能,在这种情况下,就必须要查看AndroidSDK帮助文档,了解相关类和接口的功能及其使用方法。
Android是基于Linux内核的软件平台和操作系统,它采用了软件层(softwarestack,又名软件叠层)的架构,主要分为三层。
底层以Linux内核作为基础,以C语言编写,只提供基础功能。
中间层包括函数库Library和虚拟机VirtualMachine,以C++编写。
最上层是各种应用软件以及应用框架,包括通话程序,短信程序等,应用软件由不同的开发者独立完成,以Java语言编写。
Android不只是一个操作系统,它包括了:
1.经过Google剪裁和调优的LinuxKernel,支持大多数手持设备的硬件体系。
2.经过Google修改的Java虚拟机Dalvik,基于ApacheHarmony虚拟机版本进行改良,具有极高的执行性能,大部分Java核心类库都可以直接在Java虚拟机上运行。
3.大量可用的类库和应用软件,例如浏览器Webkit,数据库SQLite等,对于下游开发者而言,能极大地缩短开发时间,降低开发成本。
4.Android提供了一整套基于Eclipse的完整开发环境、模拟器、帮助文档、示例,对Android的快速推广和发展有极大推动作用。
Android平台的系统架构如图2-3所示:
图2-3Android系统架构
Figure.2-3AndroidFramework
Android系统架构分为四层,从上层到底层分别是应用层、应用框架层、系统运行库层和Linux内核层。
(1).应用层(Applications)。
应用层由运行在Android设备上的所有应用构成,它不仅包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用,是普通用户唯一可见的一层。
(2).应用框架层(ApplicationFramework)。
这是Android系统中最核心的部分,它集中体现了Android系统设计思想。
框架层由多个系统服务组成,所有服务都寄宿在系统核心进程(SystemCoreProcess)中。
框架层最直观的的体现就是SDK,它通过一系列的Java功能模块来实现应用所需的功能。
主要包括:
丰富而又可扩展的视图组建:
用来构建应用程序,它包括列表(List)、网络(Grid)、文本框(TextBox)、按钮(Button),以及可嵌入的Web游览器。
内容提供器(ContentProvider):
它可以让一个应用访问另一个应用的数据。
资源管理器(ResoureManager):
提供非代码资源的访问,如本地字符串、图形和布局文件等。
通知管理器(NotificationManager):
应用可以在状态栏中显示自定义的提示信息。
活动管理器(ActivityManager):
管理应用程序生命周期并提供常用的导航回退功能。
窗口管理器(WindowManager):
管理所有的窗口程序。
包管理器(PackageManager):
Android系统内的程序管理。
(3).系统运行核心类库及运行时(Libraries&
AndroidRuntime)。
核心类库的来源主要有两种,一种是系统原生类库,如基础算法,另一种是第三方类库,大部分都是对优秀开源项目的移植,如多媒体库、Webkit、SQLite等。
运行时(AndroidRuntime)提供了Dalvik虚拟机,为Android应用提供动力,决定其执行效率。
每个Java程序都运行在Dalvik虚拟机上。
与PC一样,每个Android应用程序都有自己的进程,Dalvik虚拟机执行.dex文件。
当Java程序通过编译生成.dx文件,通过SDK中的.dx工具转化成.dex格式。
(4).Linux内核层(LinuxKernel)。
Android的核心系统服务基于Linux2.6内核,如安全性、内存管理、进程管理、网络协议和驱动模型等都依赖于该内核。
Linux内核同时也作为硬件和软件栈之间的抽象层。
Android更多的是需要一些与移动设备相关的驱动程序,包括显示驱动(DisplayDriver)、键盘驱动(KeyBoardDriver)、Flash内存驱动(FlashMemoryDriver)、照相机驱动(CameraDriver)、音频驱动(AudioDriver)、蓝牙驱动(BluetoothDriver)、WiFi、电源管理(PowerManagement)等。
正是由于Android自身的众多优点,Android系统自推出以来就得到众多手机开发厂商和通讯业务提供商的青睐,其在智能手机领域的市场份额更是节节攀升,同时也催生了更多的移动互联网业务,促进了移动应用产业链的扩大和发展。
2.4.3Android平台的主要特点
Android是基于Linux的开源平台,这一来源决定了它具有诸多优点:
1.开放性。
除了一些核心代码外,平台的绝大部分源代码可以免费获得。
2.跨应用程序。
Android基于组件的设计思想使得应用之间界限变得模糊,用户的直接感知是不同界面之间的跳转,而不是应用程序之间的切换。
3.应用程序是在平等的条件下创建的。
移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
4.应用程序无界限。
Android应用可以通过API访问核心移动设备功能。
应用程序可以通过互联网声明它们的功能并供其他应用程序使用。
5.多任务并行运行。
Android在这一点上直接继承了Linux的多任务特点,多个进程或线程可以并行运行。
2.4.4Android平台主要类库介绍
Android平台为开发者提供了一系列可用且高效的类库,所有的第三方应用都是基于这些类库来实现的。
android.app:
提供高层的程序模型和基本的运行环境。
android.content:
包含对各种设备上的数据进行访问和发布。
android.database:
通过内容提供者浏览和操作数据库。
android.media:
提供一些类管理多种音频、视频的媒体接口。
:
提供帮助网络访问的类,超过通常的.*接口。
android.provider:
提供访问Android内容提供者的类。
android.telephony:
提供与拨打电话相关的API交互。
android.view:
提供基础的用户界面接口框架。
android.util:
涉及工具性的方法,例如时间日期的操作。
android.webkit:
默认浏览器操作接口。
android.widget:
包含各种UI元素在应用程序的布局中使用。
3系统的实现
3.1数据库设计
3.1.1数据库的需求分析
课堂教学反馈系统以作业检测为主体,因此在这个系统中必须要有一个表保存试题信息(题号、题干、选项、答案、空字段供学生答题,并且以题号为主键)。
负责登录终端系统的学生应该有保存学生信息的表,这个表中也是包括一些基本信息(学号、姓名、性别、班级、专业、成绩,并且以学号作为主键)。
学生可以自己选择在题目的编号中选择自己要答的题。
另外系统中必须要有一个统计表,该表中包括答题总人数,答题正确人数,答题时间等基本信息。
3.1.2数据库的概念设计
根据无线作业系统的需求,设计出以下的实体-关系模型(E-R)图如图3-1所示:
图3-1实体联系图
Figure.3-1EntityChart
3.1.3数据库的逻辑设计
数据库的逻辑设计,即把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS(databasemanagementsystem,数据库管理系统)。
根据无线课堂教学反馈系统的需求分析及数据库的概念设计,得到以下的数据库表和表的相关说明如下:
首先创建数据库test,根据设计要求,为了存储学生信息在数据库中创建学生表(studata),如表3-2所示:
表3-2数据库学生表
Table3-2DatabaseStudent
序号
字段名称
字段含义
类型
宽度
备注
1
stunumber
学号
char
8
Primarykey
2
stuname
姓名
varchar
3
stusex
性别
4
stuid
身份证后八位
5
stuclass
班级
6
stutime
答题时间
int
Foreignkey
7
stuscore
成绩
在数据库中创建试题表(test1)存储试题信息,如3-3所示:
表3-3数据库试题表
Table3-3DatabaseExam
testnumber
题号
testcont
题干
70
testa
选项a
testb
选项b
testc
选项c
testdaan
答案
在数据库中创建管理表(admin)存储答题时间人数统计信息,如表3-4所示:
表3-4数据库管理表
Table3-4DatabaseManagement
dtnumber
答题人数
zqnumber
正确人数
time
3.2连接数据库的设计
写一个Website访问SQLServer,获取数据并转换成xml格式,然后传递给Android客户端。
新建一个Webservice工程,在服务器资源管理器中添加SQLServer的连接,新建一个类,代码如下:
namespaceStockManageWebservice
{//一个操作数据库的类,所有对SQLServer的操作都写在这个类中,使用的时候实例化一个然后直接调用就可以
publicclassDBOperation:
IDisposable
{publicstaticSqlConnectionsqlCon;
//用于连接数据库
//将下面的引号之间的内容换成上面记录下的属性中的连接字符串
privateStringConServerStr=@"
DataSource=BOTTLE-PC;
InitialCatalog=StockManage;
IntegratedSecurity=True"
;
//默认构造函数
publicDBOperation()
{if(sqlCon==null)
{sqlCon=newSqlConnection();
sqlCon.ConnectionString=ConServerStr;
sqlCon.Open();
}}
//关闭/销毁函数,相当于Close()
publicvoidDispose()
{if(sqlCon!
=null)
{sqlCon.Close();
sqlCon=null;
}}
以上创建了一个类,可以访问SQLServer数据库,具体调用时可以新建类继承此类使用。
只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现了可见,连接数据库是一个很关键的步骤。
当正确安装后在本地的浏览器或者局域网内的任何移动设备的浏览器(包括手机)输入“http:
//10.37.135.215:
3360”,就可以打开一个欢迎网页(10.37.135.215为当前电脑的
IP,也可以输入http:
//localhost:
3360,默认localhost变量指向当前电脑的IP)。
设计好工程后,在客户端软件的LoginActivity模块访问服务器地址为:
“http:
3360/DinningServer/LoginServlet?
user=10&passwd=10”。
3.3客户端程序设计
客户端是使用者最直接接触的东西,包括是否能够让客户很轻松、方便的使用,操作响应时间、主机连接时间、图片综合质量、首页布局质量、首页信息类型等。
一般来说,一个界面主要由下面几个因素构成:
(1)文字:
文字元素是信息传达的主体部分。
界面中的文字主要包括标题、信息、文字链接几种主要形式。
标题和传统媒体中信息传达的基本作用相同,是内容的简概说明一般比较醒目、优先编排。
文字作为占据页面重要比率的元素,同时又是信息重要载体,它的字体、大小、颜色和排布对页面整体设计影响极大。
(2)图形:
图形在界面中具有重要作用。
合理的运用图形,可以生动直观、形象地表现设计主题。
网页中常用的图形格式包括jpg和gif,这两种格式压缩比高,得到了Android平台的支持,图形元素包括标题、背景、主图、链接图标四种。
(3)界面版式:
版式是界面设计的重要组成部分,它将文字、图形等视觉元素进行组合配置,使页面整体视觉效果美观和谐,便于阅读,操作,实现信息传达的最佳效果。
终端系统的界面设计也是综合了文字,图形等元素。
使每一个功能有文字与图片的共同描述,达到看图就大概知道此键是什么功能的目的,最终的目的还是为了使用者能够快速上手,不至于因为操作的不得当而放弃此系统。
3.3.1界面设计及按键响应
Android界面是由许多Activity构成,首先要设计Android的布局文件,由于系统的不确定性,大部分布局文件采用了相对布局(RelativeLayout),然后是在按键控件上添加响应,下面是具体每个Activity的实现过程。
首先单独建立一个Activity用来控制用户的登录,在用户输入账号与密码时,系统先判断用户账号密码是否为空,为空则跳出一个对话框给用户提示;
如果不为空则再从EditView中取的账号密码与服务器中的账号密码进行匹配,如果匹配成功则利用Intent语句跳转到下一个主菜单界面。
界面如图3-4所示:
图3-5登陆界面图3-6主界面
Figure.3-5InterfaceLoginFigure.3-6MainInterface
实现登录主要代码及注释:
loginBtn.setOnClickListener