1、数据库原理课程设计题 目:学生成绩查询系统的设计与实现学年学期: 2016年第一学期 班 级: 计算机科学与技术14-1班 学 号: 姓 名: 指导教师: 完成时间: 2016年11月5日 目录一、引言1二、概述12.1 设计目的与任务12.2 设计环境1三、需求分析13.1系统功能要求设计13.2系统性能需求分析2四、概念结构设计24.1系统功能模块设计24.2系统E-R图3五、逻辑结构设计3六、物理结构设计36.1创建学生基本信息表46.2创建学生成绩信息表4七、数据库的实施与维护57.1数据库的实施57.2数据库的维护9八、总结9参考文献10附录10一、引言21世纪以来,人类经济高速发展
2、,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。基本上所有的具有一定数量数据的的机构都开始使用数据库来做管理。几乎所有学校也都是用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。二、概述2.1 设计目的与任务该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分结合起来。小组成员:吴昊昕、储洁、王佳乐个人任务:逻辑结构设计和物理结构设计方面的内容,同时
3、还有论文的编写。2.2 设计环境(1)Microsoft SQL Server 2005(2)Eclipse三、需求分析3.1系统功能要求设计 (1)根据查询条件实现学生信息的查询(2)学生选课信息查询、成绩信息的查询 (3)学生信息、课程信息、成绩信息的增加、删除、修改 (4)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新3.2系统性能需求分析 (1)用户界面需求:简洁、易懂、易用、友好的用户界面(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等四、概念结构设计4.1系统功能模块设计 成绩查询系统大体可以分为两大模块,一是学生的基本信息模块,里面应该包括学生的
4、各方面信息;再者便是成绩基本信息模块,其中应该包括学生的各科成绩等等。可以得到系统流程图:图4.1 系统界面模块4.2系统E-R图由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:姓名、性别、学号、专业、出生日期(2)成绩基本信息:学号、数学、英语、专业课成绩由上述分析可得到系统的E-R图如下:图4.2 总体E-R图五、逻辑结构设计 数据库逻辑结构设计的任务就是把概念模型设计阶段设计好的基本E-R图转化为与选用的具体机器上的DBSM产品所支持的数据库模型相符合的逻辑结构,现在选用关系模型,E-R图转换如下:学生信息(学号、姓名、性别、专业、出生日期)成绩信息(学号、数学成绩、英
5、语成绩、专业课成绩)六、物理结构设计 数据库物理结构设计的任务就是根据具体计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法。6.1创建学生基本信息表CREATE TABLE Student(Student_sno int primary key, Student_sname varchar(10) not null, Student_sex nchar(5), Student_date date, Student_magor varchar(20);图6.1 学生信息表创建图6.2创建学生成绩信息表CREATE TABLE Score(Student_sno int prima
6、ry key, Course_math float, Course_english float, Course_professional float);图6.2 成绩信息表创建图七、数据库的实施与维护7.1数据库的实施. 数据查询按照专业查询学生信息图7.1 按专业查询学生信息操作图 按照专业查询学生成绩图7.2 按专业查询学生成绩操作图2.数据添加添加学号为1060314014001的学生的基本信息图7.3 添加学生信息操作图 添加学号为1060314014001的学生的成绩信息图7.4 添加学生成绩操作图3. 数据删除删除学号为1060314014001的学生的基本信息图7.5 删除学生信
7、息操作图 删除学号为1060314014001的学生的成绩信息图7.6 删除学生成绩操作图4. 数据修改修改学号为1060314014001学生的基本信息图7.7 修改学生信息操作图 修改序号为1060314014003学生的成绩信息图7.8 修改学生成绩操作图7.2数据库的维护 当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但还是需要做好数据的备份,在SQL Server我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障备份文件恢复数据库的数据。当然也可以利用
8、其他方法进行数据维护。八、总结 本次数据库课程设计收获很大,当然也花了好多的心思和时间。首先,我们为团队合作,共同完成了这个项目。而完成项目的前提在于合理分工,合理的分工能让项目完成的更快更好,合作更加的愉快。 在本次课程设计的过程中,我主要负责逻辑结构设计和物理结构设计方面的内容,同时还有论文的编写。数据库逻辑结构的任务就是将概念模型设计阶段设计好的基本E-R图选用关系模型后进行转换,而物理结构设计的任务就是根据计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法,在此结构设计中,我创建了学生的基本信息表以及学生成绩信息表,在编写代码的过程中也出现了一些问题,在队友和老师的帮助下
9、最终得到解决。 通过此次课程设计,给了我很多的实践经验,课程设计跟平时的理论课程有很大的区别,课堂上的理论,我们通过项目得到了实际的应用。当然也发现了很多自己以前未能发现的知识上的不知,实践是检验真理的唯一标准,也是检验自己知识掌握程度的机会,在动手编码的过程中,我发现了很多数据库知识上的缺陷,也发现了自己在编写程序方面的薄弱之处,但同时野增加了我对数据库的兴趣 ,今后一定努力的学习,在实践中增加自己的学习乐趣,让自己更加充实。 参考文献1姜代红,蒋秀莲. 数据库原理及应用实用教程M.北京:清华大学出版社,2010.122刘秋生. 数据库系统设计及其应用案例分析M.东南大学出版社,20053王
10、珊,萨师煊. 数据库系统概论M.北京:高等教育出版社,2014.94吴靖. 数据库原理及应用M.北京:机械工业出版社,2014.25岳付强,罗明英,韩德.SQL Server从实战到入门M.北京:清华大学出版社,2009.96张莉. SQL Server数据库原理及应用M.北京:清华大学出版社,2009.57钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计M.北京:清华大学出版社,2014.8附录/系统主界面package 数据库;import javax.swing.*;import java.awt.*;import java.awt.event.*;class MyPanel exten
11、ds JPanelprivate static final long serialVersionUID = 1L; Image img=Toolkit.getDefaultToolkit().getImage(1.jpg); public void paint(Graphics g) g.drawImage(img,0,0,this); public class MainForm extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JMenu mSystem=new J
12、Menu(系统); JMenuItem mExit=new JMenuItem(退出); JMenu mOperate=new JMenu(学生信息); JMenuItem mAdd=new JMenuItem(添加); JMenuItem mDel=new JMenuItem(删除); JMenuItem mModify=new JMenuItem(修改); JMenuItem mQuery=new JMenuItem(查询); JMenu cOperate=new JMenu(学生成绩); JMenuItem cAdd=new JMenuItem(添加); JMenuItem cDel=n
13、ew JMenuItem(删除); JMenuItem cModify=new JMenuItem(修改); JMenuItem cQuery=new JMenuItem(查询); JMenu mHelp=new JMenu(帮助); JMenuItem mAbout=new JMenuItem(软件信息); JMenuBar mBar=new JMenuBar(); MainForm() super(学生成绩管理系统); setSize(820,640); mSystem.add(mExit); mOperate.add(mAdd); mOperate.add(mDel); mOperate
14、.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); mDe
15、l.addActionListener(this); mModify.addActionListener(this); mQuery.addActionListener(this); mAbout.addActionListener(this); cAdd.addActionListener(this); cDel.addActionListener(this); cModify.addActionListener(this); cQuery.addActionListener(this); setContentPane(new MyPanel(); setVisible(true); set
16、LocationRelativeTo(null); public void actionPerformed(ActionEvent ae) if(ae.getSource()=mExit) System.exit(0); else if(ae.getSource()=mAbout) JOptionPane.showMessageDialog(this,学生成绩管理系统nn计算机学院nn2016年10月,计科,JOptionPane.INFORMATION_MESSAGE); else if(ae.getSource()=mAdd) new AddForm().setVisible(true);
17、 else if(ae.getSource()=mDel) new DeleteForm().setVisible(true); else if(ae.getSource()=mModify) new ModifyForm().setVisible(true); else if(ae.getSource()=mQuery) new QueryForm().setVisible(true); else if(ae.getSource()=cAdd) new CAddForm().setVisible(true); else if(ae.getSource()=cDel) new CDeleteF
18、orm().setVisible(true); else if(ae.getSource()=cModify) new CModifyForm().setVisible(true); else if(ae.getSource()=cQuery) new CQueryForm().setVisible(true); public static void main(String args) new MainForm(); /添加学生信息package 数据库;import javax.swing.*;import java.awt.*;import java.awt.event.*;import
19、java.sql.*;public class CAddForm extends JFrame implements ActionListenerJLabel labSid=new JLabel( 学 号 :);JLabel labMath=new JLabel( 数学成绩 :);JLabel labEng=new JLabel( 英语成绩:); JLabel labMajor=new JLabel(专业课成绩:); JTextField txtSid=new JTextField(20); JTextField txtMath=new JTextField(20); JTextField t
20、xtEng=new JTextField(20); JTextField txtMajor=new JTextField(20); JButton btnAdd=new JButton(添加); JButton btnCancel=new JButton(取消); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); JPanel pan5=new JPanel(); JPanel pan6=
21、new JPanel(); Connection con; Statement sql; ResultSet rs; CAddForm() super(添加数据); 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.setLay
22、out(new GridLayout(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); tx
23、tEng.setEditable(true); txtMajor.setEditable(true); setVisible(true); txtSid.requestFocus(); setLocationRelativeTo(null); public void actionPerformed(ActionEvent ae) String recode,insert1,学号,数学,英语,专业课; if(ae.getSource()=btnCancel) dispose(); else if(ae.getSource()=btnAdd) try Class.forName(com.micro
24、soft.sqlserver.jdbc.SQLServerDriver); catch(ClassNotFoundException e) trycon=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(); 专业课=txtMa
25、jor.getText(); recode=(+学号+,+数学+,+英语+,+专业课+); insert1=INSERT INTO 学生成绩表 VALUES +recode; sql.executeUpdate(insert1); System.out.println(记录添加完毕!); btnAdd.setEnabled(true); txtSid.setText(); txtMath.setText(); txtEng.setText(); txtMajor.setText(); new Success().setVisible(true); con.close(); catch(SQLE
26、xception e) public static void main(String args) new CAddForm(); /删除学生信息package 数据库;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DeleteForm extends JFrame implements ActionListenerJLabel labSid=new JLabel( 学 号 :);JLabel labName=new JLabel( 姓 名 :);JLab
27、el labSex=new JLabel( 性 别 :); JLabel labDate=new JLabel(出生日期:); JLabel labMajor=new JLabel( 专 业 :); JTextField txtSid=new JTextField(20); JTextField txtSex=new JTextField(20); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(20); JTextField txtMajor=new JTextField(20); JButto
28、n btnDelete=new JButton(删除); JButton btnCancel=new JButton(取消); JButton btnQuery=new JButton(查询); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); JPanel pan5=new JPanel(); JPanel pan6=new JPanel(); Connection con; State
29、ment sql; ResultSet rs; DeleteForm() super(删除数据); setSize(400,300); pan1.add(labSid); pan1.add(txtSid); 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
30、6.add(btnCancel); pan.setLayout(new GridLayout(5,1); pan.add(pan1); pan.add(pan2); pan.add(pan3); pan.add(pan4); pan.add(pan5); getContentPane().add(pan,Center); getContentPane().add(pan6,South); btnQuery.addActionListener(this); btnDelete.addActionListener(this); btnCancel.addActionListener(this);
31、btnDelete.setEnabled(false); txtDate.setEditable(false); txtSex.setEditable(false); txtName.setEditable(false); txtMajor.setEditable(false); setVisible(true); txtSid.requestFocus(); setLocationRelativeTo(null); public void actionPerformed(ActionEvent ae) if(ae.getSource()=btnCancel) dispose(); else
32、if(ae.getSource()=btnQuery)/实现查询功能 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch(ClassNotFoundException e) trycon=DriverManager.getConnection(jdbc:sqlserver:/127.0.0.1:1433; DatabaseName=DB_student,sa,123456); sql=con.createStatement(); rs=sql.executeQuery(select * from 学生信息
33、表 where 学号=+txtSid.getText()+); if(rs.next() txtSid.setText(rs.getString(学号); txtName.setText(rs.getString(姓名); txtSex.setText(rs.getString(性别); txtDate.setText(rs.getString(出生日期); txtMajor.setText(rs.getString(专业); btnDelete.setEnabled(true);/使删除按钮功能实现 txtDate.setEditable(false); txtSex.setEditable
34、(false); txtName.setEditable(false); txtMajor.setEditable(false); txtSid.setEditable(false); else System.out.println(不存在该记录!); new False().setVisible(true); btnDelete.setEnabled(false); txtName.setText(); txtSex.setText(); txtDate.setText(); txtSid.setText(); txtMajor.setText(); txtName.setEditable(
35、false); txtSex.setEditable(false); txtDate.setEditable(false); txtMajor.setEditable(false); catch(SQLException e) else if(ae.getSource()=btnDelete)/实现删除功能 try sql.executeUpdate(DELETE FROM 学生信息表 where 学号=+txtSid.getText()+); System.out.println(记录删除完毕!); btnDelete.setEnabled(false); txtSid.setText(null); txtName.setText(null); txtSex.setText(null); txtDate.setText(null); txtMajor.setText(null); new Success().setVisible(true); con.close(); catch(SQLException e) public static void main(String args) new DeleteForm(); /修改学生信息package 数据库;import
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100