选课管理系统(内含源代码)

XX 学院计算机科学与技术系

软件设计实验报告

课程名称 软件设计实验报告 实验项目 学生网上选课系统 完成人

所在班级 指导教师

完成日期 2009年12月

—、概述 1、项目背景

学生选课系统是一个学校不可缺少的部分, 它的内容对于学校的决策者和管理者来说都至关重要, 所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点, 如:效率低、保密性差, 另外时间一长, 将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分, 使用计算机对选课信息进行管理, 有着手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率, 也是企业的科学化、正规化管理, 与世界接轨的重要条件。 2、课题研究目的

选课系统是一个提供给高校学生制定个人选课计划的选课平台,学生可以在网上进行选课申请,并可查询个人的选课计划以及选课申请情况。同时,教务人员负责维护课程相关信息,包括课程名,开课院系,课程类别(必修,选修),授课老师,课时,上课时间,限选人数等。管理员可以查询选课进度,根据学生选课情况适当调整选课学生名单。 3、开发环境

应用服务器: Tomcat5.5、JDK1.7、access2007

硬件条件:处理器:Intel PII 450 或更好; 内 存:256M 或更大; 硬 盘:20G 或

更大

软件条件:Windows 98以上及Windows NT操作系统 4、软件定义

(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,该技术为创建显示动态生成内容的Web 页面提供了一个简捷而快速的方法。JSP 技术的设计目的是使得构造基于Web 的应用程序更加容易和快捷,而这些应用程序能够与各种Web 服务器,应用服务器,浏览器和开

发工具共同工作。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。

本选课系统采用JSP 技术开发,主要是考虑到其具有以下几个优点:

JSP的效率和安全性更高,JSP 在执行以前先被编译成字节码 (byte code),字节码由Java 虚拟机(Java Virtual Machine) 解释执行,比源码解释的效率高;服务器上还有字节码的Cache 机制,能提高字节码的访问效率。第一次调用JSP 网页可能稍慢,因为它被编译成Cache ,以后就快得多了。同时,JSP 源程序不可能被下载,特别是JavaBean 程序完全可以放到不对外的目录中。

JSP的组件 (Component)方式更方便,JSP 通过JavaBean 实现了功能扩充。JavaBean 是完全的OOP ,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email 自动回复等等。

JSP程序可以无阻碍地适应于包括UNIX 、LINUX 和WINDOWS 等主流平台。 JavaScript是一种新的描述语言,此语言可以被嵌入 HTML或JSP 的文件之中。通过 JavaScript可以做到回应使用者的需求事件 (如: form的输入) 而不用任何的网络来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给服务端 (server)处理,再传回来的过程,而直接可以被客户端 (client)的应用程序所处理。可以想像成有一个可执行程序在客端上执行一样。

如果嵌入的JSP 页面中的脚本JavaScript 代码比较多的情况下,为了使页面代码清晰可读,就要考虑把JavaScript 代码单独写在一个文件中,并命名为*.js格式的文件,这样在JSP 页面中只要把所写的js 文件引入进来即可达到在JSP 页面中使用JavaScript 代码一样的效果,并且代码分离,便于修改和维护。 Apache Struts软件是本软件Web 层的开发平台, 所有Web 层的逻辑(JSP, Servlet, JavaBean)都在该平台上开发.Struts 有一组相互协作的类、Serlvet 以及Jsp TagLib 组成。基于Struts 构架的web 应用程序基本上符合JSP Model2的设计标准,可以说是MVC 设计模式的一种变化类型。Struts 包含了丰富的标记库和独立于该框架工作的实用程序类。

Struts 有其自己的控制器(Controller ),同时整合了其他的一些技术去实

现模型层(Model )和视图层(View )。在模型层,Struts 可以很容易的与数据访问技术相结合,包括EJB,JDBC 和Object Relation Bridge 。在视图层,Struts 能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。

二、需求分析

1、 当今时代是飞速发展的信息时代。在各行各业中离不开信息处. 理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好选课信息而设计的。学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于选课情况的统计和查询等往往采用对课程的人工检查进行,对学生的选课权限、以及选课代号等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管学校都有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式对学生选课情况进行人工管理,由于信息比较多,选课信息的管理工作混乱而又复杂;一般选课情况是记录在文件上,课程的数目和代号也记录在文件中,学校的工作人员也只是当时对它比较清楚,时间长了,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的选课进行更改就更加困难了。

基于这些问题,我们认为有必要建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 2、整体分析

(1)系统管理员

录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。

录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便教师在开设课程时候设置上课的教室。 (2)教师用户

显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,电话等。

开设课程:教师用户登录系统后,可以开设课程,可以设置该课程为必修课程或则选修课程,可以设置该课程的最大人数。

编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。 (3)学生用户

显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别等。

查看课程:学生登录后,可以查看所有的课程。查看该课程的信息,上课时间地点,开课教师信息等。

查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选。

三、数据库逻辑设计

数据库逻辑设计就是将E —R 图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有: (1)一个实体型转换为一个关系模式;

(2)一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并;

(3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;

(4)一个多对多的关系转换成一个关系模式。 根据以上四条规则,下面将E —R 图转换成关系模型。

对于“学生”、“课程”和它们之间的“选课”关系就可以规则转换成三个关系模式。

学生(学号,姓名,性别,登陆密码,系别)

课程(课程编码,课程名称,开课教师编号,学分,最大人数,课时,上课时间,教室,系别编号)

选课(学号,课程编号,成绩,课程名称) 依次类推,剩下的关系转换成下面三个关系模式: 教师(教师编号,姓名,密码,系别编号) 管理员(帐号,密码)

四、详细设计

本次课程设计由小组6人共同完成,分工明确。 (1)数据库详细设计的内容。

由上面的逻辑分析我们知道,程序对应7个表,分别是管理员admin, 选课choosecourse, 班级class, 课程course, 系别department, 学生student, 教师teacher.

1.管理员admin :应有3个属性,登陆帐号aId, 登陆密码aPass ,参照密码aPassagn. 用于进入管理员界面进行对学生、老师、课程的操作。因此管理员admin 的表应为:

2.选课choosecourse :应有4个属性,课程编号coId, 课程名coName, 学生学号sId, 成绩grade. 课程编号coId 用于建立和课程表的连接,课程名coName 用于显示课程名称,学生学号sId 用于建立和学生表的连接,成绩grade 用于显示成绩信息。这里,课程编号coId ,学生学号sId 属于外码。因此选课choosecourse 的表应为:

3.班级class :应有2个属性,班级号cId ,系别dId. 班级号cId 用来表示所属班级,系别dId 用于建立和系别表的连接,表示所属的系别。因此班级class 的表应为:

4.课程course :应有9个属性,课程编号coId ,课程名coName ,教师编号tId ,学分credit ,学时period ,上课时间cTime ,上课地点cPlace ,总人数

cNumAll ,系别编号dId. 课程编号coId 是本表的主键。课程名coName 用来显示课程的名称。教师编号tId 用于建立和教师表的连接,属于外码。学分credit 用来显示学分信息。学时period 用来显示学时信息。上课时间cTime 用来显示上课时间信息。上课地点cPlace 用来显示上课地点信息。总人数cNumAll 用来显示能学此课的最大人数。系别编号dId 用来建立与系别表的连接,属于外码。因此,课程course 应为:

5.系别department :应有2个属性,系别编号dId ,系别名称dName 。系别编号dId 是系别表的主键。系别名称用来显示系别的名称。因此系别department 表应为:

6.学生student :应偶6个属性,学号sId ,学生姓名sName ,登陆密码sPass ,系别编号dId ,班级编号cId, 参照密码sPassagn 。学号sId 是学生表的主键,也是登陆帐号,用于和其他表建立连接以及登陆。学生姓名sName 用来显示学生的姓名。登陆密码sPass 和参照密码sPassagn 用于学生用户登陆。系别编号dId 用于建立与系别表的连接,显示系别。班级编号cId 用于建立和班级表的连接,显示班级。因此学生表应为:

7.教师teacher :应包含4个属性,教师编号tId ,教师姓名tName ,登陆密码tPass ,系别编号dId 。教师编号tId 是教师表的主键,同时也是教师登陆的帐号。教师姓名tName 表示教师的姓名。登陆密码tPass 用于教师登陆。系别编号dId 用于建立和系别表的连接。因此,教师teacher 表应为:

以上是本人数据库的分析与建立的过程。 以下是实现过程:

下面是导入数据源的过程:

(2)功能设计截图

登入界面功能栏,分为学生、教师和管理员登陆界面,各个角色的功能不同。

教师个人信息

教师修改登入密码

教师授课课程信息

已选该教师课程的学生情况

(3)软件界面设计

主要对学生网上选课系统的界面进行分析,并设计各个用户的界面。

登陆界面

从登陆界面学生、教师、管理员可以进入系统,对各自的信息进行管理和维护。

学生信息界面

学生在此可以查看和修改各自的信息,包括查询个人信息、修改登陆密码、成绩查询、选课查询等

学生个人信息界面

学生修改信息界面

教师信息界面

教师在此可以查询和修改各自信息,包括查看个人信息、修改登陆密码、提交课程、成绩录入、选课查询。

教师提交课程界面

管理员信息界面

管理员在此可以查询和修改各自信息,包括对学生和教师信息的修改等。

管理员信息界面

学生信息管理界面

教师信息管理界面

课程信息管理

(4)学生表

功能截图 个人信息查询

修改密码

成绩查询

选课情况

待选择的课程

五、设计心得

近一个月的课程设计即将落下帷幕,期间困难重重,感谢老师与同学的帮助,在我们小组每个组员的共同努力下,一份基于我们自己开发的选课系统程序终于诞生了。

在设计期间,我们经历了很多,才深刻地认识到系统开发的每一步都是都是相互关联的。因此每一份文档的编写都必须正确,完整,否则就会给下一步的工作带来许多麻烦,加大不必要的工作量。由于系统是为用户服务的,所以要充分了解用户的需求,考虑用户的特点和使用习惯,以协调人机关系。在系统实施中应结合各方面的要求,尽可能选择自己熟悉的程序设计语言。系统测试中要根据实际情况设计有效的测试方法。

对于我而言,这是第一次参与到开发一个完整的包含数据库的系统中,在分析、设计、实现过程中都遇到了不少困难。比如,如何细化用户的需求并将需求合理地安排在系统中,特别是在构建系统模型上,需要尽量满足用户需求,设计方面也要做到合理、完善,因此颇费了一番周折。在开发进入尾声时,最大的感受就是用户的需求调查和系统分析对系统开发的成功与否起决定性作用,关系到开发系统的成败。经过艰辛劳动和不懈努力,虽然在小细节上难免有些缺陷,但总体上系统是比较成功的。

除此之外,团队配合是极其重要的。要和队友保持一致,了解他们的设计,才能更好的完成自己的任务。我们克服了重多困难,与大家一起感受到了成功的喜悦。

六、参考文献

[ 1 ]《课题09(李丽)—网上选课系统的设计与实现.doc 》 [ 2 ]《网络选课系统的生存性实例分析》 [ 3 ]《JBuilder 程序设计实例》

[ 4 ]《J2EE 应用开发(Weblogic+JBuilder)》赵强乔新亮编著电子工业出版社 [ 5 ]《JBuilder 软件开发项目实践》清华大学出版社 陆正中、马进德、石正贵等编著 [ 6 ]《struts 框架介绍》 [ 7 ]《Struts 中文手册》

[ 8 ]《JSP 教程》 飞思科技产品研发中心 [ 9 ]《中文版SQL SERVER 2000应用及实例集锦》 赵松涛

[ 10 ]《JSP 程序设计务实》 沈建男 杨洸 [ 11 ]《JSP 网站开发技术》 徐进明 [ 12 ]《JSP 编程实践》 都志辉

[ 13 ]《Java Server Page Specification》 Sun Microsystems, Inc. [ 14 ]《Dreamweaver UltraDev构建网上商城》 黄竣 [ 15 ]《JavaServer Pages Fundamentals》 Govind Seshadri [ 16 ]《J2EE 设计开发编程指南》 Rod Johnson [ 17 ]《J2EE 参考大全》 Jim Keogh [ 18 ]《实用J2EE 设计模式编程指南》 Craig A.Berry


相关文章

  • 哈工大车辆工程课程
  • 车辆工程专业课程介绍(哈工大) 课程代码:0102000008 课程名称:难题解决方法论 英文名称:How to solve it modern heuristics 学分:36 总学时(讲课/实验):2 讲课内容:这是关于如何用数学方法解决问题的一些方法的总纲要,同时还提供了一些技术和过程的具体实 ...

  • 20**年计算机专业毕业论文题目大全
  • 计算机专业毕业论文主题 基于asp 语言的测试项目 学生信息管理系统的设计与实现 基于ASP.NET 的社区人口管理系统 基于ASP.NET 的课程教学网站设计 公司会议网站 C#高校工资管理系统 C#在线点歌系统 <数据库原理>精品课程网站设计 教师住房管理系统 <计算机网络&g ...

  • 网上选课系统的设计与实现(代码)
  • 网上选课系统的设计与实现(代码) 目录 摘要 ··································· 1 ABSTRACT ································ 2 第一章 引言 ······························ 3 1.1课题 ...

  • 暨南大学专用实验报告纸_4
  • 课程名称: 实验四 成绩评定: 实验项目名称: 文件及其他 指导教师 张冰 实验项目编号: VB1104 实验项目类型: 综合 实验地点: 计算中心C305 学生姓名: 学号: 学院: 系 专业: 实验时间 2016 年 5 月 21 日 下 午- 6 月 18 日 下 午 一. 实验目的 1. 掌 ...

  • 网上选课系统毕业论文模版
  • 1引言 计算机网络的发展给我们的生活带来了显而易见的提升,计算机网络的应用广泛,也使之成为我们生活中不可或缺的一份子,利用网络技术不仅可以节约成本,同时还可以提高效率.安全性等等.对于处理大量的.复杂的繁琐信息,计算机进行信息管理会将其高速.方便快捷的优点体现的淋漓尽致.所以计算机进行信息管理有着不 ...

  • 学生选课管理系统
  • <数据库原理与应用> 课程设计 分析与设计报告 题目专业班级 学姓号名指导老师 完成时间 目录 1设计任务与要求..................................................................................... 12 ...

  • 学生选课系统概要设计说明书
  • 学生选课系统 需求规格说明书 目 录 0. 文档介绍 ........................................................................................................................... ...

  • 网上选课系统毕业论文
  • 摘要:随着在校大学生的不断增加,学生选课系统也是学校对学生管理中不可缺少的一部分.以往的选课方法是使用人工的方法管理文件档案,这种管理方式存在许多的缺点:效率低.保密差,另外时间一长,将产生大量的文件和数据,这对于查找.更新和维护都带来不少的困难.随着科学技术的不断提高,计算机已经进入人类社会的各个 ...

  • 系统分析报告
  • 题目: 所属院系:姓名:学号:完成时间: 目录 一.引言............................................................................................... 1(一)项目名称.................. ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn