数据库课程大作业报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库上机实验
一上机题目及要求
1、设计学籍管理系统
2、具体要求:
后台数据库
设计一所大学的学籍管理数据库,推荐使用SQL Server,其它DBMS 亦可。
数据库的有关语义如下:
每个学院可以若干专业,每个专业每年可以招若干班,每个班有若干学生,大二后每个专业可以分若干个方向;
学院为专业制订教学计划,学生每年必须按照教学计划修完一定学分的课程(必修课、选修课),如大一上学期必修课22学分、选修课6学分,大三计算机专业软件方向必修课20学分、选修课6学分;
教师可以给多个班带课,但是不能给一个班带多门课程;
一门课程最多允许学生一次补考,学生达到如下条件之一的被开除:一学期不及格的必修课学分超过10个;不及格必修课学分累计超过30个;不及格选修课学分累计超过20个。
前台程序
开发一个学籍管理系统来对数据库进行访问,可以使用PowerBuilder、VC、Java等集成开发环境。
系统实现功能如下:
录入学生基本信息,如学号、姓名、性别、出生日期等(其它如课程、教师等信息可以在建库时输入);
按学号、姓名查询学生基本信息;
录入学生成绩;
查询学生所选修的课程及成绩,并给出必修课平均成绩、所有课程平均成绩;
查某一个学生被哪些教师教过课;
查询快要被开除的学生(假定差2学分即被开除)。
二、实现思路:
1、首先画出ER图,将各个表组织起来
ER图如下(在纸上画出拍上来的图片)
2、建立存储数据的各个表及定义如下:
表:School
表:Major
表:MajorDirection
表:Class
表:Course
表:Teacher
表:讲课表
表:student
表:选课表
表:User
表:黑名单
表:培养计划
3、为方便前台执行时,方便查询和删改操作,建立学生表,选课表等表的视图。
三、程序实现思路:
1、创建学生表视图,在视图中存储学生的详细信息,方便前台对某个学生的信息查询时使用。
2、创建将课表,实现对学生查询被那些老师教过的功能
3、利用选课表存储学生的选课记录和成绩的分数,为学生求平均分等功能做铺垫
4、创建黑名单表,所有挂科的学生所损失的学分存储在这里,对以后评判一个学生是否即将被开除等功能做准备
5、前台通过java连接mysql数据库,绘制相应的表格和按钮,为按钮加上相应的事件监听,使功能得以实现。
四、程序源代码(sql语句+javaGui前台):
代码在附加的包里