基于Android和网页解析的教务系统设计与实现

时间:2022-10-22 04:49:57

基于Android和网页解析的教务系统设计与实现

摘 要: 介绍了基于Android系统开发的教务系统。该系统可帮助厦门大学嘉庚学院教师Android用户便捷访问教务系统和校园资源。在Eclipse开发环境下,使用Http通信协议、开源jsoup解析、json解析和SQLite数据库等开发技术完成系统开发,系统主要功能包括查询课程表、查询课程班信息、查看考试安排、查看今日课程、查看天气、查看开课通知单、查询学生评教、查看学院新闻和摇一摇点名等。

关键词: 教务系统; Android平台; 网页解析; SQLite数据库

中图分类号:TP315 文献标志码:A 文章编号:1006-8228(2014)06-38-03

0 引言

随着移动互联网以及智能手机的快速发展,以前只能在PC上处理的事务渐渐被转移到移动终端,我们逐渐迈入移动互联网的时代。本设计将综合教务系统的功能拓展到Android手机终端上,为方便移植,直接采用了网页解析和交互的方法,以便教师快捷获取教务系统信息、学院新闻和天气等服务,提高教学工作的效率。

1 系统设计架构

1.1 需求分析

本系统将满足用户随时随地利用移动设备访问校内资源的需求,并可解决传统移动设备访问校园网络的弊端和局限[1]。客户端功能需求包括:登录、查询课程表、查询课程班、查看通告信息、查看开课通知单、查看考试安排、查询学生评教、查看通知公告、查看学院新闻、查看教务新闻、查看天气、记事本、查看今日课程、加载学院网页版主页和摇一摇点名等。

1.2 系统流程图

该应用开始加载后要求用户登录,登录成功后进入系统主界面,当用户点击视图时,程序从主界面跳转到相应的Activity上,响应相应的用户请求[2],也可以选择退出应用,系统流程图如图1所示。

1.3 功能模块设计

系统按功能划分可分为三个模块:我的教务、新闻中心和工具模块。

⑴ 我的教务模块

本模块包括综合教务系统的七个常用功能:课程表、课程班信息、通告信息、开课通知单、考试安排和学生评教等。

⑵ 新闻中心模块

本模块包括学院新闻、通知公告、高教动态、教务新闻等栏目。

⑶ 工具模块

本模块包括天气、记事本、今日课程、web学院主页和摇一摇等。

1.4 数据库设计

Android上的数据存储可以采用SQLite来完成,SQLite是集成在Android平台上的一个嵌入式关系数据库,其最大特点是SQLite可以保存任何类型的数据到任何字段中[3]。为了实现记事本的功能,创建数据库Notes.db,记事表表名为notes_table,其结构如表1所示。

2 具体实现

2.1 界面设计

本系统主界面采用TAB标签进行分页显示,分别为图块菜单页、列表菜单页等。

图块菜单页,采用长方形或正方形图块显示系统功能菜单,简洁清爽,色彩感较好,且学校日历和天气能够动态显示,界面效果图如图2所示。

列表菜单页,将菜单项按功能进行分类,分为我的教务、新闻中心、工具三大类,分别以条形框的形式显示,方便查找,其中我的教务模块界面效果图如图3所示。

2.2 各模块实现

⑴ 登录功能实现

用户使用本系统首先要通过登录验证。登录包括三个过程,启动系统时首先检测当前是否有可用网络,如果没有网络,弹出是否设置网络对话框;在可用网络情况下,登录视图根据上次是否已有用户登录成功记录,若用户之前设置了“记住我”,则使用存储用户名和密码到xml文件的key-value键值对数据,默认将数据存放在系统路径[4],登录时读取之后执行登录Handle,否则系统提示用户输入用户名和密码;登录是通过向本地服务器传递用户名和密码数据实现,即手机客户端把教师用户名和密码、通过网络传递给本地服务器, 本地服务器再通过网络POST请求教务系统服务器,取得响应结果,此处是网页源代码,本地服务器端进行网页解析,若网页源文件存在登录成功标识“欢迎您”则成功登录,进入到系统主页面,否则提示相应错误。

⑵ 我的教务模块实现

教务模块实现,主要是通过向本地服务器端发送请求,本地服务器再通过请求教务系统服务器得到网页源代码,通过jsoup解析得到需要的信息。解析的结果再以json或网页的形式传送给客户端。此过程需定义string型的url,用来连接服务器端,向服务器端发送请求,url的值就是服务器端的地址[5]。在服务器端,系统将数据集合并且组装为XML文件,在客户端来解析这个文件[6]。

