学生选课管理系统(共20页).doc
精选优质文档-倾情为你奉上毕业设计(论文)论文题目: 学生选课管理系统 系 别: 计算机与信息技术系 专业班级: 14计算机信息管理 学生姓名: 指导教师: 二一七 年 五 月 十七 日专心-专注-专业目 录学生选课管理系统【摘 要】随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学生选课系统作为一种现代化的教学技术,以越来越受到人民的重视,是一个学校不可缺少的部分,学生选课系统就是为了管理好选课信息而设计的。学生选课系统的将使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。系统实现了对课程的基本信息和学生选课、学生和教师用户进行管理。系统对学生角色提供个人信息查看、选课管理以及其他功能;对教师提供查看自己所担任课程的课表和选该门课程的学生信息;提供给管理员以下功能:查看所有课程、学生、教师的信息并可以对它们进行管理(添加、编辑、删除),以及实现新闻的发布并修改。【关键词】PHP WampServer 数据库 教务系统引 言学校是一个与学生信息安全密切的重要机构,在高度信息化的今天,学生对学校管理的要求也越来越高。为了方便学生查询自己的选课信息,也为了学校更好的了解学生选课信息,学校需要一个学生选课信息管理系统。 学生选课管理系统在开发时注意到使用专业术语会对今后的系统使用者造成不便,故所有相关词汇使用了简洁并通俗易懂的词汇,系统使用者不会出现对此系统词汇看不懂的问题,故而在此对系统及文件使用词汇不做定义。1 绪论1.1 研究背景伴随着信息化时代的到来,信息管理技术已经深入到了我们工作和生活的各个方面。 对于国内高校而言,随着招生规模的持续增加,提升高校管理效率已经迫在眉睫,这也就迫使了高校逐渐引入各类信息管理技术。从高校教务管理这一角度看,从高校实行学分制开始,选课工作就成为教务管理中一项重要内容,同时也是高校管理工作的核心内容。传统的人工选课,不仅耗费大量的时间和精力,同时错误率也比较高,选课效率相对比较低下。因此,必须要采取一定的措施来实现科学、合理地选课。本文正是基于此背景,以高校学生选课问题为研究对象,基于B/S架构、以C作为开发, 展开伴随着信息化时代的到来,信息管理技术已经深入到了我们工作和生活的各个方面。对于国内高校而言,随着招生规模的持续增加,提升高校管理效率已经迫在眉睫,这也就迫使了高校逐渐引入各类信息管理技术。从高校教务管理这一角度看,从高校实行学分制开始,选课工作就成为教务管理中一项重要内容,同时也是高校管理工作的核心内容。传统的人工选课,不仅耗费大量的时间和精力,同时错误率也比较高,选课效率相对比较低下。因此,必须要采取一定的措施来实现科学、合理地选课。本文正是基于此前提,以高校学生选课问题为研究对象,基于B/S架构、以C作为开发语言,以WampServer作为开发工具,以SQL Server2005作为数据库管理系统,开发设计出了一套高校学生选课系统。本文首先简要地阐述了选题背景,归纳了关于学生选课系统的研究现状,给出了论文的主要研究方向和论文框架;其次,进行了系统需求分析,基于系统管理员、教师、学生这三类用户角色,阐述了其所需的功能需求,之后还分析了系统的性能需求和安全性需求;再次,针对系统管理员、教师和学生这三类用户角色,结合前文的需求分析,设计了不同用户角色的功能模块,通过功能结构图与顺序图的形式来展示;最后,通过采用界面截图的形式来展现学生选课系统的实现结果,来验证系统是否满足设计要求,进一步采用黑盒测试的方式来验证系统的可靠性。1.2 运行环境操作系统方面,虽然现在Linux的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWS那么的流行和简单化。所以我决定该教务管理系统将运行在Windows系统下面。2 需求分析2.1 性能需求随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们广泛应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,增加了学生选课自主权。学生选课系统作为一种现代化的教学技术,以越来越受到人们的重视,是一个学校不可缺少的部分,学生选课系统就是为了管理好选课信息而设计的。学生选课系统将使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。2.2 功能需求与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了便利。学生在学校的公共机房或者宿舍的个人电脑上通过网络来选课,只要选课还没有截止,学生能够灵活的修改自己的选课情况,大大提高了学校选课工作的效率。教务处的教师则通过选课系统的管理员子系统来管理学生的选课情况,使得学生选课工作达到系统化和自动化。网上选课系统针对在校学生和教师使用。从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式。传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学模式,如果仍然通过纸上的方式选课,一方面浪费了大量的人力物力资源,另一方面浪费时间以及会在人为的统计汇总过程中出现可避免的差错等情况。随着高校人数的增多,上述弊端会越来越多的暴露出来,如果利用网络进行选课,学生只要在计算机前输入自己的个人选课信息即可完成教务部门原来几倍的作业量。从教学的角度来说,教师提出代课申请完成课程发布的工作更加容易,得到教学的信息更加快捷,因此通过网上选课系统可以大幅度的减少教师的工作量,方便了教学工作。2.3 流程分析首先系统用户使用账号和密码等数据就行登录,此时数据流由界面输入流向数据库进行逻辑验证,如果找到该数据记录则进行页面跳转,跳转至系统首页,系统用户在系统内进行数据操作,此时数据流的有效数据流流向数据库中心执行相应的数据sql语句,完成增删改查等操作,最后数据流由数据库中心流向系统界面,进行结果显示。图2-1所示为数据流图: 用户身份验证 用户功能选择 密 码 各功能模块 是 否 正 确 登陆检验数据库用户 用户登陆 正确用户 读数据 出错处理 存数据图2-1 数据流图(1层图)流程分析:首先以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统用户管理、选课公告管理、选课管理、教师信息管理、班级信息管理、学生信息管理、系统管理等功能。以学生的身份登录系统可以使用个人资料管理、在线选课管理等操作。以教师的身份登录系统可以进行个人资料管理、课程信息管理、选课公告管理、选课方案管理、资料下载管理、在线答疑等操作。3 总体设计3.1 系统目标学生选课系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大提高了课程信息管理、学生选课、查询成绩的工作效率,为学校教务处带来很大的便利,本系统的亮点在于界面简明又不失美感,各个功能对应的页面模块和按钮简单明了,用户只需要经过简单地试用就可以熟练上手,本系统符合人机交互的“所见即所得”原则,如图3-1所示。图3-1 手工业务流程手工业务流程图分析:教师先发布课程信息,然后学生进行选课,选择相应的课程,教师可以查看选择该课程的所有学生,为该学生的课程设置成绩信息,最后由学生登录系统查询该课程的成绩分数。3.2 功能设计本系统使用的角色主要有系统管理员,教师用户、学生用户,首先以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统用户管理(修改密码、管理员用户添加、删除、修改)、选课公告管理、选课方案管理、教师信息管理(教师信息添加、删除、修改)、班级信息管理(班级信息添加、删除、修改)、学生信息管理(学生信息添加、删除、修改)、课程表管理( 课程表添加、删除、修改)、系统管理(数据备份)等功能。以学生的身份登录系统可以使用个人资料管理、在线选课管理(在线选课、已选课程查看、课程成绩查询)、选课公告查看等操作。以教师的身份登录系统可以进行个人资料管理、课程信息管理(课程信息添加、删除、修改、课程成绩设定)、选课公告管理(选课公告添加、删除、修改)、选课方案管理(选课方案添加、删除、修改)等操作。同时可以通过关键字搜索可以搜索相应的信息,打印各种详细信息,导出各类信息列表至excel中。3.3 数据库设计系统的采用mysql数据库。管理员表主要存储了管理员信息,只有在这个表中存在的用户才能登录到管理员界面。管理员信息表的设计如下表所示。表3-1 allusers表序号字段名称字段类型大小允许为空最大长度备注1idInt410 2username150255 3pwd150255 4cx150255 5addtimeDateTime819 表3-2 jiaoshixinxi表序号字段名称字段类型大小允许为空最大长度备注1idInt4102gonghao1502553xingming1502554mima1502555chushengnianyue1502556shenfenzheng2552557xingbie1502558zhicheng1502559zhaopian15025510zhujiaokecheng15025511dianhua15025512beizhu25525513addtimeDateTime819表3-3 kechengxinxi表序号字段名称字段类型大小允许为空最大长度备注1idInt4102kechengbianhao1502553kechengmingcheng2552554xuefen1502555xueshi1502556kexuanrenshu1502557renkejiaoshi1502558beizhu2552559addtimeDateTime81910skdd255255表3-4 xuankejilu表序号字段名称字段类型大小最大长度备注1idInt4102kechengbianhao1502553kechengmingcheng2552554xuefen1502555xueshi1502556renkejiaoshi1502557xuankeren1502558chengji1502559pingyu25525510beizhu25525511addtimeDateTime819表3-5 xuankeshijian表序号字段名称字段类型大小最大长度备注1IDInt4102kssj2552553jssj2552554addtimeDateTime8194 详细设计4.1 数据库模型数据库模型图主要是对数据库表进行设计的一个概念模型图,从图13数据库模型图可以了解到表的关联关系和要进行设计的表所需要的字段,开发人员可以通过该模型图进行设计数据库。概念模型的设计是为了将现实世界信息进行抽象,实现信息世界的建模,是进行数据库设计的有力工具。数据库概念模型设计可通过E-R图来描述现实世界的概念模型。本系统的E-R图表现了系统中各个实体之间的联系。 4.2数据库表设计经过前期的需求分析、可执行分析、数据流分析等各个流程分析,结合软件工程的高内聚、低耦合规则,并考虑到以后的程序功能扩展。:数据库结构设计要求根据数据字典、使用的数据库管理系统以及系统开发工具设计出数据库以及各个数据表的结构。系统的采用mysql数据库。管理员表主要存储了管理员信息,只有在这个表中存在的用户才能登录到管理员界面。4.1 php与mysql数据库连接(1)开始来介绍一下web数据库架构:浏览器mysql服务器php引擎apache服务器如4-1图所示: 1 2 3 6 5 4图4-1 web数据库的架构从web系统查询数据的根本的查询步骤: Step1: 进行检查并且过滤来自用户的系统数据;Step2: 成立起一个合适的数据库进行连接;Step3: 进行查询系统数据库;Step4: 获得查询的结构;Step5: 把查询的结果展示给用户。(2)本款系统我使用了apache作为开发环境,它是一个将PHP与Mysql综合一起的研发环境,因此在服务器打开以后,进行连接数据库的方法比较的简洁.可以使用以下的语句:<?php $conn=mysql_connect("localhost", "root", "password"); $result=mysql_db_query("Database", "SELECT * FROM info", $conn); / 获取查询结果 $row=mysql_fetch_row($result); echo '<font face="verdana">' echo '<table border="1" cellpadding="1" cellspacing="2">' / 显示字段名称 echo "</b><tr></b>" for ($i=0; $i<mysql_num_fields($result); $i+) echo '<td bgcolor="#000F00"><b>'. mysql_field_name($result, $i); echo "</b></td></b>" echo "</tr></b>" / 定位到第一条记录 mysql_data_seek($result, 0); / 循环取出记录 while ($row=mysql_fetch_row($result) echo "<tr></b>" for ($i=0; $i<mysql_num_fields($result); $i+ ) echo '<td bgcolor="#00FF00">' echo $row$i; echo '</td>' echo "</tr></b>" echo "</table></b>" echo "</font>" / 释放资源 mysql_free_result($result); / 关闭连接 mysql_close($conn); ?> 4.1.1 用户管理模块功能添加用户。修改用户密码删除用户修改用户资料。4.1.2 用户管理模块输入界面设计在本模块中,首先以管理员的身份登录,经过验证后可以对读者进行添加或删除操作。 string qx,sdg_userid=sle_1.textg_password=sle_2.textselect 权限,姓名,锁定 into :qx,:g_username,:sdfrom 用户 where 编号=:g_userid and 密码=:g_password;if sqlca.sqlcode<>0 thenmessagebox('','编号或密码错误')returnend ifif sd='已锁'thenmessagebox('','该帐户已锁,请与管理员联系')returnend ifsle_1.text=''sle_2.text=''if qx='管理员'thenw_ck.ChangeMenu(m_main)elsew_ck.ChangeMenu(m_main_client)end ifw_ck.title='你好:'+ g_usernameclose(parent)4.1.3 系统管理模块输出界面设计本模块中的输出界面有多个,一个为当管理员输入密码不正确时,提示:输入密码不正确!,一个为当密码为空时,提示:密码不能为空!在添加用户的过程中,将会有如下的输出:用户存在时提示:该用户已经存在!,用户名为空时提示:用户名不能为空! 4.1.4 用户管理模块数据结构描述 管理员进入此模块后,可以进行添加用户和修改,需要一个后台信息表,为了实现系统管理模块的功能,需要用到“用户”信息表。4.1.5 用户管理模块流程 管理员进入此模块后,可以选择两个子模块:添加用户和删除用户。添加用户可以实现新读者的添加,删除用户可以实现用户的删除。4.2 模块实现4.2.1 登录模块一个系统最基本的功能就是登录功能,本系统可以进行网站登录的角色有管理员、教师用户、学生用户,用户实现系统登录,首先进入登录页,输入用户名和密码,然后提交至服务端进行数据库数据验证,通过php逻辑代码判断数据库是否存在用户输入的这一个记录,如果存在,则进入管理员管理界面,登录成功,进入主页,并把用户对象存放在session中,如果不存在这样一条记录,则返回登录界面。系统登录的运行效果如图4-2。图4-2系统登录运行界面登录关键代码如下: <?phprequire_once('include/config.inc.php');/echo md5('111');if($_SESSION'user') echo '<script>' echo 'window.location.href="index.php"' echo '</script>'$msg = ''if($_POST)if(isset($_POST'username')&& !empty($_POST'username') &&strlen($_POST'username')<128) &&(isset($_POST'password')&&!empty($_POST'password') &&strlen($_POST'password')<128) $username = mysql_real_escape_string($_POST'username'); $password = mysql_real_escape_string($_POST'password'); $sql = 'SELECT * FROM m_admin WHERE status=1 AND username="'.$username.'" AND password="'.md5($password).'"' $res = mysql_query($sql); $res = mysql_fetch_assoc($res); if(!$res) $msg = '账号或者密码错误' else$_SESSION'user' = $res; echo '<script>' echo 'window.location.href="index.php"' echo '</script>' else$msg = '表单非法'?>4.2.2 修改密码模块系统所有用户可以对自己的密码和管理员用户的密码进行修改。修改密码是经过跟数据库的原来的密码字段的数据进行判断,如果输入两次的新密码一致,则更新密码这属性对应的一条数据,添加删除管理员实现的过程主要是将填写的数据写入数据库中即可。修改密码界面如图4-3所示。图4-3 修改密码界面修改密码关键代码:/修改密码需要通过js代码进行条件约束,通过多个if语句完成。<script>function check()if(document.form1.ymm.value="")alert("请输入原密码");document.form1.ymm.focus();return false;if(document.form1.xmm1.value="")alert("请输入新密码");document.form1.xmm1.focus();return false;if(document.form1.xmm1.value="")alert("请输入确认密码");document.form1.xmm1.focus();return false;if (document.form1.xmm1.value!=document.form1.xmm1.value)alert("对不起,两次密码不一至,请重新输入");document.form1.xmm1.value=""document.form1.xmm1.value=""document.form1.xmm1.focus();return false;</script>4.2.3 学生教师信息管理模块如何处理庞大的学生个人资料信息与管理,它是基于我们学生选课系统的一个大数据处理。简单的说就是我们教师通过管理员端口进去检索学生个人的生日,学号,班级,性别等信息进行筛选某一位学生的信息。通过我们设定的C语言设定来添加,删除或者更改学生的信息。从而达到更加便捷的对于学生的管理。学生教师信息管理的界面如图4-4所示。图4-4 学生教师信息管理界面4.2.4 课程班级信息管理模块面对课程、班级等数据,通过计算机化的管理这些信息,对其添加、删除、修改,主要是在sql语句的基础上对数据库进行增删改查操作,同时能进行课程班级信息详细信息的打印和课程班级信息列表导出至excel表。课程信息管理的界面如图4-5所示。图4-5 课程信息管理界面4.3 学生选课管理模块详细设计4.3.1 选课时间设置模块管理员可以通过设置选课的是时间段,在这个时间段内学生是无法进行选课操作的,在这个时间段外才能进行选课。设置选课时间段关键代码: <tr> <td colspan="2"><div align="center">选课时间设置</div></td></tr> <tr><td>起始时间:</td> <td><input name="kssj" type="text" id="kssj" value="<?php readzd("xuankeshijian","kssj","id","1");?>" onclick="fPopCalendar(event,this,this)" /> <input name="addnew" type="hidden" id="addnew" value="1"></td> </tr> <tr><td>截束时间:</td> <td><input name="jssj" type="text" id="jssj" value="<?php readzd("xuankeshijian","jssj","id","1");?>" onclick="fPopCalendar(event,this,this)" /></td></tr> <tr><td><input type="submit" name="Submit" value="确定" onClick="return check()" /></td> <td><input type="reset" name="Submit2" value="重置" /></td></tr>5 编程工具的选择WampServer是一款由法国人开发的Apache Web服务器、PHP以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。在windows下将Apache+PHP+Mysql 集成环境,拥有简单的图形和菜单安装和配置环境。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,它会去做。再也不用到处询问php的安装问题了,wampserver一切都搞定了。他有如下的特点:1、支持中文语言,一键安装,省时省力;任何人都可以轻松搭建;2、集成Apache/MySQL/PHP/PhpMyadmin;支持PHP扩展、Apache的mod_rewrit;3、一键启动、重启、停止所有服务,一键切换到离线状态等等。图6-1 WampServer界面参考文献1 林旺/张晓坤.深入浅出HTML与CSS、XHTMM.东南大学出版社,2006.78-158 2 尹志忠/侯妍.CSS权威指南M.中国电力出版社,2008.65-108 3 杨晓云.Mysql5权威指南M.人民邮电出版社,2006.224-444 4 刘秋菊.Web编程技术动态网页设计M.北京师范大学出版社 5 朱涛江.PHP与Mysql程序设计M.人民邮电出版社,2011.246-356 6 刘彦博.PHP基础教程M.人民邮电出版社,2011.1-405 致谢本设计在邱益维老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着老师的心血和汗水,在三年的专科学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向老师表示深深的感谢和崇高的敬意。不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向浙江长征职业技术学院,计信系系的全体老师表示由衷的谢意。感谢他们三年来的辛勤栽培。感谢三年来计信系所有的任课老师,和14级计算机信息管理班与我一起走完这条路的同学们。