物联网工程-基于thinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现_第1页
物联网工程-基于thinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现_第2页
物联网工程-基于thinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现_第3页
物联网工程-基于thinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现_第4页
物联网工程-基于thinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

PAGE 基于ThinkPHP3的后台教务系统(广州物联网技术学院教务系统)设计与实现摘要:自从国家越来越重视教育以来,我国的各大高校全都拔地而起。各大高校为了方便管理学生,都会使用教务系统或者后台系统来实现这一目的。但是,教务系统多,却不代表好。根据研究发现,很多学生都不喜欢他们学校的教务系统,所以我决定自行研究一个可以令他们满意的教务系统。本文首先对我这个研究是否具有可行性进行了分析,之后在此分析的基础上,得出我的研究课题。于是,为了实现这个课题,我去图书馆查阅了相关的书籍以及去问了一些身边的朋友关于她们学校的教务系统是怎样的,她们的教务系统拥有一些什么样的基础功能。经过差不多一个月的调研,我决定使用ThinkPHP3的主体框架+Bootstrap样式基础的方法来实现我的研究课题,并且决定了我所设计的教务系统应该具有什么样的基础功能,应该拥有怎样的成员类型,不同类型的成员需不需要一个对应的登陆窗口等。得出这些结果之后,我便按照着登陆界面,主体框架,具体功能实现的顺序开始完成我的研究。关键词:教务系统,ThinkPHP3,Bootstrap

Designandimplementationofbackgroundeducationaladministrationsystem(educationaladministrationsystemofGuangZhouInternetofthingstechnologyinstitute)basedonThinkPHP3Abstract:Sincethestateattachesmoreandmoreimportancetoeducation,alltheuniversitiesinourcountryhavesprungup.Inordertofacilitatethemanagementofstudents,universitieswilluseeducationaladministrationsystemorbackgroundsystemtoachievethispurpose.But,educationaladministrationsystemismuch,donotrepresenthowevergood.Accordingtotheresearch,manystudentsdonotliketheeducationaladministrationsystemoftheirschool,soIdecidedtostudyaeducationaladministrationsystemthatcansatisfythem.Thisarticlefirstanalyzeswhethermyresearchisfeasible,andthenbasedonthisanalysis,Icometomyresearchtopic.So,inordertoachievethistopic,Iwenttothelibrarytochecktherelevantbooksandaskedsomefriendsaroundmeaboutwhattheirschool'seducationalsystemisandwhatbasicfunctionstheireducationalsystemhas.Afteralmostamonthofresearch,IdecidedtouseThinkPHP3'smainframework+Bootstrapstyle-basedapproachtoachievemyresearchtopic,anddecidedwhatbasicfunctionstheeducationalsystemIdesignedshouldhaveAddalittlemore.Writewhatyoumainlydid.],Whattypeofmembersshouldyouhave,andwhetherdifferenttypesofmembersneedacorrespondingloginwindow,etc.Afterobtainingtheseresults,Istartedtocompletemyresearchintheorderoflogininterface,mainframe,andspecificfunctions.Keywords:EducationalAdministrationsystem,ThinkPHP3,Bootstrap单页打印单页打印目录黑体,三号,居中、中间空2格黑体,三号,居中、中间空2格TOC\o"1-3"\h\u26023第1章绪论 1209591.1研究背景 1261551.2研究意义 1295951.3课题研究方法和内容 2114521.3.1研究方法 2234831.3.2研究内容 2908第2章系统分析 3250512.1系统现状 3105192.2系统需求分析 3170472.3可行性分析 3100952.3.1经济可行性分析 3102562.3.2技术可行性分析 438692.3.2社会环境可行性分析 431703第3章开发工具及相关技术的简介 5312203.1开发工具介绍 5299343.2相关技术介绍 57553第4章系统概要设计 7109974.1模块与功能设计 7128014.2数据表设计 9327184.2.1数据库总体设计 9230474.2.2数据库表格设计 9315354.3数据表关联 1222573第5章系统详细设计 14204815.1系统总体结构 1429585.2系统模块介绍 14167655.2.1登陆模块 14125095.2.2公共模块 1636845.2.3管理员模块 1854535.2.4学生模块 19314305.2.5教师模块 2145245.2.6教务模块 2254285.2.7请假模块 2359815.3模块权限设计 2531315第6章系统测试 2697456.1.登陆功能模块测试 26128366.2公共功能模块测试 27308396.3管理员功能模块测试 27236846.4学生功能模块测试 28264286.5教师功能模块测试 29201416.6教务功能模块测试 30156166.7请假功能模块测试 3145466.8权限测试 3219264参考文献: 3429350附录 36PAGE36宋体、五号、自动生成。前言或绪论:说明你为什么选择这个题目、题目的研究意义、研究的主要内容是什么、准备用什么方法进行研究,类似于开题报告的扩充第1章绪论标题1+黑体+三号+居中以下双面打印宋体、五号、自动生成。前言或绪论:说明你为什么选择这个题目、题目的研究意义、研究的主要内容是什么、准备用什么方法进行研究,类似于开题报告的扩充标题1+黑体+三号+居中以下双面打印1.1研究背景标题2+黑体+小三标题2+黑体+小三在目前国家高度重视教育业的时代背景下,越来越多的高校在此背景下诞生了。宋体+小四宋体+小四既然高校多了起来,那每一个高校为了方便管理学生,方便学校与学生之间的交互,高校都会选择利用教务系统或者后台网站来实现此目的。因为在如今网络发达,技术先进的时代,高校间不可能像过去那样利用人为行动来管理学生了。像过去那种批改试卷之后,拿出一张表格,然后把学生的成绩写进去,再复印多份张贴出来的这种低效率方式是不能再有的了;像发一些学校通知,利用纸质进行宣传这种不能再有了;学生或者老师想要有事请假,需要通过去办公室找老师或者领导,老师或者领导还不一定在办公室,这种白跑一趟的事情也不能再发生了。取而代之的是,教师利用网络,利用教务系统,把学生的成绩传到系统上去,学生们自己去系统上看;学校利用网络,利用教务系统,把自己要发的信息或者通告全都上传到系统上去,然后通知学生自己去看就可以;学生教师们请假,也无需特地跑一趟办公室,只需要在系统上填写请假信息,然后根据系统的请假规则进行请假就可以了,完全不会出现你跑到办公室请假,教师或者领导却不在的情况。利用网络,利用教务系统进行学生管理,已经是大时代的发展趋势了。再加上各大高校的诞生,教务系统的需求正在变得越来越大。1.2研究意义标题2+黑体+小三标题2+黑体+小三如以上所说,在以往高校管理学生的过程中,很大一部分都是利用手工操作这种人为的方式,这样的方式既浪费了时间,又不能快速完成信息的流通。如果使用教务系统或者后台网站这种方式来进行学生交互管理的话,只要一根网线或者一个WiFi,就能在一个平台上,随时随地的查询到我们所需要的信息,完成我们想要完成的操作。 因为一个教务系统,它需要涉及的技术有后台信息的交互,有前端界面的交互,还需要数据库来进行存储数据。于是通过此课题的研究,我进一步加深了这三者之间的使用以及联系,提高了我的综合实力。1.3课题研究方法和内容1.3.1研究方法本论文在写的过程中主要使用以下几个方法:文献研究法。通过《基于ThinkPHP框架的软件学院教务管理系统的设计与实现[D]》这本文献,让我知道了做一个教务系统,可以以ThinkPHP这个框架为后台设计的技术支撑;通过《基HTML5+CSS3+jQuery的响应式布局网页设计[J]》这本文献,让我决定了教务系统的前端界面技术交互就利用Html5,CSS3以及JS;通过《MySQL数据库技术[M]》这本文献,让我决定了数据的存储就用MySQL。理论研究法。经过学习到的理论知识和了解到的理论知识,来思考和研究该课题该如何实现。实践研究法。通过和大量高校生的交流沟通,得到该课题执行的可行性。1.3.2研究内容本论文一共分为六个部分来做主要的研究。第一部分:绪论。绪论部分主要说明本课题的研究背景,研究意义和研究的方法及内容。第二部分:系统分析。系统分析部分主要分析该课题是否可行,并从多个方面分析此课题。第三部分:开发工具及技术的介绍。此部分主要介绍本课题所用到的开发工具及所使用到的技术。第四部分:系统概要设计。此部分将会介绍本课题的大体设计思路,是用什么方法,什么技术,并且会拥有什么样的功能等。第五部分:系统详细介绍。此部分则是把本课题拥有的功能进行详细的介绍。第六部分:系统测试。此部分将会测试此课题的所有功能且得出测试结果。

第2章系统分析2.1系统现状就如我在前面绪论中所言,现在是网络信息时代,任何信息的流通通过网络将变得更快捷且更有效率。而且现如今国家越来越重视教育的发展,很多高校在此背景下都诞生了,高校与学生们的互动将变得越来越频繁。2.2系统需求分析如今网络大数据时代,随着高校与学生们的交互越来越频繁,教务系统的存在就越来越有必要了。教务系统的存在,可以摆脱过去人工操作这种低效率的方式,利用网络和一个平台,高效的实现高校和学生之间的交互操作。对于学生来说,学生想要随时随地可查询到自己的课程信息,成绩信息以及各种学校通知。对于高校来说,高校想要提高效率,节省因为人工操作这种低效率工作方式而产生的不必要的钱财以及能随时随地对学生进行管理。双方的需求一碰撞,教务系统的使用就成为板上钉钉的事情了。2.3可行性分析2.3.1经济可行性分析1.制作一个教务系统或者后台管理网页,并不会有太大经济的需求,只需要请一个工程师或者一个公司来承接制作一个简单的教务系统,这些费用都是客观的,并不会太昂贵。管理高校的教务系统的人员也不需要再另请,只需要一位会后台管理的人员或者教师来管理维护即可,费用依然可观。使用教务系统管理学生,高校可以快速脱离以前用纸张的时代,做到环保,高效地管理学生,在此基础上产生的经济效益是无法用言语来衡量的。2.3.2技术可行性分析实现教务系统使用的技术也并不难学。首先是后台需要用的ThinkPHP3框架,这个框架简单易懂,完全不需要学习PHP这个基础语言也可以完全掌握使用这个框架;前端技术也是基础的HTML语言,只要会用HTML内的各种标签,也能完美的写出一个页面来;前端的交互也是利用到简单的JS操作,只要学过基础的JS技术的都能上手。数据库也只需要会简单的增删改查语句。只要学习过基础的SQL语法,也能熟练的操作系统的数据。所以,在技术方面完全没有问题,是可行的。2.3.2社会环境可行性分析社会环境,主要由时代背景和国家政策所决定。就如我以上所说,我们现在正处于网络发达的大数据时代,做事凡是都讲究效率。在网络畅通的时代,还在进行着手工的操作的这种行为,是迟早会被当前的时代所吞噬;而且国家政策也鼓励教育,提倡文化知识是重要的粮食,会给予各大高校各种优惠政策以及补贴。所有在如此社会环境下,各大高校利用教务系统进行与学生门的交互已经成了时代的必然发展趋势。

第3章开发工具及相关技术的简介3.1开发工具介绍开发编写工具基本上使用的就是JetBrainsPhpStorm(简称PhpStorm)和VisualStudioCode(简称VSCode)。这两个开发工具都有不同的特点,编写代码的风格和一些小插件都很友好,很方便我们使用。PhpStorm它提供了必不可少的工具,如自动化重构,代码分析,联机错误检查和快速修复。Phpstorm是一个实际“获取”你的代码的PHPIDE。它支持PHP5.3/5.4/5.5/5.6/7.0/7.1/7.2,提供即时错误预防,最佳自动完成和代码重构,零配置调试以及扩展的HTML,CSS和JavaScript编辑器。功能非常的强大。小生_d898.PhpStorm2018forMac(PHP集成开发工具)V2018.3中文破解版./p/d8df47930965.2018.12.0710:27:57VSCode是一个轻量且强大的跨平台开源代码编辑器(IDE),支持Windows,OS

X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。xym01.程序员必备的10款开发工具./pd/4146263536663797480.2020-04-1507:27开发环境工具的话,我使用的是phpstudy(官方简称小皮)。小皮是一个环境集成工具,它把PHP,MySQL,FTP,Nginx等我们所需要用到的环境全都集成在一起,我们在想用的时候,只要点某一个开启按钮就行。开发数据存储工具,也可以说是数据库可视化工具,我使用的是MySql-Front。这个工具的界面非常简单而且实用性很强,数据操作起来很方便。3.2相关技术介绍本课题研究所用到的技术有Thinkphp3.2.3框架,MySql语言,HTML语言,CSS语言,JS语言等。1.Thinkphp3.2.3是PHP语言的一个框架,它是ThinkPHP框架版本的第三代,遵循Apache2开源协议,简单易懂,可执行性高。本系统所进行的所有后台交互都是基于这个框架来进行的。总的来看,本系统分为前后台模块。前台主要就是各种页面的显示,后台实现各种界面中涉及到的数据的增删改查。例如上传课程表,登陆验证等都是这个框架自带的。2.MYSQL是用最常用的数据库管理语言--结构化查询语言,它是开源的,且因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要\t"/item/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"事务化处理的情况下,它是管理内容最好的选择。李飞.《中国优秀硕士学位论文全文数据库》2007,(03).吉林大学.2007一般结合数据库可视化工具进行数据的增删改查的操作。本系统所有数据增删改查的操作都是基于MYSQL而进行的。李飞.《中国优秀硕士学位论文全文数据库》2007,(03).吉林大学.20073.HTML称为超文本标记语言,是标准通用标记语言下的一个应用。HTML并不是一种编程语言,它是一种标记语言,是由一些标签组成,主要是用来制作网页的。曲阿小将.HTML简介./zwx-code/p/10563044.html.2019-03-2009:554.层叠样式表(英文全称:CascadingStyleSheets,简称CSS)是描述标记语言页面格式的标准,是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。本系统内的每一个页面都通过CSS进行美化了陈华.《中国优秀硕士学位论文全文数据库》2017,(04).吉林农业大学.2017,如登陆界面。陈华.《中国优秀硕士学位论文全文数据库》2017,(04).吉林农业大学.20175.JavaScript(JS)是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。李少龙.《中国优秀硕士学位论文全文数据库》2015,(04).西北农林科技大学.2015在注册,登陆时如果没有填写相关信息而弹出的提示就是JS的操作。李少龙.《中国优秀硕士学位论文全文数据库》2015,(04).西北农林科技大学.2015

