当前位置:文档之家› 网上选课系统的设计与实现

网上选课系统的设计与实现

本科生毕业论文(设计)

题目网上选课系统的设计与实现

姓名韩立媛学号2009145533

院系计算机科学学院

专业软件工程

指导教师王华职称副教授

2013 年5月20日

曲阜师范大学教务处制

目录

摘要 (1)

关键词 (1)

Abstract (1)

Key words (1)

1 引言 (1)

1.1 网上选课系统开发的必要性 (1)

1.2 学生网上选课系统的发展与开发现状 (1)

1.3 学生网上选课系统的目的以及意义 (1)

2 相关软件及技术介绍 (2)

2.1 学生网上选课系统的架构 (2)

2.2 学生网上选课系统的服务器 (2)

2.3 学生网上选课系统所用框架 (2)

2.4学生网上选课系统的使用语言 (3)

2.5数据库 (3)

3 系统需求分析 (3)

3.1用户需求分析 (3)

3.2 业务流程介绍 (4)

3.3 可行性分析 (5)

4 系统设计 (7)

4.1 系统总体设计 (7)

4.2 系统详细功能模块设计 (7)

5 详细设计 (12)

5.1 学生子系统 (12)

5.2 管理员子系统 (15)

5.3 教师子系统 (19)

5.4 网站测试 (21)

6 系统关键代码部分 (23)

7 总结 (27)

致谢 (28)

参考文献 (28)

网上选课系统的设计与实现

软件工程韩立媛

指导教师王华

摘要:随着在校大学生人数的不断增加,高校专业设置也越来越细化,可供学生选择的课程也越来越广泛,随之而来的是教务人员的负担愈发加重,因此需要用电子化、信息化的产品改善教务人员的处境,以简便易行的电脑操作代替繁琐的手工报表设计,从而提高教务工作的效率。本文根据实际需要,选择了以Model View Controller(MVC)框架的PHP + MySql + CodeIgniter + easyUI 来开发,分别从学生子系统、教师子系统、管理员子系统等方面设计该系统,能方便的实现学生和教师信息管理,课程管理,学生选课等功能,该系统能够提高教务工作的效率,具有良好的可操作性,能够满足教务管理和学生网上选课的教学管理需求。

关键词:选课系统 PHP(Hypertext Preprocessor) MySql CodeIgniter easyUI MVC Design and Implementation of the Online Course Selection System

Software Engineering Han Liyuan

Tutor Wang Hua

Abstract:With the increasing number of college students, the settings of the colleges’ majors a re more and more refined, and the courses for students to choose are more and more widely. Followed by the heavier burden of colleges’ staffs, therefore we need to develop a system that is functional and reliable to satisfy the students’ selective course a rrangement of colleges, and prove the convenience and simplicity. This system chooses MVC framework based on PHP, MySql, CodeIgniter and easyUI with the actual demands. According to the needs of those staffs, teachers and students, Combined with the actual situation, it made a relatively detailed system requirements analysis. This article introduces the function of the system characteristic and the design process from the student subsystem, teacher subsystem, the administrator subsystem. It contains some functions which are like normal other systems, such as student and teacher information management, curriculum management, student course selection, and other functions. The system can improve the efficiency of the educational administration work, and has good operability; it can also satisfy the teaching management needs of the educational administration management and the students’ online courses teaching management needs.

Key words:Courses Selection System; PHP;MySql; CodeIgniter ; easyUI;MVC

1引言

1.1网上选课系统开发的必要性

从学生的角度来说,由于学校教学制度的改革,传统的教学模式即学生按照学校安排好的课程上课,已经不能适应现在大部分高等院校开始实行的学生的自主选课模式型的教学手段,如果仍然通过纸上的方式选课,一方面浪费大量的人力、物力资源,另一方面浪费时间。而且在人为的统计过程中难免出现差错。随着高校人数的增多,这种弊端会越来越多的暴露出来。因此,利用网络,只要学生在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作对学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,也只要通过自己的电脑来操作即可,不用再奔波于教务处和办公室之间。网上选课系统就是针对在校学生和教师使用。

