基于微信公众平台的课堂辅助教学系统的设计毕业论文
2020-02-19 20:37:46
摘 要
近年来,随着社会科技的不断进步、移动互联网的迅速发展,特别是智能手机的普及,微信已经成为生活中必不可少的元素。而微信提供的微信这种平台更是方便了你我的生活,也一定程度上促进了社会生产力。本次设计基于新浪云应用服务器,探索和实现基于微信的教学辅助系统。
本系统利用自定义菜单的方式与微信用户进行交互,利用MySQL数据库来存储用户信息。通过HTML语言生成的界面来获取用户输入。并通过Android智能手机和个人计算机进行系统的功能测试以及对测试结果进行分析和改进。本次设计的亮点是点名/签到功能模块的实现,它合理的利用了微信提供的用户地理位置的经纬度信息来进行计算判定。
关键词:微信公众号;教学辅助系统;php编程语言;MySQL数据库;HTML语言
Abstract
In recent years, with the continuous advancement of science and technology, as well as the rapid development of mobile Internet, especially the popularity of smart phones, WeChat has become an indispensable element in our lives.The WeChat platform provided by WeChat is more convenient in daily life, and to a certain extent, promotes social productivity.This design is based on Sina cloud application server to explore and implement WeChat-based teaching assistant system.
The system uses a custom menu to interact with WeChat users, using a MySQL database to store user information.User input is obtained through an interface generated by the HTML language.And using the Android smartphone and personal computer for functional testing of the system and analysis and improvement based on the test results.The highlight of this design is the implementation of the call/sign-in function module, which makes reasonable use of the latitude and longitude information of the user's geographical location provided by WeChat for calculation and judgment.
Key Words:WeChat platform;WeChat-based teaching assistant system;php programing language;SQL database;HTML language
目录
第1章 绪论 1
1.1 微信公众平台发展现状 1
1.2 目的及意义 1
1.3 教学辅助系统国内外发展状况 2
第2章 系统开发技术及工具 3
2.1 PHP程序设计语言 3
2.2 PhpStorm开发工具 3
2.3 XAMPP介绍 3
2.4 SAE介绍 3
第3章 系统总体设计 5
3.1 系统需求分析 5
3.2 不同设计方案的比较和取舍 5
3.2.1和用户的交互方案 5
3.2.2用户信息的管理方案 6
3.3 数据库设计 6
3.3 功能设计 7
3.3.1教师相关功能 7
3.3.2学生相关功能 8
3.3.3共同功能 9
第4章 系统实现 10
4.1 微信公众号的申请和配置 10
4.2 公众号和新浪云服务器的对接 10
4.3 自定义菜单的实现 12
4.4 教师功能模块的实现 12
4.4.1 教师开设课程 12
4.4.2 教师发布作业 13
4.4.3 教师点名功能 13
4.4.4 教师查看自己开设的课程 13
4.5 学生功能模块的实现 13
4.5.1 学生加入课堂 13
4.5.2 学生做作业功能 14
4.5.3 学生签到 14
4.5.4 学生查看自己加入的课程 14
4.6 共同功能的实现 14
第5章 系统测试 16
5.1 测试说明 16
5.2 公众号使用实例 16
5.2.1教师开设课程实例 16
5.2.2 教师查看开设课程实例 16
5.2.3 教师点名实例 17
5.2.4 发布作业实例 18
5.2.5 学生加入课堂实例 20
5.2.6学生查看加入课程实例 20
5.2.7 学生签到实例 21
5.2.8 学生做作业实例 22
5.2.9 讨论功能实例 22
5.3 体验分析 24
第6章 总结和展望 25
6.1 总结 25
6.2 展望 25
参考文献 27
致 谢 28
附 录 30
绪论
1.1 微信公众平台发展现状
毫无疑问,微信是时下最流行的社交软件,它的即时交互性异常强大。而微信公众号又是组成微信的重要部分,微信由于有了微信公众号而越发具有活力。微信公众号极大地方便和丰富了你我的生活。资本为公众号注入了源源不断的新鲜血液。作为公众号的使用者,我们可以很便捷的进入微信公众号进行快递查询,手机充值,买卖商品。作为公众号的管理和开发者,我们可以使用腾讯提供的微信API开发自己的业务逻辑。从简单的发布文章到复杂的交易支付,都可以通过微信公众号完成。所有用户都在腾讯提供的统一微信公众平台下进行相关操作[[1]]。
微信自2012年上线以来,使用人数便迅速增长,虽然近两年增长速率有所减缓,但总体使用人数不断增加。经过不断的发展,并且赶上中国互联网发展的春天,微信公众号的用户使用量节节攀升,据相关数据,在2014年底,微信公众号的数量已经超过了800万。根据微信官方18年7月公布的数据,目前所有的微信公众号已超过2300万个。按照我国总人口和公众号个数计算,平均每70人就拥有一个公众号。由此可知,微信公众号在自媒体时代的今天稳立于处于绝对优势的一线地位。因此,在这样一个新兴科技产品正在加速服务于我们的工作生活的环境下,将教学和互联网有机融合在一起,加强了线上与线下的联动,便是大势所趋。
1.2 目的及意义
学习已经成为我们生活中不可分割的一部分,而一个用户友好的教学辅助系统可以给教师和学生带来各个方面的便捷和帮助。当前大多数教学辅助系统是基于个人电脑的,而众所周知,个人计算机的携带远不如手机方便。所以,将教学辅助平台移植到学生和教师的智能手机上可以更好为他们提供服务。微信公众号以及它的应用为我们的移植提供了很好的思路,可以利用微信官方提供的各种接口实现与教学相关的操作。比如,利用经纬度信息来进行签到,利用关键字系统与学生交互。事实上,当下已经出现了一些操作方便,互动性较高的相关公众号,比如微助教公众号。它们的出现一方面为作为使用者的教师学生提高了学习教学的效率,另一方面为作为开发者的我提供了宝贵的经验和参考。
微信二次开发出来的系统不会以独立的软件出现,而是以微信作为载体,可以最大程度的保障系统的普适,保障不受时空限制。虽然辅助教学系统已经有了很大程度的发展,但是只有很少的一部分人在研究如何利用微信公众平台进行辅助教学。一款主要面向课堂之上,面向交互的系统是对现有的辅助教学系统模式的补充,可以很大程度上满足师生对课堂交互的需求,而这种课堂交互正是学生教师所需的。例如实现课堂上的实时签到统计、课堂答等功能。基于微信的辅助教学系统以公众号为载体,使用微信二次开发,以注重实时性和交互性为开发理念,以课上为使用主体,为现有的辅助教学系统提供了补充,满足了师生对课堂交互的需求[[2]]。教师和学生可以简单实时地在系统中实现答题、提问、留言等操作,也有助于提升课堂效率和教学效果,并有助于提高学生的积极性与注意力[[3]]。
1.3 教学辅助系统国内外发展状况
南京大学的马振东把微服务架构应用于微信公众平台,把微信公众平台平台中的应用分成一个个的微服务,这些微服务可以独立的进行开发和管理,易于扩展和维护;而各服务采用比较成熟且稳定的Spring MVC框架,轻量级的Spring框架提供了对MVC模式的实现机制,将对象之间的依赖关系交给IOC容器管理,极大的提高了开发效率。而苏州大学的张文哲使用MySQL作为微信端服务器的数据库。其中包含学生个人信息表,微信openID 用户绑定表,学生成绩表等。特点是性价比高易于使用和管理。综上所述,微信虽然作为新兴事物,但人们已经对它的开发已有了广泛的探索,并形成了一些特定的框架。尤其是腾讯提供的API接口,极大的方便了第三方开发者。所以本次开发的核心围绕着openAPI,基于客户/服务器模式展开。哈尔滨工程大学的何旭等人利用PHP语言为其水力实验室开发了一个协作教育的管理系统,他们在其系统中使用了基于模型-视图-控制器(MVC)模型的B / S(Brower / Server)结构。
1.4 论文章节安排
第一章,绪论,本章首先叙述了微信和微信公众号的发展历史,之后又阐述了基于微信的教学辅助系统的意义。最后分析了几个基于微信实现教学辅助系统的实例。
第二章,系统开发技术与工具。本章介绍了php编程语言以及PHPstorm集成开发环境。最后介绍了新浪云应用服务器。
第三章,系统总体设计。本章主要比较了不同设计方案的优劣。最后详细阐述了功能设计以及数据库设计。
第四章,系统实现。本章主要是以php源代码的形式阐述系统各个功能的实现。
第五章,系统测试。本章以实例的形式展现了一个一般的课堂教学的过程。最后分析了一些不足之处和改进方案。
第六章,总结与体会。总结了我这次的工作。
第2章 系统开发技术及工具
2.1 PHP程序设计语言
PHP是网络编程的主要语言,所以本次系统的实现中,作为开发者的我选择使用PHP语言[[4]]。PHP,Hypertext Preprocessor, 即超文本预处理器,它具有很强的动态性,可以和HTML语言混编。相比于C和C 语言,php语言的语法尤为简单,没有像C 中难以理解的多继承,指针,左值引用,右值引用等概念。这一特性也使PHP语言具有学习成本低,开发效率高的优点。其次,它有着像thinkPHP这样的高质量开源框架,也有像worldpress、Joomla这样的开源CMS系统。也正是因为这些优点,php语言在生活的各个方面的应用正在变得越来越广泛。
2.2 PhpStorm开发工具
PhpStorm 是 php的集成开发环境。它由JetBrains 公司开发打造。它可以极大地提高开发者的开发效率。它最大的优点便是方便智能。它提供用户友好的可视化开发环境,比如在利用HTML进行网页设计时,即使是在代码的编辑页面,它也会智能地显示各个网页元素的颜色等信息。因此相对于其他php的开发环境而言,其功能更加完善,更加强大。它的代码补全功能可谓是同辈中的佼佼者,有利于提高代码编写的正确率和速率,极大地减轻了开发者的负担。并且开发者可以很方便的查看php官方的文档,开发者可以快速跳转至某个函数的官方说明,或者查看函数期望的参数和返回值以及一般用法,而省去了不断人工搜索的精力和时间。开发者也能快捷的查看某个类的继承关系,这把开发者从各种繁杂的操作中解放出来。
2.3 XAMPP介绍
XAMPP最大的作用便是很方便的在个人电脑上搭建服务器环境。更令人欣慰的是,作为一款功能强大的软件,它是免费开源的,这对作为个人开发者的我来说是福音。从名字中便可以看出,它集成了Apache、MYSQL、PHP。同时还包含了管理MYSQL的工具phpMyAdmin,它可以可视化的对MySQL数据库进行操作,在可视化的同时还能生成相应的结构化查询语句,可以方便的对数据表增添删改字段和属性。由于个人计算机不是长期当做web服务器使用的,所以在仅做开发测试时,使用xampp就显得符合需求。
2.4 SAE介绍
新浪云应用(Sina App Engine简称SAE)是国内具影响力的,分布式Web应用/业务开发托管、运行平台之一。SAE作为国内的公有云计算,开发伊始借鉴吸纳Google、Amazon等国外公司的公有云计算的成功技术经验,并很快推出有别于国外公司并具有自身特色的App Engine。SAE选择在国内流行最广的Web开发语言PHP作为首选的支持语言,Web开发者可以在Linux/Mac/Windows上通过SVN或者Web版在线代码编辑器进行开发、部署、调试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限;SAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。
事实上,当下的市面上有很多类似的服务,比如百度云、阿里云和腾讯云。综合各方面考虑,在本次开发中,我选择使用SAE的云应用以及它的数据库服务。因为新浪云以其低廉的价格跟适合个人开发者,它的共享型数据库基于MySQL-5.6 开发[[5]]。并且也提供PHPmyadmin来对数据库进行操作。
第3章 系统总体设计
3.1 系统需求分析
系统的总体需求可以如图3.1所示:
图3.1 系统需求示意图
过分析设计要求可知,该系统要为教师、学生提供实时询问与留言,答题及统计,及时签到等功能[[6]]。所以可以据此设计如下:教师功能模块:开设课程,点名,发布作业,去讨论版,查看开设的课程学生功能模块与教师模块相对分别为:加入课堂,签到,发布作业,去讨论版,查看参加的课程。
3.2 不同设计方案的比较和取舍
3.2.1和用户的交互方案
关键词系统:利用服务器主文件(在这个设计下是一个php文件)中的字符串匹配来对用户发来的不同的关键词做出不同的回复。在用户关注公众号的时候,该公众号会回复用户一个文本类型的消息,以告诉用户两者交互的规则,建立通信协议。比如什么样的关键词对应哪一种功能,哪些是不合法的关键词等等,之后用户在这个规则下来达到教学辅助的目的。
自定义菜单:自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。用户通过菜单可以很方便的找到自己想要的功能或服务,无需再担心自己键入了无效的关键词或者不清楚通信规则。给用户更好的体验。
关键词系统实现起来比较简单,而自定义菜单属于微信的高级接口,实现起来也比较复杂。而且微信的高级接口是需要权限的,权限的获取需要遵守微信官方一系列复杂的协议。但是自定义菜单可以给予用户良好的体验,由于在本次设计中,我们始终把用户的体验置于最高优先级,所以我决定选择第二种方案,即自定义菜单。
3.2.2用户信息的管理方案
文件系统:文件系统利用php语言中对文件的操作,通过读写文件来存储、获取、修改、删除用户信息。程序只关心在存储设备之上的文件名,而无需关心数据的物理存储。在本次设计中存储设备就是新浪云应用提供的云空间。但是究其根本数据还是以文件的组织方式,长期存储在计算机的硬盘上的,可以被反复多次的利用。它要求程序员自定义文件中信息的数据结构及其代表的含义。
数据库系统:利用PHP语言中丰富的对数据库的操作,通过与指定数据库建立连接来对数据库进行操作。数据库系统工作在操作系统之上,在应用开发工具之下。DBMS可借助操作系统提供的系统调用来完成对硬件的访问,并能通过结构化查询语句对数据进行存取、维护和管理。数据库系统拥有三类用户:数据库管理员、应用程序员和最终用户。在设计中我以应用程序员的身份为终端用户编写程序。
首先,在文件系统中,文件的结构和存储信息的结构需要开发者自己构造和实现,这一方面增加了开发者的负担,另一方面也使程序的鲁棒性变差。并且当数据的逻辑结构改变时,还要对程序进行重写,费时费力。数据间联系不强,文件与文件之间的关系必须通过程序来构造,文件系统不能反映现实世界事物之间的内在联系。而数据库系统则在文件系统的基础上对其进行补充改进。它巧妙地通过三级模式结构把数据的定义从程序中分离出去,而数据的存取由数据库管理系统负责,大大地简化了应用程序的编写,使维护和修改都变得简单易行。在保证了数据的独立性的同时又简化了用户接口,使数据的安全保密性更强的同时又有利于数据的共享。所以,在本次设计中我选择数据库系统。
3.3 数据库设计
根据数据库设计的基本原则,经充分考虑原始单据与实体之间的关系、主键与外键的关系、基本表的性质、范式标准。现如下设计数据库中的基本表。
(1)List表:首先,为了存储用户的信息要有一张list表,用来记录用户的openid和姓名。其中openID是腾讯官方提供的为了识别用户而为每个用户针对每个公众号产生的一个安全的OpenID。所以我们在这里用openID作为主键。
(2)class表:该表是为了实现教师课设课程功能,当教师输入课程名时,该表会把教师的openID和课程名存入之后返回给教师一个课程ID。所以该表有三个属性列,分别是1教师的openID。2由教师提供的课程名。3.一个有自增属性的课程ID。其中openID和课程名为主键,而课程ID可以作为其他用到课程信息的表的外键。
(3)sc表(学生选课表):该表是为了实现学生选课功能,当学生输入由教师口头告知的课程ID时,该表会把学生的openID和课程ID存入。所以该表有三个属性列,分别是1.学生的openID。2.课程ID。3.flag标志。其中openID和课程ID为主键,而flag标志留给之后签到功能的实现。
(4)call表:该表为了实现签到点名的功能。在我的设计里,我使用微信获取的用户的地理位置信息来实现签到。所以该表有三个属性列,分别是1.学生和教师的openID。2.经度。3.维度。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: