php比特教务选排课系统的设计与实现毕业设计源码301826

比特教务选排课系统的设计与实现

摘 要

随着人类向信息社会的不断迈进,风起云涌的信息时代正掀起一次新的革命,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的比特教务选排课系统来管理选课信息,会使管理工作系统化、规范化,提高管理效率。

本课题的研究对象是比特教务选排课系统,该系统实现了系统用户管理、学生信息、教师信息、选课信息、课程信息等功能。本系统在设计上,考虑到系统内容以及系统的受众群体,在系统的美工方面采用了比较正规的设计,同时也提供了友好的页面以及简单的操作,系统采用PHP、Mysql,这样的组合不但利用上了在大学中所学到的知识,并且能够使系统真正的发布到互联网上,而不是一个单纯的演示系统。

本系统经过测试,运行效果稳定,操作方便、快捷。在具体的应用过程中,有可能会出现一些问题,今后还会对本系统不断地进行完善、更新,使其功能更强大,应用更广泛。

关键词:B/S结构;管理效率;PHP;

Design and implementation of bit educational administration course selection and scheduling systemAbstract

With the continuous progress of mankind towards the information society, the surging information age is setting off a new revolution. At the same time, with the rapid development of computer network technology, the application of network management has become more and more widely. Therefore, establishing a bit educational administration course selection and scheduling system with B / S structure to manage the course selection information will systematize and standardize the management work and improve the management efficiency.

The research object of this subject is bit educational administration course selection and scheduling system, which realizes the functions of system user management, student information, teacher information, course selection information, course information and so on. In the design of the system, considering the system content and the audience of the system, the system adopts a more formal design in the art of the system, and also provides friendly pages and simple operation. The system adopts PHP and mysql. This combination not only makes use of the knowledge learned in college, but also enables the system to be truly released to the Internet, rather than a simple demonstration system.

After testing, the system has stable operation effect and convenient and fast operation. In the specific application process, there may be some problems. In the future, the system will be continuously improved and updated to make it more powerful and widely used.

Key Words: B/S structure; Management efficiency; PHP; The Internet

目  录

 

Abstract

  

1 绪论

1.1研究背景

1.2开发意义

1.3开发现状

1.4论文结构

2 主要技术和工具介绍

2.1开发技术

2.2 MVVM模式介绍

2.3MYSQL数据库

2.4 B/S结构

2.5 Thinkphp框架介绍

3 系统分析

3.1可行性分析

3.1.1经济可行性

3.1.2技术可行性

3.1.3操作可行性

3.2需求分析

3.3业务流程分析

3.4数据流程分析

4 系统设计

4.1开发环境

4.2系统结构设计

4.3主要功能模块设计

4.4界面设计

4.5数据库设计

4.5.1数据库设计概述

4.5.2概念设计

4.5.3表设计

5  系统实现

5.1登录模块的实现

5.2学生子系统模块的实现 21

5.2.1学生注册模块的实现

5.2.2选课模块的实现

5.2.3学生信息模块的实现

5.3管理员子系统模块的实现 26

5.3.1用户管理模块的实现 26

5.3.2课程规划管理模块的实现 27

5.3.3学生信息管理模块的实现 29

6  系统测试 30

6.1软件测试 30

6.2功能测试 30

6.3测试结果 31

7  总结 32

  

参考文献 35

第1章 绪论

1.1研究背景

随着现代计算机科学的迅速发展,信息和通讯技术的应用与推广已渗透到社会生活的各个方面。在学校教育中,教师通过网络可以对学生进行教学指导,同时还能及时地掌握学生的学习状况,从而制定相应的教学计划。然而传统的手工选课方式效率低下、容易出错、工作量大等问题严重制约了教学管理现代化进程。因此,如何提高高校教务管理工作水平,实现科学化、信息化管理成为当前迫切需要解决的问题。本文以B/S模式为基础,结合JSP开发平台,Oracle数据库管理系统以及ASP.NET开发工具,设计并实现了一种基于WEB的比特教务选排课系统。本系统主要包括两大部分:一是针对教务管理人员提出的要求,设计了一个具有个性化定制功能的用户登录模块;二是采用MVC设计模式,构建出一套完整的基于Web Service架构的选课信息管理系统框架体系,使系统具备良好的可扩展性、可维护性、可重用性及安全性,最终达到降低人力成本的目的。

1.2开发意义

从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式。传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学模式,如果仍然通过纸上的方式选课,一方面浪费了大量的人力、物力资源,另一方面浪费时间以及会在人为的统计汇总过程中出现可避免的差错等情况。随着高校人数的增多,上述弊端会越来越多的暴露出来。如果利用网络进行选课,学生只要在计算机前输入自己的个人选课信息即可完成教务部门原来几倍的作业量。从教师的角度来说,教师提出代课申请完成课程发布的工作更加容易,得到教学的信息更加快捷,因此通过选课系统可以大幅度的减少教师的工作量,方便了教学工作。

1.3开发现状

国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行。其网上学生在线选课系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。     

我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。

1.4论文结构

第一章是论文的绪论部分,主要介绍了课题的研究背景以及研究目的和意义。

第二章研究了比特教务选排课系统的所采用的开发技术和开发工具。

第三章研究了比特教务选排课系统的需求分析,根据系统的特点,分析系统采用的体系结构及开发方法,以及该系统的运行环境,并分析了业务流程,绘制了业务流程以及数据流程。

第四章是对系统的详细设计进行说明。

第五章是系统的具体实现,介绍系统的各个模块的具体实现。

第六章在前几章的基础上对系统进行测试和运行。

最后对系统进行了认真的总结,以此对未来有一个新的展望。

第2章 主要技术和工具介绍

2.1 开发技术

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于php的Thinkphp框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。

后端部分:采用Thinkphp作为开发框架,同时集成Redis等相关技术。

2.2MVVM模式介绍:

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

2.3MySQL数据库

网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。

本次开发的心理学交流学习网站使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。

2.4B/S结构

B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在用户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的用户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。

图2-1 B/S模式三层结构图

2.5Thinkphp框架介绍:

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。  

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

第3章 系统分析

3.1可行性分析

分析用户需求和数据需求,得到一个方案,然后设定系统的开发方案,为每个功能模块设计出物理设计方案,开发本系统的是否可行?本文从技术上、操作上和经济上对本系统的开发进行可行性分析。

3.1.1经济可行性

比特教务选排课系统 属于一个工具型的系统,它可以节省工作人员大量数据收集、方便快捷,能够极大地提高工作效率,最大限度的降低管理员的工作量,使管理尽量简便,同时促进¥新闻管理的信息化、现代化,及时提供必要的信息统计。因为整个系统采用Apache+Mysql+PHP组合,这几个软件都是免费开源的,系统开发所需的费用是比较低的,由于系统并不复杂,其运行与培训费用也不会占用很多资金,可以预见系统完成后可以带来较大的经济效益。

3.1.2技术可行性

本系统采用windows 7作为操作平台。数据库开发平台选用Mysql,该数据库管理系统在windows7和windows 8/10上都能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,。本系统的应用软件开发平台选用Phpstorm

3.1.3操作可行性

本系统使用的是现流行的开发语言,即PHP技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统。系统布局较简单,功能操作不复杂,完全符合现代市场需求。

3.2需求分析

针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的比特教务选排课系统。

本系统主要包含了系统用户管理、学生信息、教师信息、课程信息、选课信息等多个功能模块。下面分别简单阐述一下这几个功能模块需求。

表3-1功能需求表

编号

功能名称

功能描述

用户登录

保证用户通过身份验证进入系统进行操作

数据备份

超级管理员对系统的数据进行备份

批量删除

超级管理员选择系统某个数据表进行数据清空

修改个人信息

用户可以根据自己当前的情况修改个人的信息

后台登录

仅管理员能够登录后台

添加选课记录

学生添加选课记录

编辑选课记录

学生修改选课记录信息

删除选课记录

学生删除选课记录

选课审核

教师给学生添加的选课进行审核

添加学生信息

学生添加学生信息

编辑学生信息

学生修改信息

删除学生信息

学生删除信息记录

添加选课信息

教师添加选课信息

编辑选课信息

教师修改选课信息

删除选课信息

教师删除选课信息

添加课程信息

管理员添加课程信息

编辑课程信息

管理员修改课程信息

删除课程信息

管理员删除课程信息

3.3业务流程分析

经过对系统功能的分析,调查,研究,总结出比特教务选排课系统主要实现的是对¥留言信息、用户信息等管理功能。这样,可以对该系统绘制业务流程图。

如下为业务流程图图例。

3-1业务流程图图例

系统的业务流程如下图所示。

图3-2系统业务流程图

3.4数据流程分析

根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述, 根据自顶向下原则,逐层分解功能,这个过程产生DFD图。

以下是本文当中使用的数据流图图例,见下图所示。

图3-3系统数据流图(0层)

零层数据流程是流程中最抽象的一层,它包括了与登录管理、用户功能管理和检索维护管理等功能模块,在登录模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是学生动态信息文档、选课信息文档、成绩信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的0层数据流图如下图所示。

图3-4系统数据流图(0层)

一层数据流程图是对零层数据流程图的细化,将登录与细分为填制登录信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。

系统的1层数据流图如下图所示。

图3-5系统数据流图(1层)

二层数据流程是对一层数据流层图中填写登录信息、学生基本功能和教师功能的细化。即:填写登录信息细化为填制信息、后台审核,用户基本功能细化为学生资料修改、课程信息、教师信息、学生信息、选课信息、用户管理。

系统的2层数据流图如下图所示。

图3-6系统数据流图(2层)

第4章 系统设计

4.1开发环境

  1. 软件体系结构方案:采用B/S模式,B/S代表的是服务器端由web服务器发放,客户端由浏览器接收的系统,它的前台是html语言,由浏览器解释。B/S结构可以由web服务器能够解释的脚本语言如PHP。
  2. 操作系统方案:Windows 7(旗舰版)操作系统,该系统可以兼容需要的软件,并且具有良好的运行速度,界面良好。
  3. 后台数据库:选用Mysql。Mysql旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
  4. 开发工具:前台网页使用dreamweaver工具,后台逻辑选用Phpstorm。
  5. 开发语言:PHP语言。
  6. 开发技术:PHP +html+css+js技术

4.2系统结构设计

本系统使用的角色主要有系统管理员、学生、教师,本系统分为学生端、教师端和管理员端,首先学生用账号密码登录系统用户端,进行教师信息、学生信息、课程信息、选课信息,学生可以通过标题和类别进行信息的搜索。

管理员端主要由管理员使用,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统用户管理、学生管理、教师管理、课程信息、学生信息、教师信息、选课信息等功能操作。同时管理员可以通过关键字搜索可以搜索相应的信息,打印各种详细信息,导出各类信息列表至excel中。

系统的功能结构图如下图所示。

图4-1系统功能结构图

4.3主要功能模块设计

  1. 用户管理模块

该模块包括普通用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有普通用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户

  1. 登录模块

根据用户输入的 Id 和密码到数据库中查找该用户,如果未能找到该用户则做出 提醒“用户名或密码错误”,如果找到该用户,则要判断用户的类别然后根据用户类别进入相应的页面。

  1. 课程信息管理模块

(1)课程添加:必须填写课程名称、上课教室、课程科目、授课教师、课程日期、对应课本、课程大纲、对应章节、课程备注,课程规划编号必须是唯一的, 提交后判断某一项是否为填写, 如果是则做出提醒, 填写符合规则后方可添加到数据库。

(2)课程查询:可以根据课程规划编号等信息对课程进行查询,查询结果可能有多个。

(3)课程修改:除了课程编号外,其他信息均可以修改。

(4)课程删除:首先找到要删除的课程(一个或多个),然后删除即可。

  1. 学生信息管理模块

(1)学生添加:必须填写学生姓名、学生性别、学生专业、所属学院、院系信息、班级信息、学生电话、学生地址,且编号必须是唯一的,各项都不能为空。

(2)学生查询:该功能能够显示学生的基本信息,可以根据学生的编号等信息对学生做出查询。

(3)学生修改:如果学生信息需要被修改,可修改的信息包括学生内容等基本信息,但是编号是唯一、固定 的,不能被修改。

(4)学生删除:首先找到要删除的学生(一个或多个),然后删除即可。

  1. 选课管理模块

教师选中某个选课,点击添加选课,填写成绩数据,点击添加按钮,完成选课成绩操作,每次成绩录入,列表将生成新的成绩信息,供管理员管理。

  1. 选课模块

用户查询课程规划信息,选择课程规划进入该课程规划的详细页面,点击选课按钮,填写选课表单,添加选课记录。

  1. 选课管理模块

用户选课课程规划模块主要实现的是对课程规划的选课功能,同时可查看自己的选课记录,并对选课可进行取消选课操作。管理员登录系统后,可查看用户的选课信息,也可搜索选课信息,同时可对选课信息进行确认或删除的操作。

4.4界面设计

系统首页是整个系统功能的一个缩影,对首页的布局不仅仅关系到用户的使用性,还关系到其他页面的设计以及功能管理设计。所以使用Photoshop先对首页背景和页面布局进行设计。

登录页设计图,如下图所示。

图4-3登录页设计图

首页设计图,如下图所示。

图4-4首页设计图

4.5数据库设计

4.5.1数据库设计概述

为了实现系统的功能设计,就要有相应的数据库表设计。根据系统的功能设计要求为各个数据库表设计字段、数据类型、是否为空等的相关信息。在实际调研和需求分析的基础上,对该系统设计数据库。再有系统的需求分析可以看出,本系统有两个角色:普通用户和管理员,他们分别在系统的运行和使用中起着不同的作用。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。数据库中表的设计主要考虑两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用最可能小的存储空间。

4.5.2概念设计

概念设计是整个数据库设计的关键,在概念设计阶段,由需求分析得到了E-R模型。E-R图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。是对现实世界的抽象和概括,是数据库设计人员进行数据可设计的有力工具,能够方便直接地表达应用中的各种语义知识,令一方面它简单、清晰、易于用户理解。

系统总体ER图如下图所示。

图4-10系统总体ER图

4.5.3表设计

概念模型是独立于任何一种数据模型的信息结构。将概念模型转换成逻辑模型,转换的一般原则如下:

(1)一个实体性转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

(3)一个1:n联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。

(4)一个m:n联系转化为一个关系模式。

本系统设计如下多个表,包括学生表、教师表、选课表、成绩表、竞赛表、申报表等。

teacher_information表:

名称

类型

长度

不是null

主键

注释

teacher_information_id

int

11

教师信息ID

teacher_name

int

11

教师姓名

teacher_gender

varchar

64

教师性别

teacher_profession

varchar

64

教师专业

affiliated_college

varchar

64

所属学院

department_information

varchar

64

院系信息

class_information

varchar

64

班级信息

teacher_telephone

varchar

64

教师电话

teacher_address

varchar

64

教师地址

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

teacher表:

名称

类型

长度

不是null

主键

注释

teacher_id

int

11

教师ID

teacher_name

varchar

64

教师姓名

teacher_gender

varchar

64

教师性别

teacher_profession

varchar

64

教师专业

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

student_user表:

名称

类型

长度

不是null

主键

注释

student_user_id

int

11

学生用户ID

student_name

varchar

64

学生姓名

student_gender

varchar

64

学生性别

student_major

varchar

64

学生专业

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

student_information表:

名称

类型

长度

不是null

主键

注释

student_information_id

int

11

学生信息ID

student_name

int

11

学生姓名

student_gender

varchar

64

学生性别

student_major

varchar

64

学生专业

affiliated_college

varchar

64

所属学院

department_information

varchar

64

院系信息

class_information

varchar

64

班级信息

student_telephone

varchar

64

学生电话

student_address

varchar

64

学生地址

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

course_selection_information表

名称

类型

长度

不是null

主键

注释

course_selection_information_id

int

11

选课信息ID

course_name

varchar

64

课程名称

course_subjects

varchar

64

课程科目

course_date

varchar

64

课程日期

classroom

varchar

64

上课教室

elective_students

int

11

选课学生

student_name

varchar

64

学生姓名

instructor

int

11

授课教师

notes_on_course_selection

text

0

选课备注

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

course_information表:

名称

类型

长度

不是null

主键

注释

course_information_id

int

11

课程信息ID

course_name

varchar

64

课程名称

course_subjects

varchar

64

课程科目

course_date

datetime

0

课程日期

classroom

varchar

64

上课教室

instructor

int

11

授课教师

corresponding_textbook

varchar

64

对应课本

corresponding_chapter

varchar

64

对应章节

course_notes

varchar

64

课程备注

syllabus

text

0

课程大纲

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

第5章  系统实现

5.1登录模块的实现

比特教务选排课系统 的系统入口就是用户登录功能,在浏览器输系统地址跳转至系统前台首页,系统前台的登录窗口在首页左面,包括用户名、密码、权限、验证码,除了权限框使用下拉列表,其他使用文本框,验证码下方为登录和重置两个按钮,用户点击登录按钮,则进行登录验证。

登录流程图如下所示。

                                             

图5-1登录流程图

系统登录界面如下所示。

图5-1系统登录

登录的逻辑代码如下:

name])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$user

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

5.2学生子系统模块的实现

5.2.1学生注册模块的实现

用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。

学生注册流程图如下所示。

图5-1注册流程图

学生注册界面如图所示。

图5-1注册界面图

注册关键代码如下所示。

public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }

5.2.2选课模块的实现

学生点击某个选课点进入课程规划详细页,点击选课按钮进入选课页,提交选课信息,成功选课后,教师管理学生的选课信息,审核选课信息。

学生选课流程图如下所示。

图5-1学生选课流程图

选课界面如图所示。

图5-1选课界面图

5.2.3学生信息模块的实现

根据课程信息对应所属的教师,该教师可对选择该门课程的学生录入信息,学生查看个人信息。

学生信息界面如图所示。

图5-1学生信息界面图

5.3管理员子系统模块的实现

5.3.1用户管理模块的实现

用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。

用户管理界面如下图所示。

图5-1用户管理界面

用户管理关键代码如下:

public function add($request=[],$table_name = '',$table_id = ''){

        $result = self::allowField(true)->save($request);

        if ($result) {

            return ['result' => 1];

        } else {

            return ['error' => ['code' => 3000, 'message' => '数据添加失败']];

        }

    }

5.3.2课程管理模块的实现

课程信息添加功能主要指对其课程名称、课程科目、课程日期、上课教室、授课教师、对应课本、对应章节、课程备注等一些基本信息的添加、删除和修改。课程查询能根据课程id、课程名称等多种条件对课程规划信息进行查询。

课程管理流程图如下所示。

图5-1课程管理流程图

课程添加如下图所示:

图5-1课程管理界面

课程信息管理关键代码为:

