数据库课设java学生选课管理系统.docx

上传人:b****4 文档编号:12061098 上传时间:2023-04-16 格式:DOCX 页数:24 大小:4.45MB
下载 相关 举报
数据库课设java学生选课管理系统.docx_第1页
第1页 / 共24页
数据库课设java学生选课管理系统.docx_第2页
第2页 / 共24页
数据库课设java学生选课管理系统.docx_第3页
第3页 / 共24页
数据库课设java学生选课管理系统.docx_第4页
第4页 / 共24页
数据库课设java学生选课管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库课设java学生选课管理系统.docx

《数据库课设java学生选课管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设java学生选课管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

数据库课设java学生选课管理系统.docx

数据库课设java学生选课管理系统

数据库课程设计报告

 

题目:

学生选课管理系统

学院:

信息科学与工程学院

指导老师:

刘嫔

姓名:

马俊

学号:

0909120716

班级:

计科1202

 

 

摘要

本系统是为了完成本学期的数据库课程设计而开发的基于MYSQL和JDBC的学生选课管理系统,数据库用MySQL建立,界面用Java语言开发,本系统基于C/S(客户端/服务器)而开发,主要目的是设计一套可是实现学生选课及其相关信息管理的选课MIS系统。

本文是笔者经过研究自己的选课系统和其他相关信息,进行详细分析讨论后撰写的学生选课管理系统的数据库设计报告,全文从最初的系统规划,到需求分析、概念设计、逻辑设计、物理设计。

每一阶段都进行了详细的分析。

接下来的实现、运行与维护阶段,还进行了对本系统的测试,最后是本次项目开发的心得和体会以及本文的参考文献。

第一章.需求分析

1.1系统需求

用户的需求具体体现在选课信息和用户信息的提供、保存、更新和查询的方面。

这就要求数据库的设计必须合理,使之能够充分满足各种信息的输入和输出,保证数据存储的可靠性,并且能够快速取出和存入。

而前台显示部分,应具有人性化的界面,方便用户操作。

因各个学校的实际情况不同,系统应该具有兼容性。

例如:

一些学校学生人数较多,同时登陆系统,系统承载的负荷就很大。

系统需要同时处理很大的数据量,这时系统不会因此崩溃。

此外,系统还应该具有较强的安全性,保证身份不同的用户,不能越权操作。

非合法用户不能对数据进行操作。

1.2功能需求

通过系统功能的分析,结合需求分析员在各大高校实地考查,调查的对象涵盖了,学校的教职工、在校师生。

特别是对已经运行了与本系统同类产品的学校的师生使用选课管理系统心得体会进行了分析,总结出如下的需求信息:

(1)学生的需求:

能进行选课,查看管理员发布的选课信息,自己的选课情况,本人的基本信息,课程的成绩;

(2)教师的需求:

能查看自己的个人信息,及所授课的班级的所有学生的本门课程的成绩信息,并能进行增加和修改;(3)管理员的需求:

对学生选课情况进行管理,包括发布选课信息,对学生的选课情况进行查看。

管理员还可以对授课老师的信息进行管理。

1.3数据流图

1.3.1系统顶层图

注:

F1:

用户登陆信息F2:

用户注册信息F3:

用户基本信息F4:

用户基本信息F5:

学生选课信息清单F6:

学生选课信息F7:

登陆错误信息F8:

系统反馈用户信息F9:

用户信息清单F10:

修改密码后的用户信息

1.3.2数据流程图一层分解图

(1)用户登陆管理。

用户在登陆时,系统会进行判断。

用户一共有三种类型,分别是学生,教师和管理员。

在判定时需要查询用户信息库。

用户信息库,包括学生注册信息,教师注册信息,管理员信息等。

学生选课管理系统一层分解图——登陆管理,如下图所示:

图2.2学生选课管理系统一层分解图——登陆管理

注:

F2.1:

学生登陆信息F2.2:

教师登陆信息F2.3:

管理员登陆信息F7.1:

用户身份信息F7.2:

修改密码的错误信息

(2)用户操作管理。

在登陆管理进行判断后,发送学生登陆信息,教师登陆信息,管理员登陆信息的其中一种。

根据用户身份信息的不同,进入不同的管理界面,相应的操作的功能,权限都有所不同。

如下图所示:

图2.3.1学生选课管理系统一层分解图——学生管理

注:

F3.1:

原始学生信息F5.1:

学生更新后的选课信

F6.1:

学生查询的选课信息F8.1:

学生操作后返回的信息

(教师管理,和管理员管理的分解图与学生管理类似)

1.3.3数据流程图二层分解图

(1)学生管理。

将P2.1进行分解,学生管理包括,查看选课信息和个人信息,进行选课、重新选课。

学生选课管理系统二层分解图——学生管理如下图所示:

图2.4学生选课管理系统二层分解图——学生管理

注:

F3.1:

学生个人信息F5.1.1:

增加后的选课信息F5.1.2:

删除后的选课信息

(2)教师管理。

将P2.2进行分解,教师管理包括,查看选课信息和个人信息,填写学生的成绩。

学生选课管理系统二层分解图——学生管理如下图所示:

图2.5学生选课管理系统二层分解图——教师管理

注:

F3.2.1:

教师个人信息F3.2.2:

学生个人信息F5.2.2:

增加后的学生成绩信息F5.2.3:

修改后的学生成绩信息

(3)管理员管理。

将P2.3进行分解,管理员管理包括,1.管理学生信息,包括对学生信息的查询、增加,修改,删除;2.管理教师信息,包括对教师信息的查询、增加,修改,删除;3.选课信息管理,包括发布选课信息,增加,修改,删除选课课程等。

学生管理系统二层分解图——学生管理如下图所示:

图2.6学生选课管理系统二层分解图——管理员管理

注:

F3.3.1:

原始学生信息F3.3.2:

原始教师信息F3.3.3:

原始课程信息F3.3.4:

原始教室信息F9.1.1:

修改后学生信息F9.1.2:

修改后的教师信息F9.1.3:

修改后的课程信息F9.1.3:

修改后的班级信息

第二章.概念设计

2.1实体之间的联系

根据需求分析,归结出合适的联系:

1、一个学生可以选择多门课程,一门课可以被多个学生选;

2、一个老师最多能教一门课,一门课可以被多个老师教授;

3、管理员与所有老师是独立的;

2.2E-R图及局部E-R图

(1)学生课程联系E-R图

(2)教师课程关系E-R图

(3)全局E-R图

第三章.逻辑设计

3.1概念模型想关系模型的转换

根据需求分析中的E-R图,通过对实体的属性和之间的联系的分析,我们将其由概念模型向关系模型转化,并且根据范式化理论进行优化

3.1.11:

N联系的转化的关系模式

(1)教师课程联系概念模型向关系模型的转化

教师表(教师号,教师名,性别,年龄,教授课程,密码,职称)

课程表(课程号,课程名,,上课时间,教师编号,上课时间)

3.1.2M:

N联系的转化的关系模式

(1)学生选课联系概念模型向关系模型的转化

学生表(学号,姓名,性别,年龄,系部,密码,籍贯)

课程表(课程号,课程名,,上课时间,教师编号,上课时间)

选课表(学号,课程号,成绩)

3.2概念模型的优化

3.2.1确定范式级别

根据上述分析所归结出来的数据依赖的种类和在本系统实际的开发过程中,需要涉及多表的查询及表的修改和删除,且存在多值依赖的实际情况下,其关系模式应达到BCNF。

第四章.物理设计

4.1数据库存储结构

通过需求分析,概要设计和逻辑设计流程得到本系统的数据库结构。

4.1.1数据库表的设计

进一步确定上一章逻辑设计中设计好的关系模式中各个数据项的类型和长度,将每个关系转换为数据库中的二维表格,并确定了各个表的主键和外键,得到以下表结构:

表4.1学生表

类型

长度

小数点

允许空值

StuID

char

30

0

stuName

char

50

0

stuSex

char

1

0

stuAge

char

11

0

stuDept

char

30

0

stuJiguan

char

30

0

stuPassword

char

10

0

表4.2老师表

表4.3管理员表

表4.4课程表

表4.5成绩表

表4.6选课表

4.1.2数据的存放设置的设计

根据本系统的数据库的使用情况,主数据文件信息量大且使用频繁将其存储在高速存储器(硬盘)上。

将表和表上的索引存储在不同的磁盘上以便提高查询效率,同时这样可以提高物理I/O读写效率。

数据库备份文件和日志文件等文件因为使用频率小而且数据量非常大,存放在低速存储设备上。

4.1.3关系模式的存取方法

关系模式采用索引存取方法与聚簇存取方法共用。

4.1.4数据库安全性

在数据库中,由于用户的身份不同,对数据库的访问权限也就不同。

管理员几乎能够对所有的用户自定义表进行操作(包括增、删、改、查)。

但根据实际情况,学生一旦选课成功,管理员是无法对其选课信息进行修改。

同样,学生与教师对数据库的访问权限就更加小了。

这样也就保证了数据库安全性。

另外一方面,数据库表中,各表之间根据实体完整性、参照完整性、域完整性设置了各种约束。

一旦一张表被非法操作,如删除,修改。

也会影响其它的表。

所以这就要求DBA定时进行备份,防止当数据丢失时,引起不可估量的损失。

第五章.实现、运行与维护

5.1实现

根据概要设计和逻辑设计的结果,在计算机上建立实际的数据库结构,导入数据进行程序调试。

5.1.1数据库的实现

