1、题 目基于PHP+MySQL学生选课信息系统学生姓名 张维丹 学号 1109064017 所在学院 数学与计算机科学学院 专业班级 信息与计算科学1101班 指导教师 权双燕 完成地点 陕西理工学院 2015年06月12日陕西理工学院毕业设计基于PHP+MySQL学生选课信息系统作者:张维丹(陕西理工学院数学与计算机科学学院信息与计算科学专业1101班,陕西 汉中 72300x)指导老师:权双燕摘要 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。所以,借助先进的的互联网技术,我们需要开发一个网上选课系统。这是一个web应用系统,我们在前台采用前端框架bootstrap,数据库采用
2、MySql,服务器软件使用Apache。管理员可以在系统中对管理员、教师、学生、课程、教室等信息进行在线管理,学生可以在系统中进行在线选课,教师也可以在系统中查看课表和已选自己课程的学生名单。关键词 学生选课系统;PHP;MYSQL;B/S模式A Students Course Selection Information System Based on PHP+MySQLAuthor :ZhangWeiDan(Grade11,Class1,Information and computing science Major, Mathematics and Computing Science Dep
3、t., Shaanxi University of Technology, Hanzhong 72300X,Shaanxi)Tutor: QuanShuangYanAbstract: With the increasing of the number of college students, educational administration system of data quantity also unceasingly increases. So,with the advanced internet technology,we are able to develop a network
4、system for selecting course according to the need.This system is a web application.We use the bootstrap to develope the front,and we choose MySql for the database and the apache for server software .The admins of this system are able to manage all the informations of admins,teachers,students,courses
5、,classroom and so on.Students have the right to select course,and teachers can know the curriculum of himself.Key Words: courseselection system;PHP;MySql;Browser/Server目 录1引言11.1 学生选课信息系统的研究背景及发展现状11.2 本文研究的目的和意义12 系统的需求分析与设计12.1 总体需求分析12.2 可行性分析12.3 系统流程与构架设计23 系统设计33.1 系统总体设计33.2 系统模块设计33.3 系统详细模块
6、设计54 数据库设计54.1 系统中的实体及其属性64.2 ER图向关系模型的转化74.3 设计数据表85 系统实现95.1 登录界面95.2 管理员模块界面145.3 教师模块界面245.4 学生模块界面256 系统发布及测试266.1 系统发布266.2 系统安装测试266.3 登录功能测试266.4 发布课程测试266.5 查询课程测试266.6 学生选课测试266.7 管理员管理学生信息测试267 相关软件及系统工具介绍277.1 HTML277.2 PHP277.3 Apache277.4 MySQL277.5 Bootstrap27结 论28致 谢29参 考 文 献30附 录311
7、引言随着高校教育的蓬勃发展,高等院校招生数额正在逐年增加,而且高校中专业的设置也越来越细化,可供学生选择的课程数量也越来越多。随之而来的却是教务人员工作量的剧增,因此急需使用电子化、信息化的产品以提高教务人员的工作效率。 本文主要研究的是高等院校学生选课系统的开发和设计。首先对这一学生网上选课系统的研究背景和发展现状作以阐述,其次根据教学方面和学生方面的需要,结合实际情况,做出较为详尽的系统需求分析,在该系统的安全性方面也做了相应的考虑。紧接着,通过介绍该学生网上选课系统的设计流程与构架设计,确定了此次系统的总体设计方案。系统模块部分,又对系统的各个模块的具体功能做出了详细的解释,分为管理员子
8、系统、教师子系统和学生子系统。学生通过该系统可在网上进行自主选课,可以查看教师和课程信息,及时了解选课人数,清楚上课时间和上课地点等。教务管理人员和教师则可以通过该系统来处理学生提交的选课信息,进行课程选报热门程度统计等工作,大大减轻了学生网上选课和后期统计的工作量。 1.1 学生选课信息系统的研究背景及发展现状 随着计算机科学技术的不断发展,计算机已经进入到人们生活、工作的各个角落,毫不夸张的说,现当代人们的生活已经离不开计算机。而我们作为当代大学生,对计算机的需求更是急剧增多。计算机为我们日常的学习和娱乐提供了方方面面的技术支持。而信息管理,就是计算机技术最广泛的应用之一了。使用计算机对信
9、息进行整合、管理、控制,一方面提高了人们的工作效率,另一方面也大大的提高了信息管理的安全性。我们作为高等院校的在校学生,信息管理已经融入到日常学习的每一个方面。从我们的入学报名、学期选课、成绩管理、考核、评定,信息管理都与我们息息相关。而选课作为这其中不可或缺的一环,更扮演着及其重要的角色。在计算机以前,传统的信息管理方式主要是基于表格和文本的纸质手工处理,对于选课情况的统计也是基于教务人员的的重复检查。然而,这种庞大的工作量为为教学工作带来了极大的不便。而且由于限制条件太多,工作流程比较复杂,又容易出错,大大降低了我们教务人员的工作效率。由此可见,利用计算机互联网技术对学生信息进行多方面的管
10、理是时代的趋势。 1.2 本文研究的目的和意义本次网上选课系统的开发,不仅大大减少了原本教务工作者繁杂的工作量,还使得学生可以根据兴趣跨专业选课,全方面把握自己的兴趣爱好以及相关学科知识,而且选课也为我们学生毕业的就业多提供了一个参考方向。2 系统的需求分析与设计2.1 总体需求分析 通过调查与选课系统相关的各类用户,我们统计到不同的功能需求。经过对系统功能的分析和需求总结,设计如下数据项: 管理员信息,包括用户名和密码。 教师,包括教师姓名、编号、性别、职称、电子邮箱、个人主页。 学生,包括学生姓名、学号、性别、出生年月、专业、学院。 课程,包括课程编号、课程名称、任课教师、上课时间、上课地
11、点、限制人数、学分、周学时、总学时。 2.2 可行性分析2.2.1 经济可行性随着校园网在各大高校的普及,学生和教师的上网已不再是难事,网上选课更是非常容易完成的工作,因此本次系统完成并投入实际后,我们在网络设备上并不需要进行大量的物力和财力的投入。再加上,B/S模式的系统只要求客户端具备浏览器的基本功能,就能实现网上选课。因此,每一个学生、学生、管理者均可在个人电脑、计算机实验室、公共机房、网吧等任意场所,进入系统第 0 页 共 57 页完成选课等任务。2.2.2 技术可行性本系统打算采用 B/S 结构,每一个客户端只需有浏览器,能够进行网络链接即可;就可以登陆服务器管理相关信息,而服务器端
12、只需要有可以运行 PHP 程序的解释器即可。而在技术层面上,利用 PHP 和 MySQL 作为系统开发工具使得技术应用得到了极大的保障。因为这两种技术已经比较成熟,且 WampServer为自由使用软件,资金成本上得到了很大的节省。甚至可以说,几乎整个系统中软件投入的成本为零,且功能较为完善,这就保证了系统的经济可行性。而且本系统规模小,灵活程度高,正适合使用这种技术。学生网上选课系统的设计与开发,充分利用了网络交互性、开放性的特点,实现了数据的收集、管理及统计,可以更好地为教学、为师生服务。 2.2.3 操作管理的可行性对于操作此选课系统的三种角色,即教务管理员、教师、学生,均可实现简便易行
13、的操作管理,功能简单明了。 (1) 该软件的功能为:管理员可以对课程、教师和学生的各项信息进行添加、编辑和删除;教师可以查看选课学生信息和人数;学生可以查看教师和课程信息,也可以看到上课地点和选报人数,根据自己的情况进行选课。 (2) 性能:数据的录入极为方便,使查询和选课速度大大提高。(3)系统的输入:课程各项信息、教师各项信息、学生各项信息。(4)系统的输出:选课结果的查询和调用。2.3 系统流程与构架设计 根据上面相关内容,对用户需求所进行的调查和分析,现将本学生网上选课系统的系统流程做出如下分析:(1) 教务管理员登录系统,添加教师信息,包含教师姓名、编号、性别、职称、电子邮箱、个人主
14、页。及其他管理员用户,添加选课课程。(2) 教务管理员登录系统,添加课程信息,包含课程名称、课程编号、上课地点、上课时间、学分、周学时、总学时、限报人数。(3) 教务管理员登录系统,添加学生信息,包含姓名、性别、学号、出生日期、专业、所属学院。(4) 教务管理员完成对教师、课程和学生信息的添加后,学生可登录系统,结合自己的实际情况,进行选课。(5) 教务管理员核对选课列表,检查选课信息无误后,发布最终选课结果和课表。该选课系统的流程如图2.1所示 添加学生信息 管理员登录注册教师及其他管理用户注册教师及其他管理用户注册教师及其他管理用户 注册教师及其他管理员用户注册教师及其他管理用户注册教师及
15、其他管理用户注册教师及其他管理用户 学生登录 添加选课课程注册教师及其他管理用户注册教师及其他管理用户注册教师及其他管理用户 学生选课注册教师及其他管理用户注册教师及其他管理用户注册教师及其他管理用户生成选课序列,形成课表注册教师及其他管理用户注册教师及其他管理用户注册教师及其他管理用户 查询课表注册教师及其他管理用户注册教师及其他管理用户注册教师及其他管理用户图2.1 学生选课系统流程图3 系统设计3.1 系统总体设计该学生选课系统采用的是目前广泛应用的 B/S 平台架构,采取 Apache+ PHP+My Sql 的模式设计完成。根据前面章节已做出的需求分析,实现各个模块的具体功能,最终完
16、成一个实用且简易的学生网上选课系统。学生、教师、管理者可以通过这一系统,完成对选课等相关内容的信息化管理。3.2 系统模块设计系统一共分三大模块:学生模块、教师模块、管理员模块。三大模块之间都有联系。课程由教师来发布,然后学生才能选课,管理员才能对所发布的课程进行查询删除等操作。学生选课后,教师可以查询选课情况。当所发布的课程结束时需要由管理员来维护删除。该系统的主要功能模块如图3.1-3.3所示 网上选课系统 学生模块 管理员模块 教师模块 添加修改课程信息添加修改学生信息添加修改教师信息录入学生成绩查看教师授课信息查看选课信息选择课程图3.1 系统主要功能模块图 网站前台 学生登录 教师登
17、录 查看课程 已选学生查看我的课程 查看课程信息 选课查看已选课程 退出图3.2 选课系统前台功能图 后台管理ce课程管理回收站教师管理学生管理查看、添加、修改、删除恢复课程恢复教师恢复学生选课学生管理图3.3 选课系统后台功能图3.3 系统详细模块设计3.3.1 管理员子系统设计管理员子系统部分的设计及开发主要作用是,实现管理员对整个系统的掌握。管理员用户拥有最高级别的权限。这部分子系统在系统运作中起着最为关键的作用,其主要功能有: (l)用户管理:用户管理分为学生管理和教师管理两部分。这两部分均包括添加、编辑和删除用户功能,分配用户名、编号及其他相关信息。(2)系统维护:维护系统正常运转,
18、此处管理员权责并非一般意义上的教务人员,而是由专业软件技术人员负责。 (3)选课管理:对选课信息进行集中管理,添加、编辑和删除课程信息,审核学生提交的选课要求,并进行最终的汇总。 3.3.2 教师子系统设计 教师用户通过输入教师编号和密码进入系统后,可查看自己的课程具体情况。同时可查看已选自己课程的学生人数和具体信息。 3.3.3 学生子系统设计 (1) 学生用户通过输入自己的学号和密码进入系统后,可根据自己的实际情况选择课程,并查看课程具体情况和代课教师基本情况。4 数据库设计 数据库是用来存储数据的一款软件。一般网站的动态数据都要求能长久的保存起来。本系统数据库使用MySQL进行开发。My
19、SQL是一款免费开源的数据库服务软件,体积小,执行效率高,是一般中小型项目的首选。4.1 系统中的实体及其属性实体是实体-关系模型的基本对象,是现实世界中各种事物的抽象。凡是可以相互区别开并可以被识别的事、物、概念等对象均可被认为是实体。本系统的主要实体有用户组、教师、学生、课程。每个实体都有一组特征或性质,称为实体的属性。实体的属性值是数据库中存储的主要数据,一个属性实际上相当于表中的一个列。下面将对本系统的主要实体的属性在这里一一说明。(1)用户组实体,用户组主要是对系统的用户身份做一个区分,根据不同的身份给予不同的权限。该实体具有的属性主要有:登录名称、登录密码、身份类型、用户状态。其实
20、体属性关系图如下所示 登录名称 登录密码 编号 身份类型 用户状态 用户组图4.1 用户组实体属性关系图(2) 教师实体,教师是在选课系统中具有任课身份的用户,其具有的属性主要有:编号、姓名、性别、职称、电子邮箱、个人主页。其实体属性关系图如下所示 姓名 姓名 编号 教师 个人主页 职称 邮箱图4.2 教师实体属性关系图(3) 学生实体,学生实体是有选课需求的学生,该实体主要的属性有:学号、姓名、性别、出生日期、专业、所属学院。其实体属性关系图如下所示 姓名 姓名 学号 学生 出生日期 所属学院 专业图4.3 学生实体属性关系图(4) 课程实体,课程是学生和教师在选课时主要操作的对象。该实体具
21、有的主要属性有:课程编号、课程名称、任课教师、上课时间、上课地点、限制人数、学分、周学时、总学时、课程简介。其实体属性关系如下图所示上课时间课程名称任课教师上课地点课程编号 课程 学分总学时课程简介限制人数周学时图4.4 课程实体属性关系图4.2 ER图向关系模型的转化在上面实体之间的关系的基础上,将实体、实体的属性和实体之间的联系转换为关系模式。 这种转换的原则是:一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。 一个联系也转化为一个关系,联系的属性及联系所连接的实体的码都转化为关系的属性,但是关系的码会根据关系的类型变化,如果是:1) 1: 1 联系,两端实体的码都
22、成为关系的候选码2) 1: n 联系, n 端实体的码成为关系的码3) m : n 联系,两端的实体码的组成为关系的码根据转换算法,可以确定一下几个关系模型:1、用户组(编号,登录名称,登录密码,身份类型,用户状态)2、教师(编号,姓名,性别,个人主页,邮箱,职称)3、学生(学号,姓名,性别,出生年月,专业班级,所属学院)4、课程(课程编号,课程名称,任课教师,上课时间,上课地点,周学时,总学时,限制人数,学分,课程简介)4.3 设计数据表 经过上面的ER关系图和关系模型的分析后就可以设计出相应的数据表了,本系统共有五张表,各个表的结构如下所示:用户组表,表名users,该表对应的是用户组实体
23、,主要是对用户的身份进行划分,根据不同的身份给出不同的权限。这里用户密码使用MD5加密算法进行加密处理。表4.1 用户组数据表结构列名数据类型属性约束条件说明idint(10)无符号/非空/自增长主键用户编号login_namevarchar(50)非空/缺省 登录名称pwdchar(32)非空登录密码typetinyint(1)非空/缺省1身份类型statuetinyint(1)非空/缺省1用户状态教师表,表名teachers,该表对应教师实体,主要保存教师的基本信息。方便学生在查看课程信息的时候显示更完善的信息,方便学生作对比,选出自己理想的课程。表4.2 教师数据表结构列名数据类型属性约
24、束条件说明idint(10)无符号/非空/自增长主键教师编号uidint(10)非空用户编号codechar(10)非空/缺省 登录名称namevarchar(30)非空/缺省 姓名sextinyint(1)非空/缺省1性别jobvarchar(30)非空/缺省 职称emailvarchar(50)非空/缺省 邮箱indexvarchar(30)非空/缺省 个人主页is_delint(1)无符号/非空/缺省1用户状态 学生表,表名students,该表对应的是学生实体,主要保存学生的信息。方便任课教师查看选择其所教授的课程的学生信息。表4.3 学生数据表结构列名数据类型属性约束条件说明idin
25、t(10)无符号/非空/自增长主键学生编号uidint(10)非空用户编号codechar(10)非空/缺省 学号namevarchar(30)非空/缺省 姓名sextinyint(1)非空/缺省1性别birthdaydate非空/缺省 0000-00-00出生日期professionvarchar(30)非空/缺省 专业班级academyvarchar(30)非空/缺省 所属学院is_delint(1)无符号/非空/缺省1用户状态 课程表,表名course,课程表对应的是课程实体,主要保存课程的基本信息。用于学生和教师浏览课程信息。表4.4 课程数据表结构列名数据类型属性约束条件说明idin
26、t(10)无符号/非空/自增长主键课程IDcodechar(8)非空/缺省 课程编号namevarchar(30)非空/缺省 课程名称teachervarchar(30)非空/缺省 任课教师class_placevarchar(30)非空/缺省 上课地点class_timevarchar(30)非空/缺省 上课时间limitint(3)非空/缺省0人数限制scoretinyint(1)非空/缺省1学分week_timeint(2)非空/缺省1周学时total_timeint(2)非空总学时introducetext课程简介is_delint(1)无符号/非空/缺省1课程状态课程对应的选课学生表
27、,表名course_stu,该表主要保存选择某个课程的学生,通过该表可以快速的知道某一门课程都有哪些学生选择。表4.5 课程对应的选课学生数据表结构列名数据类型属性约束条件说明idint(10)无符号/非空/自增长主键记录编号cidint(10)非空课程编号uidint(10)非空/缺省学生学号5 系统实现5.1 登录界面系统的教师和学生两个模块共用一个登陆页面。输入账户名跟密码,不同的用户选择不同的身份,验证身份登陆之后分别跳转到不同的界面。登录界面如图5.1所示图5.1 登录界面登录部分实现的代码如下: 登录页面 $(function()/得到焦点$(#password).focus(fu
28、nction()$(#left_hand).animate(left: 150,top: -38,step: function()if(parseInt($(#left_hand).css(left)140)$(#left_hand).attr(class,left_hand);, 2000);$(#right_hand).animate(right: -64,top: -38px,step: function()if(parseInt($(#right_hand).css(right) -70)$(#right_hand).attr(class,right_hand);, 2000););/
29、失去焦点$(#password).blur(function()$(#left_hand).attr(class,initial_left_hand);$(#left_hand).attr(style,left:100px;top:-12px;);$(#right_hand).attr(class,initial_right_hand);$(#right_hand).attr(style,right:-112px;top:-12px););); 身份类型学生 教师 登录!- -处理层代码:public function dealLogin()$table = M(use
30、rs);$datalogin_name = I(login_name);$datapwd = md5(I(pwd);$type = I(type);/ 判断用户身份,1表示学生,2表示教师if($type = 1)$user = $table - join(students on uid=users.id) - field(name,uid,type) - where($data) - find();else$user = $table - join(teachers on uid=users.id) - field(name,uid,type) - where($data) - find()
31、;if($user)session_start();$_SESSIONuserdatausername = $username;$_SESSIONuserdatauserid = $useruid;$_SESSIONuserdatausertype = $usertype;$this-redirect(Index/index);else$this - display(T(Index/login);5.2 管理员模块界面管理员以管理员身份进入系统之后,可在后台进行教师信息、课程信息、学生信息的编辑、添加,及修改。以上各个页面的实现效果如图5.2-图5.9所示:图5.2 后台编辑教师信息页面管理员编辑教师页面实现的代码如下:教师列表修改教师信息 修改教师信息 a c