public function avg_group()

    {

        $request = Request::param();

        if (isset($request['groupby']) && isset($request['field'])) {

            if (!empty($request['groupby']) && !empty($request['field'])) {

                $result = $this->model->avg_group($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "groupby或者field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "groupby或者field的值不能为空!";

        }

        return json_encode($data);

    }

5.3.3学生信息管理模块的实现

管理员发布新的学生信息,系统前台显示学生信息,学生信息添加功能主要指对其学生姓名、学生性别、学生专业、所属学院、院系信息、班级信息、学生电话、学生地址等一些基本信息的添加、删除和修改。学生查询能根据学生id、学生姓名等多种条件对学生信息进行查询。

学生管理流程图如下所示。

图5-1学生管理流程图

学生添加如下图所示:

图5-1学生添加

学生信息添加关键代码为:

Class User extends Validate

{

    protected $rule = [

        'username|账号' => [

            'require' => 'require',

            'max'     => '16',

        ],

        'password|密码' => [

            'require' => 'require',

            'max'     => '32',

        ],

    ];

}

第6章  系统测试

6.1软件测试

在设计系统的过程中,存在一些错误是不可避免的。For语句语法错误,运行的提示,并要求立即纠正,因此,容易发现和纠正错误等。但另一种类型的错误是程序执行时由于不正确的操作或对某些数据计算公式的逻辑错误导致错误的结果。这种错误的隐蔽性强,有时会出现,有时不出现,因此,这种误差动态屏幕耗时。

6.2功能测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项检测,检查产品是否达到用户要求的功能。下面列出的测试用例是基于需求分析阶段的用例描述而进行的设计。

下面将通过表格的形式介绍针对本系统每个功能模块所进行的功能测试。

1.登录模块功能测试,如下表所示。

表6-1登录测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

登录系统

用户打开登录界面

输入正确的用户名,密码为空

无法登录

提示密码不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名,输入错误密码

无法登录

提示密码不正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,用户名为空

无法登录

提示用户名不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,错误的用户名

无法登陆

提示用户名不正确,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都为空

无法登录

提示用户名和密码不得为空,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都输入错误

无法登录

提示用户名和密码正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名和密码

正常登录

进入主界面

正常

2.修改密码模块功能测试,如下表所示。

表6-2修改密码测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

修改密码

用户打开修改密码界面

输入正确初始密码和2次相同的新密码

密码修改成功

密码修改成功

正常

修改密码

用户打开修改密码界面

输入错误的原始密码

密码修改失败

密码修改失败

正常

修改密码

用户打开修改密码界面

输入正确初始密码和2次不相同的新密码

密码修改失败

密码修改失败

正常

3.课程管理功能测试,如下表所示。

表6-7课程管理测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

课程信息添加

用户已登录,打开课程规划添加界面

输入课程名称、课程负责账号、课程负责人、课时规划等信息

课程规划添加成功

课程添加成功,新课程规划成功显示

正常

课程信息添加

用户已登录,打开课程添加界面

用户未输入课程名称、课程负责账号、课程负责人、课时规划

课程添加失败

课程添加失败

正常

4.选课功能测试,如下表所示。

表6-8选课测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

选课

用户已登录,打开选课界面

输入申请类型、申请账号、申请学生等信息

选课成功

选课成功

正常

选课

用户已登录,打开选课界面

用户未输入申请类型、申请账号、申请学生

选课失败

选课失败

正常

6.3测试结果

通过对比特教务选排课系统整个流程管理的测试,发现了许多无法实现的功能并及时得到改正和实现,为比特教务选排课系统 的发布奠定了基础。此系统中各模块的功能都基本实现,不过还存在着许多不足,在以后的学习中通过测试还需加强和完善。

第7章  总结

本文主要研究了比特教务选排课系统的设计与实现。本次论文主要研究的内容主要包括:

(1)分析研究了本课题的开发背景和课题的研究意义。

(2)对此次毕业设计进行了详尽的需求分析,并根据实际需求,分析了其数据字典。

(3)概要设计了系统的功能模块,详细设计了系统所使用的数据库表,并研究了该系统的ER图。

(4)详细介绍了该平台要实现的功能,构建了此系统。

从技术上来说,整个系统的基本实现环境是Win7操作系统搭配phpstorm下的PHP环境,数据库的建立使用Mysql软件,系统开发使用phpstorm软件,用java语言进行系统的设计和开发,图片采用Photoshop CS6处理,使整个系统在视觉上和功能上尽量做到完整和美观。系统界面设计美观大方,功能较为完整,技术较先进且具有一定现实意义。

在摸索中前进。对Mysql数据库的使用,如何设计后台表结构,使得系统更加合理,健壮,是面临的又一个难题,通过查找相关资料,以及在充分的需求分析基础上,解决了以上问题。若条件允许,系统的功能模块能够更丰富,某些模块的功能也能更完善,用户之间权限的处理逻辑性也能更强。今后在改善客观条件的情况下,本系统还需要进一步进行研究开发。

致  谢

经历了几个月的毕业设计之旅,遭遇了无数难题与挑战,几经波折后,近乎要摧毁我当初选择这个题目的信心。好在我的导师一直坚持对我悉心支持,并对此套系统提出了诸多改善意见,解决了我所遇到的众多难题,比特教务选排课系统 也得以在这样的境况下圆满完成。老师给予了我正确的指导和极大的帮助,这不仅仅使我获得了足够多的开发经验,更使我在系统设计过程中少走了许多的弯路,巩固了以前所学的知识,提高了应用能力,这使我对以后的工作也信心满满。

敬业的工作态度都给予了我极大的鼓励与帮助。对于提出的问题和遇到的困难都给予细心的解答和真诚的帮助,再次表示衷心的感谢。我还要对学院及系里的各位领导、老师们表示谢意,在这次毕业论文期间给我们提供了良好的学习和生活环境,并给予软硬件的支持,使得我的系统设计工作及论文撰写工作更加顺畅、便利。最后我还要感谢所有为我的毕业设计提出指导意见的各位老师、同学。

参考文献

[1]王旭,陈越,王晓莉,谈一真.实验教学排课系统的设计与应用[J].科技风,2022(06):69-71.DOI:10.19392/j.cnki.1671-7341.202206023.
[2]吴剑谦,王美荣.浅谈高校教务管理信息平台中的排课模式[J].试题与研究,2022(05):124-125.
[3]惠晓萍.高职院校二级排课模式探究[J].卫生职业教育,2022,40(03):6-8.
[4]张琦,张丽华,魏敏捷.高校计算机辅助课程安排系统算法及实现研究[J].中国电力教育,2021(S1):256-257.DOI:10.19429/j.cnki.cn11-3776/g4.2021.s1.112.
[5]杜冬霞.多Agent通信协商技术在高职院校排课系统的应用研究[J].数字通信世界,2021(12):246-248.
[6]黄泓彰,王辰尹,王伟楠.基于Springboot的高校智能排课系统的设计与实现[J].电脑知识与技术,2021,17(26):59-62+81.DOI:10.14004/j.cnki.ckt.2021.2595.
[7]高建兴.混合量子粒子群优化算法在高职院校排课管理系统中的应用[J].信息与电脑(理论版),2021,33(17):47-49.
[8]贺照易. 排课系统的MSVL建模与验证[D].西安电子科技大学,2021.
[9]朱良学.基于遗传算法的高职学院排课系统设计研究[J].湖北师范大学学报(哲学社会科学版),2021,41(03):94-99.
[10]黄阿新.基于蚁群算法的高校排课系统设计[J].安徽电子信息职业技术学院学报,2021,20(02):6-10.
[11]吴剑谦,王美荣.教务排课对高等院校教学运行的作用分析[J].大学,2021(06):27-28.
[12]荀旭. 自动排课系统的设计与实现[D].西安科技大学,2020.DOI:10.27397/d.cnki.gxaku.2020.000839.
[13]黄艺燕,洪星星,孙燕君.排课机制及其优化——以北京大学为例[J].中国大学教学,2020(06):49-53.
[14]李玉伟. 基于优先级的智能排课系统的研究与实现[D].华中师范大学,2020.DOI:10.27159/d.cnki.ghzsu.2020.002106.

免费领取本源代码,请关注点赞+私信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73062.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot爱护大自然的设计与实现 毕业设计-附源码231643

爱护大自然 摘 要 热爱大自然,保护自然环境,是人们处理与自然关系过程中应当遵守的基本行为准则。第一,热爱大自然,是人类社会赖以生存和发展的物质条件。自然界一切对人类社会生活有益的存在物,如山川草木、飞禽走兽、…

python面向对象案例步骤分析_Python面向对象之继承原理与用法案例分析

本文实例讲述了Python面向对象之继承原理与用法。分享给大家供大家参考,具体如下: 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同…

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录 实践研究_案例精选 找春天 左文慧; 1-515 长方体和正方体的认识 史颂; 6-912 测定空气中氧气的含量 彭洪;肖启友; 10-12 基于单元要素 设计智趣活动…

ServiceComb WorkShop 回顾与干货

ServiceComb开源项目 在 北京国家会议中心 LC3(LinuxCon ContainerCon CloudOpen) 大会上如期首发,展台火热,WorkShop交流氛围活跃,被迫延长30分钟结束,那么让我们在这个高规格大会尾声之际好好回顾一把。…

【合集】SAP 成都研究院开发工程师们精彩纷呈的工作和生活片段

SAP 再次荣获卓越职场颁发的「2020年大中华区最佳职场」奖项,也因为连续五年跻身这一榜单,SAP 由此摘取了「最佳职场」皇冠上的宝石 —— 获得了「传奇企业」称号,成为在大中华区首批获此殊荣的公司之一。 作为在 SAP 研究院这个传奇企业内工…

基于MATLAB的静态手势分割与识别研究

一、课题介绍 本课题设计了手势的分割与识别程序系统,结合 MATLAB软件对采集的目标图像进行识别。结合基于运动的手势分割与基于肤色的手势分割2种手势分 割方法,提取运动肤色区域,通过计算此区域的均值与方差矩阵更新高斯模型,设…

篮球 / 欧锦标赛最亮眼的三位球星

本季的欧洲杯篮球比赛成为另类的NBA较劲的场合,昨天字母哥、东契奇、约基奇都有不错的表现,其中字母哥的表现最为出色,希腊队战乌克兰时他单场豪取41分,帮助希腊以99-79击败乌克兰。 本次篮球欧洲杯字母哥莫过于视最闪亮之一&…

《钱进球场》:球场争锋·棒球1号位

动画《钱进球场》改编自森高夕次原作、足立刑事著同名体育漫画,于2017年3月宣布动画化 ,由STUDIO DEEN负责动画制作,于2018年4月6日起播出。动画第二期于2018年10月5日开始播出。全24话。 中文名 钱进球场 原版名称 グラゼニ 动画制作 Stud…

足坛十大最牛裁判:打边裁枪杀球员 红牌逐鹦鹉

足球场上,裁判的权力至高无上,可有些时候,这些黑衣法官展示权威的方式就不太可取了,更有甚者,他们的某些做法竟让人啼笑皆非。接下来,网易体育将会为广大球迷评选出10大最牛裁判。>>>>最强裁判…

迪赛智慧数——其他图表(平行坐标图):世界杯历史个人进球排名TOP10

效果图 2022年卡塔尔世界杯,全世界球迷翘首企盼,据悉,一共有67372名球迷入场观赛,为自己支持的球队鼓噪呐喊,释放蓄势积攒已久的激情。毕竟这一别,距离上届杯赛,已足四年!通过以上图…

[dhtmlxGantt(甘特图)开发手册]第三篇——语言设置、导出PDF/PNG、导出Excel/iCal等

1.简介 第一篇 第二篇 第三篇 第四篇 本文将介绍如何设置 dhtmlxGantt 的语言、导出PDF/PNG、导出Excel/iCal等等。 2.设置语言 顾名思义,语言设置可以让甘特图使用你希望的语言来呈现。 启用语言设置 ———————————————————————————…

GJB438B/438C如何制定软件开发计划

软件开发策划是软件工程化的重要环节,是对软件开发过程和软件开发方法的整体安排,充分完备的软件开发策划是软件产品成功的基础和保证。而如果对项目阶段、周期、人员安排、风险评估等策划的不充分,则后期会给软件产品带来灾难性后果。下面我…

公司私域流量微信运营SOP工作管理甘特图计划表

文档网盘下载地址https://pan.baidu.com/s/1WJ5XnWCfarPYe8xagY88Cw?pwdw56h 可以说只要你长期处于很主动的状态,哪怕你暂时还没有成功,未来的成功就是水到渠成的。而如果长期处于一种被动的状态,哪怕你暂时还没有失败,未来的失…

软件协会第01次活动第01次任务布置:typora文档编写markdown语法

了解更多关注软协官网:https://www.csuftsap.cn/ 来自软件协会编辑,注册会员即可获取全部开源.md资源,请勿转载,归软件协会所有。 文章目录 :star: 软件协会第01次活动第01次任务布置1.标题级别2.纯文本形式粘贴3.划线3.1 上划线…

Android 获取联系人手机号码、姓名、地址、公司、邮箱、生日

public void testGetAllContact() throws Throwable{//获取联系人信息的UriUri uri ContactsContract.Contacts.CONTENT_URI;//获取ContentResolverContentResolver contentResolver ContactListActivity.this.getContentResolver();//查询数据,返回CursorCursor …

ContactsContract.Contacts.CONTENT_URI无法获取手机号码

需求:打开系统联系人,获取手机号码。 可能会遇到的问题:同一个用户多个手机号码 阅读本文会收获2个技能: 学会反编译Apk查看代码实现原理快速定位反编译后的代码 最开始我以为像类似获取系统图片那样去获取手机号码&#xff0…

Android登陆注册的手机号码匹配

1、背景介绍 在做开发的时候,经常会有一些应用,需要用户的手机号码注册使用,避免任意输入一个不是手机号码的11位数字注册,会使用正则表达式匹配。但是在网上找了很多匹配表达式,发现漏了一些,经过查找&…

红楼梦人物关系简图

贾家,宁国公与荣国公之后,为钟鼎勋贵之家。王家,都太尉统制县伯王公之后,为军官将领之家。薛家,皇商。皇室任命,为皇宫搜罗海外奇珍异宝的皇商。史家,保龄侯尚书令史公之后,为文臣名…

关于红楼梦Python文本分析

1. 获取小说文本 读取文件 # 获取小说文本 # 读取文件 fn open("prepare\\红楼梦_曹雪芹.txt", encoding"utf-8") string_data fn.read() # 读出整个文件 fn.close() # 关闭文件 2.对文本进行处理 # 文本预处理 pattern re.compile(u\t|\n|\.|-…

Google BERT 中文应用之《红楼梦》中对话人物提取

​点击上方“迈微AI研习社”,选择“星标★”公众号 转载自:PaperWeekly 庞龙刚 之前看到过一篇文章,通过提取文章中对话的人物,分析人物之间的关系,很好奇如何通过编程的方式知道一句话是谁说的。但是遍搜网络没有发现…