《基于ThinkPHP框架的校园一卡通系统设计与实现.doc》由会员分享,可在线阅读,更多相关《基于ThinkPHP框架的校园一卡通系统设计与实现.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录摘 要IAbstractII引 言11 相关技术31.1 框架技术31.1.1 Bootstrap31.1.2 ThinkPHP框架31.2 前端技术41.2.1 JavaScript41.2.2 ECharts41.3 B/S架构41.4 数据库技术51.4.1 MySQL51.5 本章小结62 系统分析72.1 功能需求分析72.2 非功能需求分析82.3 用例分析83 系统设计113.1 系统概要设计113.1.1 系统体系结构113.1.2 系统功能结构113.2 系统详细设计123.2.1 数据库设计123.2.2 系统功能设计153.3 本章小结164 系统实现174.1 开
2、发环境174.1.1 用户环境174.1.2 其它要求174.2 开发规范174.2.1 命名规范174.2.2 数据表规范174.2.3 其它规范174.3 系统功能实现174.3.1 系统实现所用技术174.3.2 部分功能效果展示184.4 本章小结245 系统测试255.1 测试计划255.2 登录模块测试255.3 图书馆模块测试255.4 教室租用模块测试265.5 压力测试265.6 本章小结27结 论28参考文献29致 谢31沈阳城市学院毕业设计(论文)摘 要21世纪信息技术的迅猛发展,标志着人类科技也进入了信息化时代。校园的安全性与学生生活便利性需求也在急剧提高。当今,使用人
3、工管理信息的成本过高,迫切需要使用信息技术化的手段来为降低成本。在这种情况下,通过市场调研得知。传统校园卡功能限制较多,成本较高,丢失后会严重影响学生使用。为了更好的完善与改进校园一卡通系统,使校园一卡通具备多种功能性。本文设计了一款配套的软件系统,在传统校园一卡通的基础上增加了部分功能,如校园卡的支付模块设计、宿舍考勤模块设计等。后台管理人员通过使用本系统,可以清晰明确的了解学生的行为习惯与归寝时间,根据学生日常喜好,制定学生喜欢的课外活动。从而一定程度上回避晚归寝现象的出现,保证学生可以按时回到寝室确保其安全。本文采用B/S体系架构,选择ThinkPHP框架作为系统的框架支持,该框架的性能
4、好,具有稳定、扩展能力强等特点。本文的数据库采取MySQL作为校园一卡通系统的数据库的支持。前端页面采取ECharts可视化图表技术进行数据展现。系统经过多层次的、多方面的系统测试。从各大功能模块、系统底层编码进行了严格的规范化处理。最终,校园一卡通系统中各部分功能已基本实现,可以在日后投入实际使用。关键词:校园一卡通;宿舍考勤; 支付; ThinkPHPAbstractThe rapid development of information technology in the 21st century marks that human technology has also entered
5、the information age. The security of campus and the convenience of students life are also increasing rapidly. Nowadays, the cost of using human management information is too high. There is an urgent need to use information technology to reduce costs. In this case, it is known through market research
6、. The function of traditional campus card is more limited, the cost is higher, the loss will seriously affect the use of students.In order to better improve the campus card system, so that the campus card has a variety of functions. This paper designs a supporting software system, which adds some fu
7、nctions on the basis of the traditional campus card, such as the design of the payment module of the campus card, the design of the dormitory attendance module and so on. Through the use of this system, the background managers can clearly understand the behavior habits of students and the time of re
8、turning to bed. Make extracurricular activities that students like according to their daily preferences. In order to avoid the phenomenon of returning to bed late to a certain extent, to ensure that students can return to the dormitory on time to ensure their safety. In this paper, B/S architecture
9、is adopted, and ThinkPHP framework is selected as the framework support of the system. The performance of the framework is good, and it has the characteristics of stability and strong expansion ability. The database of this paper adopts MySQL 56 as the support of the database of the campus card syst
10、em. The front-end page adopts ECharts visual chart technology for data display.The system has been tested in many levels and aspects. From each big function module, the system bottom coding has carried on the strict standardization processing. Finally, the functions of each part of the campus card s
11、ystem have been basically realized and can be put into practical use in the future.Keywords: Campus card; Dormitory attendance; payment; ThinkPHPII引 言随着工业革命带来的劳动力大幅度解放,计算机技术也迅猛的发展了起来。计算机技术的高速发展也标志着信息时代的到来,信息时代对传统的教育体系产生了深远的冲击。1如今,校园一卡通作为校园生活的一项重要组成部分,也在时刻影响着学生们的日常生活2。 “去卡化”这一概念也孕育而生。所以基于这一概念,需要开发一款符
12、合学生校园日常生活习惯的软件系统3,为方便学生开发的校园一卡通系统的重要意义分为两大方面。一方面是方便学生缴纳日常生活所需费用、查看图书馆借书情况、图书馆重要公告与教室租用。管理员可以从后台管理系统发布图书馆公告,学生可以阅读图书馆公告,从而得知发布的重要消息。另一方面提高学生使用校园卡的频率,有助于校方跟踪校园内的资金流动4。从而了解学生的消费习惯,未来可以通过数据挖掘等手段对这些数据进行分析与跟踪。来了解学生的业余兴趣爱好,开展丰富的校园活动。该系统着重以方便学生日常生活为第一目标,开发该系统的主要意义可以分为以下二点:第一点,该系统的主旨是为了方便学生的日常生活。系统将校园卡与生活费用紧
13、密联系在一起。实现与传统校园卡不同的“去卡化”的目的。学生即可跟随时代的潮流,使用学生自己的智能手机进行校园消费生活。不必随身携带IC卡进行校园的身份认证。为学生的出行及日常生活提供了大幅度的便利。第二点,由于使用校园卡系统,校方可以最大程度上的保证学生校园卡内的资金与学生的隐私安全。5避免学生的隐私与资金安全暴露在违法软件中。从而被不法之徒利用学生的隐私信息,进行一些违法的交易。使学生自身暴露在危险之中。从市场需求上来说,传统的校园卡是使用智能物联网技术的一张IC卡片。这张小巧的IC卡片中存储着学生的隐私信息与资金,校园卡一旦丢失,学生需要到财务处亲自办理挂失手续。在此期间,拾取到该卡的人可
14、以使用IC卡内的资金进行消费,同时学生的信息也存在着隐私泄露风险6。面对这种需求的不断增长,结合互联网、Web等先进的技术,急需为实现校园卡“去卡化”这一概念提供了一个经济、高效的系统管理平台。本文的书写顺序严格按照目录的体系结构进行,遵循由浅到深的体系结构。并且逐步分析、解读系统所实现的功能、采用的技术及系统的使用意图。本文的第1章介绍系统开发时所使用到的相关技术。其中包括ThinkPHP框架、MySQL数据库;前端使用JavaScript、ECharts、B/S架构、Bootstrap框架技术。详细说明了这些技术的优点与特点,并在本章小结进行了统一概括论述。第2章对系统进行分析。系统分析包
15、括需求分析、非需求分析及用例分析7,同时根据市场需求分析并结合用例图、用例表进行描述分析。第3章是对系统的概要设计与详细设计,其中包括系统的结构设计、模块设计、数据库设计。结合实体关系图、数据表、时序图、状态图、结构图进行详细叙述。第4章是叙述系统的实现。按照顺序从系统运行所需的用户环境、系统反馈时长、系统开发规范、系统涉及的相关技术及系统实现的功能展示。第5章是对系统的功能测试。包括制定系统的测试计划、对系统进行压力测试与系统测试时使用的测试用例。1 相关技术1.1 框架技术1.1.1 BootstrapBootstrap是将HTML、CSS、JavaScript相结合在一起使用的前端框架模
16、板技术。该模板技术加强了三种技术的优点,也大幅度降低了三种技术的使用门槛。这样的一款前端框架,为软件的网页开发工作奠定了基础。使网页制作所需要的周期大幅度缩减。同时消除了网页之间的兼容性差、不易扩展与升级等问题。Bootstrap的最大特点就使响应式网页布局。可根据使用者的设备大小进行自适应调节。减少了开发者对不同浏览器与设备兼容性的忧虑。并且Bootstrap拥有大量的精美模板,保证了页面风格的整体美观度。同时Bootstrap可以随意使用已经设计好的CSS文件与JS文件。通过自由组合CSS文件与JS文件做出全新的动画效果。Bootstrap框架采用栅格布局技术、响应式应用技术、表格应用技术
17、等对前端页面进行设计。这样可以保证前后端交互的统一性与协调性。1.1.2 ThinkPHP框架ThinkPHP框架是一款开发速度快、框架结构简单,基于MVC设计模式与面向对象的轻量级PHP开发框架。该框架准许开源的原则,免费并时刻保持更新来完善框架内容。ThinkPHP框架秉承着简洁、实用的设计原则, 使ThinkPHP框架具有高度的易用性、扩展性的特点。ThinkPHP框架具有很强的兼容性。ThinkPHP框架是一款性能优秀的基于XML的编译型模板引擎。同时该框架还支持多种类型的模板标签,它吸收了传统的JSP标签库的思想。ThinkPHP框架还具备很强的扩展性。通过安装不同的驱动插件还可以多
18、种第三方模板引擎。比如Smarty、EaseTemplate、TmplateLite、Smart等。ThinkPHP也采用三层架构模式,分为表现层、业务层与数据层。符合MVC的编程思想。大幅度提高了代码的可重用性,保持各模块之间的独立性,避免影响到其他模块的正常进行。ThinkPHP最大的优点就是拥有丰富的文档资料。该框架由国内团队进行编写,框架的编写思路上大体保持一致。并且文档拥有大量的注释易于学习和理解。1.2 前端技术1.2.1 JavaScriptJavaScript于1995年的Netscape公司设计的成。随着其多年的发展与扩展,JavaScript于2012年已支持全部浏览器。
19、JavaScript是一种具有函数优先的轻量级。解释型或即时编译型的高级编程语言。其已经被广泛使用在Web应用开发当中。常用来为网页添加五花八门的动态效果功能。与HTML形成密不可分的关系。通过在HTML中嵌入自身代码,从而实现人机交互的效果。JavaScript分为三大部分ECMAScript,文档对象模型、浏览器对象模型。他们分别处理JavaScript中的语法与对象、处理HTML页面的内容、与浏览器进行交互。1.2.2 EChartsECharts,是一款基于JavaScript 实现的可视化图表库。ECharts功能强大,支持在多平台、多领域进行可视化数据展示工作。市场上的浏览器都可流
20、畅运行。ECharts底层架构采用的是矢量图形库 ZRender。该图形库提供的图形直观、且与用户的交互感强,用户可以根据自己的需求及需要调整可视化图表的样式及内容。 ECharts 提供了许多经常会使用的图形。比如常见的折线图、柱状图、散点图、饼图等图表数据。ECharts也经常被使用于地理数据的可视化的描述。其包含地图、热力图、线图。他们可以精确描述关系数据。并且ECharts具有很好的兼容性,支持多种图与图之间的混合运用。ECharts将数据库中的数据以丰富多彩的图形的方式,形成可视化的数据图表。可视化的数据显示更加符合用户的使用习惯,更加符合人性化、以人为本的设计原则。ECharts经
21、常与流行的前端模板进行相互结合,比较常见的就是与Bootstrap模板、Layui模板相互结合使用。1.3 B/S架构B/S架构即浏览器与服务器架构模式,B/S架构是随着WEB技术发展中出现的一种网络架构。该架构最大的优点就是不需要在客户机上安装相应的软件系统,属于对C/S架构体系的一种改进。通过在服务器上安装Oracle、MySQL、SQLServer、NoSQL等主流服务器软件。将系统功能实现的核心部分集中部署到服务器上。这种架构体系结构,大幅度的降低了软件系统的维护与开发成本。用户只需要在设备上使用Firefox、Google等浏览器即可进行操作,用户操作的数据会同步保留在服务器里。B/
22、S架构的每个节点都分布在网络上,B/S架构分为浏览器端、服务器端和中间件,通过它们之间的链接和交互来完成系统的功能任务。三个层次的划分是从逻辑上分的,在实际应用中多根据实际物理网络进行不同的物理划分。浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器界面向服务器端发出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。服务器端:提供数据服务,操作数据,然后把结果返回中间层,结果显示在系统界面上。中间件:这是运行在浏览器和服务器之间的。这层主要完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏
23、览器端和服务器端需要交互的信息是通过中间件完成的。81.4 数据库技术1.4.1 MySQLMySQL是一款关系型数据库管理系统。如今性能强大、复杂、安全级别越高的数据库有很多种。比如Oracle、SQLServer、NoSQL等。然而MySQL数据库并不是最完美的那个,但MySQL是当今中小型企业的中流砥柱。其中一个重要原因就是MySQL是一款开源的数据库系统,其功能简洁明了。易于操作人员理解与使用。并且拥有全球各地的开发者进行维护与完善。MySQL包含的索引功能有普通索引、唯一索引、主键索引。索引功能虽然会占用部分存储空间与计算空间。但是,有效的索引就好比数据库的地图,可以快速精确的定位到
24、数据存储的单元。从而提高了数据库检索的效率。9作为一款全球广泛使用的数据库系统,其具有很强的容灾功能。由于机房断电、人为失误等危险发生时,可以进行数据回滚。保证数据的安全性。这对开发人员无疑是一份安全保障。1.5 本章小结本章主要介绍了本文系统所使用的核心技术,从Bootstrap、ThinkPHP、MySQL、JavaScript、ECharts、B/S架构体系逐一进行了分析与介绍。将所选用的技术功能的优点及自身的特点进行了详细的描述。这些描述可以更加清晰直观的了解系统的组成。并且分析了选用这些技术的理由。比如,Bootstrap模板就具备大量的HTML、CSS、JavaScript的基础内
25、容。可以使开发者快速进行网页的开发与布局。不用从0开始对页面进行设计。ThinkPHP框架具备易使用、兼容性高等特色。ThinkPHP框架在保持着这身的独有的处理机制的特点,同时还兼容多个开发平台。使开发者可以在不同的开发平台完成自己所需的软件开发任务。同时ThinkPHP框架更新速度快,框架自身的漏洞能够及时反馈并修复更新。ECharts可视化图表使系统的数据更加直观的可以观察到。从而易于使用者进行理解系统功能。ECharts同时具备多种不同的可视化模式,开发人员可以根据需求自行调节。具有很高的自由度。系统选用B/S架构的最大优点就使可以减轻用户端的压力。用户无需安装软件即可登陆系统进行操作
26、。借助服务器的高效数据处理能力,服务器将数据经过逻辑处理后统一发送给用户。这样可以有效减少数据传递所消耗的时间。2 系统分析2.1 功能需求分析本系统是一款针对学生日常生活所设计的系统。通过亲身使用及市场调研与观察,深入了解与挖掘了其中关系模式及特点10。最后系统划分为两种身份,即学生身份与管理员身份。根据不同身份,不同身份的账号可以访问不同的使用主界面。为不同需求的人群提供不一样的服务。并由系统管理员统一进行信息管理与处理。保证整个系统的协调统一,让整个系统平台建设变得更加简洁、结构化。由校方使用系统进行统一管理,可以确保学生在校园卡中的资金安全与学生隐私安全。保证学生隐私不会因为信息泄露而
27、遭受损失。最大程度上满足校方与学生管理与生活的需要,从而实现校园一卡通去卡化11。系统为管理人员提供的功能。管理员账号不能通过注册模块进行注册。需要通过Admin管理员(主管理员)通过后台管理员信息管理进行添加、删除、修改、查询管理员信息。保证系统的管理层面的协调性、统一性,避免出现数据错乱等现象。12其他管理员们可以通过后台带的管理员操作日志来判断其他管理员对系统后台进行的操作。管理员需要可以管理图书馆、宿舍、空闲教室的信息、学生信息。图书馆信息管理是指管理员可以发布图书馆公告与修改图书馆开放时间。管理员可以发布图书馆公告通知想要前往图书馆学习的学生,及时准确的发布图书馆当前的情况信息,实现
28、信息的高速传递。宿舍信息管理可以有效观察到宿舍学生的归寝情况与请假情况。管理员通过归寝信息,可以精准快速的确定哪些宿舍楼的同学请假和晚归寝室同学的数量。与宿舍管理者进行联络。确保学生的在校安全。空闲教室信息管理是指管理员可以对教室的情况进行管理。学生可以通过申请空闲教室来进行自习。当紧急事件需要占用教室时,管理员可以强制修改教室的占用状态。为需要借用教室自习的同学提前提供消息,节约了学生寻找教室的时间。管理员可以通过后台系统对学生信息进行增加、删除、修改与查询的操作。通过学生的姓名、电话、所在宿舍楼进行信息的管理。可以清理无用账号,也可以帮助学生修改信息。系统为学生提供的功能。新用户需要通过注
29、册模块注册新账号。按照要求输入账号、密码、手机号、性别、所在宿舍楼等信息,即可成功注册学生信息。再通过登录模块,选择对应的身份信息进入到学生主页面。学生主页面包含宿舍归寝签到、消费充值、教室租用、请假申请。学生通过调用百度地图来定位自身所在位置与学校的地理位置信息进行比较。如果当学生的定位位置信息与学校的地理位置信息误差不超过5。即可视为归寝签到成功。为了实现去卡化的概念,在线消费充值是必不可缺的13。由于目前微信、支付宝并不面向个人开放支付接口,所以本系统采用余额的方式进行充值与消费。学生可以通过该模块进行购物消费、日常餐饮与缴纳水电费等。管理后台会对学生的消费情况进行统计,便于研究学生的消
30、费习惯与财务统计。学生可以通过系统查询教室占用情况,根据学生需要可以通过系统申请空闲教室进行自习。学生可以通过系统查看图书馆公告,以便第一时间获得图书馆的开闭关信息,合理安排自身时间。也可以系统发出请假申请,在富文本里填写自己的请假原因。管理员可以通过后台系统查看学生的请假原因。2.2 非功能需求分析非功能性需求是指本系统可以满足大部分学生的日常生活需要,使用方便、快捷。为了提供用户的体验度,本系统设计了许多提示用来提示用户该操作为错误操作,请勿这样操作。界面需求方面是指系统需要保持一个明确的主题色调,每个模块之前需要使用其他颜色统一的颜色进行提示,保持页面的整洁美观。确保系统不会对使用者造成
31、不良的心理抵触情绪。尽可能的保持管理员端与学生端界面统一一致。系统需要具备一定的可扩展性与兼容性。142.3 用例分析本文系统涉及到后台管理界面与学生端界面。15均可以驱动不同身份模式下的功能用例的常规功能。此外,学生与管理人员均需要通过登录模块进行登录。系统会根据输入的账号、密码与选择不同的身份进行身份验证判断。当管理员通过登录模块,正确进行操作后。方可进入到后台管理界面。管理员可以对管理员信息、宿舍信息、图书馆信息、教室信息、学生请假信息、学生信息、支付记录进行相应的管理与查看。如图2.1所示:图2.1 后台管理模块用例图在管理员的7个功能中,后台管理人员可以在管理员、宿舍、图书馆、教室、
32、支付记录、学生请假信息、学生等功能中扩展出增加删除修改查询功能。其中宿舍归寝信息、学生请假信息、支付记录只可进行查看,不可进行删除、增加与修改的操作。如表2.1所示:表2.1 管理员用例关系表用例名称用例关系用例名称管理员增删改查包含管理员信息操作宿舍归寝信息查看包含信息查看操作发布图书馆公告包含信息发布操作查看公告详情包含信息查看操作修改图书馆开放时间包含信息修改操作教室信息搜索扩展信息搜索操作教室占用状态修改包含信息修改操作支付记录查看包含信息查看操作学生请假信息查看包含信息查看操作学生信息增删改查包含学生信息操作当学生通过登录模块,输入学生的账号、密码与正确选择学生身份进行操作后。方可进
33、入到学生使用界面。学生可以在系统中使用宿舍归寝签到、消费充值、教室租用、申请请假功能。如图2.2:图2.2 学生端模块用例图在学生可使用的功能中,学生可以进行宿舍归寝签到、对校园卡账户进行充值与消费、申请占用哪间教室、填写请假理由功能。通过不同功能的组合,从而达到便于学生生活的目的。其中教室被占用后,只能让管理员取消其占用状态。如表2.2所示:表2.2 学生用例关系表用例名称用例关系用例名称请假申请包含信息添加操作申请教室租用包含信息查询操作教室占用情况查询扩展信息查询操作余额查询扩展信息查询操作余额充值与消费包含信息修改操作学生位置查询包含信息查询操作归寝签到包含信息修改操作查看图书馆公告依
34、赖信息查询操作2.4 本章小结本章主要讲述了学校与学生对该管理系统的需求分析、非功能性需求及用例描述。系统中以管理员与学生的不同使用视角访问使用该系统。所有的操作都必须通过登录模块的身份验证功能,才能正确的进入对应身份的主页面。从而为不同用户提供不一样的服务功能。并且介绍了系统的非功能性需求,非功能性需求最大程度上保证了用户的使用体验感,确保用户可以在不同的操作系统上使用该系统。提高了用户的留存率与黏稠度。3 系统设计3.1 系统概要设计本系统的设计灵感最初来自于宿舍缴纳水电费需要前往学校的POSS进行刷卡缴纳。由于POSS机距离宿舍较远,路程耗费时间过长。为了让学生可以节约这部分时间,从而设
35、计出校园一卡通系统。本系统从实际需求进行分析后,结合多方面因素,将系统从宏观上分为管理员端与学生端两大部分。管理员端能够对学生、宿舍、图书馆等信息进行管理,满足了校园信息管理的基本需求。学生端能够缴纳水电费、购物消费等,满足了学生的日常生活所需。从而达到校园一卡通去卡化的目的及效果。3.1.1 系统体系结构校园一卡通系统体系结构分为4层,分别为表现层、控制层、业务逻辑层、数据访问层。 16第一层表现层,包括用户方面使用到的浏览器、设备版本型号、硬件、软件等。本系统前端为Bootstrap模板、JavaScript、ECharts结合使用。可以清晰直观观察到页面的变化与数据变化情况。第二层为控制
36、层,该层主要处理模块中的ID信息,用于处理批量删除数据、条件查询等信息。分别独立控制这些数据信息,有效提高各个功能的强度与独立性。第三层业务逻辑层,通过接收控制层提供的数据信息,并进行业务逻辑处理。将处理后的结果发送给表现层与数据访问层。第四层数据访问层,主要是用来接受业务逻辑层的处理结果和对MySQL数据库的访问操作以及持久化框架17。3.1.2 系统功能结构根据系统功能需求,将校园一卡通系统划分为后台管理模块与学生端模块两大部分18。后台管理模块包括操作记录显示功能、管理员信息管理功能、图书馆信息管理功能、教室信息管理功能、支付记录查看功能、学生信息管理功能、学生请假信息查看功能。学生端模
37、块内可以分为宿舍归寝签到功能、消费充值功能、教室租用功能、请假申请功能、图书馆公告查看功能。总体结构功能图如图3.1所示:图3.1 总体功能结构图3.2 系统详细设计3.2.1 数据库设计本项目设计了20张数据表,包含学生信息表、宿舍楼信息表、管理员信息表、图书馆信息表等多张数据表。其中数据库包含3个多对多关系,11个外键信息,15个一对多关系。数据库的实体关系图19如图3.2所示。数据库的逻辑结构设计如表3.1至3.8所示,本文选择了一些系统中较为重要的表进行了介绍。分别介绍了每张表包含多少个字段,每个字段的类型与限制条件。并简单介绍了每张数据表的功能及部分数据表之间的联系关系20。如表3.
38、1中有3个字段,adminid整形字段、adminname字符串字段、adminpassword整形字段。该表主要是为了保存管理员信息,当需要添加新的管理员信息时,都会将新的管理员账号、密码及身份添加到该表中。管理员的账号只能通过后台管理员进行添加,无法通过系统的注册模块进行账号注册。避免了管理员身份出现混乱的情况。图3.2 系统实体关系图表3.1 管理员信息表字段名类型约束描述adminidInt(11)PK、NN、AI序号adminnameVarchar(45)Not null管理员用户名adminpasswordInt(11)Not null管理员密码表中有8个字段,所有字段不允许为空。
39、userid为自增长且不允许为空。当用户通过注册模块进行注册操作可以访问该用户数据表。hosteid外键与hoste表相互联系,确定学生的宿舍楼。用户数据表如表3.2所示:表3.2 用户信息表字段名类型约束描述UseridInt(11)PK、NN、AI序号usernameVarchar(45)Not null用户名passwordInt(11)Not null用户密码sexInt(11)Not null性别phoneInt(11)Not null手机号user_balanceDECIMAL(10,2)Not null余额hosteidInt(11)Not null宿舍楼外键student_na
40、meVarchar(45)Not null学生真实姓名表中有4个字段,所有字段不允许为空。student_msgid为自增长且不允许为空。当学生通过请假申请模块发出请假理由,会访问请假信息数据表。数据表如表3.3所示:表3.3 学生请假信息表字段名类型约束描述student_msgidInt(11)PK、NN、AI序号student_nameVarchar(45)Not null请假学生姓名student_timeInt(11)Not null请假时间msgVarchar(45)Not null请假内容表中3个字段,所有字段不允许为空。Library_msgid为自增长且不允许为空。当管理员发
41、布图书馆公告或学生查看图书馆公告,会访问该数据表。数据表如表3.4所示:表3.4 图书馆公告信息表字段名类型约束描述Library_msgidInt(11)PK、NN、AI序号msgTextNot null公告内容 Library_msgVarchar(45)Not null公告标题表中有3个字段,所有字段不允许为空。classroomid为自增长且不允许为空。当学生通过教室租用模块发出租用申请的时候,先会访问教室信息数据表。数据表如表3.5所示:表3.5 教室信息表字段名类型约束描述classroomidInt(11)PK、NN、AI序号classroom_nameVarchar(45)No
42、t null空闲教室名称classroom_stateInt(11)Not null教室状态表中有4个字段,所有字段不允许为空。user_classroomid为自增长且不允许为空。其中classroomid与userid分别是classroom表与user表的外键。当学生申请租用教室时和管理员修改占用教室状态时,会访问该数据表。数据表如表3.6所示:表3.6 教室与学生关系表字段名类型约束描述user_classroomidInt(11)PK、NN、AI序号classroomidInt(11)Not null空闲教室外键 iduseridInt(11)Not null学生外键stateInt
43、(11)Not null状态表中有5个字段,所有字段不允许为空。daily_recordid为自增长且不允许为空。其中adminid是admin表的外键。当管理员进行操作时,都会将操作内容添加到该表中。数据表如表3.7所示:表3.7 操作日志表字段名类型约束描述daily_recordidInt(11)PK、NN、AI序号adminidInt(11)Not null管理员操作的IDop_typeVarchart(45)Not null操作类型op_timeInt(11)Not null时间戳msgVarchart(45)Not null内容表中有6个字段,所有字段不允许为空。hosteid为自
44、增长且不允许为空。宿舍信息表会根据学生归寝签到情况进行统计信息。当管理员查看归寝信息时,会访问该数据表。数据表如表3.8所示:表3.8 宿舍信息表字段名类型约束描述hosteidInt(11)PK、NN、AI序号hostenameVarchar(45)Not null宿舍楼名称hostenumberInt(11)Not null宿舍楼编号student_laterInt(11)Not null晚归寝人数school_studentInt(11)Not null在校生人数student_leaveInt(11)Not null学生请假人数3.2.2 系统功能设计宿舍考勤模块是指通过调用百度地图A
45、PI接口与学生设备的定位功能。得到学生自身所在位置与学校位置进行对比并签到的模块。该模块主要用于统计学生是否出现晚归寝的事件。学生通过登录模块,正确选择身份后。进入学生主页面,点击左侧的“宿舍归寝签到”进入宿舍考勤模块。首先,需要开启学生设备中的定位功能。在通过调用百度地图API中的浏览器定位功能21将学生的地理位置在地图上标记出来。并将学生的经纬度存储到数据库中。通过查询数据库中存储的学校的经纬度进行比对。如果学校与学生的经纬度的误差范围在5以内,系统会修改学生的归寝状态。学生归寝具有拥有2种状态。分别是“归寝成功”,“归寝失败”这俩种状态。宿舍考勤模块状态图如图3.3所示: 图3.3 宿舍
46、考勤模块状态图学生支付模块是指学生使用账户里的余额进行校园消费22。学生通过登录模块,正确选择身份后。进入学生主页面,点击左侧的“消费与充值”进入到支付模块中。学生购买商品,系统会先查询出账户余额与商品的价格,并将他们进行比对。如果学生购买超出余额的商品,会提示“余额不足”。支付模块的UML时序图如图3.4所示: 图3.4 支付模块UML时序图3.3 本章小结本章主要描述了系统的整体设计思路,系统的设计理念以及重要的数据表结构设计。本章主要介绍了系统的部分功能模块,如宿舍考勤模块、学生支付模块。并利用状态图、时序图进行模块功能的辅助说明。从而将模块功能表述出来。4 系统实现4.1 开发环境4.1.1 用户环境服务器硬件方面CPU要求I5处理器及以上,运行内存要求不低于512MB;硬盘要求不低于30GB;服务器端的操作系统使用的Windows10;数据库服务器要求使用MySQL,使用MySQLWorkbench进行操作。服务器端浏览器要求使用Firefox与Google浏览器。系统软件框架使用ThinkPHP。4.1.2 其它要求对于系统访问容量的要求包括系统要求支持的并发用户数不小于2