基于微信小程序的教务查询系统的设计与实现

目录
1 绪论 2
1.1 研究背景 2
1.2 教务查询系统的现状和发展前景 3
1.3 系统的技术架构 3
1.4 论文框架 4
2 系统需求分析 5
2.1 系统概述 5
2.2 系统功能需求 5
1.用户登录 5
2.首页 5
3.公选课信息查询 5
4.学校校历 6
5.考试查询 6
6.成绩查询 6
7.等级考试 6
8.新闻公告 6
9.我的课程 6
10.个人信息 6
2.3 系统用例图 6
2.4 技术平台 7
2.4.1 Spring Boot 7
2.4.2 微信小程序 8
2.4.3 Maven 9
2.4.4 Bootstrap 9
2.4.5 Jsoup爬虫框架 9
3 系统设计 10
3.1 系统总体设计 10
3.2 系统业务流程图 10
4 系统详细设计 12
4.1 系统功能详解 12
4.1.1 系统时序图 13
4.2 Html页面数据解析 15
4.2.1Html页面解析流程 16
5 系统功能的具体实现 17
5.1 系统的主窗口 17
5.2 登录模块 19
5.3 周课表模块 20
5.4 成绩查询模块 20
5.5 等级考试模块 22
5.6 新闻公告模块 23
5.7 我的课程模块 24
5.8 考试查询模块 25
5.9 学校校历模块 26
5.10 我的公选课模块 27
5.11 我的信息模块 27
6 系统测试 29
6.1 测试方法的选择 29

  1. 白盒测试: 29
  2. 黑盒测试: 29
    6.2 测试内容 29
    6.3 测试环境 30
    6.4 测试评价 30
    6.5 开发过程的总结 31
    结束语 32
    致谢 33
    参考文献 34

1 绪论
在互联网技术以及移动智能设备快速发展的今天,人们对于跨时空和跨地域进行智能化的学习以及交流越来越追捧[1]。为了使当今高校教务管理能够有条不紊的进行,进一步的探索移动互联网时代高校教务管理工作的有效途径,充分认识并利用移动互联网的优势,将当下最流行的微信平台与传统教务系统相结合,具有十分重要的意义。
本课题《基于微信公众平台的教务查询系统的设计与实现》使用的前端开发工具是微信Web开发者工具,此系统并没有使用传统的前后台相结合的方式,也没有涉及到数据库的使用,而是将前后端分离,采用Jsoup技术来解析学校教务网的URL地址以及HTML页面。通过Java语言、Jsoup技术来对教务查询小程序进行开发实现。此小程序结合大学生对教务查询系统的日常使用需求,学生可以在服务端页面进行的查询服务如下:新闻公告查询、周课表查询、成绩查询、等级考试成绩查询、学期课程查询、考试日程安排查询、学校校历查询、公共选修课信息查询以及基础的用户登录等功能。
1.1 研究背景
智能手机、微信在高校中的普及为微信平台应用于高校师生的教学和信息查询提供了基础保证,而传统基于PC端的高校教务系统已经满足不了学生教师的需求,为了解决这一问题已经有部分高校以微信公众平台为基础开发出移动教务系统,以移动智能终端作为访问入口,通过智能手机可以随时随地访问教务系统,并进行查询等一系列的操作,此举使师生之间沟通交流更为方便,也提高了工作学习的效率。
微信是腾讯公司2011 年推出的一个为智能终端提供即时通讯服务的免费应用程序,可以通过朋友圈、公众平台、第三方平台等服务与好友分享精彩内容。微信的应用在我国高校学生中已基本普及。鉴于微信的便捷性、易用性、普及性等方面的考虑,传统的教务系统和微信公众平台的结合是大势所趋。微信公众平台为开发者提供了丰富的接口,利用这些接口开发者可以在较短时间内设计实现一个基于微信平台的教务查询系统。
1.2 教务查询系统的现状和发展前景
从相关数据反应,国外的高校教务管理系统不断沿着多终端、互联网和云存储的方向发展,当国内高校教务系统着手于PC端开发的时候,国外的教务系统则开始着眼于移动智能端教务系统的开发,可不受时空地域限制了解教学信息,使高校师生在教学生活方面更加便捷。而云存储技术的应用,使得系统的信息存储更加庞大,这对于高校学生选修课程提供了方便,也为不同学校之间的课程学习也提供了渠道,让教学和学习更加自由。同时,部分高校开发出来了针对网络平台的教务管理系统,不单单为校内和校外选修学习提供了方便,还吸引了更多喜欢交流学习的人参与高校活动,丰富了高校学习活动的氛围以及学习圈子。在几年之前,有条件的学校已经开始依托校园网围绕本校教务管理实际情况开发各管理模块;而条件差的学校只能使用不联网的教务系统,系统的功能十分简陋,仅实现其中一些相关的模块,也并不是所有的教务管理都能实现计算机信息管理。现在,在互联网飞速发展的状况以及需求的拉动之下,各个高校已经开始注重软件建设,以“强调应用”为主题、以软件开发为主的应用系统改造的新的阶段,主要是以PC端的教务查询系统为主,利用Spring+Spring MVC+MyBatis框架来实现[2]。当然现在绝大多数高校的教务系统已经趋于完善并逐渐向移动端转化,移动端的教务系统相对于传统PC端的教务系统更加的灵活、便捷,也是日后教务系统发展的趋势。
截至2016年底,全国已经有约9.27亿用户注册了微信,而到2018年底,微信月活跃用户已达10亿,其中占比最高的是高校学生。因此各大高校开始依托微信公众平台来进行移动端教务系统的开发,并在近几年普及开来。在2017年微信小程序出现以后,年底就有58万个小程序诞生[3]。已经有部分高校依托微信平台开发出来教务查询系统小程序并投入使用,更加方便教师和学生的操作,提高了工作效率。例如闽南科技学院依托微信平台开发的教务系统小程序已经投入使用,并且相关功能基本完善。根据腾讯最新公布的数据,小程序的使用者已经高达1.7亿,小程序的数量也在急速攀升,几乎覆盖了全国大小城市[4]。
1.3 系统的技术架构
小程序版的教务查询系统相对于传统网页版的教务系统更加的方便、高效、美观。例如:查看方便、不受时间地域限制以及页面简洁美观等。这些优点更能让学生便捷高效的学习,查询他们所需要的信息。
本课题实现的教务查询小程序:后端使用JAVA来开发,采用的是Springboot框架、Jsoup网页解析技术以及Maven技术;前端技术采用微信小程序、WEUI技术以及Wxparse技术。真正实现了开发方便、管理简单且易于操作的优点。
1.4 论文框架
本论文主要介绍了基于微信平台的校园教务查询系统的开发过程,包括绪论、需求分析、系统设计、详细功能模块设计、功能显示、系统测试等,共分为六章,每章内容分别如下:
第一章,绪论。简要介绍了基于微信平台的校园教务系统的现状和研究背景,对教务查询系统的发展前景进行讨论,并简单阐述了论文各章节的内容。
第二章,系统需求分析。主要介绍了系统的需求,根据需求分析了系统的用例,并对系统开发过程中应用到的一些技术的特点和这些技术对系统的作用进行介绍和分析。
第三章,系统详细功能模块设计。分析了系统的功能模块以及业务流程,给出系统的总体框架。
第四章,系统详细设计。具体分析系统的功能,按照功能绘制系统时序图,并对页面数据解析做了详细的步骤描述。
第五章,系统功能的具体实现。详细介绍了用户登录进入主窗口的页面以及实现的几大模块。
第六章,系统测试。包括系统测试环境,系统测试方法,测试内容以及对系统的评价和总结。