如“查询课程表”的功能实现过程是:GET请求本地服务器,本地服务器再GET请求教务系统服务器,取得课表首页源代码,通过jsoup解析获取学期信息列表,以json格式传递给客户端,客户端解析后显示到界面上,再根据当前所选学期即本学期,发送链接标识给本地服务器,本地服务器再次根据链接获取网页的源代码,截取课程表格那部分源代码,以网页的格式传送给客户端,客户端获取后附加上本地CSS样式文件,用WebView组件进行加载,即可显示成网页版样式的的课表,通过选择不同学期发送请求获取相应课程表。课程表如图4所示。

类似地,可依次实现课程班信息、通告信息、开课通知单、考试安排和学生评教等功能。

⑶ 新闻模块实现

客户端使用HttpURLConnection发送 GET请求学院新闻栏目的RSS服务器,获得服务器返回的数据流,通过XmlPullParser解析器来解析得到新闻列表,其中包含标题、时间、新闻描述和新闻链接,以自定义的列表显示所有新闻的标题和时间,用户可以选择自己想看的新闻进行点击,点击后跳转到显示新闻具体信息的界面,显示标题、时间、描述和浏览原文的链接,点击浏览原文的链接,可以用WebView加载该链接显示新闻原网页。

⑷ 工具模块实现

① 天气查看

天气服务功能是通过调用服务器端的方法来获取天气数据。其核心是通过调用通信协议SOAP(Simple Object Access Protocol)的接口,从Web Service 提供商中提取信息。本模块使用Ksoap2标准,调用.cn网站提供的免费天气服务接口,其天气数据来源于中国气象局,数据每2.5小时左右自动更新一次,准确可靠。本文实现了获得漳州和厦门的最近三天的天气状况,其中包括:天气现象、温度、风向、和风速。

② 实现记事本

编写一个类继承SQLiteOpenHelper,通过getWritableDatabase()获得一个SQLiteDatabase数据库,建立增删改查操作方法。在记事本界面上,建立标题和内容两个文本输入框,用户输入完成后点击添加按钮,执行数据库中添加方法,若添加成功,更新显示事件列表,点击事件可以查看事件详情,也可以在详情界面选择删除该事件。

③ 今日课程

先获取学校首页日历,当判断存在“本学期”时,再次判断系统时间是星期几,加载当日的课表,其他情况如春假、秋假和学生寒暑假等情况,不加载今日课程表。

④ 访问学院主页

使用系统WebView视图学院的加载Web网站,实现了简单浏览器的功能,可以如浏览器访问学院网站。

⑤ 摇一摇点名

客户端使用HttpURLConnection发送 GET请求本地服务器,本地服务器通过GET请求获取课程班页面源代码,解析获取课程班信息,其中包括上课人数和学生名单链接,存储到课程班集合,以json格式返回给客户端,客户端根据所选课程班信息,GET请求服务器得到该课程的学生名单,应用加速度传感器的工作原理,快速晃动手机,即摇一摇[7],随机抽取1到5个学生,将抽取到的学生信息以列表显示到屏幕上。

点击“查看名单”按钮,可查看当前课程班的所有学生,摇动手机或点击该按钮可以随机取得指定数目的学生。结果显示到按钮下面的自定义列表中,轻点单行学生可以进行选择登记请假或旷课到记事本的操作,长按单行学生信息,可以将该学生信息持久化,增大下次被摇到的概率。点名界面如图5所示。

3 结束语

本文介绍了基于Android平台的教务系统的设计与实现,该系统丰富了教师对教务相关信息等校园资源的获取方式,教师可随时通过手机登录,获取教务系统信息、学院新闻和天气等服务,同时本系统加入了“摇一摇点名”功能,帮助教师实现考勤或提问点名的简单化和趣味化。技术实现上通过直接采用网页解析和交互的方法,方便扩展和移植。

本系统仍存在不足之处,如用户操作界面还不够精美,RSS新闻每次点击都需重新获取等,这些问题需要进一步改进。同时,本系统还可以进一步扩展常用功能,带给用户更多更周到的体验。

参考文献:

[1] 赵英,王飞.手持移动设备在校园信息系统中的应用[J].计算机技术与发展,2012.22:195-197

[2] 林永兴.基于Android的校园助手手机应用程序的研究与设计[J].硅谷,2012.3:60

[3] 韩迪.Android创意实例详解[M].北京邮电大学出版社,2012.

[4] 尹京花.基于Android开发的数据存储[J].数字通信,2012.6:79-81

[5] 关东升,赵志荣.Android开发案例驱动教程[M].北京:机械工业出版社,2011.

[6] 张新柱.基于Android手机终端信息查询系统的设计[J].齐齐哈尔大学学报,2012(4):47-50

[7] 张思民.Android应用程序设计[M].清华大学出版社,2013.

上一篇:浅论职业教育与区域经济如何协调互动发展 下一篇:基于UDP协议的NAT穿透技术研究与仿真