数据库课程设计学生成绩查询系统的设计与实现Word格式文档下载.docx
《数据库课程设计学生成绩查询系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩查询系统的设计与实现Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。
四、概念结构设计 2
4.1系统功能模块设计 2
4.2系统E-R图........................................3
五、逻辑结构设计 3
六、物理结构设计 3
6.1创建学生基本信息表 4
6.2创建学生成绩信息表 4
七、数据库的实施与维护 5
7.1数据库的实施 5
7.2数据库的维护 9
八、总结 9
参考文献 10
附录 11
一、引言
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。
基本上所有的具有一定数量数据的的机构都开始使用数据库来做管理。
几乎所有学校也都是用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
二、概述
2.1设计目的与任务
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分结合起来。
小组成员:
吴昊昕、储洁、王佳乐
个人任务:
逻辑结构设计和物理结构设计方面的内容,同时还有论文的编写。
2.2设计环境
(1)MicrosoftSQLServer2005
(2)Eclipse
三、需求分析
3.1系统功能要求设计
(1)根据查询条件实现学生信息的查询
39
(2)学生选课信息查询、成绩信息的查询
(3)学生信息、课程信息、成绩信息的增加、删除、修改
(4)学生成绩录入:
用于学生成绩管理,录入学生成绩,也可以更新
3.2系统性能需求分析
(1)用户界面需求:
简洁、易懂、易用、友好的用户界面
(2)安全保密性需求:
只有凭借用户名和密码登陆系统,才能进行信息的管理等
四、概念结构设计
4.1系统功能模块设计
成绩查询系统大体可以分为两大模块,一是学生的基本信息模块,里面应该包括学生的各方面信息;
再者便是成绩基本信息模块,其中应该包括学生的各科成绩等等。
可以得到系统流程图:
图4.1系统界面模块
4.2系统E-R图
由需求分析的结果可知,本系统设计的实体包括:
(1)学生基本信息:
姓名、性别、学号、专业、出生日期
(2)成绩基本信息:
学号、数学、英语、专业课成绩由上述分析可得到系统的E-R图如下:
图4.2总体E-R图
五、逻辑结构设计
数据库逻辑结构设计的任务就是把概念模型设计阶段设计好的基本E-R图转化为与选用的具体机器上的DBSM产品所支持的数据库模型相符合的逻辑结构,现在选用关系模型,E-R图转换如下:
学生信息(学号、姓名、性别、专业、出生日期)
成绩信息(学号、数学成绩、英语成绩、专业课成绩)
六、物理结构设计
数据库物理结构设计的任务就是根据具体计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法。
6.1创建学生基本信息表
CREATETABLEStudent(Student_snointprimarykey,Student_snamevarchar(10)notnull,Student_sexnchar(5),
Student_datedate,Student_magorvarchar(20));
图6.1学生信息表创建图
6.2创建学生成绩信息表
CREATETABLEScore
(Student_snointprimarykey,Course_mathfloat,Course_englishfloat,Course_professionalfloat));
图6.2成绩信息表创建图
七、数据库的实施与维护
7.1数据库的实施
1.数据查询
*按照专业查询学生信息
图7.1按专业查询学生信息操作图
*按照专业查询学生成绩
图7.2按专业查询学生成绩操作图
2.数据添加
*添加学号为1060314014001的学生的基本信息
图7.3添加学生信息操作图
*添加学号为1060314014001的学生的成绩信息
图7.4添加学生成绩操作图
3.数据删除
*删除学号为1060314014001的学生的基本信息
图7.5删除学生信息操作图
*删除学号为1060314014001的学生的成绩信息
图7.6删除学生成绩操作图
4.数据修改
*修改学号为1060314014001学生的基本信息
图7.7修改学生信息操作图
*修改序号为1060314014003学生的成绩信息
图7.8修改学生成绩操作图
7.2数据库的维护
当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但还是需要做好数据的备份,在SQLServer我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障备份文件恢复数据库的数据。
当然也可以利用其他方法进行数据维护。
八、总结
本次数据库课程设计收获很大,当然也花了好多的心思和时间。
首先,我们为团队合作,共同完成了这个项目。
而完成项目的前提在于合理分工,合理的分
工能让项目完成的更快更好,合作更加的愉快。
在本次课程设计的过程中,我主要负责逻辑结构设计和物理结构设计方面的内容,同时还有论文的编写。
数据库逻辑结构的任务就是将概念模型设计阶段设计好的基本E-R图选用关系模型后进行转换,而物理结构设计的任务就是根据计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法,在此结构设计中,我创建了学生的基本信息表以及学生成绩信息表,在编写代码的过程中也出现了一些问题,在队友和老师的帮助下最终得到解决。
通过此次课程设计,给了我很多的实践经验,课程设计跟平时的理论课程有很大的区别,课堂上的理论,我们通过项目得到了实际的应用。
当然也发现了很多自己以前未能发现的知识上的不知,实践是检验真理的唯一标准,也是检验自己知识掌握程度的机会,在动手编码的过程中,我发现了很多数据库知识上的缺陷,也发现了自己在编写程序方面的薄弱之处,但同时野增加了我对数据库的兴趣,今后一定努力的学习,在实践中增加自己的学习乐趣,让自己更加充实。
参考文献
[1]姜代红,蒋秀莲.《数据库原理及应用实用教程》[M].北京:
清华大学出版社,
2010.12
[2]刘秋生.《数据库系统设计及其应用案例分析》[M].东南大学出版社,2005
[3]王珊,萨师煊.《数据库系统概论》[M].北京:
高等教育出版社,2014.9
[4]吴靖.《数据库原理及应用》[M].北京:
机械工业出版社,2014.2
[5]岳付强,罗明英,韩德.《SQLServer从实战到入门》[M].北京:
2009.9
[6]张莉.《SQLServer数据库原理及应用》[M].北京:
清华大学出版社,2009.5[7]钱雪忠,罗海驰,陈国俊.《数据库原理及技术课程设计》[M].北京:
清华大学出版社,2014.8
附录
//系统主界面package数据库;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
classMyPanelextendsJPanel{
privatestaticfinallongserialVersionUID=1L;
Imageimg=Toolkit.getDefaultToolkit().getImage("
1.jpg"
);
publicvoidpaint(Graphicsg){
g.drawImage(img,0,0,this);
}
publicclassMainFormextendsJFrameimplementsActionListener
{
JMenumSystem=newJMenu("
系统"
JMenuItemmExit=newJMenuItem("
退出"
JMenumOperate=newJMenu("
学生信息"
JMenuItemmAdd=newJMenuItem("
添加"
JMenuItemmDel=newJMenuItem("
删除"
JMenuItemmModify=newJMenuItem("
修改"
JMenuItemmQuery=newJMenuItem("
查询"
JMenucOperate=newJMenu("
学生成绩"
JMenuItemcAdd=newJMenuItem("
JMenuItemcDel=newJMenuItem("
JMenuItemcModify=newJMenuItem("
JMenuItemcQuery=newJMenuItem("
JMenumHelp=newJMenu("
帮助"
JMenuItemmAbout=newJMenuItem("
软件信息"
JMenuBarmBar=newJMenuBar();
MainForm()
super("
学生成绩管理系统"
setSize(820,640);
mSystem.add(mExit);
mOperate.add(mAdd);
mOperate.add(mDel);
mOperate.add(mModify);
mOperate.add(mQuery);
cOperate.add(cAdd);
cOperate.add(cDel);
cOperate.add(cModify);
cOperate.add(cQuery);
mHelp.add(mAbout);
mBar.add(mSystem);
mBar.add(mOperate);
mBar.add(cOperate);
mBar.add(mHelp);
setJMenuBar(mBar);
mExit.addActionListener(this);
mAdd.addActionListener(this);
mDel.addActionListener(this);
mModify.addActionListener(this);
mQuery.ad