(1)创建数据库StudentcreatedatabaseStudenton(name='学生选课管理库',filename='E:

\db\学生选课管理库.mdf',size=5,maxsize=15,filegrowth=2)

5.1.2视图的实现

(1)创建查询可供选择课程的视图

createviewcinfoasselectame,course.ccredit,class.address,course.ctime,course.cbegintime,course.cendtime,class.number,o,class.csname,class.csnofromcourse,tc,class,ccwhereo=oando=oandclass.csno=cc.csno

(2)创建教师信息视图

createviewtinfoasselectteacher.tno,teacher.tname,teacher.tsex,teacher.tage,status,amefromteacher,course,tcwhereteacher.tno=tc.tnoando=o;

(3)创建教师教师授课视图createviewtcinfo

asselectteacher.tno,teacher.tname,o,amefromteacher,course,tcwhereteacher.tno=tc.tnoando=o

(4)学生的选课信息视图createviewscinfoasselectstudent.sname,ame,course.ccredit,course.ctime,course.cbegintime,course.cendtime,student.snofromstudent,course,scwherestudent.sno=sc.snoando=o

(5)学生的已选课程的成绩createviewscgradeasselectscc.csno,class.csname,scc.sno,student.sname,o,ame,student.sclass,sc.gradefromscc,course,class,student,scwhereo=oandscc.csno=class.csnoandscc.sno=student.snoandscc.sno=sc.snoando=o

(6)创建查询可供选择课程的视图createviewcinfoasselectcourse.Cname,course.Ccredit,class.address,course.CTime,course.Cbegintime,course.Cendtime,class.number,course.Cno,class.CSname,class.CSno,teacher.Tnamefromtcs,teacher,class,coursewheretcs.tno=teacher.tnoandclass.csno=tcs.csnoando=o

5.2人机交互界面的设计

5.2.1用户登录界面

用户登陆界面是每一个用户,在登陆本系统时出现的界面,如要用户输入用户名、密码和验证码,以及确定用户身份。

其界面如下图:

5.2.2学生选课管理界面

学生登陆成功后,进入学生管理模块,其界面如下:

5.2.3教师管理界面

5.2.4管理员管理界面

5.3系统测试

5.3.1用户登录测试

5.3.2学生选课管理测试

学生选课功能:

正选结果:

学生退课功能:

5.3.3教师管理测试

5.3.4管理员管理测试

管理员查询功能:

管理员添加功能:

管理员删除学生信息:

管理员修改信息功能:

管理员查询选课信息表:

5.4运行维护

经过实际的测试和运行,已经可以满足高校公开课学生选课该,系统运行稳定,日后的使用和维护中DBA应该注意进行定期备份数据库,以免丢失数据库。

定期清理数据库中的无效数据,以提高运行效率。

对软件及运行环境进行日常维护。

总结

刚刚抽到自己的题目时,学生选课管理系统,先是比较庆幸,因为之前的数据库课程设计课程就是围绕着学生选课系统建数据库来授课的,因此想到自己心里比较有底,并且也比较明确的心里有了要建几张表以及表的内容的计划,因此自我感觉会比较顺利,于是,我决定用MySql来建数据库,用Java写界面的用户接口,并且做了初步的计划,从可行性分析开始,经过需求分析、逻辑设计和物理设计,最后打得出了一份比较明确的需求分析,这样按照需求分析来编程,一切就变得顺利起来,因为之前所有的课设均未曾用过JDBC来连接数据库,因此刚开始便遇到不少困难,但是查阅了相关资料之后,知道了相关JDBC驱动和数据库连接的方法之后一切便顺利起来,独自完成一个这样的小系统,为了考虑各种异常,因此需要不断地测试,然后捕获异常,因此在这个过程中,自己确实学到了很多东西,不光是锻炼了自己的编程能力,更是提高了自己发现问题,解决问题的能力,作为一名程序员,不仅要有高超的编程能力,更是要勇于挑战自我,发现问题,从而使自己的能力更加完善。

这次课程设计,确实获益匪浅,并且也锻炼了以后的自己项目开发能力,对自己以后的程序员成长之路起到了很大的作用。

参考文献

[1]明日科技.Java经典编程300例[M].长沙:

清华大学护板社,2012

[2]王克宏.JAVA语言SQL接口:

JDBC编程技术[M].北京:

清华大学出版社,2003

[3]王小玲,刘卫国.数据库应用基础教程[M].北京:

中国铁道出版社,2008

[4]李刚.Java数据库技术详解[M].北京:

化学工业出版社,2010

[5]程云志,张帆,崔翔.数据库原理与SQLServer2005应用教程[M].北京:

机械工业出版社,2006

[6]苗雪兰,刘瑞新,宋会群.数据库技术与应用[M].北京:

机械工业出版社,2006

[7]何玉洁.数据库基础及应用技术[M].第二版.北京:

清华大学出版

[8]周华清,李卫民,张昌龙.Java典型模块与项目实践大全[M]北京:

清华大学出版社,2012

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1