1.2学生网上选课系统的发展与开发现状

进入21世纪以来,国内各高校都在积极推动教育体制的改革,为培养更为优秀的新世纪复合型人才做出努力。然而在80年代以前,计算机还没有在国内普及各高校学生选课都是手工完成,不仅教师的工作量大,而且学生查询和检索也很麻烦。

80年代后期,少数高校开始实行学年学分制,学生有了一定程度的选课自由,学生在学校只需要修满学分就可以毕业,并且可以根据自己的喜好选择科目。并且随着PC机的普及,有些高校已经开始应用电脑进行日常管理工作。这时,学生选课系统诞生了。但是,这些系统大多是基于DOS或者Windows的单机版本,不仅界面不友好,而且功能薄弱。各科系之间的数据交流只能借助软盘为中介,费时费力。随着高校的规模扩大,教育体制改革的深化,这类系统已经不能适应管理上的要求。

90年代后期以来,各高校纷纷建立自己的高速校园网;在技术上,客户机/服务器体系结构已经非常成熟,同时浏览器/服务器体系结构正在兴起,这些都为创建大型的学生选课系统创造了条件,满足了数据集中存放,管理运作分布执行的需求。中心数据库存放学生选课系统的相关数据,管理人员通过网络访问数据库进行业务管理:学生和任课教师可以通过浏览器查询相关数据。目前国内高校均有自己的选课系统。

使用学生网上选课系统成为现代教务管理工作必不可少的一部分。现今,在学生网上选课系统的架构上绝大多数均采用B/S结构。而在使用语言上,目前常用的开发选课系统的程序语言有ASP、JSP、PHP……多种程序语言,其中以这三种最为常见。1.3学生网上选课系统的目的以及意义

本系统开发的目的,不仅给原本繁杂的人工选课工作减少了不少教务工作量,还在于使学生可以根据兴趣跨专业选课,多了解掌握感兴趣的学科知识,而且选课可能会为学生毕业后多提供一条就业出路。

本文所探讨此学生网上选课系统的研究意义,除了在于提高教务工作效率,为学生网上选课的自由度和公平性提供更佳的操作平台。之外,从学院发展管理层面,还有以下方面的作用:

(1)有利于把握学生偏好和就业走向

偏好趋势包括两个方面:

一是学生的个人喜好。网上的自主选课系统无疑真实地反映了学生的兴趣喜好,能够直接地观察到学生对知识的兴趣动向,有利于因材施教。

二是一定程度上反映出就业走向。教育与就业息息相关,能否顺利就业是学生最为关注的问题之一,也成为学生学习的动力。观察学生网上选课情况也能反映出学生对此课程或行业的态度,从而两项结合,双向选择既能够激发学生学习兴趣,也能够更精准

地把握行业发展就业动向。

(2)为学校增设新专业等发展方向提供参考

“专业结构有待调整优化”是前文提及的高职院校办学现今存在的问题,学院对于专业的考虑,一方面来自于外部,既参考了国家发布的教育规划,如《国家中长期人才发展规划纲要(2010-2020 年)》中强调“要大力开发经济社会发展重点领域急需紧缺专门人才,发展目标为到 2020 年,在装备制造、信息、生物技术、新材料、航空航天、海洋、金融财会、国际商务、生态环境保护、能源资源、现代交通运输、农业科技等经济重点领域培养开发急需紧缺专门人才 500 多万人;在教育、政法、宣传思想文化、医药卫生、防灾减灾等社会发展重点领域培养开发急需紧缺专门人才 800 多万人”,第三方提供的红绿牌专业信息,还要结合地区发展情况,另一方面来自于内部,学生网上选课系统的设置,能够使学院领导清楚地看到哪些课程座无虚席,哪些课程门庭冷落,便于分析原因,有效把握各个专业发展动向,进行综合性衡量。

