数据库课程设计学生成绩查询系统的设计与实现Word文件下载.docx
- 文档编号:853081
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:41
- 大小:1.08MB
数据库课程设计学生成绩查询系统的设计与实现Word文件下载.docx
《数据库课程设计学生成绩查询系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩查询系统的设计与实现Word文件下载.docx(41页珍藏版)》请在冰点文库上搜索。
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.addActionListener(this);
mAbout.addActionListener(this);
cAdd.addActionListener(this);
cDel.addActionListener(this);
cModify.addActionListener(this);
cQuery.addActionListener(this);
setContentPane(newMyPanel());
setVisible(true);
setLocationRelativeTo(null);
publicvoidactionPerformed(ActionEventae){if(ae.getSource()==mExit)
System.exit(0);
elseif(ae.getSource()==mAbout)
JOptionPane.showMessageDialog(this,"
学生成绩管理系统\n\n计算机学院
\n\n2016年10月"
"
计科"
JOptionPane.INFORMATION_MESSAGE);
elseif(ae.getSource()==mAdd)
newAddForm().setVisible(true);
elseif(ae.getSource()==mDel)
newDeleteForm().setVisible(true);
elseif(ae.getSource()==mModify)
newModifyForm().setVisible(true);
elseif(ae.getSource()==mQuery)
newQueryForm().setVisible(true);
elseif(ae.getSource()==cAdd)
newCAddForm().setVisible(true);
elseif(ae.getSource()==cDel)
newCDeleteForm().setVisible(true);
elseif(ae.getSource()==cModify)
newCModifyForm().setVisible(true);
elseif(ae.getSource()==cQuery)
newCQueryForm().setVisible(true);
publicstaticvoidmain(String[]args){newMainForm();
//添加学生信息package数据库;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassCAddFormextendsJFrameimplementsActionListener
JLabellabSid=newJLabel("
学 号:
"
JLabellabMath=newJLabel("
数学成绩:
JLabellabEng=newJLabel("
英语成绩:
JLabellabMajor=newJLabel("
专业课成绩:
JTextFieldtxtSid=newJTextField(20);
JTextFieldtxtMath=newJTextField(20);
JTextFieldtxtEng=newJTextField(20);
JTextFieldtxtMajor=newJTextField(20);
JButtonbtnAdd=newJButton("
JButtonbtnCancel=newJButton("
取消"
JPanelpan=newJPanel();
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
JPanelpan4=newJPanel();
JPanelpan5=newJPanel();
JPanelpan6=newJPanel();
Connectioncon;
Statementsql;
ResultSetrs;
CAddForm()
添加数据"
setSize(400,300);
pan1.add(labSid);
pan1.add(txtSid);
pan2.add(labMath);
pan2.add(txtMath);
pan3.add(labEng);
pan3.add(txtEng);
pan4.add(labMajor);
pan4.add(txtMajor);
pan6.add(btnAdd);
pan6.add(btnCancel);
pan.setLayout(newGridLayout(5,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan4);
getContentPane().add(pan,"
Center"
getContentPane().add(pan6,"
South"
btnAdd.addActionListener(this);
btnCancel.addActionListener(this);
btnAdd.setEnabled(true);
txtSid.setEditable(true);
txtMath.setEditable(true);
txtEng.setEditable(true);
txtMajor.setEditable(true);
txtSid.requestFocus();
publicvoidactionPerformed(ActionEventae){Stringrecode,insert1,学号,数学,英语,专业课;
if(ae.getSource()==btnCancel){
dispose();
}elseif(ae.getSource()==btnAdd){try
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
}catch(ClassNotFoundExceptione){
try{con=DriverManager.getConnection("
jdbc:
sqlserver:
//127.0.0.1:
1433;
DatabaseName=DB_student"
sa"
123456"
System.out.println("
连接成功!
sql=con.createStatement();
学号=txtSid.getText();
数学=txtMath.getText();
英语=txtEng.getText();
专业课=txtMajor.getText();
recode="
("
+"
'
+学号+"
'
+数学+"
+英语+"
+专业课+"
)"
;
insert1="
INSERTINTO学生成绩表VALUES"
+recode;
sql.executeUpdate(insert1);
记录添加完毕!
txtSid.setText("
txtMath.setText("
txtEng.setText("
txtMajor.setText("
newSuccess().setVisible(true);
con.close();
}catch(SQLExceptione){
publicstaticvoidmain(String[]args){newCAddForm();
}}
//删除学生信息package数据库;
publicclassDeleteFormextendsJFrameimplementsActionListener
JLabellabName=newJLabel("
姓 名:
JLabellabSex=newJLabel("
性 别:
JLabellabDate=newJLabel("
出生日期:
JLabellabMajor=newJLabel("
专 业:
JTextFieldtxtSid=newJTextField(20);
JTextFieldtxtSex=newJTextField(20);
JTextFieldtxtName=newJTextField(20);
JTextFieldtxtDate=newJTextField(20);
JButtonbtnDelete=newJButton("
删除"
JButtonbtnQuery=newJButton("
JPanelpan2=newJPanel();
DeleteForm()
删除数据"
pan2.add(labName);
pan2.add(txtName);
pan3.add(labSex);
pan3.add(txtSex);
pan4.add(labDate);
pan4.add(txtDate);
pan5.add(labMajor);
pan5.add(txtMajor);
pan6.add(btnQuery);
pan6.add(btnDelete);
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
pan.add(pan5);
btnQuery.addActionListener(this);
btnDelete.addActionL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 成绩 查询 系统 设计 实现