第4章系统概要设计4.1模块与功能设计1.本教务系统实行成员类型划分制,把成员类型划分为:管理员,学生,教师以及教务四个成员类型。根据成员类型的不同,执行不同的功能。对应的成员类型只能使用自己对应名称的模块(管理员除外,管理员可执行所有模块的功能。)于是系统的模块除去这四个基本模块之外,还加上三个所需模块,一共分为七大模块,它们分别是:登陆模块,管理员模块,公共功能模块,学生功能模块,教师功能模块,教务功能模块以及请假功能模块。登陆模块中实现成员登陆功能;管理员模块实现了注册账号,重置账号密码,停用账号和查看反馈列表等功能;公共功能模块实现了公共导航栏,修改密码,上传头像,退出账号登陆以及意见反馈等功能;学生模块实现了查看课表和查询成绩,进行选修课选择和查看所选选修课程等功能。教师模块实现了查看课程,录入成绩,成绩下载,成绩检查等功能;教务模块实现了导入课程,查看课程,上传教师课程信息,和上传选修课程等功能;请假模块实现了添加请假,查看请假,请假审核和请假日历表等功能。如图4-1所示。2.系统模块与功能的关系如图4-2所示。3.根据前期的研究,得出来了以下的设计流程,具体请看图4-3。4.本教务系统的成员类型可访问的模块如图4-4所示。管理员模块可访问所以模块(以下便不再画图指示),其他类型成员除了可以访问自己的基础模块之外,其他三个模块也可按权限进入执行一些不同的功能。5.本教务系统的总体技术支撑如图4-5所示。图4-SEQ图\*ARABIC\s31系统七大模块图4-SEQ图\*ARABIC\s12系统模块与功能的关系图4-3系统设计流程图4-4系统成员可访问的模块图4-5本系统的总体技术支撑4.2数据表设计4.2.1数据库总体设计数据库使用可视化工具MySql-Front,先建一个数据库,名称叫(gzwlw),之后所使用的相对应的表格都建造在此数据库内。表的结构也根据需求来建造。本系统共设计了13个表格,系统一切功能数据都存在此13个表格中。4.2.2数据库表格设计usertype表(用户类型表),拥有4个字段,在登录注册功能等功能中使用。2.class表(班级名称表),共2个字段,在登陆注册等功能中使用。3.user表(用户表),拥有14个字段,主要在登陆注册等功能中使用。 4.department(院系名称表),共3个字段,在登陆注册等功能中使用。表4-1usertype表字段名称字段解释备注ID序号Name成员类型的英文名称RealName成员类型的中午名称State状态0为在用,1为停用表4-2class表字段名称字段解释备注ID序号Name班级名称表4-3user表字段名称字段解释备注ID序号SchoolID学校账号Password密码Name姓名Grade年级数据为grade表中的ID值major专业数据为major表中的ID值Class班级数据为class表中的ID值Department院系数据为department表中的ID值Gender性别Email邮箱Phone电话Type成员类型数据为usertype表中的ID值Admin是否管理员0为是,1为否State账号状态0为在用,1为停用表4-4department表字段名称字段解释备注ID序号Name院系中文名称EnglishName院系英文名称 5.electiveselect(已选选修课程表),共3个字段,在选修功能中使用。6.feedback表(意见反馈表),共3个字段,在信息反馈功能中使用。 7.electivecourse表(选修课程表),共9个字段,在选修课程功能中使用。8.totalcourse(课程表),共9个字段,在课程表功能中使用。9.askpeoplelist表(请假表),一共拥有11个字段,在请假功能中使用。10.major表(所属专业名称表),共3个字段,在登陆注册等功能中使用。11.profilephoto(头像表),共3个字段,在上传头像功能中使用。12.teachercourselist(教师教课表),共4个字段,在录入成绩功能中使用。13.totalscore表(成绩表),共12个字段,在录入成绩功能中使用。表4-5electiveselect表字段名称字段解释备注ID序号ElectiveCourseID所选课程数据为electivecourse表中ID的值StudentID选择课程的学生数据为user表中的ID值表4-6feedback表字段名称字段解释备注ID序号Message反馈信息Date反馈日期表4-7electivecourse表字段名称字段解释备注ID序号CourseName课程名称Time上课时间Credit课程学分Type课程类型Teacher课程老师Address上课地址Count课程总数量RemainNumber课程剩余数量表4-8totalcourse表字段名称字段解释备注ID序号ClassName教室名称Term第几学期CourseName课程名称WhatDay星期几上课HowWeek第几周上课HowTime第几节上课Teacher上课老师ClassRoom上课教室表4-9askpeoplelist表字段名称字段解释备注ID序号UserID请假者所属ID数据为User表中的ID值DateStart请假开始日期DateEnd请假结束日期Reason请假原因Type请假类型UserType请假者用户类型数据为usertype表中的ID值Dep请假者所属院系数据为department表中的ID值Date请假时的日期Time请假时的时间State审核状态0为已审核,1为未审核,-1为已拒绝,2为院系管理已同意表4-10major表字段名称字段解释备注ID序号Name专业名称DepartmentID所属院系数据为department表中的ID值表4-11profilephoto表字段名称字段解释备注ID序号UserID上传者数据为user表中ID的值PhotoImage头像存储位置链接 表4-12teachercourselist表字段名称字段解释备注ID序号TeacherID教师ID数据为user表中ID的值TeacherName教师姓名CourseTitle教师所授课名称表4-13totalscore表字段名称字段解释备注ID序号Grade年级Class班级数据为class表中的ID值Term学期StuID学生ID数据为user表中的ID值StuName学生姓名Course课程名称UsualScore平时成绩FinalScore期末成绩TotalScore总成绩Mark备注State表的在用状态0为在用,1为停用4.3数据表关联关联表格一般使用某个表格的ID(序号)来关联,在另一个表格中存入需要关联表格的ID,这样就能很好的把多个表关联起来。我的所有表格关联的关系都是使用这种形式来形成表格间的关联关系的。在本教务系统中,关联的表格有:表4-14相关关联的表格一表格名称表格名称关联方式1userusertype在user表的Type字段中存放usertype表的ID值2usergrade在user表的Grade字段中存放grade表的ID值3userclass在user表的Class字段中存放class表的ID值表4-15相关关联的表格二表格名称表格名称关联方式1askpeoplelistuser在askpeoplelist表的UserID字段中存放user表的ID值2askpeoplelistusertype在askpeoplelist表的UserType字段中存放usertype表的ID值3askpeoplelistdepartment在askpeoplelist表的Dep字段中存放department表的ID值4electiveselectelectivecourse在electiveselect表的ElectiveCourseID字段中存放electivecourse表的ID值5electiveselectuser在electiveselect表的StudentID字段中存放user表的ID值6majordepartment在major表的DepartmentID字段中存放department表的ID值7Profilephotouser在Profilephoto表的UserID字段中存放user表的ID值9totalscoreclass在totalscore表的Class字段中存放class表的ID值10totalscoreuser在totalscore表的StudentID字段中存放user表的ID值11userdepartment在user表的Department字段中存放department的ID值12usermajor在user表的Major字段中存放major表的ID值