2相关软件及技术介绍

2.1学生网上选课系统的架构

传统的C/S(Client/Server)架构需要将软件下载到每一个客户端,系统升级时需对每个客户端进行升级(或需用户自身手动升级),耗费大量人力,同时如遇到众人同时下载会造成网络拥堵,耗时,效率不高;且因C/S 自身的条件限制,出于事务保密性考虑,“传统C/S 架构的系统仅限于在局域网使用,无法满足企业对于任何用户任何地点都可以使用系统的应用需求”。

B/S(Browser/Server)架构即浏览器和服务器结构。与传统的C/S体系结构相比,B/S 结构大大简化了客户端,只要装上操作系统、网络协议软件以及浏览器即可,服务器则集中了所有的应用逻辑。开发、维护等几乎所有工作也都集中在服务器端。同时当需要对该系统进行升级时,只需更新服务器端的软件,而不必更换客户端软件,减轻了系统维护与升级的成本与工作量,方便普通用户使用。局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库。它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。目前,学生网上选课系统开发的架构主要是应用B/S 使用的程序,本系统设计也采用的是B/S架构。

2.2学生网上选课系统的服务器

WampServer就是Windows Apache Mysql PHP集成安装环境,即在window下的a pache、php和mysql的服务器软件。WampServer是一款由Apache Web服务器、PHP 解释器以及MySQL数据库的整合软件包,免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。在windows下将Apache+PHP+Mysql 集成环境,拥有简单的图形和菜单安装和配置环境。本系统用Wampserver作为系统的服务器软件。

2.3学生网上选课系统所用框架

CodeIgniter 是一套给PHP 网站开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用CodeIgniter可以减少代码的编写量,并将精力投入到项目的创造性开发上。

CodeIgniter是基于模型-视图-控制器这一设计模式的。MVC是一种将应用程序的逻辑层和表现层进行分离的方法。在实践中,由于表现层从PHP脚本中分离了出来,所以它允许网页中只包含很少的脚本。

模型(Model)代表数据结构。通常来说,模型类将包含取出、插入、更新数据库资料这些功能。视图(View)是展示给用户的信息。一个视图通常是一个网页,但是在

CodeIgniter中,一个视图也可以是一个页面片段,如页头、页尾。它还可以是一个 RSS 页面,或任何其它类型的“页面”。控制器(Controller)是模型、视图以及其他任何处理HTTP 请求所必须的资源之间的中介,并生成网页。CodeIgniter 在MVC使用上非常宽松,因此模型不是必需的。如果不需要使用这种分离方式,或是发觉维护模型比想象中的复杂很多,可以不用理会它们而创建自己的应用程序,并最少化使用控制器和视图。CodeIgniter 也可以和现有的脚本合并使用,或者允许自行开发此系统的核心库。

2.4学生网上选课系统的使用语言

目前,最常用的三种动态网页设计语言:ASP(Active Server Page),PHP(Hypertext Preprocessor)和JSP(Java Server Pages)。

ASP 意为“动态服务器页面”, 是一种服务器端脚本编写环境,可以用来创建和运行动态网页或 Web 应用程序。

JSP(Java Server Pages)是一种动态网页技术标准,技术与ASP技术相类似,其是在传统的网页 HTML 文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和 JSP 标记(tag),从而形成 JSP 文件(*.jsp)。用 JSP 开发的 Web 应用是跨平台的,既能在 windows 下运行,也能在其他操作系统上运行。

PHP(Hypertext Preprocessor)亦可产生动态网页程序,具有很好的不同平台间的可移植性,可在许多的不同种的服务器、操作系统、平台上运行,如Linux,Windows20,WindowsNT、WindowsXP和Win7等平台。也可和许多数据库系统结合,PHP具有丰富的函数接口,支持几乎所有流行的数据库,在数据库上具有很大选择余地。它还支持Apache等通用web服务器,代码无需改动或做些微改动就可在不同的Web服务器、不同的操作系统下运行。

在稳定性上,ASP过一段时间就会使系统不稳定,需要重开作业系统,而且ASP 对数据库的操作方面不稳定,一个小的错误往往导致数据库的瘫痪。PHP在许多的站点使用上,不但长期使用不会有问题,而且程序的稳定性也不错。当然最稳定的是JSP,因为它是由作业系统负责控制,不会因为程序的错误而导致web服务器的不稳定。就系统安全而言,ASP是最差的。在没有经过微软的IISServicepack处理,使用:$data就可以看到ASP的原始码。PHP和JSP在这一方面,在许多商业和非商业使用时,没有什么安全上的问题。ASP只能在windows平台才能充分发挥其价值,JSP只有对JA V A熟悉的人能用的很好。而PHP几乎可以在所有平台上运行,易学易用。PHP在新增功能方面及改版方面是最有活力,本身为免费共享软件,如果想要一个PHP现在没有的新性能时,很快就有人为PHP编程而加上此种特性。

基于以上特性,所以本系统选择PHP为开发语言。

2.5数据库

目前常见的数据库有Access、Sql Server、MySql 等多种数据库形式,几种数据库各有优缺点,其中与PHP语言最为相配的是MySql数据库。而选择MySql软件的另一原因,是因为它完全自由使用,其体积小、速度快、总体拥有成本低,选用此数据库十分合适。并且WampServer里就包含MySql数据库,从而开发起来就更方便快捷。

3系统需求分析

3.1用户需求分析

3.1.1倾听各层面用户需求

1.教务人员:传统手工安排选课有很多不便,很多工作内容需人工记忆,对各系各学科所在选修课程数量的总体把握及各年级学生报名人数的统计也费时费力,多头分段工作还易出现差错;希望可以采用新的排课方式减轻工作量,改善上述提出的问题,减少人员分工。

2.教师:管理课程方便,操作简单不繁琐。

3.学生:操作便捷,多了解即将选择的课程情况;希望改变授课模式,使课程听得懂、学得会又活泼有趣;尽可能多增加一些其他学科的基础课程,对跨专业学习很感兴趣。

3.1.2整合各方面意见,进行需求分析

(1)操作界面美观大方,简洁,操作方便。

(2)根据不同用户需求添加相应功能:

①教务人员业务信息管理:非指定的用户不能对相关功能进行编辑或改动;能够实现对选课信息的集中管理,添加、删除、编辑课程相关信息;添加学生信息,管理教师及学生用户;汇总整理相关数据;管理在线留言。

②教师业务信息管理:教师可编辑、修改课程相关信息;能够查看所有选课课程,及学生网上选课的人数、人员名单、课程的时间和地点。

③学生业务信息管理:修改个人密码;可以查看全部选课内容,自主选课;可以看到截止至选课确认前的选课人数,“确认”后不能更改所选课程;查看所选课程的授课时间和地点。

3.1.3功能特点

根据上面所述,对系统进行了划分,分为三个主要功能,即登录控制、排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。其中,登录子系统是前提,排课子系统是基础,选课子系统是关键。登录子系统区分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断起相应具有的权限,进行不同的操作。排课子系统主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。选课子系统是本系统要实现的最终目的。选课子系统主要供学生选课使用。在这里可以进行预选可有关的活动,包括课程浏览查询、选课、退选课程。

3.2业务流程介绍

根据上面相关内容,对用户需求进行调查、对用户需求所做的分析,现将本学生网上选课系统的业务流程做出如下分析:

1 教务管理员登录系统,注册新的教师或其他管理员用户。按照已批准的下一学期教学计划,录入选课课程。

2 新注册的教师或者管理员登录到系统,修改默认的密码,对所授课程进行添加和维护。

3教务管理员为学生进行注册,根据其学号设定用户名和填写实际姓名,系统采取实名制。学生注册成功后,修改个人密码,查看系统所提供的选课信息,并在规定时间内,可以根据自己的兴趣进行选课。

