数据库课程设计-学生成绩查询系统的设计与实现.docx
《数据库课程设计-学生成绩查询系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《数据库课程设计-学生成绩查询系统的设计与实现.docx(58页珍藏版)》请在咨信网上搜索。
《数据库原理》课程设计 题 目:学生成绩查询系统的设计与实现 学年学期: 2016年第一学期 班 级: 计算机科学与技术14-1班 学 号: 姓 名: 指导教师: 完成时间: 2016年11月5日 目录 一、引言 1 二、概述 1 2.1 设计目的与任务 1 2.2 设计环境 1 三、需求分析 1 3.1系统功能要求设计 1 3.2系统性能需求分析 2 四、概念结构设计 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 附录 10 一、引言 21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。基本上所有的具有一定数量数据的的机构都开始使用数据库来做管理。几乎所有学校也都是用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。 二、概述 2.1 设计目的与任务 该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分结合起来。 小组成员:吴昊昕、储洁、王佳乐 个人任务:逻辑结构设计和物理结构设计方面的内容,同时还有论文的编写。 2.2 设计环境 (1)Microsoft SQL Server 2005 (2)Eclipse 三、需求分析 3.1系统功能要求设计 (1)根据查询条件实现学生信息的查询 (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创建学生基本信息表 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 primary key, Course_math float, Course_english float, Course_professional float)); 图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数据库的维护 当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但还是需要做好数据的备份,在SQL Server我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障备份文件恢复数据库的数据。当然也可以利用其他方法进行数据维护。 八、总结 本次数据库课程设计收获很大,当然也花了好多的心思和时间。首先,我们为团队合作,共同完成了这个项目。而完成项目的前提在于合理分工,合理的分工能让项目完成的更快更好,合作更加的愉快。 在本次课程设计的过程中,我主要负责逻辑结构设计和物理结构设计方面的内容,同时还有论文的编写。数据库逻辑结构的任务就是将概念模型设计阶段设计好的基本E-R图选用关系模型后进行转换,而物理结构设计的任务就是根据计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法,在此结构设计中,我创建了学生的基本信息表以及学生成绩信息表,在编写代码的过程中也出现了一些问题,在队友和老师的帮助下最终得到解决。 通过此次课程设计,给了我很多的实践经验,课程设计跟平时的理论课程有很大的区别,课堂上的理论,我们通过项目得到了实际的应用。当然也发现了很多自己以前未能发现的知识上的不知,实践是检验真理的唯一标准,也是检验自己知识掌握程度的机会,在动手编码的过程中,我发现了很多数据库知识上的缺陷,也发现了自己在编写程序方面的薄弱之处,但同时野增加了我对数据库的兴趣 ,今后一定努力的学习,在实践中增加自己的学习乐趣,让自己更加充实。 参考文献 [1]姜代红,蒋秀莲. 《数据库原理及应用实用教程》[M].北京:清华大学出版社,2010.12 [2]刘秋生. 《数据库系统设计及其应用案例分析》[M].东南大学出版社,2005 [3]王珊,萨师煊. 《数据库系统概论》[M].北京:高等教育出版社,2014.9 [4]吴靖. 《数据库原理及应用》[M].北京:机械工业出版社,2014.2 [5]岳付强,罗明英,韩德.《SQL Server从实战到入门》[M].北京:清华大学出版社,2009.9 [6]张莉. 《SQL Server数据库原理及应用》[M].北京:清华大学出版社,2009.5 [7]钱雪忠,罗海驰,陈国俊.《数据库原理及技术课程设计》[M].北京:清华大学出版社,2014.8 附录 //系统主界面 package 数据库; import javax.swing.*; import java.awt.*; import java.awt.event.*; class MyPanel extends JPanel{ private 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 JMenu("系统"); 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=new 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.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(new MyPanel()); setVisible(true); setLocationRelativeTo(null); } public void actionPerformed(ActionEvent ae){ if(ae.getSource()==mExit) System.exit(0); else if(ae.getSource()==mAbout) JOptionPane.showMessageDialog(this,"学生成绩管理系统\n\n计算机学院\n\n2016年10月","计科",JOptionPane.INFORMATION_MESSAGE); else if(ae.getSource()==mAdd) new AddForm().setVisible(true); 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 CDeleteForm().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 java.sql.*; public class CAddForm extends JFrame implements ActionListener { JLabel 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 txtEng=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=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.setLayout(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); txtEng.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.microsoft.sqlserver.jdbc.SQLServerDriver");} catch(ClassNotFoundException e){ } 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="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(SQLException 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 ActionListener { JLabel labSid=new JLabel(" 学 号 :"); JLabel labName=new JLabel(" 姓 名 :"); JLabel 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); JButton 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; Statement 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); pan6.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); 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 if(ae.getSource()==btnQuery){ //实现查询功能 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch(ClassNotFoundException e){ } try{con=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433; DatabaseName=DB_student","sa","123456"); sql=con.createStatement(); rs=sql.executeQuery("select * from 学生信息表 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(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(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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 成绩 查询 系统 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文