2 系统需求分析
在软件开发过程中要学会自己去分析需求,这是软件开发中一项必须要经历的过程。在软件开发中,无论采用哪种开发技术,都需要在研发前进行一系列的需求分析。以此确定用户对软件在功能、性能以及环境等方面的需求,将用户需求精准化、完全化,确保软件的实用性[5]。
需求分析是确定软件的细节设计、功能和性能,是软件的一个重要组成部分[6]。做好需求分析,以更好地满足用户的需求,延长软件的生命周期,降低软件开发成本。
基于微信平台的校园教务系统是一个操作简单、便捷的系统工程,该系统主要用于对高校教务运作管理。根据登录用户来说,主要是学生查询界面,针对于学生而服务,使用户进行更科学化、正规化管理,提高管理效率、降低管理成本。
2.1 系统概述
本课题实现的是一个基于微信平台的教务查询系统,本系统主要供学生日常教务查询使用。学生需要登录之后才可以进入首页来浏览系统内容、各个功能模块以及查看个人信息等。在登录之后,用户可以进行新闻公告查询、课表查询、公选课信息查询、成绩查询、等级考试查询、校历查询和考试时间查询等功能模块的操作。
2.2 系统功能需求
基于微信平台的校园教务系统的主要功能是让学生能够方便快捷的查询自己的课表信息、考试信息、成绩信息等,以达到方便、高效的目的。该系统具有以下优点:方便学生查询信息,降低成本;使学校更加高效方便的服务于学生,提高办公效率。
本系统主要模块:
1.用户登录
为了防止本系统数据的泄露,用户只有在输入了正确的账号和密码之后才能进行相关操作。
2.首页
是本系统的主窗口,给用户提供了最主要的信息展示以及导航效果。
3.公选课信息查询
可以显示本学期以及之前所选公共课的信息。
4.学校校历
可以查看本学年的校历以及放假日程。
5.考试查询
查询本学期期末考试时间以及补考时间。
6.成绩查询
查询本学期考试成绩以及历史期末考试成绩。
7.等级考试
查询每次的英语等级考试成绩和计算机等级考试的成绩。
8.新闻公告
查看学校所发布的新闻及重要通知。
9.我的课程
查看本学期课程安排,包括课程名字以及教师名字等信息。
10.个人信息
可以看到自己的身份证、学院、班级等信息。
2.3 系统用例图
用例图是由参与者、用例以及它们之间的关系构成的用于描述系统功能的动态视图,主要用来描述用户需求。
基于微信平台的校园教务系统的用例如图2.1所示:

基于微信小程序的教务查询系统的设计与实现_第1张图片
2.4 技术平台
本课题基于Java网络爬虫和微信小程序实现。前端参考了Bootstrap,Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成[7]。整个系统使用Spring Boot框架进行后台搭建以及数据网络传输,此后台相当于网站的后台服务,用于处理小程序服务请求,接收请求后再去教务网解析数据返回给小程序。使用Jsoup爬虫框架至校园教务网站抓取相关数据,使用微信小程序作为客户端,展示登录用户的数据,其中微信小程序引入了wxparse插件来解析html片段并展示数据至wxml,引入WXUI作为小程序的UI框架[8]。同时,整个后端项目使用maven管理项目,构建项目,不再以单独引入jar这种方式引入依赖,这样更加的方便高效。
2.4.1 Spring Boot
Spring Boot只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具[9]。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
Spring Boot具有以下特点:

  1. 创建独立的Spring应用程序。
  2. 嵌入的Tomcat,无需部署WAR文件。
  3. 简化Maven配置。
  4. 自动配置Spring。
  5. 摒弃繁琐的xml配置,使用application.properties自由组合配置需要的属性。甚至web项目都不需要WEBAPP目录。
  6. 提供了一系列大型项目中常见的非功能性特性:如嵌入式服务器、安全指标、健康检测、外部配置等。
    2.4.2 微信小程序
    微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
    2017年1月9日,张小龙宣布微信小程序正式上线。
    微信小程序其实就是一个基于微信运行的程序,腾讯未来会把微信作为一个移动端OS,在微信基础上运营一个企业的小程序,这样方便用户使用,不需要下载和安装。
    微信将“小程序”定义为“一种新的应用形态”。微信方面强调:小程序、订阅号、服务号、企业号目前是并行的体系。
    小程序的推出并非意味着微信要来充当应用分发市场的角色,而是给一些优质服务提供一个开放的平台。一方面,小程序可以借助微信联合登录,和开发者已有的 App 后台的用户数据进行打通,但不会支持小程序和 App 直接的跳转。
    随着小程序正式上线,用户可以通过二维码、搜索等方式体验到开发者们开发的小程序。用户只要将微信更新至最新版本,体验过小程序后,便可在发现页面看到小程序TAB,但微信并不会通过这个地方向用户推荐小程序。
    小程序提供了显示在聊天顶部的功能,这意味着用户在使用小程序的过程中可以快速返回至聊天界面,而在聊天界面也可快速进入小程序,实现小程序与聊天之间的便捷切换。
    2.4.3 Maven
    Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务基于Java平台的项目创建、依赖管理和项目信息管理。Maven是Apache的顶级项目,解释为“专家、内行”。Maven自身是纯java开发的,是以通过一小段描述信息来管理项目的构建报告和文档的项目管理工具软件[10]。
    Maven为开发人员提供了一个构建完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
    此外,Maven能够很方便的帮你管理项目报告、生成站点、管理JAR文件等等。
    Maven具有如下几个优点:依赖管理、一键构建、跨平台和应用于大型开发项目可提高效率。
    2.4.4 Bootstrap
    Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等[11]。当然也包含了十几个自定义的jQuery 插件。
    2.4.5 Jsoup爬虫框架
    Jsoup 是一款基于Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM、CSS以及类似于jQuery的操作方法来取出和操作数据[12]。

3 系统设计
本系统采用的前后端分离实现,即小程序负责UI展示并发送http请求到后端,通过json数据进行展示,即前端与后端仅通过json数据关联。传统的方式则是将数据写入session,然后在web页面通过代码获取session数据后再将数据进行展示。
3.1 系统总体设计
本系统主要是为学生服务,学生的登录账号则是由学生入学的学号生成,学生可以在系统当中对所有模块进行查询,并且可以查看个人信息。功能模块如图3.1所示:
基于微信小程序的教务查询系统的设计与实现_第2张图片
3.2 系统业务流程图
在教务查询小程序中,学生必须在正确输入账户信息后,才可以对周课表、等级考试、考试日程等进行查询。用户平台的业务流程图如图3.2所示:
基于微信小程序的教务查询系统的设计与实现_第3张图片
4 系统详细设计
在开发过程中,需求和设计问题造成系统不正确、不完整是项目进度拖延甚至失败的一个主要因素。因此在有限时间以及有限资源下,一定是先解决当下最核心的问题,预测未来可能发生的问题,一步步解决最痛点的问题[13]。也就是说,系统设计是个迭代的过程,在迭代过程中发现问题并修复问题,即满足需求的系统是不断迭代出来的,这是一个持续的过程。所以我们在开始的时候也要有一个好的系统设计,这样未来能达到一个更好的目标。
4.1 系统功能详解
基于微信平台的教务查询系统主要分为学生进行查询的功能模块界面以及学生个人信息界面,依据基于微信平台的教务查询系统中所需要实现的基本功能,将所有功能分解为以下几个主要的模块来实现。具体的操作模块如下:
1.用户登录:
用户可以在该模块进行账户的登录。用户在登录的过程中,会有相应的信息提示来告知用户当前登录的信息。用户输入正确的账号密码即可进入主页面。
2.周课表
用户进入周课表模块后可以查询到本周所要上的课以及所在教学楼,这是每周都可以更新的,方便学生的学习活动。点击返回标志可以返回到主页面。
3.成绩查询
点击成绩查询图标,进入到期末考试成绩页面。页面最上面一排是各列所表示的信息,第一列显示的是学期,第二列显示的是课程代码,第三列显示的是课程名称,第四列显示的是学分,第五列显示的是所得成绩,第六列显示的是此科目所得绩点,最后一列显示的是本科目一共有多少学时。
4.新闻公告
新闻公告页面可以由两个途径进入:一是可以通过点击新闻公告图标进入新闻公告页面查看本学期新闻公告;二是点击主页面滚动新闻下的“查看更多”也可以进入新闻公告页面。
5.我的课程
点击我的课程图标进入本学期课程页面,可以查看本学期课程代码、课程名称、课程类别、考核方式、总学时、学分、上课老师以及实践周次。
6.考试查询
点击考试查询图标可以查看本学期考试安排,包括了学分制期末考试安排以及不及格考试安排,在考试安排中可以查看课程代码、课程名称、考试时间、考试地点以及监考老师。
7.等级考试
用户点击等级考试这一图标,进入到等级考试成绩查询页面。等级考试成绩页面分为八列:依次是学号、考生姓名、考试时间、考核方式、语种代码、语种名称、准考证号以及考试成绩。等级考试成绩主要存放的是每次英语四六级考试成绩以及计算机等级考试成绩。
8.学校校历
点击学校校历即可看到本学年的校历,是一张校历图片,主要包含了节假日以及寒暑假的放假时间。
9.我的公选课
当用户点击我的公选课时,进入到公选课信息页面。公选课信息页面包含了每学期所选公共课,并且包含了学期信息、课程代码、公选课的名称、课程类别、学分、上课教师以及上课时间。
10.个人信息
个人信息与主页分开,是一个单独的页面。用户点击个人图标,即可查看自己的班级编号、班级名称、学号、姓名、性别、出生日期、学制、院系名称以及专业名称。在页面的顶端还可获取与之相关联微信的头像以及昵称。
4.1.1 系统时序图
学生在登录的情况下可以查询自己的期末考试成绩,待后台接受查询请求,返回数据后即可查看,其时序图如图4.1所示:
基于微信小程序的教务查询系统的设计与实现_第4张图片
。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。

全部内容点击下载:论文下载地址》》》》

你可能感兴趣的:(微信小程序,教务查询,管理系统,设计与实现)