学生选课及信息管理系统的毕业设计.docx
- 文档编号:10457583
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:45
- 大小:1.57MB
学生选课及信息管理系统的毕业设计.docx
《学生选课及信息管理系统的毕业设计.docx》由会员分享,可在线阅读,更多相关《学生选课及信息管理系统的毕业设计.docx(45页珍藏版)》请在冰豆网上搜索。
学生选课及信息管理系统的毕业设计
学生选课及信息管理系统的毕业设计
第1章绪论
1.1引言
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点.如:
效率低、保密性差.另外时间一长,将产生大量的文件和数据.这对于查找、更新和维护都带来了不少的困难.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点,例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件.
1.2系统分析
1.2.1开发背景
随着计算机技术的发展,计算机应用越来越深入到人们日常生活的每个领域.计算机管理作为其中的一个重要做成部分,也以它独特的优势,渐渐代替了原始的手工管理.学生选课信息管理作为学校管理的重要部分,由于其信息量大,给以后的查询、修改等操作带来不便,需要使用计算机来管理这些信息.学生选课系统应运而生.
1.2.2需求分析
高校学生资料的管理使学生管理的最主要工作,由于其工作时间比较集中,工作流程复杂,信息量大,信息准确性要求高,信息更新要求快,所以系统不但需求符合高校学生管理部门的实际业务流程需要,而且需要有很好的信息可维护性、用户交互便利性、信息管理严密性、系统安全性及数据共享性.
随着科学技术的不断提高,计算机科学日渐成熟,其强大的计算机功能已经让人们深刻认识到,计算机已经进入人类社会的各个领域并发挥着越来越重要的作用.
作为计算机应用的一部份,使用计算机对选课信息进行管理,具有手工管理所无法比拟的优点.例如:
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高人事劳资管理的效率,也是学校的科学化、正规化管理与世界接轨的重要条件.因此,很有必要开发一套这样的软件.
1.2.3系统概要
本课题所开发的系统使用JAVA来设计开发完成前台界面,SQL Server2005作为后台数据库支持.系统要有较高的安全性和较好的性能.管理员登陆系统后可以现实以下功能:
学生的增加、删除、修改、查询,教师的增加、删除、修改、查询,课程的增加、删除、修改、查询,还可以分别通过课程和学号来进行选课以及设置教师所代课程等功能.教师登陆以后,可以查询自己所代的课程,并可以录入和删除选课的学生,录入课程成绩并进行成绩统计.学生登录以后是另外的界面,学生可以选课、查看自己的选课情况、退选课程、修改密码的操作.
实验流程包括:
需求分析、感念结构设计、逻辑结构设计、物理设计、相关脚本语言的编写、功能方面的实施、维护机制等.
本系统通过图形化界面为用户提供方便快捷的学生管理系统.采用JAVA编程语言编写前台界面,使用SQLsever提供后台数据库支持.前台界面以清晰、简单的风格呈现.后台数据库设计六张表:
教师信息表、学生信息表、课程信息表、选课成绩表、教师课程表、选课时间表,以此来存储整个系统的数据.
1.2.4系统要求
1.硬件要求:
(1)486/DX66Mhz以上CPU
(2)内存16M以上(使用WindowsNT需要32M以上内存)
(3)硬盘容量1GB以上
(4)EGA以上分辨率的显示器.
(5)鼠标及键盘
2.软件要求:
(1)操作系统应使用MicrosoftWindows95及以上版本,或者使用MicrosoftWindowsNT3.51或者更高版本
(2)安装JDK1.6或更高版本
(3)安装SQLSERVER2005
第2章应用技术介绍
2.1数据库简介
SQL(StructuredQueryLanguage),结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.绝大多数流行的关系型数据库管理系统都采用了SQL语言标准.虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作.
2.1.1SQLSERVER基本信息
SQLServer是一个关系数据库管理系统.它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本.在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本.Sybase则较专注于SQLServer在UNIX操作系统上的应用.
2.1.2SQLSERVER2005
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企级的数据管理.SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序[8].
SQLServer2005数据引擎是本企业数据管理解决方案的核心.此外SQLServer2005结合了分析、报表、集成和通知功能.这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域[1].
2.1.3SQLSERVER2005的特点
1.可编程性
CLR(CommonLanguageRuntime,公共语言运行时)集成.CLR集成是指你可以使用任何一种.NET语言编写SQLServer2005的存储过程,触发器,函数,自定义类型,甚至是自定义的聚合函数.想想以前的扩展存储过程,编程非常不容易.代码中一不小心就会引起内存泄漏.
2.安全性
SQLServer2005的安全达到了很强大水平,有着很更清晰的安全模型即主体,安全对象和权限[7].
3.
异步处理能力
ServiceBroker提供了一个功能强大的异步编程模型.Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是集成于数据库中,备份数据库就备份了broker的消息队列.
4.支持通过HTTPSOAP协议直接访问数据库
增加XML数据类型,支持Xquery,使用新的SQLServerManagementStudio等等[4].
以前都是大项目用ORACLE或者DB2,因为只有ORACLE和DB2能胜任,现在情况有些变化了.不少在Windows构架下的大项目还是倾向于用SQL的,像镜像,高可用性,页面级的恢复,联机索引,多CPU支持等高级特性,SQL也不比ORACLE差.
2.1.4SQLSERVER2005对比其他数据库的优势
目前市场上除了SQLSERVER以外还有很多数据库,比如DB2、Oracle等,但是经过各种对比,最终还是选择了SQLSERVER.
首先,SQLServer2005已经证明能满足客户的高可用性要求,而且提供此功能的成本要比Oracle 10g低很多.SQLServer 2005在SQLServer 2005StandardEdition和SQLServer 2005EnterpriseEdition中均提供了所有主要的高可用性功能,如MicrosoftClusteringServices支持、DatabaseMirroring、数据库快照、日志传送和复制等,无需额外的资金投入.SQLServer 2005EnterpriseEdition还通过对多个服务器间的数据进行分区提供了提高可用性的能力.在Oracle 10g中增加此功能需要购买OraclePartitioning产品.高可用性并不需要同样的高成本,SQLServer 2005以比Oracle 10g低很多的价格满足客户的高可用性要求.
其次,SQLServer2005集成.NET运行库时采用的“进程内”模型与“进程外”模型相比有一些非常明显的优势.举个例子,考虑一个负担沉重的数据库实例,要响应许多并发的请求,这一情况已经持续了很长一段时间.SQLServer能自动和智能地在数据存储和程序逻辑(例如,.NET存储过程)之间平衡内存的分配.当系统的负担有了一些性质上的变化——例如,相对较多的请求利用了较多的程序逻辑——SQLServer会再次自动地进行调整.这样,系统的性能会根据满足实际需求的伸缩性和可靠性进行不断的优化.因为DB2UDBv8.2采用“进程外”的模型集成.NET运行库,所以DB2不能提供这种类型的机器资源动态平衡和性能优化[10].
综合以上SQLSERVER的特点以及对比其他数据库的优点,最终决定采用SQLSERVER数据库来作为后台数据库支持.
2.2开发平台和开发工具
2.2.1开发平台的选择
考虑到本系统的性能要求,和现有的条件,我们选择了WINDOWS7版作为开发、测试和运行的平台.因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级.
2.2.2JAVA简介
Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet[5].
2.2.3JAVA语言的特点
1.简单的
Java语言的语法与C语言和C++语言很接近,但是Java丢弃了C++中如操作符重载、多继承、自动的强制类型转换等特性.特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧.
2.面向对象的
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制.
3.健壮的
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证.对指针的丢弃是Java的明智选择.Java的安全检查机制使得Java更具健壮性[2].
4.安全的
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击.
5.可移植的
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度.Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的.
6.解释型的
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行.在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中.
7.高性能的
与那些解释型的高级脚本语言相比,Java的确是高性能的[6].
2.2.4选择JAVA的原因
实际上,Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物.尽管如此,Java和C语言、C++语言又有许多差别,主要表现在如下几个方面:
1.Java中对内存的分配是动态的.它采用面向对象的机制,采用运算符new为每个对象分配内存空间.而且,实际内存还会随程序运行情况而改变.程序运行中,Java系统自动对内存进行扫描,对长期不用的空间作为“垃圾”进行收集,使得系统资源得到更充分地利用.
2.Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能.
3.Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能[9].
4.Java对每种数据类型都分配固定长度.比如,在Java中,int类型总是32位的.而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节数.
5.类型转换不同.在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性.而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换.
6.Java不再使用指针.指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性.而Java对指针进行完全地控制,程序员不能直接进行任何指针操作[3].
7.综合以上JAVA语言的特点,以及JAVA和C/C++的对比,为了可以更灵活、更安全的实现整个系统,最终决定选择JAVA语言来开发.
第3章系统的规划与分析
3.1系统的可行性分析
3.1.1经济可行性分析
由于本系统是一个基于Java的应用,后台采用SQLSERVER数据库,只要安装JAVA虚拟机和SQLSERVER即可使用本系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力、物力.所带来的效益远远大于系统软件的开发成本.在经济上完全可行.
3.1.2操作可行性分析
界面设计时充分考虑管理人员的习惯,使得操作简单,数据录入迅速、规范、可靠,统计准确,适应力强,容易扩充.
3.1.3技术可行性分析
本系统仅需要一台装有Windows系统并装有SQLSERVER数据库和JAVA虚拟机的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求.对于软件技术要求,现在的JAVA程序设计语言已非常成熟,本系统前台采用基于C/S架构的Java开发,页面采用Java常用的BorderLayout、GridLayout等布局.后台采用SQLSERVER语句来实现与数据库的数据交换.
3.2系统功能分析
在实际开发中,系统功能分析需要开发小组的系统设计人员与用户进行全面,深入的交流,以切实了解用户对整个系统期望具有的功能,并分析用户行业营运特点,决定系统具有哪些功能.
本系统中的学生选课管理系统主要具有以下功能:
1.登陆界面:
(1)注册:
新用户注册,包括教师和学生的注册,教师注册的时候需要管理员给的安全码.
(2)忘记密码:
教师或学生可以使用自己的安全码修改登录密码.
(3)登陆:
输入用户名和密码,并选择登陆类型之后可以登录到系统.
2.管理员系统:
(1)学生信息管理:
增加学生信息,修改学生信息,删除学生信息.
(2)教师信息管理:
增加教师信息,修改教师信息,删除教师信息,设置教师注册时的验证码.
(3)课程信息管理:
增加课程信息,修改课程信息,删除课程信息,设置教师和学生的选课时间,设置学生选课的学分限制.
(4)选课信息管理:
增加选课信息,修改选课信息,删除选课信息.
(5)信息查询:
按条件查看学生信息、按课号或课名查看课程信息、查看选课信息.
(6)教师信息查询:
查看教师所代的课程、添加教师代课信息.
3.教师系统:
(1)我的课程:
查看老师所代的课程,并可以查看某课程有哪些同学选了.
(2)学生管理:
添加或删除学生的选课信息.
(3)成绩管理:
添加和修改学生的成绩,对各门课程做成绩统计.
(4)添加课程:
由老师来选择代哪门课程,选课有时间的限制.
(5)修改密码或安全码:
修改教师登陆密码或者修改密码时用的安全码.
4.学生系统:
(1)选课:
学生可以查看所有的课程,点击课程之后可以查看任课教师的信息和课程信息,并可以在这里输入教师号和课程号来选课.
(2)我的课程:
学生可以查看自己已选的课程,并可以输入课程号来退选.
(3)修改密码或安全码:
修改学生登陆密码或者修改密码时用的安全码.
3.3系统模块设计
根据对系统功能分析,经过模块化的分析得到如图所示的学生选课管理系统各个功能模块结构图.
1.用户登录模块包括新用户注册、修改登录密码以及输入信息登陆系统的功能.如图3-1,是系统的登陆界面模块结构图.
图3-1登陆系统模块图
2.管理员系统包括对学生信息、教师信息、课程信息以及选课信息的管理,比如添加、修改、查询等功能,以及其他一些系统设置,比如选课时间和学分的设置.如图3-2,是管理员管理系统的各功能模块图.
图3-2管理员系统模块图
3.教师系统包括教师对自己课程的查看,管理选课学生,添加并管理所带课程的成绩,修改个人简介和所代课程简介,以及修改密码等功能.如图3-3,是教师管理的各功能模块图.
图3-3教师管理模块图
4.学生系统包括查看课程并选课,查看已选的课程并退选,以及修改密码等功能.如图3-4,是学生系统的各功能模块图.
图3-4学生管理模块图
3.4开发与运行环境的选择
开发与运行环境的选择会影响到数据库设计,本系统采用的是SQLSERVER2005作为数据库管理系统,所以也采用了对该数据库支持最好的windows系统作为运行环境.另外,系统采用Java做前台界面,在系统中要安装JDK编译环境和Java虚拟机来运行本系统.
3.5系统实现过程分析
在实现过程中,首先需要根据对系统功能的分析设计出需要的数据库,包括各个数据表和数据表关系图的详细结构.
在实现各个功能模块时,先将系统每个模块做成一个类,然后将不同的模块包含在不同的包下来区分.各个模块之间可以相互调用,来完成整个系统的实现.
在访问数据库时,采用了JAVA连接数据库的函数来实现与数据库的信息交换.用实体类来存放从数据库中取出来的数据,可以方便的读取.这里附上连接数据库的函数方法.
publicstaticConnectionCONN(){
StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
StringdbURL="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=student";
StringuserName="sa";
StringuserPwd="sa";
ConnectiondbConn=null;
try{Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("ConnectionSuccessful!
");
}catch(Exceptione){
e.printStackTrace();}
returndbConn;
}
3.6数据库设计
系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块,而数据库设计则是分析和创建系统数据库,两者对整个系统的开发具有同等重要的关键作用.根据学习到的知识,将数据库的设计总结为两个步骤:
绘制系统数据流图和数据库结构设计.
3.6.1绘制系统数据流图
绘制系统数据流图.系统数据流图根据用户日常工作流程,绘制出系统的各个操作节点,对每一个操作节点,绘制出与该操作关联的数据.然后根据数据流图分析总结出系统数据字典.即总结出系统管理流程只用到的各个数据以及包含的数据项.系统数据流图如图3-5所示.
图3-5学生选课系统数据流图
1.系统用户数据:
包括的数据项有用户名,密码,用户ID,姓名.
2.教师信息数据:
包括的数据项有教师号,教师姓名,登录密码,安全码,职称和简介.
3.学生信息数据:
包括的数据项有学号,学生姓名,所在学院,班级,登录密码,安全码.
4.课程信息数据:
包括的数据项有课程号,课程名,学分,允许选课人数,课程介绍.
5.选课信息数据:
包括的数据项有课号,教师号,学号,学生成绩,选课信息表分为学生选课信息表和教师选课信息表.
6.另外,根据系统要求,还要一个数据库表来存放选课时间和教师注册验证码的信息.
3.6.2数据库结构设计
设计数据库结构.根据第一步得到的数据字典,为数据库规划需要的数据表,并设计每个数据表的结构.
按照学生选课管理系统数据字典,设计出学生选课管理系统数据库中各种数据表,包括系统系统用户表,学生信息表,教师信息表,课程信息表,学生选课表,教师选课表,选课时间表7个表.
数据库中的各个数据表名称和结构分别如下所示.
1.系统用户表.系统用户数据表用于保存系统管理员的帐户信息,包括编号,用户名,登录密码和姓名,数据表命名为“admin”,表结构如图3-6所示.
图3-6系统用户数据表
2.教师信息数据表.教师信息表用来存放教师的基本信息,包括教师编号,教师姓名,登录密码,安全码,教师职称和教师简介.数据表命名为“teacher”,表结构如图3-7所示.教师号作为主关键字.
图3-7教师信息数据表
3.学生信息数据表.学生信息表用来存放学生的基本信息,包括学号,学生姓名,所在院系,所在班级,登录密码和安全码.数据表命名为“S”,表结构如图3-8所示.学号作为主关键字.
图3-8学生信息数据表
4.课程信息数据表.课程信息表用来存放课程的基本信息,包括课程编号,课程名,学分,允许选课的人数以及课程简介.数据表命名为“C”,表结构如图3-9所示.课程号作为主关键字.
图3-9课程信息数据表
5.学生选课信息表.学生选课表用来存放学生选课的相关信息,包括课程号,学号,课程成绩,教师编号.数据表命名为“SC”,表结构入图3-10所示.由于每门课程可能由多个教师来教,所以要在该表添加教师编号一列来区分学生选了哪位教师的课.
图3-10学生选课信息数据表
6.教师选课信息表.教师选课表用来存放教师所代课程的相关信息,包括课程号和教师编号.数据表命名为“TC”,表结构入图3-11所示.
图3-11教师选课信息数据表
7.选课时间表.选课时间表用来存放管理员设置的教师和学生选课的时间.为了节省资源,在此表内添加了两列来存放教师注册时的验证码和允许学生选课的最多学分.数据表命名为“time”,表结构入图3-12所示.
图3-12选课时间数据表
8.数据表关系图.数据的完整性对于一个数据库而言非常重要,比如,如果删除了某个教师的信息之后,那么该教师所代的课程,以及选过该教师所代课程的学生选课信息都要随之删除,否则以后在查询或修改的时候都会出现错误.通过创建教师表和教师选课表、学生选课表之间的关联,就可以实现信息的自动删除.数据库表关系图如图3-13所示.
图3-13表关系图
第4章系统应用程序设计与实现
4.1用户登录模块的实现
4.1.1注册新用户功能的实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 信息管理 系统 毕业设计