4学生网上选课按照先来后到的顺序进行选课安排,学生如有因特殊原因,欲改选或退选,需由教务管理员实现。

5教务管理员核对选课列表,整理维护选课信息无误后,发布最终选课结果,公布授课时间和上课地点,备份资料。

6 选课结束后,学生登录系统,能够看到所选课程开设情况。

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

图1 网上选课系统流程图

3.3可行性分析

3.3.1提供方案的可行性

(1)专业结构优化

前文中已经提到,“本系统开发的目的,不仅给原本繁杂的人工选课工作减少了不少教务工作量,还在于使学生可以根据兴趣跨专业选课,多了解掌握感兴趣的学科知识;而且选课可能会为学生毕业后多提供一条就业出路”,满足学生的发展需求是实现学生顺利就业保障之一。

(2)打破教学刻板化

教师可提供一些基础课程,既与现下热门的职业技能证书有关,又不涉及太艰深专业背景知识,指导跨专业的学生熟悉了解;并按照知识的学习梯次或根据证书的等级,分批安排授课,如针对大一学生开设入门知识、大二开设中级内容,大三开设高级内容等。系内亦可组织本系学生学习他系课程,如果申报人多,则可聘请他系教师在不影响其正常教学的情况下,开班授课。

(3)选课公平合理

此选课系统按年级划分选课内容,以保证学生选出适合自己知识背景的课程,学院的电脑数量能够满足该系同一年级学生同时上网选课的要求。采用集中学生上网选课的方式,尽可能地使学生在同样的时间内,查看同样的选课内容,选出自己喜欢的可能,保证学生在选课过程中公平性、合理性。

3.3.2开发技术的可行性

系统打算采用B/S结构,客户端只需有浏览器,能够进行网络链接即可;登陆服务器管理相关信息。而服务器端只需要有可以运行PHP程序的解释器即可。技术层面上,利用PHP 和MySQL作为系统开发工具使得技术应用得到保障。这两种技术的选择原因已在前文部分阐述,技术已经比较成熟,且WampServer为自由使用软件,资金成本上得到很大节省和优化,可以说整个系统是软件投入成本为零,仅需一定硬件成本,功能较为完善,这就保证了系统的经济可行性。目前本系统规模小,灵活程度高,正适合采用这种技术。学生网上选课系统充分利用网络交互性、开放性的特点,实现数据收集管理及统计,可以更好地为教学、为师生服务。且学院提供专业的软硬件维护团队,更为今后学生网上选课系统的扩大和发展提供有力支援。

系统可在Windows 操作平台中使用,开发环境为Windows XP和Netbeans

IDE7.2 for PHP + CodeIgniter。利用PHP 结合MySQL 数据库来进行开发。WamperServer作为此学生网上选课系统的服务器,处理效率相对较高,能够基本满足系统实时在线要求。

3.3.3操作管理的可行性

对于操作此选课系统的三种角色,即教务管理员、教师、学生,均可实现简便易行的操作管理,功能简单明了。

(1)该软件的功能为:学生选课信息更新、选课查询、成绩查询以及密码管理。

学生选课信息更新:添加选课学生、删除选课学生、修改选课学生信息。

查询功能:记录浏览和条件查询。

密码管理功能:允许合法用户对密码进行修改。

(2)性能:

方便数据的录入,使查询速度大大提高。

(3)系统的输入:

选课学生所包含的信息。

(4)系统的输出:

查询结果和各类报表。

(5)数据安全和保密:

系统对不同权限的用户提供不同的功能模块,有一定权限的用户可以进行操作,一般的用户只能进行查询的操作。

3.3.4软、硬件环境要求

硬件环境:服务器端/客户端:

处理器:Intel Pentium 4

内存:256M

硬盘空间:10G

软件环境:服务器端/客户端:

操作系统:linux, windows, unix

网络协议:TCP/IP

浏览器:Internet Explorer6.0 以上

制作工具:PHP MySQL CodeIgniter easyUI

本系统是通过用easyUI来完成学生网上选课系统的界面设计以及外观构架设计;并用CodeIgniter框架运用到系统中,完成数据的调用和处理,系统的后台上用MYSQL 作为数据库支持,提供基本的表信息。

3.3.5安全管理

由于此选课系统是在网络平台上操作,且面向全体师生,确保系统的安全性和师生信息的安全尤为重要。为此,采用下列方法:

(1)严格规定及设置:强调每位用户在成功登录后,可以自设密码。系统不设置保存密码功能。

(2)用户权限明确划分:系统共有管理员、教师和学生这三种用户,用户在使用系统前必须登陆,角色分开,管理员综合管理整个系统,教师编辑课程相关内容,学生网上选课。

(3)数据库创建和编辑:维护数据的安全性和完整性十分重要。本系统首先要求管理员保证数据不能被别人随意访问,防止无关人员对数据文件进行拷贝、修改和删除;其次在windows操作系统中保护MySQL数据文件,设置一定访问权限,使其只能进行“只读”操作;最后,为了避免用户对数据库进行直接操作,教务管理员是通过此学生网上选课系统提供的界面,创建、编辑或删除后台数据库中的数据,对数据库的一切

操作都在系统实现,提高数据库的安全性。

4系统设计

4.1系统总体设计

4.1.1总体构想及原则

系统采用的是目前广泛应用的B/S 平台架构,采取Apache+ PHP+My Sql 的模式设计完成。事先设置好WAMP 开发环境,继而利用PHP5 和CodeIgniter等知识完成开发。

总体目标是综合运用PHP5 技术和MySql 数据库,根据开发目的和前面章节已做的需求分析,实现行之有效且简便易行的学生网上选课服务,教务人员则通过这一系统平台上完成对选课等相关内容的信息化管理。

总体设计原则是系统开发将彻底贯彻以人为本的理念,切实为用户着想,保证系统的安全性、实用性和可操作性,达到预期设计目的,方便系统的升级、扩展和日后与教务系统软件互联,充分发挥计算机节省人力的巨大作用,最大程度上满足用户需求。4.1.2功能模块设计

根据需求分析,系统从教务管理员子系统模块、教师子系统模块和学生子系统模块进行设计。系统管理员在设定好各种角色的权限后,在注册新号时,会根据角色进行分类;用户输入账号和密码口令登录后,根据此分类,进入不同的页面,使用的功能也不尽相同。系统开发出的功能将体现在每个用户子系统管理功能中,三个模块均为用户,在登录系统的流程上是一致的。如图2所示。

图2 网上选课登录系统流程图

(1)管理员子系统:用户信息管理、课程信息管理、后台管理、系统信息管理。

(2)教师服务子系统:课程管理、个人信息管理、查看选课信息。

(3)学生服务子系统:个人信息管理、选课、查看信息。

4.2系统详细功能模块设计

4.2.1管理员子系统

这一子系统部分的设计及开发主要是用以完成管理员对整个系统的管理,管理员用户拥有最高级别的权限:既可以管理授课教师和选课学生的信息,又可以对其他的一般管理员的权限进行设置及管理。非指定的用户不能对相关功能进行编辑或改动,这部分子系统在系统运作中起着最为重要的作用。其主要功能有:

(l)用户管理:用户管理分为学生管理和教师管理及其他教务管理员三部分。这三部分均包括添加和删除用户功能,分配用户名,对用户密码进行初始化分配。

(2)系统维护:维护系统正常运转,此处管理员权责非教务人员,而是由专业软件技术人员负责。

(3)选课管理: 对选课信息集中管理,添加、编辑和删除选修课程信息,审核学生提交的选课申请信息。

(4)留言管理:具有撰写、删除留言,浏览他人留言的功能。

4.2.2教师子系统

教师通过用户名和密码进入系统后,可实现的功能有:

(1)个人信息:修改个人密码。

(2)课程管理:分两块内容:一是添加选课,进行课程介绍,设定开课时间和课程结束时间,限定选课人数和学分;二是当自己有觉得适合同上学的课程可供学生选择的话,可以申请开课。

