基于智能手机的课堂教学反馈系统设计说明书.doc_第1页
基于智能手机的课堂教学反馈系统设计说明书.doc_第2页
基于智能手机的课堂教学反馈系统设计说明书.doc_第3页
基于智能手机的课堂教学反馈系统设计说明书.doc_第4页
基于智能手机的课堂教学反馈系统设计说明书.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于智能手机的课堂教学反馈系统设计说明书各专业全套优秀毕业设计图纸1需求分析1.1问题提出本项目是一款基于智能手机的课堂教学反馈系统业系统,使智能手机拥有在线答题的功能,便于老师及时了解学生对本堂课的理解情况,降低了检测成本,节省了时间与纸质答题的繁琐。使老师学生的课堂生活更加多样化,也使设计者更加熟练android的技术和其它在市场上的特点。2系统设计及主要技术介绍2.1系统框架设计2.1.1组织结构根据要求首先设计出系统组织结构图,如图2-1所示:图2-1 系统结构图figure.2-1 system structure图中服务器上建有数据库,存储学生信息(学号,姓名,性别,班级,登录时间,作业成绩),试题信息(题号,题目类型,题干,选项或答案,成绩),意见栏。对于客观题目直接判断,统计学生个人的做题统计(答题数目,正确数目,答题时间等),以及每道题目的数据统计(答题人数,正确人数),随机分发组合题目。老师可通过登录服务器编辑题库,课上当堂布置作业,课后可批改学生上交的作业。学生用学号姓名登陆,提交作业并给老师留言,查阅以前的作业成绩及老师批语。2.1.2 系统运行流程图根据分析,首先设计出系统运行的流程,如图2-2所示是学生的操作流程图:学生首先在手机上运行程序,然后使用用户名密码登陆,密码正确则进入下一功能选择,这一模块可进行答题、成绩查询、留言等功能,最后提交试题,退出程序。根据规划再设计出老师的操作流程图,将老师所要实现的全部功能流程化、具体化,如图2-3所示:老师登陆服务器对学生以及试题库进行编辑,还可以查看学生的答题情况以及学生的留言,完成后可保存退出。图2-2 学生系统流程图figure.2-2 flow chart of student system图2-3 老师系统流程图figure.2-2 flow chart of teacher system2.2数据库主要技术及选择2.2.1 常用的数据库及介绍目前常用的数据库有大型数据库:oracle、sybase、db2、sql server小型数据库:access、mysqloracle是一种关系型数据库管理系统,是一个协调服务器和用于支持任务决定型应用程序的开放型rdbms。orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。sybase通常与sybase sql anywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的power builder为开发工具,在大中型系统中具有广泛的应用,。db2是ibm公司研制的一种关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于os/2、windows等平台下。access是美国microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。mysql是一个由瑞典mysql ab公司开发的关系型数据库管理系统。mysql是一种关联数据库管理系统,mysql软件采用了双授权政策,其体积小、速度快、总体拥有成本低,一般搭配php和apache可组成良好的开发环境。sql server是美国microsoft公司推出的一种关系型数据库系统。sql server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与windows nt的有机结合,提供了基于事务的企业级信息管理系统方案。2.2.2数据库的选择oracle、sybase、db2三种数据库均适用于大中型系统,应用在本次系统上完全没必要,并且我的笔记本电脑也很难完美运行,所以不适用本系统。access与android的兼容性很低,很难互联,所以不再选择之列,mysql功能太少且经常出错不适合本系统,经过考虑,决定使用sql server 2008。microsoft sql server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的microsoft sql server版本。基于他的新特性、优点和功能,本系统选择sql server 2008 作为数据库的开发工具。其主要特点如下:(1)高性能设计,可充分利用windows nt的优势。(2)系统管理先进,支持windows图形化管理工具,支持本地和远程的系统管理和配置。(3)强壮的事务处理功能,采用各种方法保证数据的完整性。(4)支持对称多处理器结构、存储过程、odbc,并具有自主的sql语言。 sql server以其内置的数据复制功能、强大的管理工具、与internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。sql server本身提供了一些存储过程,用于管理sql server和现实有关数据库和用户的信息,称之为系统存储过程。系统存储过程放在master数据库中,归系统管理员所有,但其中很多过程都可以运行在数据库中。用户也可以编写自己的存储过程,并把它存放在数据库中。这样就可以做到充分发挥数据库服务器的功能,尽量减少网络上的阻塞。使用存储过程时,数据可以在数据库服务器上完成。把完成某一数据库处理的功能涉及为存储过程,就可以在各个程序中反复调用,从而减轻了程序编写的工作量。此外,存储过程还可以间接实现一些安全控制功能。微软的这个数据平台满足数据爆炸和下一代数据驱动应用程序的需求,支持数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能。2.3 连接方式介绍及选择web service是一项新技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据web service规范实施的应用之间, 无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。web service是自描述、自包含的可用网络模块,可以执行具体的业务功能。web service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如xml和http。web service减少了应用接口的花费。服务端可以写成webservice也可以写成website,前者只是提供一种服务,而后者是可以提供用户界面等具体的页面,后者也就是平时所说的“网站”。两者的区别:web service 只提供程序和接口,不提供用户界面,web site 提供程序和接口,也提供用户界面(网页)由于本系统只是需要一个中介来访问sql server,所以写成webservice足够了。2.4 android平台相关技术2.4.1 开发工具eclipseeclipse 是一个开放源代码的、基于java的可扩展开发平台,目前最好的android开发工具。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,eclipse 附带了一个标准的插件集,包括android开发工具(android development tools,adt)。eclipse的插件机制是轻型软件组件化架构在客户机平台上,eclipse使用插件来提供所有的附加功能,例如支持java以外的其他语言。 已有的分离的插件已经能够支持c/c+(cdt)、perl、ruby,python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到 现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。目前android开发所用的开发工具是eclipse,在eclipse编译ide环境中,安装adt,为android开发提供开发工具的升级或者变更,简单理解为在eclipse下开发工具的升级下载工具。sdk(software development kit)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在android中,它为开发者提供了库文件以及其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,所以用eclipse作为开发工具,不需要下载adt,只下载sdk即可开发。2.4.2 android平台系统架构基于android平台的应用软件开发,需要了解android平台的相关技术和设计理念,尤其是android系统架构的应用框架层。android应用开发需要继承、实现应用框架层的有关类和接口,或者直接调用系统类库中的方法,以实现具体的功能,在这种情况下,就必须要查看android sdk帮助文档,了解相关类和接口的功能及其使用方法。android是基于linux内核的软件平台和操作系统,它采用了软件层(software stack,又名软件叠层)的架构,主要分为三层。底层以linux内核作为基础,以c语言编写,只提供基础功能。中间层包括函数库library和虚拟机virtual machine,以c+编写。最上层是各种应用软件以及应用框架,包括通话程序,短信程序等,应用软件由不同的开发者独立完成,以java语言编写。android不只是一个操作系统,它包括了:1经过google剪裁和调优的linux kernel,支持大多数手持设备的硬件体系。2经过google修改的java虚拟机dalvik,基于apache harmony虚拟机版本进行改良,具有极高的执行性能,大部分java核心类库都可以直接在java虚拟机上运行。3大量可用的类库和应用软件,例如浏览器webkit,数据库sqlite等,对于下游开发者而言,能极大地缩短开发时间,降低开发成本。4android提供了一整套基于eclipse的完整开发环境、模拟器、帮助文档、示例,对android的快速推广和发展有极大推动作用。android 平台的系统架构如图2-3所示:图2-3 android系统架构figure.2-3 android frameworkandroid系统架构分为四层,从上层到底层分别是应用层、应用框架层、系统运行库层和linux内核层。(1). 应用层(applications)。应用层由运行在android设备上的所有应用构成,它不仅包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用,是普通用户唯一可见的一层。(2). 应用框架层(application framework)。这是android系统中最核心的部分,它集中体现了android系统设计思想。框架层由多个系统服务组成,所有服务都寄宿在系统核心进程(system core process)中。框架层最直观的的体现就是sdk,它通过一系列的java功能模块来实现应用所需的功能。主要包括:丰富而又可扩展的视图组建:用来构建应用程序,它包括列表(list)、网络(grid)、文本框(textbox)、按钮(button),以及可嵌入的web游览器。内容提供器 (content provider):它可以让一个应用访问另一个应用的数据。资源管理器(resoure manager):提供非代码资源的访问,如本地字符串、图形和布局文件等。通知管理器(notification manager):应用可以在状态栏中显示自定义的提示信息。活动管理器(activity manager):管理应用程序生命周期并提供常用的导航回退功能。窗口管理器(window manager):管理所有的窗口程序。包管理器(package manager):android系统内的程序管理。(3). 系统运行核心类库及运行时(libraries & android runtime)。核心类库的来源主要有两种,一种是系统原生类库,如基础算法,另一种是第三方类库,大部分都是对优秀开源项目的移植,如多媒体库、webkit、sqlite等。运行时(android runtime)提供了dalvik虚拟机,为android应用提供动力,决定其执行效率。每个java程序都运行在dalvik虚拟机上。与 pc一样,每个 android 应用程序都有自己的进程,dalvik 虚拟机执行.dex文件。当 java 程序通过编译生成.dx文件,通过 sdk 中的 .dx工具转化成.dex 格式。(4)linux内核层(linux kernel)。android 的核心系统服务基于linux 2.6内核,如安全性、内存管理、进程管理、网络协议和驱动模型等都依赖于该内核。linux 内核同时也作为硬件和软件栈之间的抽象层。android 更多的是需要一些与移动设备相关的驱动程序,包括显示驱动(display driver)、键盘驱动(keyboard driver)、flash内存驱动(flash memory driver)、照相机驱动(camera driver)、音频驱动(audio driver)、蓝牙驱动(bluetooth driver)、wifi、电源管理(power management)等。正是由于android自身的众多优点,android系统自推出以来就得到众多手机开发厂商和通讯业务提供商的青睐,其在智能手机领域的市场份额更是节节攀升,同时也催生了更多的移动互联网业务,促进了移动应用产业链的扩大和发展。2.4.3 android平台的主要特点android是基于linux的开源平台,这一来源决定了它具有诸多优点:1开放性。除了一些核心代码外,平台的绝大部分源代码可以免费获得。2跨应用程序。android基于组件的设计思想使得应用之间界限变得模糊,用户的直接感知是不同界面之间的跳转,而不是应用程序之间的切换。3应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。4应用程序无界限。android 应用可以通过api访问核心移动设备功能。应用程序可以通过互联网声明它们的功能并供其他应用程序使用。5多任务并行运行。android在这一点上直接继承了linux的多任务特点,多个进程或线程可以并行运行。2.4.4 android平台主要类库介绍android平台为开发者提供了一系列可用且高效的类库,所有的第三方应用都是基于这些类库来实现的。主要包括:android.app:提供高层的程序模型和基本的运行环境。android.content:包含对各种设备上的数据进行访问和发布。android.database:通过内容提供者浏览和操作数据库。android.media:提供一些类管理多种音频、视频的媒体接口。:提供帮助网络访问的类,超过通常的 .*接口。vider:提供访问 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-1 entity chart3.1.3数据库的逻辑设计数据库的逻辑设计,即把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于dbms(database management system,数据库管理系统)。根据无线课堂教学反馈系统的需求分析及数据库的概念设计,得到以下的数据库表和表的相关说明如下:首先创建数据库test,根据设计要求,为了存储学生信息在数据库中创建学生表(studata),如表3-2所示:表3-2 数据库学生表table 3-2 database student序号字段名称字段含义类型宽度备注1stunumber学号char8primary key2stuname姓名varchar83stusex性别char44stuid身份证后八位char85stuclass班级char86stutime答题时间int8foreign key7stuscore成绩int8foreign key在数据库中创建试题表(test1)存储试题信息,如3-3所示:表3-3 数据库试题表table 3-3 database exam序号字段名称字段含义类型宽度备注1testnumber题号char8primary key2testcont题干char703testa选项achar84testb选项bchar85testc选项cchar86testdaan答案char8在数据库中创建管理表(admin)存储答题时间人数统计信息,如表3-4所示:表3-4 数据库管理表table 3-4 database management序号字段名称字段含义类型宽度备注1testnumber题号char8primary key2dtnumber答题人数int43zqnumber正确人数int44stutime答题时间time83.2 连接数据库的设计写一个website访问sql server,获取数据并转换成xml格式,然后传递给android客户端。新建一个webservice工程,在服务器资源管理器中添加sql server的连接,新建一个类,代码如下:namespace stockmanagewebservice / 一个操作数据库的类,所有对sqlserver的操作都写在这个类中,使用的时候实例化一个然后直接调用就可以 public class dboperation:idisposable public static sqlconnection sqlcon; /用于连接数据库 /将下面的引号之间的内容换成上面记录下的属性中的连接字符串privatestringconserverstr=datasource=bottle-pc;initialcatalog=stockmanage;integrated security=true; /默认构造函数 public dboperation() if (sqlcon = null) sqlcon = new sqlconnection(); sqlcon.connectionstring = conserverstr; sqlcon.open(); /关闭/销毁函数,相当于close() public void dispose() if (sqlcon != null) sqlcon.close(); sqlcon = null; 以上创建了一个类,可以访问sql server数据库,具体调用时可以新建类继承此类使用。只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现了可见,连接数据库是一个很关键的步骤。当正确安装后在本地的浏览器或者局域网内的任何移动设备的浏览器(包括手机)输入“http: /15: 3360”,就可以打开一个欢迎网页( 15为当前电脑的ip,也可以输入http:/localhost: 3360,默认 localhost 变量指向当前电脑的ip)。设计好工程后,在客户端软件的 loginactivity 模块访问服务器地址为:“http: /15: 3360/dinningserver/loginservlet?user=10passwd = 10”。3.3 客户端程序设计客户端是使用者最直接接触的东西,包括是否能够让客户很轻松、方便的使用,操作响应时间、主机连接时间、图片综合质量、首页布局质量、首页信息类型等。一般来说,一个界面主要由下面几个因素构成:(1)文字:文字元素是信息传达的主体部分。界面中的文字主要包括标题、信息、文字链接几种主要形式。标题和传统媒体中信息传达的基本作用相同,是内容的简概说明一般比较醒目、优先编排。文字作为占据页面重要比率的元素,同时又是信息重要载体,它的字体、大小、颜色和排布对页面整体设计影响极大。(2)图形:图形在界面中具有重要作用。合理的运用图形,可以生动直观、形象地表现设计主题。网页中常用的图形格式包括jpg和gif,这两种格式压缩比高,得到了android平台的支持,图形元素包括标题、背景、主图、链接图标四种。(3)界面版式:版式是界面设计的重要组成部分,它将文字、图形等视觉元素进行组合配置,使页面整体视觉效果美观和谐,便于阅读,操作,实现信息传达的最佳效果。终端系统的界面设计也是综合了文字,图形等元素。使每一个功能有文字与图片的共同描述,达到看图就大概知道此键是什么功能的目的,最终的目的还是为了使用者能够快速上手,不至于因为操作的不得当而放弃此系统。3.3.1 界面设计及按键响应android界面是由许多activity构成,首先要设计android的布局文件,由于系统的不确定性,大部分布局文件采用了相对布局(relative layout),然后是在按键控件上添加响应,下面是具体每个activity的实现过程。首先单独建立一个activity用来控制用户的登录,在用户输入账号与密码时,系统先判断用户账号密码是否为空,为空则跳出一个对话框给用户提示;如果不为空则再从editview中取的账号密码与服务器中的账号密码进行匹配,如果匹配成功则利用intent语句跳转到下一个主菜单界面。界面如图3-4所示: 图3-5 登陆界面 图3-6 主界面figure.3-5 interface login figure.3-6 main interface实现登录主要代码及注释:loginbtn.setonclicklistener(newonclicklistener()overridepublicvoidonclick(viewv) if(validate() /通过validate()判断账号密码是否为空 if(login() /通过login()连接数据库核对是否一致intentintent=newintent(loginactivity.this,mainactivity.class);startactivity(intent); /启动activity传递intent来跳转页面elseshowdialog(用户名称或者密码错误,请重新输入!);对登录按钮添加监听事件,在学生输入账号密码后点击登录后,终端会先判断是否满足validate()方法,此方法是防止账号密码为空时的登录提示,如果为空会跳出一对话框进行提示账号密码是必填项,如果不空,则再判断是否满足login()方法,login()方法是用来与数据库进行连接比较核对是否一致,不一致则出现账号密码错误的提示,登录失败,一致则顺利登录跳转到下一个activity即主菜单界面,如图3-5所示: 在android组件之间的通讯中,主要是由意图(intent)协助完成的。意图负责对应用中一次操作的动作、动作对应的数据、附加数据进行描述,android则根据此意图的描述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被调用者之间的解耦。当按下“成绩查询”按钮时,会触发附在上面的按键响应,进入到成绩查询的activity(如图2-10所示),执行的代码如下:scorebtn.setonclicklistener(new onclicklistener() overridepublic void onclick(view v) intent intent = new intent(mainactivity.this,scoreactivity1.class);/跳转到下一界面stuscore1 = xz_score.getselecteditem().tostring(); /获取学生的成绩并转换成文字stuscore2 = pd_score.getselecteditem().tostring(); /同理stuscore = jd_score.gettext().tostring(); /同理bundle bundle = new bundle();/bundle /存取学生成绩bundle.putstring(xz_score,xz_score);bundle.putstring(pd_score,pd_score);bundle.putstring(jd_score,jd_score);intent.putextras(bundle); /向查询界面传送数据startactivity(intent);system.out.println(bundle);finish(); 图3-7 成绩查询界面 图3-8 意见界面figure.3-7 interface of score figure.3-8 interface of ideas当按下图2-9中的“意见”按钮时,会触发附在该按钮上的按键响应,这时候会调用数据库中的用户的成绩存储在intent中,传递到显示界面上,进入意见的activity(如图2-11所示),可以输入意见并提交,代码如下: class myonclicklistenerimplements onclicklisteneroverridepublic void onclick(view v) system.out.println(idonclick=+id1);intent intent1 = new intent(mainactivity.this,ideas.class); /跳转到意见activitystartactivity(intent1);当按下图2-9中的“开始测试”按钮时,触发附在该按钮上的按键响应,应用会跳转到题目选择界面上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论