基于微信的辅助教学系统的设计与实现.doc_第1页
基于微信的辅助教学系统的设计与实现.doc_第2页
基于微信的辅助教学系统的设计与实现.doc_第3页
基于微信的辅助教学系统的设计与实现.doc_第4页
基于微信的辅助教学系统的设计与实现.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

存档日期: 存档编号: JIANGSU NORMAL UNIVERSITY 本科毕业设计 UNDERGRADUATE DESIGN论文(设计)题目: 基于微信的辅助教学系统 的设计与实现 姓 名: 孙* 学 院: 智慧教育学院 专 业: 计算机科学与技术(物联网技术) 年 级 、 学 号: 2012级 122* 指 导 教 师: 李小斌 江苏师范大学教务处印制江苏师范大学计算机学院学士学位毕业设计报告原创性声明本人郑重声明:所呈交的毕业设计报告基于微信的辅助教学系统的设计与实现 是本人在导师指导下,在江苏师范大学计算机学院学习期间,进行毕业设计时取得的成果。本人知道,除文中已经标明引用的内容外,本毕业设计报告不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人或集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。本人签名 年 月 日设计版权使用授权书本设计 “基于微信的辅助教学系统的设计与实现 ”是本人在校期间所完成学业的组成部分,是在江苏师范大学教师的指导下完成的,因此,本人特授权江苏师范大学可将本毕业论文的全部或部分内容编入有关书籍、数据库保存,可采用复制、印刷、网页制作等方式将论文文本和经过编辑、批注等处理的论文文本提供给读者查阅、参考,可向有关学术部门和国家有关部门或机构呈送复印件和电子文档。本毕业论文无论做何种处理,必须尊重本人的著作权,署明本人姓名。 作者签名: 指导教师签名: 年 月 日 年 月 日 基于微信的辅助教学系统的设计与实现摘 要辅助教学系统与教师、学生教学和学习息息相关,一个实用的辅助教学系统可以为教师的教学以及学生的学习提供很多便捷和帮助。微信是现今流行的一种社交软件,具有很大的即时交互性。微信公众号提供了高效的关键词系统,为交互性提供了保障,本设计主要依托微信公众账号的关键词系统,实现课堂的即时交互与辅助教学。本设计注重于,解决课堂上交互的即时处理,避免使用网页等非实时载体。本系统为教师、学生提供及时签到,实时答题及统计,询问与留言等功能,方便学生及时解决疑惑,教师及时了解学生动态,提升课堂教学效率。本系统虽然不是很全面,不像一些辅助教学app或者网络辅助教学系统有着更加丰富的功能,但本系统的最大特点是以简洁和必要的功能保证课堂效率以及课堂交互的实时性,充分发挥微信作为及时交互工具的特点。本设计主要基于微信公众号提供的开放接口,充分利用关键词系统,利用php语言、mysql数据库,sae平台进行设计,给大家一个及时高效的辅助教学系统。该论文有图25幅,表1个,参考文献21篇关键词:微信 辅助教学 关键词 交互The Design and Implementation of the Assistant Teaching ystem Based on WeChatAbstractAuxiliary teaching system is closely related to teachers, students, teaching and learning. One useful auxiliary teaching system bring teachers teaching and students learning a lot of convenience and help.WeChat is a now popular social software, has a great deal of real-time interactive.WeChat public system provides efficient keywords, has provided the safeguard for interactivity, this design mainly depends on the WeChat public accounts keywords system, and realize real-time interaction with auxiliary teaching class.Focusing on the design, solve the classroom interactive real-time processing, avoid using non real-time carriers such as web pages.The system to provide timely check for teachers, students, real-time problem solving and statistics, inquiry and comments, and other functions, convenient for students to solve doubt, teachers understand students dynamic in time, improve the classroom teaching efficiency.Though this system is not very comprehensive, not like some auxiliary teaching app or the function of the network auxiliary teaching system has a more rich, but the biggest characteristic of this system is concise and necessary function to ensure the efficiency of class and class interaction of real-time, give full play to the WeChat as the characteristics of interactive tools in time.This design is mainly based on WeChat public offer open interface, make full use of the keyword system, using the PHP language and mysql database, sae platform design, give you a timely and efficient auxiliary teaching system.Keywords:WeChat Auxiliary teaching Key words interaction目 录摘要-Abstract-目录-图清单-表清单-1 绪论-11.1课题背景及研究意义 -11.2开发工具的选用及语言介绍-11.3文章内容及课题的主要贡献-31.4本章小结-42 需求分析-52.1功能需求 -52.2性能需求-62.3文章内容及课题的主要贡献-62.4本章小结-73 系统总体设计-83.1系统的结构划分-83.2系统的主要数据成员-103.3本章小结-124 系统实现过程-134.1公众号申请与基本配置 -134.2进行token验证-154.3菜单及基础性接口-164.4教师功能模块-334.5学生功能模块-424.6本章小结-485 关键技术-495.1系统需要的硬件环境及软件环境-495.2编程的关键技术-495.3本章小结-506 公众号使用及推广-516.1公众号基本信息-516.2关键词说明-516.3公众号使用实例-526.4公众号推广及使用建议-566.5本章小结-567 总结与展望-577.1总结-577.2展望-57毕业设计体会-58致谢-59参考文献-60图清单图序号图名称页码图1-1关键词原理示意图3图2-1学生及教师用户用例图6图3-1系统总体功能框架8图3-2教师功能模块结构图9图3-3学生功能模块结构图9图3-4验证与搭建及其他功能模块结构10图3-5 table teacher 11图3-6table student11图3-7table question11图3-8table qiandao12图3-9table work12图4-1微信公众号13图4-2测试号(1)14图4-3测试号(2)14图4-4自定义菜单21图4-5关键词帮助33图6-1测试号二维码51图6-2教师开始签到52图6-3学生签到成功52图6-4结束签到53图6-5教师出题53图6-6学生答题54图6-7教师接收答题情况54图6-8交互学生端55图6-9交互教师端56表清单表序号表名称页码表6-1关键词说明表511 绪论1.1 课题背景及研究意义1.1.1 课题背景现在,社交工具已经进入人们生活学习的各方各面,微信作为一个社交工具更为广大同学和教师广泛接受。微信为用户提供了公众平台服务、为用户提供了分享和消息获得的渠道,用户可以通过微信表达自己的喜怒哀乐,可以通过微信朋友圈将自己的生活乐趣、各种经历、各种所得向朋友们展示,微信也渐渐的融入人们生活的方方面面,给人人与人之间搭建了一个新的交流渠道,丰富了生活1。微信公众平台很高的交互性和平台性,为移动移动学习和辅助教学提供了一种新的渠道和方式 2。辅助教学系统现在已经广泛获得应用,但是在很大程度上难以满足广大师生进行及时交互并便捷地在教学过程中获得数据和反馈的需求3。以本校的辅助教学系统为例,主要提供了选课,成绩查询等功能,主要是解决课前课后的问题,并未提供交互性的课上服务。而微信公众号以其提供的api和交互体系,也为开发出一套注重课堂交互的辅助教学系统提供了可能。微信编程以其准确、实时的关键词服务,为用户获得及时交互提供了高效的方式,设计科学的关键词系统,可以给用户带来人性化、简单高效的使用体验。微信二次开发出来的系统不会以独立的软件出现,而是以微信作为载体,可以最大程度的保障系统的普适,保障不受时空限制4。虽然辅助教学系统已经很大程度的发展,但是只有很少的一部分人在研究如何利用微信公众平台进行辅助教学。 5。一款主要面向课堂之上,面向交互的系统是对现有的辅助教学系统模式的补充,可以很大程度上满足师生对课堂交互的需求,而这种课堂交互正是学生教师所需的6。例如实现课堂上的实时签到统计、课堂答等功能。1.1.2 研究意义基于微信的辅助教学系统以公众号为载体,使用微信二次开发,以注重实时性和交互性为开发理念,以课上为使用主体,为现有的辅助教学系统提供了补充,满足了师生对课堂交互的需求。教师和学生可以简单实时地在系统中实现答题、提问、留言等操作,也有助于提升课堂效率和教学效果,并有助于提高学生的积极性与注意力,解决课堂中玩手机的问题。开发微信辅助教学系统可以巩固自己的所学知识,提高实际应用能力,并能更好地适应市场的实际需求,丰富自己的知识,了解一个现在比较热门的开发技术和方向。1.2 开发工具的选用及语言介绍1.2.1 微信二次开发 微信是腾讯公司推出的在智能终端提供的一种即时通讯的服务软件。微信公众号是微信向用户提供的一种账号形式,用户关注公众号后可以方便地获取多种多样的服务。为了使微信的开发者更好地进行微信的开发和拓展,微信公众号为用户提供了种类众多的open API,这些接口为开发者进行二次开发提供了支持。微信公众平台为用户进行二次开发提供了众多的open API,主要有消息接收接口、消息发送接口、获取用户信息接口、客服接口、菜单接口等7。微信的消息接收接口主要处理消息的接收与回复,消息的处理等。获取用户消息接口主要是通过用户的openid(用户在公众号中的标识)获取用户的头像、用户名等信息8。当用户和公众号发生一些动作的交互时,微信可以用一定的接口将消息发送给微信的第三方开发者,开发者可以在交互发生48小时内调用客服接口,通过https请求的POST方法将一个json数据包发送给服务器,服务器对json数据进行解析,达到主动向用户发送消息的目的。这个接口可以在一定条件下满足开发者主动向用户发送消息的请求,可以使用户在使用时获得更加令人满意的使用体验,提升微信公众号进行消息处理的灵活性。菜单接口用于微信菜单的定义与管理9。微信接口为用户进行二次开发,提供了固定的格式,用于xml或者json数据传输或实现一定的功能。以微信进行接口验证的接口为例,如下:private function checkSignature() $signature = $_GETsignature;/获取signature $timestamp = $_GETtimestamp;/获取时间戳 $nonce = $_GETnonce;/获取随机数 $token = TOKEN;/token值$tmpArr = array($token, $timestamp, $nonce);/将数据数组化sort($tmpArr, SORT_STRING);/排序$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );/sha1 加密if( $tmpStr = $signature )/如果验证匹配通过return true;/返回trueelsereturn false;/返回false以上接口主要是为了进行接口的验证与连接第三方开发者,主要包括token值(标志微信公众号与验证),signure(微信加密签名,signature是对用户填写的token参数和请求中的timestamp参数、nonce参数的结合。),timestamp(从服务器获得的时间戳),nonce(服务器产生的一组随机数),echostr(服务器产生随机字符串)作为验证标志。以微信进行普通消息传书的XML文档为例: /传递接收方的openid /传递发送方的openid 1333333333/传递时间戳/传递消息的类型/传递消息的内容1111111111111/信息的id值主要包括,微信发送者的openid,接收者的openid,消息内容等。微信根据规范的xml文档格式进行消息的解析10。 微信公众平台作为微信提供的一种服务对接口权限和调用频次具有一定限制,在这里不做详细说明。1.2.2 微信关键词微信的关键词系统是微信公众平台进行消息回复与消息处理的一个重要机制,也是实现实时交互的一种重要手段。微信通过庞大的关键词系统进行事件或者用关系的匹配,实现消息的自动回复或者处理。微信关键词的处理机制如图1-1所示。 图1-1 关键词原理示意图1.2.3 PHPPHP是微信接口的主要语言,是很多开发者进行微信二次开发的优先选择语言。PHP(Hypertext Preprocessor, 超文本预处理器),是一种服务器端、跨平台、HTML嵌入式的脚本语言。PHP是B/S体系结构,属于三层结构。服务器启动后用户可以不使用客户端软件进行使用和操作,只使用浏览器就能进行访问并使用功能11。PHP具有以下特点:安全性高跨平台特性支持广泛的数据执行速度快模块化支持面向对象与过程12。1.2.4 开发工具及运行环境适用的操作环境:微信公众平台开发环境: NetBeans IDE 、Dreamw 、新浪 SAE 、微信公众平台测试账号 服务器环境: 新浪SAE 云平台开发语言: PHP 数据库: Mysql1.3 文章内容及课题的主要贡献本文主要介绍了基于微信的辅助教学系统课题研究的技术背景以及现状,介绍了开发本系统的主要意义,整个系统的架构以及各模块的主要架构,分析了基于微信的辅助教学系统开发的可行性,对用户对系统的性能功能的需求进行了归纳和分析。此外,介绍了开发和实现系统索要使用的关键技术,介绍了基于微信的辅助教学系统的设计与实现过程。教师使用本系统可以更好的掌握课堂情况和活跃课堂节奏,而学生也能在课堂中更好地解决自己的问题,提高学习的积极性。可以很好地实现课堂交互。做为开发者,在开发的过程中,我可以很好地巩固知识并学习新的知识,开拓自己的眼界,并提高自己的能力。论文的主要章节概括如下:第1章是本文绪论,介绍了基于微信的辅助教学系统的课题研究背景、分析了开发该系统的意义和系统的价值,对开发本所系统所使用的技术进行了简要的介绍,除此之外,本章还介绍了系统开发的主要工具以及系统开发的环境,介绍了主要使用的编程语言,介绍了系统的运行环境。第2章是对基于微信的辅助教学系统的需求分析,总结说明基于微信的辅助教学系统主要要实现的功能,分析了用户的需求,分析和说明了系统开发、运用的可行性。第3章是对基于微信的辅助教学系统的总体架构以及各功能模块架构的总结和分析,介绍可一些重要的数据库和逻辑层设计第4章是基于微信的辅助教学系统的实现过程,介绍系统各个模块的实现代码,说明了一些重要的微信API。第5章介绍基于微信的辅助教学系统的软硬件需求以及开发的一些关键技术点第6章是个人对设计以及系统开发和自身情况的总结和展望。1.4 本章小结本章主要介绍了基于微信的辅助教学系统的开发背景、意义和价值。本节对微信二次开发及其部分接口做了简要介绍,介绍了微信公众平台的关键词响应式处理的原理做了简单介绍,简要介绍了项目的主要开发语言以及运行和开发环境。对本文的总体内容进行了简单的介绍。2 需求分析2.1 系统的功能需求分析2.1.1 系统的功能需求主要有以下几块内容: 1)教师的操作与管理 2)学生的操作与管理 3)系统其他功能与验证2.1.2 系统主要由以下3大功能块组成: 1)教师功能模块: 教师绑定与验证 发起签到于结束签到 在线出题 题目结果统计布置作业在线答疑交流 2)学生功能模块: 学生绑定与验证 学生签到 在线答题 发起交流与给教师留言 查看作业3)系统搭建与验证模块: 系统token验证基本菜单形成 关键词帮助 校历 2.1.3 系统的用例图用例图如图2-1所示。图2-1学生及教师用户用例图2.2 性能需求2.2.1 系统硬件需求安卓或IOS手机2.2.2 系统开发运行所需要的软件环境l 软件操作环境。微信客户端l 编程环境。1) NetBeans EDI 、dreamweaver2) SAE3) 微信公众平台测试号及其API4) Mysql2.3 可行性分析从技术上,微信公众平台提供了大量的API,为实现功能的接入打下了很有利的基础。另一方面,微信公众平台的数据格式较为统一,按照其格式进行代码书写会容易很多。Php作为编程语言,相对简单易学,再加上已拥有的编程基础,相对容易掌握13。另一方面,做为微信系统的二次开发,适配问题也较容易解决。 作为公众账号的二次开发,实时完善和拓展更加容易14。从经济和推广上看,作为适用特定推广的公众账号,复制性和便捷性较高,不需要额外的系统负担和存储空间。另外,二次开发的代码也较为轻量,开发工具和语言也是免费的,主要开支存在于公众账号认账以及可接入公网的服务器,其中认证费用完全可以接受,而服务器使用SAE、阿里云等开放平台做维护成本也较低。从系统的使用价值和推广上看,目前市场上成熟的辅助教学系统很多,但是本系统做为一种主要是面向课堂和实时交互的微信公众号,是一个有益的补充,用户需求比较大,作为一种面向班级或者课堂的推广与复用前景比较乐观。从以上看,经过完成开发和进一步推广,系统可以获得很好的推广效果。2.4 本章小结本章大概地说明了系统需要实现的功能、系统开发运行对软硬件性能的要求,分析了系统实现的可行性。系统需实现签到,答题等功能,主要有教师、学生、系统功能与验证,自定义菜单等几块。硬件上不限移动终端的系统,只需要微信作为支持。从整个开发、技术、消耗支出及推广等方面肯定系统能够实现,并可以获得很好的效果。第3章 系统总体设计3.1 系统的结构划分该信微信公众号系统主要分为3个功能模块:教师使用功能模块、学生使用功能模块、验证与搭建及其他功能模块。教师使用功能模块:基本的绑定,签到设置,作业发布,答疑出题。学生使用功能模块:基本绑定,签到,提问,查看答题。验证与搭建及其他功能模块:验证、菜单、关键词帮助、外链校历 3.1.1 系统结构图微信辅助教学系统与三个子模块及关系如图3-1所示。图3-1系统总体功能框架基于微信的辅助教学教学系统的设计与实现。系统主要完成对教师和学生两个人群的服务,划分成两个功能模块两种用户一一对应。量系统中的功能有相互依存。另外,系统中的其他独立于两种身份之外的包括token验证、自定义菜单、关键词帮助独立为一个系统。3.1.2 各个子系统的描述1)教师功能模块教师功能模块如图3-2所示。图3-2教师功能模块结构图教师功能模块主要完成教师短课堂交互的功能,包括绑定验证、签到设置、互动交流等功能的实现。教师端主要完成一些设置性,统计性以及交互性的的工作。2)学生功能模块学生功能模块如图3-3所示。图3-3学生功能模块结构图学生功能模块要为学生用户提供相应的服务,学生模块的功能大概与教师部分的功能相对应,以更好地完成课堂中两个参与者的相互交互。主要为学生根据老师的要求及设置完成操作服务,并提供自主留言与询问的接口。3)验证与搭建及其他功能模块验证与搭建及其他功能模块结构如图3-4所示。图3-4验证与搭建及其他功能模块结构前两个模块是该系统功能实现的主体部分,完成了系统交互双方的功能实现,本模块主要完成一些基础性工作,为实现上述功能提供基础与接口验证。此外增加了一些附加的功能。3.2 系统的主要数据成员系统中主要涉及到学生、教师两个用户主体数据,以及作业、题目、签到信息等其他的数据结构。数据主要存储在mysql数据库中。3.2.1 系统中主要数据成员的数据表结构1) 教师表教师表主要包括openid,technumber 两个核心心字段,openid 是用户在微信公众账号中的标识符,唯一对应一个用户,technumber作为教师工号与openid绑定,即可实现教师的绑定。另外两个为从微信端获取的信息,存储下来可用于拓展。如图3-5所示。图3-5 table teacher 2) 学生表学生表主要包括openid、stunumber、qiandao三个核心字段。Openid是微信用户在公众号的身份标识符,stunumber用于记录学生用户的 学号信息并进行绑定,qiandao记录学生的签到信息,1代表签到成功,0代表未签到。其他字段可用于其他拓展。如图3-6所示。图3-6 table student3) 题目表题目表主要包括id、answer、answer_count,right_count四个字段。其中id记录题目编号,answer记录客观题答案,answe_count记录题目回答数,right_count 记录正确数。如图3-7所示。图3-7 table question4) 签到表签到表的核心字段包括mark和secret。本表只会有一条记录,每次设置只会更新内容。Mark字段为签到标志,限制学生能否进行签到。Secret为签到密码,由教师设置,学生签到时进行匹配。如图3-8所示。图3-8 table qiandao5) 作业表作业表由id与work_content 两个字段组成。其中work_content 用于简单描述作业内容。如图3-9所示。图3-9 table work3.3 本章小结本章主要讲述了系统的几个主要模块及其组成,以及格模块的主要功能结构。给出了几个主要的数据成员,并给出了几个主要的数据表。4 系统实现过程4.1 公众号申请与基本配置进行微信公众号的二次开发,首先要申请一个微信公众号,相关步骤相对简单。微信公众号分为订阅号和服务号,为获得全部的高级及接口权限,需要进行对服务号的认证。服务号认证的主体必须为企业或组织,并提供相关证明。公众号进入后主要如图4-1所示。 图 4-1 微信公众号为满足一般开发者可以学习使用微信的高级接口并完成开发,微信公众号为开发者提拱了微信公众平台测试账号,我在进行开发时主要使用了微信开发者测试账号。微信公众平台测试账号提供了所有高级open API的功能,如客服接口、获取用户信息接口(部分接口有调用次数限制)。如图4-2及图4-3所示。 图 4-2 测试账号(1) 图 4-3 测试账号(2)4.2 进行token验证微信公众号在连接第三方开发者时,需要对接口及身份的有效性进行验证,即token验证。进行验证时,需要在微信公众平台对token值及验证链接进行接口配置,基本配置如图4-2所示,token值为weixin,验证链接为http:/1./index.php.。微信公众平台为token验证提供了接口,这部分在绪论中已做介绍,此部分提供实际代码。 define(TOKEN, weixin);/通过Wechat类,创建一个对象?$wechatObj = new Wechat();/$p=1;header(content-type:text);include function.php;include func.inc.php;/如果没有通过GET收到echostr字符串, 说明不是再使用token验证if (!isset($_GETechostr) echo aaa;/调用wecat对象中的方法响应用户消息 $wechatObj-responseMsg();else/调用valid()方法,进行token验证 $echoStr = $_GETechostr; if($wechatObj-valid()/调用valid方法去验证,valid方法上文已经有介绍 echo $echoStr; exit; 此段代码用于token验证,只有通过验证,开发者才能对微信公众平台进行开发。微信在首次运行时,首先需要进行token验证,验证成功后,即获得开发者权限,并且对于同一个开发者或地址,不需要再一次进行验证4.3 菜单及基础性接口在微信的二次开发中,需要定义及设计,一些接口,用于实现菜单、获取用户基本的信息等,为进一步开发实现功能。4.3.1 获取access_token 为了获取信息及调用一些微信公众平台的接口,需要获取公众号的accesstoken进行验证,获取的接口/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret,需要用https的reguest进行请求。其中appid为:wxf2c76edd9a1ac64e,secret为c0688a40365bbb13421c80d6eaed05fa。具体代码如下:void function get_token() $appid = wxf2c76edd9a1ac64e; $secret = c0688a40365bbb13421c80d6eaed05fa; $json = https_request(/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret);/https请求接口 $arr = json_decode($json, true); $access_token = $arraccess_token; return $access_token;4.3.2 获取用户信息在对公众号进行二次开发时,信息中的openid是用户在公众号的身份标识,在需要对用户信息进行获取的时候,需要请求获取用户信息的接口,以获得用户的微信名称等信息。接口如下:/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN,该接口需要在http协议下用request方法进行请求。获取的信息为json格式,需要解析为数组以方便访问。具体的实现如下: function getUserInfo($openid) $access_token=get_token(); /global $access_token; $url = /cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN ; /$result = https_request($url); $result = httpRequest($url);ech

温馨提示

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

评论

0/150

提交评论