第5章系统详细设计5.1系统总体结构本教务系统主要是由ThinkPHP3.2.3框架+BootStrap为框架而设计的。ThinkPHP3.2.2主要为后台功能做支撑,Bootstrap为前端界面样式做支撑。两者相互结合,形成一个我所设计的教务系统的技术支撑。本教务系统拥有四个角色成员类型:管理员,学生,教师以及教务。本教务系统一共分为七个模块,他们分别是:登陆模块,管理员模块,公共功能模块,学生功能模块,教师功能模块,教务功能模块以及请假功能模块。每一个对应的模块下都有对应的功能,这些具体的功能我会在下面进行详细的介绍。5.2系统模块介绍5.2.1登陆模块1.模块介绍登陆模块是单独的一个模块,它不包含在教务系统之内。只有成员登陆成功之后才会进入到系统中。但是没有登陆模块,成员也无法登陆到系统中,所以登陆模块和系统也是密不可分的。登陆模块主是要为管理员,学生,教师,及教务等四类成员提供登陆教务系统的界面和入口。登陆界面一共分为四个登陆入口,分别为管理员,学生,教师及教务等四类成员的登陆入口。每一类成员都只能在自己所属的入口登陆,如果在别的类型的成员入口上登陆是会报错的。在登陆过程中,以下三种情况将会会出现报错信息:当你在登陆界面框输入完信息之点击提交后,便会将你输入的信息拿去和数据库里对比。如果你所输入的信息在数据库中不存在,当你点击登陆之后便会提示你账号信息不存在导致不能登陆。另外在点击登陆之后,你的身份信息将会传到后台,后台将会比对你的成员类型。只有你的成员类型和你在对应的登录口一样了你才能正常登陆,否则会提示你登陆类型口不一样无法登陆;你输入的验证码是否正确。如果有一项不对应,那就无法登陆成功。登录口输入框还包括了验证码和密码的验证。验证码是后台随机生成的,你输入的验证码信息如果和后台生成的信息不一样的话,在点击登陆后则会提示错误信息;密码的验证则是将你输入的密码和数据库信息做对比,如果不一样在点击登陆之后也会提示密码错误无法登陆。图5-SEQ图\*ARABIC\s11登陆模块首页2.功能逻辑实现1.登陆模块实现的功能主要有:登陆功能的实现,账号信息的验证,对应成员等陆口验证以及验证码的验证。2.要实现登陆功能,就必须利用ThinkPHP3.2.3框架自带的SRBC.php文件。利用ThinkPHP3.2.3写登陆功能。当你点击登陆界面的时候,先会利用session验证你的ID(也就是数据库中你账号所属的那条ID)是否有保存,如果有保存,则表示你已经登陆,直接跳到相关的主界面。如果没保存,则会跳到登陆界面提示你登陆。当你登陆的时候,则验证你输入的信息,如果信息无误,则跳到SRBC.php文件中,在此文件中进行登陆信息验证。如果成功则登陆成功,失败则提示错误信息。3.账号信息的验证,则是根据成员在登陆口所填入的信息传入到后台后,根据自己写好的验证规则以及与数据库的连接,来查找你输入的账号是否存在,你输入的密码是否正确。如果两者都正常则可正常登陆,反正则提示错误。4.对应成员登陆口的验证,则是根据登陆时Session登记的ID去对应数据库查找当前ID的账号的成员类型。查找出来的成员类型如果和提前设计好的登陆口上的成员类型相对应则可正常登陆,否则登陆失败。5.验证码的验证,则是用到了ThinkPHP3框架下自带的生成验证码图片的函数Verify()。这个函数可以设置验证码的长度和是否设置横线做干扰等与验证码相关的设置。在后台写完这个函数的时候,就在前端界面上调用这个函数,这样就能在前端显示出验证码的图片。并且在前端界面上加上一个按钮事件,让你点击图片的时候可以切换你看不清的验证码。当验证码可以显示之后,则在输入框输入你的验证码信息,点击登陆后你输入的信息将传到后台提前设置好的Verify->check()函数进行验证。验证成功则不会提示错误。5.2.2公共模块1.模块介绍公共模块,顾名思义,就是公共的,开放的模块。这个模块并没有权限的设置,任何类型成员都能访问。这个模块下共有公共导航栏,修改密码,上传头像,退出账号登陆以及意见反馈等功能。2.功能逻辑实现1.在一个系统中,公共导航栏的存在是非常必要的。因为一个系统,根据不同的类型成员,会出现不同的侧边导航栏或者头部导航栏,但是这些不同是少数的,大部分资源还是共用的,如果在每一个类型成员下都写一遍导航栏,这是会非常耗费资源的,于是公共导航栏的划分就非常必要了。划分导航栏,首先就是要把一个界面中相同的头部信息,和尾部信息提取出来,各自形成文件foot.html,head.html。紧接着不同的侧边栏信息是根据不同的成员类型而形成不同的效果,在这里就要形成文件navigationXXX.html(这里的XXX是成员类型。什么样的成员类型有有什么样的侧边导航栏。如果是学生类型,xxx则是Students)。当把代码拆分成三个文件的时候,当我们需要调用的时候,就只需要new一个对象,然后调用提前写好的关于这三个文件的方法,这样一个公共的导航栏就只需要在控制器内做调用就可以形成一个完整的界面了。在头部导航栏中涉及到了登陆者姓名的显示,这个功能的实现很简单,只需要过框架内封装好的Session方法获取到当前登陆者的ID,然后通过此ID来查询数据库的信息,得到此ID对应的那一条登陆者的信息,并把姓名传递到前端界面上去,以此来实现不同的人登陆就会展现相对应的登陆者的姓名。2.由于学校内的所有账号都是由管理员统一注册的(此问题下文中会提到),所以管理员注册账号时,为了方便记忆,注册的账号的初始密码都会是“123456”这简单的6个数字,所以为了各自的账号安全,提供了修改密码的功能。修改密码功能的实现,首先利用Session方法获取当前登陆的ID,再利用这个ID去查找你输入账号是否为你本ID对应的账号,你输入的密码是否为该账号对应的密码。如果有一个错误就无法修改,反之如果你输入的密码是正确的,那你新填入的密码将会成为你的新密码。修改成功后重新登陆即可。在成员的个人简介里,会有一张图片作为成员在系统中的头像。如果成员不喜欢原本的照片,成员就可以上传他们自己喜欢的照片作为头像,次数不限,可以随时换。需要实现上传头像的功能,就需要利用到ThinkPHP3框架内自带的上传函数upload()。利用此函数,无论图片还是文件都可以上传。我需要做的就是把上传的文件放到一个文件夹里,并把此文件所存放的路径存到数据库里。再之后把这个路径在前端界面利用<imagesrc=”图片路径”>这个标签把图片显示出来即可。只要注册了账号就会拥有一个头像。你如果不喜欢就可以上传自己喜欢的即可。4.有时候我们在自己不信任的电脑上登陆自己的账号时直接退出浏览器是不安全的,这时候就只有点击退出登陆才能确保自己的账号安全。退出账号的功能也是很容易实现,点击退出登陆后,在后台只需要直接把Session内登记的ID给destory销毁掉,一旦Session登记的ID被消毁了,登陆状态就不复存在,于是就退出成功了。意见反馈功能是一个公众的匿名的功能。当你对学校有什么意见的时候,就可以在这里反映,你们的意见只有管理员类型的成员才可以看到。也就是说,不用怕被教师或者教务之类的成员发现而不敢发表意见,这是一个很民主的功能。这个功能就是一个简单的前后台交互的案例。要实现它,只需要做一个前端的Form表单,并利用Post把数据传到后台,在后台把数据存到数据库即可。之后再在列表上把数据库内的数据全部循环输出了即可。当然,除了管理员类型之外的其他成员都不能看到反馈信息列表。图5-2公共功能所在面板5.2.3管理员模块1.模块介绍管理员模块是管理员类型成员专属的一个模块。学校系统管理员可以访问所有模块的功能,但是专属于管理员的功能具备以下几个:注册账号,重置账号密码,停用账号和查看反馈列表。反馈列表如以上所说,便不再重复描述。2.逻辑功能实现管理员登陆成功后,会跳到属于自己类型成员的成员列表作为主页,再之后便可操作属于管理员类型的功能。注册账号:就是一个前端的Form表单,利用POST把数据传到后台存到数据库。当然这里注册不同的成员类型,表单界面会有不一样的变化。当你注册的时候,会根据你输入的账号去数据库里查找,如果数据库里有重复的数据就代表该账号已注册过,无重复即可注册成功。重置密码:根据你输入的账号,去数据库里查找该账号的密码,然后利用save()方法把密码改成初始密码即可重置密码成功。如果账号输入错误则失败。停用账号:利用按钮把该账号所处行的ID传到后台,利用这个ID根据数据库的数据进行对比,查找到之后改变User表内State字段的值,就能改变账号状态。0为在用,1为停用。图5-3管理员模块功能面板5.2.4学生模块模块介绍学生模块是学生类型成员专属的模块,只有学生才可以进入的。经过研究发现,学生模块应该具备以下几个基本功能:查看课表和查询成绩,进行选修课选择和查看所选选修课程。2.逻辑功能实现学生类型的成员在登陆之后,会进入到只属于自己的模块主页面,该模块主页面就是自己班的同班同学。利用Session方法获取所登记的ID,根据ID查询登陆者所在的班级,然后再把跟登陆者所处相同班级的学生全部查询并输出在界面上显示出来。1.查询课程表比较复杂,因为课程表需要可观性强,也就是简洁明了。于是我在百度上找到了一个课表框架,名叫TimeTable.js。这个框架可观性很强,可以很清楚的知道学生什么时候需要上课,在哪上课。只要教务那边把课程表导入进去了数据库,学生便可看到属于自己班级的课程表。经过一段时间的研究,我掌握了这个框架的用法,并经过改造变成了我所需要的课程表界面。这个框架已经把样式之类的全都确定好了,我要做的就是把后台的数据变成框架所适合的Json格式。在获取课程信息的时候,根据前端选择的信息,先利用distinct()方法做严格筛选,把字段重复的全部筛选掉,只剩下“一,二,三,四,五,六,七”之类的日期格式。后来再在查询出来的数据上做循环,把相同周几的课程查询出来,然后循环数组下标索引,如果对应下标索引为空,就给赋值空字符串,再之后再做一个循环,把对应第几节课的下标丢到对应的数组位置上,就形成了对应的新数组,然后再把新数组转换格式输出即可。这样就可以形成一个新的json格式的数据,客观的课程表界面就可以显示出来了。2.查询成绩:老师把成绩录入到数据库里的时候,系统根据学生所选择的学年信息传到后台,然后后台再根据传过来的信息在数据库里进行查询,如果查询到数据就把数据以表格的形式显示出来,如果没查询到任何数据就显示为空。3.当选修按钮被教务打开之后,学生便可点击进去选择课程。学生通过勾选课程来进行选择,但是每个学生只能选择两门课程且课程数量有限。选修功能也是通过设计一个Form表单,把勾选的数据通过ID传到后台,把学生信息和课程信息一并存入到数据库中。查看选修课程只要把存入到数据库内的信息输出到界面上即可查看。图5-4学生模块功能面板5.2.5教师模块1.模块介绍教师功能模块为教师类型成员专属,只有教师可访问。经过研究发现,教师功能模块应该具备以下几个功能:查看课程,录入成绩,成绩下载,成绩检查等。2.逻辑功能实现1.查看课程:使用的框架是和学生查看课程一样的TimeTable.js。只是在后台处理数据的时候,把查询班级类型改成查询和自己相关的即可。(详情可看上面的数据库设计)。2.录入成绩:先选择该教师所教的一门课程,再通过设计一个Form表单,在表单上输入相关的成绩数据,点击暂时保存。这样就把表单的数据通过POST传到了后台数据库,只是这时这些数据的状态都为1(也就是数据表内的字段State为1),不能下载不能查询。3.检查成绩:就是把之前存入数据库的状态为1的数据全部显示出来,再加一个编辑按钮,如果之前有录入错误的,点击修改就行。然后把数据通过该行数据ID传到台,后台再根据该ID把数据库对应的值用save()方法修改掉,并把状态置为0,此时数据库内的数据就是可以下载可以查询的状态了。4.成绩下载:此功能运用了PHPExcel的功能。是PHP专门用来把数据库数据和Excel表格之间进行转换的工具。此处用到了它的导出功能,就是把数据库的值,根据前端界面的选择导出相关的数据。图5-5教师模块功能面板5.2.6教务模块1.模块介绍教务模块是教务类型成员专属的模块,只有教务人员可登陆使用。根据我的研究发现,教务模块功能应该具备以下几个基本功能:导入课程,查看课程,上传教师课程信息,和上传选修课程。2.逻辑功能实现1.导入上课课程和选修课程所用到的技术都是用PHPExcel的导入功能结合ThinkPHP3框架内的Upload()函数,把Excel表格数据存入到数据库。在这个过程中,教务人员首先要把这些课程的相关数据按照相关格式先用Execl表格记录下来,然后点击按钮上传,在后台先把文件利用Upload函数把相关数据记录下来,在那之后便利用PHPExcel把Excel表格内的数据存入到数据库中即可。2.查看课程信息就是根据你前台选择的数据传入到后台,再根据信息在数据库里进行查找,符合条件的就全都显示出来。3.上传教师信息也是通过一个Form表单,在前端界面把数据写好,之后再通过POST传入到后台,从而存到指定的数据库中。图5-6教务模块功能面板5.2.7请假模块1.模块介绍请假模块是一个单独的模块,专门用来为学生,教师和教务之间请假的模块。经过研究得出,请假功能模块应该具备以下基本功能:添加请假,查看请假,请假审核和请假日历表。请假,任何一名类型成员都可以在此请假,只需要点击添加请假的功能即可。但是请假都是需要审批的。审批的逻辑过程是这样的:学生请假请三天之内的话,由负责该院系的辅导员审核直接同意即可;如果学生请假超过三天,必须由该院系的辅导员审核同意且需要请假负责人(一般为教务管理员)的同意才行;教师,辅导员和教务请假,只需要请假负责人同意即可。如果请假成功,你的姓名将会出现在日历图上,请假原因和天数只要点击姓名即可查看。当然,此日历图学生是没有权限查看的,其他类型成员都可查看。审核流程可看图5-8。图5-7请假审核流程2.逻辑功能实现请假功能,我利用到了一个名叫fullcalendar的日历框架,此框架很强大,和我们电脑手机上的日历一模一样,什么样的节日都有,并且日历图上还能显示我们需要的信息,非常之强大。1.添加请假的话,就是通过一个Form表单,在前端界面上写好数据,然后通过POST把请假数据存入数据库。2.查看请假的话,每个人请假都会有一个状态可以随时观看。当状态为1的时候请假未审核,状态为2的时候辅导员已审核,状态为0的时候为审核已同意,状态为-1的时候则为请假被拒绝。3.审核请假功能为当只有院系辅导员和请假负责人才拥有的功能。点击同意按钮的时候,会根据该请假者的天数决定状态的值。系统根据之前提前登记好的请假表ID到后台查询信息并用save方法改变状态的值来决定审核的状态。4.请假日历图则为fullcalendar日历框架,日历上所用到的数据,只要利用用日历框架内的event方法,把数据库内的请假数据转化为对应的json格式,日历上就能出现我们的请假信息了。当然,只有请假状态为0的时候,也就是审核同意之后,日历表上才会显示出名字出来。图5-8请假模块首页5.3模块权限设计1.管理员拥有VIP权限,任何类型成员模块都可进入。其他类型成员的模块的只能访问自己的模块。请假日历图学生没有权限查看。2.登陆权限的话,利用Session查询是否有保存ID值,如果查询到有ID值,则代表你已经系统过,直接进入该ID所属账号的类型成员模块,也可以直接输入网址进行别的功能执行。但是如果没有查询到ID值则无法直接访问你输入网址的那个功能,会被强制跳到登陆界面进行账号登陆。实现登陆权限只需要使用ThinkPHP3自带的Rbac中的checklogin函数。在导航栏中调用此方法即可。3.模块权限的设置,只需要多写几个方法,把管理员,学生,教师,教务这四个相关的成员类型写一个相关的权限方法,根据Session所登记的ID去查找你是否属于当前模块的成员类型。如果一样,则可访问当前模块,反之则无法访问。

第6章系统测试6.1.登陆功能模块测试根据手工测试,流程以及结果如下:1.首先,在与自己不相符的成员类型登陆口登录,无法登陆成功。所以各类成员只能在自己的专属登录口登陆。2.输入验证码信息,如果验证码不输入或者输入错误都无法登陆。3.输入账号密码信息,如果信息错误或者不输入会报错。4.输入账号信息,如果账号输入错误,会提示错误。5.所以信息正确可正常登陆。所以,登陆模块没有问题。图6-SEQ图\*ARABIC\s11账号为空的提示图6-SEQ图\*ARABIC\s12所有信息输入成功后则成功登陆6.2公共功能模块测试根据手工测试,流程以及结果如下:导航栏拆分正确,无论登陆什么类型的成员,都会出现正确的导航栏。信息反馈功能,输入反馈信息,可以正常录入信息。但是输入信息为空会报错。切换成员类型,普通成员不能查看反馈列表,管理员类型可查看。退出登陆功能,退出登陆会有确认提醒,点击确认后正常退出,取消则不执行操作。已尝试退出差不多50余次。上传头像,注册一个新账号,头像是正常的所设的那个头像。点击上传头像,图片也可正常上传。但是输入为空或者格式不对,也将报错。修改密码时如果你输入的是别人的账号也会有错误信

温馨提示

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

评论

0/150

提交评论