(3)学生名单:教师将会看到选择自己所授课程的学生人员名单,可以进行对学生成绩的打分。

4.2.3学生子系统

学生用户通过已有的用户名及密码,进入此学生网上选课系统后,可实现的主要功能有:

(l)个人信息:修改初始密码。

(2)自主选课:学生进行选课操作时,可看到页面显示课程相关信息,在“课程描述”部分能够清楚该门课程是否有学习背景等方面要求;选课确认之前,会有提示,一旦确认,即为提交,无法改选。课程达到限定人数,不能继续报名。

(3)查看信息:分为两种,一种是在选课过程中,上一点中提到的可以“实时观看到所有课程其他同学选报数字”,另一种是选课结束后,能够看到所选课程通过,可以查看上课时间和地点。

系统的功能模块如图3所示。

4.2.4数据库设计

学生网上选课系统的重要用途之一,是通过处理大量的数据来获得学生选课的结果并在满额等情况下对学生的课程选择进行调整,这就要求系统必须能够存储和管理大量数据。在这样的需求条件下,建立一个具有良好性能的数据库,可以使整个系统提供更加迅捷、准确的数据,为此学生网上选课系统设计成功提供保障。

(1)数据结构

这一部分主要是进行数据库的逻辑设计,就是将数据系统功能的要求、功能模块的划分等方面的内容与逻辑层次组织到一起,用来确定选课系统各部分的数据项,并能够用数据结构来分析选课的数据流。这一数据库的E—R图如图4所示。

(2)数据库结构模型

1.管理员信息表

标识:tb_admin

管理员信息表包括编号、登录账号、姓名、密码、创建时间、权限、上次登录IP、上次登录时间8个字段,如表1所示。

表1 管理员信息表

名称字段名称类别主键非空

编号id int Yes No

登录账号uid nchar No No

姓名name nchar No No

密码pwd nchar No No

创建时间createat varchar No No

权限root nchar No No 上次登录IP lastip varchar No No

上次登录时间lasttime varchar No No

2.学生信息表

标识:tb_student

学生信息表包括编号、学号、姓名、密码、创建时间、权限、上次登录IP、上次登

录时间、家庭住址、联系方式、所属院系11个字段,如表2所示。

表2 学生信息表

名称字段名称类别主键非空

编号id int Yes No

学号uid nchar No No

姓名name nchar No No

密码pwd nchar No No

创建时间createat varchar No No

权限root nchar No No 上次登录IP lastip varchar No No

上次登录时间lasttime varchar No No 家庭住址hometown nchar No No

联系方式tel int No No

所属院系major nchar No No

3.教师信息表

标识:tb_teacher

教师信息表包括编号、登录、姓名、密码、创建时间、权限、上次登录IP、上次登录时间、家庭住址、联系方式、所属院系11个字段,如表3所示。

表3 教师信息表

名称字段名称类别主键非空

编号id int Yes No

登录号uid nchar No No

姓名name nchar No No

密码pwd nchar No No

创建时间createat varchar No No

权限root nchar No No 上次登录IP lastip varchar No No

上次登录时间lasttime varchar No No 家庭住址hometown nchar No No

联系方式tel int No No

所属院系major nchar No No

4.教室信息表

标识:tb_room

教室信息表包括教室编号、教室名称2个字段,如表4所示。

表4 教室信息表

名称字段名称类别主键非空

编号id int Yes No

名称name varchar No No

5.学院信息表

标识:tb_college

教室信息表包括编号、名称、联系方式、创建时间4个字段,如表5所示。

编号id int Yes No

名称name varchar No No

联系方式tel int No No

创建时间createat varchar No No

6.课程信息表

标识:tb_course

学生信息表包括编号、课程号、课程描述、授课教师、是否开课、上课地点、上课时间、时间段、课程周数、是否必选课10个字段,如表6所示。

表6 课程信息表

