基于php的学生选课系统

摘要

对于目前高校来说,网上学生选课系统是高校学生管理工作中必不可少的一部分,对于高校来说学生选课系统非常重要,有着很深的意义。本系统基于目前高校的实际情况开发,主要基于BS架构,不需要安装软件,只需要打开浏览器,输入指定的网址便可访问。本系统使用PHP+MySQL技术进行开发。为学生选课提供一个便捷的平台,方便学生选课,学校学生选课的管理,教师只需在后台设置课程信息,学生便可选课,免去了许多繁杂的步骤。

关键词 成绩管理系统;高校;PHP;

Abstract

For the current colleges and universities, the online student selection system is an indispensable part of the management of college students. For colleges and universities, the student selection system is very important and has deep meaning. The system is developed based on the current situation of colleges and universities. It is mainly based on the BS architecture. It does not need to install software. It only needs to open the browser and enter the specified URL to access. This system is developed using PHP+MySQL technology. It provides a convenient platform for students to choose courses, which is convenient for students to choose courses. The management of school students’ choice of courses, teachers only need to set course information in the background, students can choose courses, eliminating many complicated steps.
Keywords: Grade management system; college; PHP;

目录

摘要 I
Abstract II
第一章 绪论 3
1.1 项目背景 3
1.2 项目的意义 3
1.3 国内外研究现状 3
1.4 研究内容及本人工作 4
1.4.1研究内容 4
第二章 系统开发方法 5
2.1 软件开发方法 5
2.2 开发核心语言介绍 5
2.3 其他开发语言介绍 5
2.3.1 MySQL数据库 5
2.3.1 Thinkphp框架 5
第三章 系统需求与分析 6
3.1可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.2 业务需求与分析 7
3.3 非功能需求分析 8
3.4 功能需求与分析 8
3.4.1用户登录 8
3.4.2 教师模块 9
3.4.3 学生模块 10
3.5 性能需求与分析 10
第四章 系统设计 11
4.1 系统设计原则 11
4.2 系统总体设计 11
4.2.1系统总体结构 11
4.3 核心功能模块详细设计 12

4.3.1登录模块详细设计 12
4.4数据库设计 13
4.5数据库连接与实施 14
第五章 系统实现 15
5.1 运行配置环境 15
5.1.1软件运行环境要求 15
5.2 系统主要功能截图及主要实现代码 16
5.2.1用户登录 16
5.2.2学生功能模块 18
5.2.3教师功能代码实现 22
第六章 系统测试 23
6.1 软件测试方法 23
6.2 系统主要功能的测试用例 23
6.2.1系统安装测试 23
6.2.2登陆功能测试 24
6.2.3发布课程测试 24
6.2.4查询课程测试 25
6.2.5学生选课测试 25
总结与展望 26
致 谢 27
参考文献 28

第一章 绪论

1.1 项目背景
目前高校学生人数多,基数大,一个学生要选许多的选修课程,往往一个学生要学许多门课程,如果学校使用纸质化报名选课的话,教师将会面对复杂的工作量,需要大量的工作人员去登记,统计学生选课信息,逐层上报,这无疑是一个非常庞大复杂的工作量。需要耗费许多的时间,教师许多的精力。那么我们有什么办法去改善目前这一情况呢?因此,学生网上选课系统就因此诞生了。
1.2 项目的意义
计算机方面的网络技术的大力发展,人们越来越懂得利用网络。我们可以基于BS架构开发web程序,用户无需安装软件,只需用浏览器打开指定的网址进行登录注册即可访问该程序。学生网上选课系统,学生只需通过浏览器访问该系统,进行选课操作,教师在后台可以添加选课内容,管理学生,查看统计的学生的选课情况。减少了教师的很多工作量,节约了许多时间。大大的便于高校管理工作的进行。
1.3 国内外研究现状
依照学生选课系统国内外情况,外国相关人员对该系统的完善与升级,相比我国内系统,已经相对的的完整。但是国外的系统逻辑思维与国内不一样,不太符合我国国情,因此我们需要开发出一套与我们高校相适应的选课系统,基于高校出发,功能操作方式应符合国人思维,使用的习惯。
1.4 研究内容及本人工作
1.4.1研究内容
1.对高校学生选课现象进行调研
调查分析目前高校学生选课情况,做出一个大概的了解。
2.对系统的需求进行分析
分析该系统所需要的功能
3.设计功能模块
详细确定系统所需的功能模块,比如用户登录注册模块、学生选课模块等。
4.数据库设计
建立数据库,设计选课系统所需要的表,以及E-R图。

5.实现系统
开始编写该系统代码,实现学生网上选课系统功能。
6.系统测试
对系统功能进行测试。
本网上学生选课系统的设计与制作全部由本人独自设计与制作,从系统的需求分析,系统的功能模块设计与确定,系统代吗编写,设计系统的数据库,系统测试。在本系统的后、前期需求分析阶段,本人对在校学生和任课教师的需求进行调研和统计,并撰写该系统的需求文档,并根据该系统的需求文档进行该系统功能的测试和评估,这也包括学生选课系统的测试等相关内容。2 基础理论和相关技术介绍

第二章 软件开发

2.1 软件开发方法
本选课系统采用玩的文档阅读与研究、实际进入高校调查研究、进行过系统实际测试等相关的研究方法。通过实际高校情况调查结果结合相关文档内容研究课题。在选课系统的完成与实现中将使用自己所学的编程专业知识和相关技术进行研究。同时阅读与参考其他作者所编写的学生网上选课管理系统,结合当前高校学生网上选课系统实际需求出发进行功能性的研究与实现。进行实际学生网上选课系统开发。
该方法就是把这个高校学生网上选课系统、分为几大功能模块,分模块进行开发与制作。完成最终系统的实现。
2.2 开发核心语言介绍
本系统开发主要采用PHP语言进行开发制作。PHP起源源于1995年,由Rasmus Lerdorf 开发完成。PHP是一种语法结构简单,易于入门的,很多功能只需要一个函数就可以实现的脚本语言。它的安全性高,跨平台,几乎支持所有的操作系统平台,支持多种服务器,支持广泛的数据库,其中PHP+MySQL是最佳的组合,本系统就采用了MySQL数据库,它还有易学性,语法简单便于掌握。它执行速度块,占用系统资源少,代码执行的速度就快。PHP还是一个免费的开源脚本。PHP目前已成为全球最受欢迎的脚本语言之一。
2.3 其他开发语言介绍
2.3.1 MySQL数据库
只有与数据库结合,才能充分发挥动态网页编程语言的的魅力,PHP支持多种数据库,尤其与MySQL被称为“黄金搭档”!MySQL也是目前最为流行的开源数据库,是完全网络化跨平台关系型数据库系统。MySQL具有功能强大,提供了多种数据库存储引擎,支持跨平台,运行速度快,MySQL使用了B树磁盘表,成本低,免费,支持各种开发语言,存储容量大等优点。
2.3.1 Thinkphp框架
ThinkPHP是一种性能卓越并且功能丰富的轻量级PHP开发框架,其宗旨是让web应用开发更简单、更快速。Thinkphp在易用性、扩展性和性能方面不断优化和改进,已经成为国内最领先和最具影响力的web开发框架。它开源、快速、简单。

第三章 系统需求与分析

本系统为学生网上选课系统,主要功能有用户登录、学生浏览课程信息并可以进行选课操作,查询课程信息,浏览已经选择的课程并且可以进行取消操作。教师可以管理学生信息,管理课程,管理学生选课。
3.1可行性分析
3.1.1经济可行性
PHP+MySQL,thinkPHP是开源免费的软件,不需要收费,同时采用PHPstorm编辑器,学生可以免费申请,本项目完全不需要其他资金,经济上完全可行。
3.1.2技术可行性
本系统开发主要采用PHP语言进行开发制作。PHP是一种语法结构简单,易于入门的,很多功能只需要一个函数就可以实现的脚本语言。它还有易学性,语法简单便于掌握。它执行速度块,占用系统资源少,代码执行的速度就快。PHP还是一个免费的开源脚本。PHP目前已成为全球最受欢迎的脚本语言之一。
 MySQL具有功能强大,提供了多种数据库存储引擎,支持跨平台,运行速度快,MySQL使用了B树磁盘表,成本低,免费,支持各种开发语言,存储容量大等优点。
ThinkPHP是一种性能卓越并且功能丰富的轻量级PHP开发框架,其宗旨是让web应用开发更简单、更快速。Thinkphp在易用性、扩展性和性能方面不断优化和改进,已经成为国内最领先和最具影响力的web开发框架。它开源、快速、简单。
3.2 业务需求与分析
具体功能实际可根据业务不同需求进行个别设置,以下为基本需求设定。
1.用户登录的需求分析
该功能主要分为 学生 教师 管理员三个身份进行登录。

在这里插入图片描述

图3-1登录流程图

2.教师功能模块的需求分析
教师在系统登录成功之后,可以管理学生信息,对学生信息进行查看等操作。教师可以发布要选课的课程信息,管理发布的课程,查看学生的选课情况,修改自己的登录密码。等相关操作。

在这里插入图片描述

图3-2教师功能流程图
3.学生功能模块的需求分析
学生在登陆之后可以修改登录密码,查看自己可以选择的课程,管理自己已
经选择的课程,进行选课操作。

在这里插入图片描述

图3-3学生功能流程图
3.3 非功能需求分析
3.3.1系统运行环境
1、软件运行环境要求
开发工具:PHPstorm 、hbuilder、phpstudy,
运行环境:Windows操作系统,lamp集成开发环境
2、硬件运行环境要求
CPU:3.66G Hz以上;

内存:4GB;
硬盘空间:100GB以上
3.4 功能需求与分析
本系统是一个以PHP+MySQL技术,结合thinkPHP框架开发的网上学生选课系统,供高校师生使用。从用户的角度上,该系统分为两个层面:(1)使用该系统的学生,他们登录系统后通过客户端浏览器浏览可选的课程信息,并根据自己的实际情况按照一定次序选课。(2)另一个是教师,他们可以通过浏览器输入该网上选课系统的访问地址,进行网上选课系统的维护和管理工作。比如说,对课程信息进行删除操作,添加操作,修改操作。 该网上选课系统是建立在B/S的架构上的动态web程序应用,隶属于web开发。不仅仅如此,还需要按照学校的规模条件以及学生集中选课的时间。根据预期系统性能选定服务器,相应的软硬件和网络设施。
3.4.1用户登录
本系统主要有三位用户进行登录操作,学生登录,教师登录。管理员登录

在这里插入图片描述

图3-4登录模块
  3.4.2 教师模块
教师在网上选课系统登陆成功之后,可以发布课程,填写需要发布的   课程信息,比如课程名称,任课教师,课程时长等等信息,在教师发布课程之后,教师还可以管理课程,对发布的课程进行管理操作,对不需要的课程进行删除,填错的课程信息,进行修改正确的课程信息。教师还可以查看学生的选课情况,对学生选择了哪些课程进行查看操作。除此之外,教师还以可以管理学生,新增学生,修改学生信息,删除学生信息。为了提高系统的安全性,教师可以在登录系统之后,进行密码修改操作,修改的自己的登录密码。

在这里插入图片描述

图3-5教师功能模块
3.4.3 学生模块
学生在登录该网上选课系统之后,自己可以选择的课程信息,课程名称,上课时间,任课教师,上课地点等信息。学生可以对自己合适的课程进行选择操作,学生还可以查看自己所选择的课程信息,学生可以管理自己的已经选择课程,对自己所选择的课程进行退课操作,允许反悔。为了提高系统的安全性,学生可以在登录系统之后,进行密码修改操作,修改的自己的登录密码。

在这里插入图片描述

图3-6学生功能流程图
3.5 性能需求与分析
1.适应性
  学生网上选课系统由于使用PHP+MySQL,结合thinkPHP框架开发,所以本系统用于Linux、windows平台、mac等操作系统上运行。
2.故障处理
正常使用系统过程中不会出现错误日志,出现系统错误,必须保证数据一致性。

第四章 系统设计

4.1 系统设计原则
1.系统性
学生网上选课系统由于使用PHP+MySQL,结合thinkPHP框架开发
2.经济性
本次系统开发过程中,经济性即指满足基本需求的条件下,减少开发成本。在满足基本功能的条件下,合理降低项目费用。
3.灵活性
此项目模块化开发,使得各模块独立开发,降低耦合度,实现高内聚低耦合。
4.2 总体设计
4.2.1总体结构
学生网上选课系统总体结构设计图,系统主要由几大功能模块组成:安装模块、用户登录模块、学生功能模块,教授功能模块组成。如图4-2系统层次图所示:

在这里插入图片描述

图4-1总体结构层次图
4.3 核心功能模块详细设计
4.3.1登录功能设计

本系统主要分为三个角色登录,学生登录,教师登录,管理员登录。
4.3.2 教师模块详细设计
教师在网上选课系统登陆成功之后,可以发布课程,填写需要发布的课程信息,比如课程名称,任课教师,课程时长等等信息,在教师发布课程之后,教师还可以管理课程,对发布的课程进行管理操作,对不需要的课程进行删除,填错的课程信息,进行修改正确的课程信息。教师还可以查看学生的选课情况,对学生选择了哪些课程进行查看操作。除此之外,教师还以可以管理学生,新增学生,修改学生信息,删除学生信息。为了提高系统的安全性,教师可以在登录系统之后,进行密码修改操作,修改的自己的登录密码。
4.3.3 学生功能模块详细设计
学生在登录该网上选课系统之后,可以去查看教师所发布的课程,自己可以选择的课程信息,课程名称,上课时间,任课教师,上课地点等信息。学生可以对自己合适的课程进行选择操作,学生还可以查看自己所选择的课程信息,学生可以管理自己的已经选择课程,对自己所选择的课程进行退课操作,允许反悔。学生可以在登录系统之后,进行密码修改操作,修改的自己的登录密码。
4.4数据库设计
本系统完全遵循模块开发准测,报错数据库模块管理,同时各模块数据管理必须遵循数据一致性原则。共分为5个关系,详细信息如下所示:
学生(学号、姓名、学院、专业、班级、性别、班级、密码)
教师(教师工号、姓名、学院、性别、职称、密码)
课程(课程编号、课程名、教师姓名、已选人数、容量、上课时间、上课地点、学分、学时)
选课信息(学号、课程编号)
1.选课信息表
选课信息表包括 学生学号、课程表号2个字段。

表4-1课程信息表
字段名称 数据类型 大小 约束 非空 默认值 含义
StuNo varchar 8 主键 是 无 学号无
CouNo int 3 主键 是 无 课程编号
State char 2 是 无 课程状态
Credit Smallint 2 是 无 课程学分
Alter char 2 是 无 成绩

2.学生信息表
学生信息表包括 学号、姓名、学院、专业、性别、班级、密码7个字段

表4-2学生信息表
字段名称 数据类型 大小 约束 非空 默认值 含义
StuNo char 8 主键 是 无 学号
StuName char 10 是 无 姓名
Classno char 8 是 无 班级
Pwd char 8 是 无 密码
Credit Smallint 2 是 无 学分

3.教师信息表
标识:info_teacher
教师信息表包括 工号、姓名、学院、性别、职称、密码6个字段
表4-3教师信息表
字段名称 数据类型 大小 约束 非空 默认值 含义
TeatNo char 8 主键 是 无 工号
Teaname char 10 是 无 姓名
DepartNo char 2 是 无 学院
Pwd char 8 是 无 密码

4.课程信息表
课程信息表包括 课程编号、课程名称、上课老师、学分、上课时间
表 4-4课程信息表
字段名称 数据类型 大小 约束 非空 默认值 含义
CouNnme char 8 主键 是 无 课程名称
Kind char 8 是 无 类
Teacher char 10 是 无 上课老师
SchoolTime char 8 是 无 上课时间
Credit Smallint 2 是 无 课程学分
primary key char 2 是 无 课程编号

4.5数据库连接与实施
4.5.1 数据库实施
本阶段主要进行创建表、添加数据和创建必要的视图、触发器和存储过程等内容。 这个过程在系统安装阶段完成。

Navicat是一款数据库管理工具,本系统采用Navicat软件作为数据库管理和开发工具。数据库的操作都是在Navicat中完成。
4.5.2 链接数据库
本系统采用thinkPHP框架开发,无需编写繁杂的数据库连接代码,只需要在系统框架目录app/conf/config.php.中设置好数据库的地址,用户名,密码,数据库名称即可,如图所示:

在这里插入图片描述
表4-1数据库连接代码

第五章 系统实现

5.1 运行配置环境
5.1.1软件运行环境要求
本系统软件运行环境主要使用lamp开发环境,就是Linux,Apache,MySQL数据库,PHP5.6进行开发。我们主要使用简单的PHPstudy集成开发环境,无需繁杂的配置就可以把项目简单的跑起来。
5.2 主要系统功能截图及相关实现代码
5.2.1登录
登录主要分为2个身份进行登录,学生和教师身份,在系统主页登录模块处,输入自己的登录账号和登录密码,选择自己符合的身份进行登录,在用户点击登陆后,进行表单post方式传值到验证控制器中进项验证。若用户名和密码输入正确就会跳转到和自己相对应的页面。若用户名和密码输入错误,系统则会提示,用户登录失败,请返回重新登录。
在这里插入图片描述

图5-1登录界面

ÆPZ

E5
<input type=" password" name=" pas sword". size=“12” />
ßM#ß

##J

图5-2登录前端代码
public function checkLogin( ) t
u s e r n a m e = s t h i s − > . p o s t ( " u s e r n a m e " ) ; username = sthis->_ .post ("username") ; username=sthis>.post("username");pwd = t h i s − > p o s t ( " p a s s w o r d " ) ; this->_ post (" password"); this>post("password");usertype = t h i s − > p o s t ( ′ r o l e ′ ) ; i f ( ! this->_ post( 'role') ;if( ! this>post(role);if(!use rname)t
sthis->error( 'iA5âAAP8! ');

if(!$pwd)t
$this->error( ‘iXE5’);

1/9ReÆ#4
if($usertype a’student’ )t
$student =M( ‘student’ );//3J88t -↑Xf e

11i014
c o n d i t i o n [ ′ S t u N a m e ′ ] = condit ion['StuName' ]= condition[StuName]=username; c o n d i t i o n [ ′ P w d ′ ] = condition['Pwd ']= condition[Pwd]=pwd :

u s e r i n f o = userinfo = userinfo=student- >where($ condition)-find();
if(!KaTeX parse error: Expected 'EOF', got '&' at position 28: …his->errorl 'ÆP&̲TTÆ');if(!userinfo[‘Pwd’]=$pwd)
$this- >error( ‘AIP E54iR’) ;elsef
session( ‘StuNo’ . $userinfo[‘StuNo’]) :
sess ion( ‘StuName’ , u s e r i n f o [ ′ S t u N a m e ′ ] ) ; s e s s i o n ( ′ r o l e ′ , userinfo[ 'StuName']);session( ' role' , userinfo[StuName]);session(role,userinfol’student’]) :
sthis->success( ‘ükAEIJ’,U( " /Student/index’));

在通过post提交登陆数据后,$username = t h i s − > p o s t ( " u s e r n a m e " ) ; this->_post("username"); this>post("username");pwd = t h i s − > p o s t ( " p a s s w o r d " ) ; this->_post("password"); this>post("password");usertype = t h i s − > p o s t ( ′ r o l e ′ ) ; 会在 c h e c k L o g i n ( ) 方法中处理,获取用户名,登录密码,身份选择信息,判断 ! this->_post('role');会在checkLogin()方法中处理,获取用户名,登录密码,身份选择信息,判断! this>post(role);会在checkLogin()方法中处理,获取用户名,登录密码,身份选择信息,判断!username用户名是否为空,密码是否为空,然后根据角色信息去查询数据库,如果是学生就去查询学生信息表,如果是教师就去查询教师信息表, 看是否存在用户民,密码是否匹配。如果匹配的话就将信息存储到数据库中。跳转到对应的页面去。代码如图所示:
图5-2登录代码逻辑处理

5.2.2学生功能模块
学生在登录系统之后会进入对应的功能模块,进行相应的选课,退课,查询已
选课程操作。如图所示:
在这里插入图片描述

图5-3学生功能模块界面
学生可以查看选课信息,在学生点击进入选课系统后,系统会查询学生可以选课的信息,把将其显示在页面上。具体代码实现如下:
public function chCourse(){
$st = M('stu);
$db_prfi = C(‘DB_PREFIX’);
$stno = session(‘StNo’);
s t i n f o r m = stinform= stinform=st->alias(‘st’)->join(‘CLASS as clon cl.Classno=st.Classno’)->find($stuno);

$co=M(‘course’);
w h e r e [ ′ D N o ′ ] = where['DNo'] = where[DNo]=stinform[‘DNo’];
c o u = cou = cou=cou->field(‘c.*,sc.StuNo’)->alias(‘c’)->join(“STUCOU as sc on sc.Cou = c.Cou and sc.St= '”. s t . " ′ " ) − > w h e r e ( st."'")->where( st."")>where(while)->select();
$this->display();
t h i s − > a s s i g n ( ′ l i s t ′ , this->assign('list', this>assign(list,coulist);

	}

学生可以查看已选课程,界面如图:
在这里插入图片描述
图5-4学生已选课程信息界面

public function choseCourse (){
c o = co= co=this->_get(‘Co’);
$stno=session(‘StNo’);
$data[‘Order’]=2;
$data[‘State’]=‘已选’;
d a t a [ ′ C o N o ′ ] = data['CoNo']= data[CoNo]=cono;
d a t a [ ′ S t N o ′ ] = data['StNo']= data[StNo]=stno;
$st=M('st);
a d = ad= ad=st->add( d a t a ) ; i f ( data); if( data);if(ad){
$this->success(‘成功选课!’);
}
}
学生删除已选课程逻辑代码如下:
public function delete(){
$stcou=D(‘Stcou’);

C o N o = CoNo= CoNo=this->_get(‘CoNo’);
//var_dump($CoNo);die;
$stcou=D(‘Stcou’);
m d = md= md=stcou->where("CoNo = ‘ C o N o ′ " ) − > d e l e t e ( ) ; i f ( ! CoNo' ")->delete(); if (! CoNo")>delete();if(!md){
$this->error(‘删除失败!’);
}else{
$this->success(‘删除成功!’,U(’/Stu/stucoulist’));
}
}
5.2.3教师功能代码实现
教师角色登录成功之后,可以进行维护学生的信息。教师角色可以发布要选课的课程,维护发布的课程,查看学生的选课情况,维护自己的账号信息。等相关操作界面如图所示:
在这里插入图片描述
图5-5教师角色功能界面
教师点击添加课程界面如图所示
在这里插入图片描述

图5-6添加课程功能界面
教师通过表单post方式在输入课程相关信息后,提交相关信息到控制器add_do方法中操作:

public function add_do(){
$co=D(‘Course’);
r e = re= re=co->create( P O S T , 1 ) ; i f ( ! _POST,1); if(! POST,1);if(!re){
t h i s − > e r r o r ( this->error( this>error(cou->getError());

  }
  $Co->DepartNo=$_SESSION['departno'];
  $r=$co->add($re);
  
if(!$r){	
		$this->error('课程创建失败!');
	}else{
		
		$this->success('课程创建成功!',U('/Teacher/index'));
	}
}

教师修改课程信息代码如下:

public function edit(){
C o N o = CoNo= CoNo=this->get(‘CoNo’);
$co=M(‘corse’);
c o u i n f o = couinfo= couinfo=cou->find($CouNo);
t h i s − > a s s i g n ( ′ i n f o ′ , this->assign('info', this>assign(info,couinfo);
$this->display();
}
public function edit_do(){

C o N o = CoNo= CoNo=this->get(‘CoNo’);
c o = D ( ′ C o r s e ′ ) ; i f ( co=D('Corse'); if( co=D(Corse);if(co->create()){
t h i s − > e r r o r ( this->error( this>error(cou->getError());
}
if( c o − > s a v e ( co->save( co>save(CoNo)){
$this->error(‘此数据写入失败’);
}else{

		$this->success('本课程创建成功!',U('/Corse/colist'));
	}
}

教师角色删除课程时候可以通过a标签获取对应课程的id信息并传值,传到对应的控制器:
public function delete(){
C o N o = CoNo= CoNo=this->_get(‘CoNo’);
$co=M(‘couse’);
m d = md= md=cou->where("CoNo = ‘ C o N o ′ " ) − > d e l e t e ( ) ; i f ( CoNo'")->delete(); if( CoNo")>delete();if(md){
$this->success(‘本课程删除成功’,U(’/Corse/colist’));

	}else{
		$this->success('本课程删除失败!');
	}
}

}

教师可以查看学生的信息,并且可以进行删除,修改操作:、
在这里插入图片描述

图5-7教师维护学生信息的界面

教师修改学生信息代码如下所示:

public function edit(){
s t f o r m = stform= stform=st->findno($StNo);
t h i s − > a s s i g n ( ′ i n f o r m a t i o n ′ , this->assign('information', this>assign(information, stform);
S t N o = StNo= StNo=this->get(‘StNo’);
$st=M(‘stu’);
$this->display();
}

第六章 系统测试

6.1 软件测试方法
首先对于不同类型系统应该采取不同的测试方法,下面就简单列举几种常用的测试方法,具体见表6-1软件测试信息表。
表6-1软件测试方法总结表
单元测试 在最低的功能和参数上去证明所写程序的准确性,举个例子测试一个方法的正确性
黑盒测试 在不了解系统结构前提条件下,对系统的各个模块进行测试。
灰盒测试 在白盒测试与黑盒测试之间的测试是灰盒测试
白盒测试 系统的开发人员已经了解系统内部开发结构,并且可预见性进行系统内部业务逻辑测试
6.2 系统主要功能的测试用例
6.2.1系统安装测试
运行安装程序安装选课系统,填写相关信息,如果提示安装成功,数据库建立成功,基本表建立成功,测试数据插入成功,测试成功。
在这里插入图片描述
表6-1系统运行成功页面

表6-2开始界面用例表

6.2.2登陆模块功能测试
本系统的登陆模块分两种角色也对应两种不同的角色权限权限。在后期的登陆模块功能测试时,需要分别用两种不同的角色账号密码进行登陆。结果是成功登陆到与某一种角色对应的页面,则说明登陆模块能运行无异常,测试结果符合预期。
6.2.3发布课程模块测试
该系统的课程由教师角色发布,教师用户先登录该系统,进入课程模块进行发布。发布的课程保存到数据库之后,在表明该模块测试成功。

在这里插入图片描述

图6-3发布成功页面图

6.2.4查询课程模块测试
学生角色、管理员角色和教师角色都有权限查询课程,测试时,登陆每一种一种角色,进行对课程的查询。若查询到的数据且数据与数据库的数据一致,则表明该功能模块能测试成功。
图6-4课程查询的设置
在这里插入图片描述

6.2.5学生的选课模块测试

首先对学生角色进行登陆,先要查询课程,然后进行选课,如果选课结果成功,并且将数据传到到数据库中,则该模块功能测试成功。
在这里插入图片描述
图6-5学生选课模块测试

结论

本网上学生选课系统是由我独自完成的学生网上选课系统,在完成系统的过程中,我通过实际的调查研究,利用学校的图书馆资源,利用网上的资源,去查阅相关的资料,询问老师,和同学等各项资源完成了我的毕业设计。
由于时间的仓促,我的毕业设计还有许多的不足之处,在后期的时间,我会依旧去完善这个学生网上选课系统。通过这次的设计么我也学到了许多,PHP框架的使用,PHP基础知识的学习,以后我仍然会努力的去学习相关编程知识和技术并总结经验。不断地去提高自己的编程能力。

致谢

首先在这里感谢我的指导老师,在指导老师的细心指导与耐心的帮助下,帮助我去研究我的毕业设计选题,分析选课的内容到最后帮我确定毕业设计选题内容。在我完成毕业设计过程中,我的直倒老师给我提供了很大的帮助,在我有疑问的情况下,老师很乐意的去给我解答问题,给我拓展思路,帮助我寻找方向去解决问题。
最后感谢所有帮助过我的教师和同学,感谢学校给我一个完成毕业设计的机会。

参考文献

[1]明日科技.零基础学PHP.吉林大学出版社,2016.
[2]樊爱宛.PHP MySQL网站开发从零开始学.清华大学出版社,2017.
[3]唐俊.PHP MySQL网站开发技术项目式教程.人民邮电出版社,2015.
[4]梅隆尼.PHP MySQL和apache编程导学.机械工业出版社,2009
[5]列旭松,陈文.PHP核心技术与最佳实践.机械工业出版社,2018.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值