名称字段名称类别主键非空

编号id int Yes No

课程号uid nchar No No

课程描述des nchar No No

授课教师tescher nchar No No

是否开课isopen boolean No No

上课地点room nchar No No

上课时间time varchar No No

时间段period nchar No No

课程周数longs int No No

是否必选课ismust boolean No No

7.公告信息表

标识:tb_info

管理员信息表包括发布信息的编号、信息标题、信息内容、创建时间、创建者5个字段,如表7所示。

发布信息的编号id int Yes No 信息标题title nchar No No

信息内容content nchar No No

创建时间createat varchar No No

创建者uid nchar No No

5详细设计

5.1学生子系统

5.1.1学生登录功能

在登录页面对应的地方输入用户名、密码、学号/身份证号,确认后登录。在提交后的php文件中,首先通过学号/身份证号对数据库中的tb_student/tb_teacher表进行检索,若检索到的记录集为空,则说明学号/身份证号错误,从而转到相应的出错处理程序,若记录集不为空,再进行姓名判断,若姓名与表中的姓名不相等,进行出错处理,若相等,进而检查密码是否相等,不相等,进行出错处理,相等则转入学生/老师登录成功的操作页面,并将姓名,密码,学号/身份证号以session对象保存起来。

出错及处理:在该模块中可能发生的错误有学号和密码错误时,系统这时会提醒“对不起。用户名和密码不匹配!”实例截图如图5和图6所示。

图 5学生登录界面

图 6学生登录出错处理界面

点击确定后系统会重新返回登陆界面,如图7所示。

图 7 系统登录界面

若登录成功,如图8所示。

图 8 学生登录成功界面

5.1.2学生密码管理功能

密码的管理的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入原始密码,新密码(两次),确定后提交。转入执行的php文件后,首先根据传递的学号判断原始密码的正误,若错误,转到相应的处理程序,若正确,再判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表tb_student/tb_teacher中的“密码”字段。实例截图,如图9和图10所示。

图 9 学生修改密码界面

图 10 学生修改密码成功提示

查看学生信息,如图11所示:

图11查看学生信息界面

5.1.3学生选课信息查询

从登录成功的下拉菜单中选择一个要查询的学期,确定后进入浏览页面。确定提交页面后,学期的信息以及以session对象传递过来的学号信息作为数据库查询的条件,对表selected进行查询,凡是“学期”等于选择的学期,“学号”等于session(“id”)的记录均为被选记录,每选出一条记录,选择该记录中的“课程编码”字段为参数,对表course 进行查询,将查询到的信息以表格的形式在网页中显示出来,即为该生该学期的已选课信息。将学期作为session对象保存起来。程序脚本中用到两重循环,内循环是对表tb_course进行查询,外循环是对表selected进行查询。实例截图,如图12所示。

图12 选课信息查询

5.1.4学生查询选课名单

在选课信息浏览页面中在“已选课程”中输入关键字,点击查询即可。选课名单的查询是通过条件中的关键字所在的字段对数据表selected进行查询,将符合条件的信息列出。实例截图,如图13所示。

图13 已选课程查看

5.2管理员子系统

5.2.1管理员登录功能

管理员登录和学生登录原理类似,登录界面如图14所示。

图14 管理员登录界面

5.2.2管理员管理学生信息

管理员管理学生信息界面如图15所示。

图15 管理员管理学生信息界面添加学生信息,如图16所示。

图 16 添加学生信息删除学生信息,如图17和图18所示。

图17 删除学生信息界面

图18 删除学生信息提示图5.2.3管理员管理教师信息

管理员管理教师信息界面,如图19所示。

图19 管理员管理教师信息界面管理员添加教师信息,如图20所示。

图20 管理员添加教师信息管理员删除教师信息,如图21和图22所示。

图21 管理员删除教师信息

图22 管理员删除教师信息提示图5.2.4管理员管理课程信息

院系信息管理,如图23所示。

相关主题
文本预览
相关文档 最新文档