数据库原理及应用课程设计——学生信息管理系统(JavaBSQL)_第1页
数据库原理及应用课程设计——学生信息管理系统(JavaBSQL)_第2页
数据库原理及应用课程设计——学生信息管理系统(JavaBSQL)_第3页
数据库原理及应用课程设计——学生信息管理系统(JavaBSQL)_第4页
数据库原理及应用课程设计——学生信息管理系统(JavaBSQL)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科生课程设计本科生课程设计课程名称课程名称数据库原理及应用课程设计数据库原理及应用课程设计课程编号课程编号 学号学号学生姓名学生姓名所在专业所在专业所在班级所在班级指导教师指导教师成绩成绩教师签字教师签字年年 月月 日日课程设计时间:课程设计时间: 年年 月月 日日 至至 年年 月月 日日目 录目目 录录设计总说明设计总说明.I1 1、需求分析需求分析.32 2、概念结构设计概念结构设计.33 3、逻辑结构设计逻辑结构设计.54 4、物理结构设计物理结构设计.95 5、系统实现、系统实现.135.1 前台界面前台界面.135.25.2 后台后台实现实现.166、优缺点优缺点及及自我评价自我评

2、价.187、参考文献参考文献.18设计总说明I设计总说明设计总说明(1)系统开发目的系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。 随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。(2)开发内容开发内容用数据库和 Java

3、相关技术开发一个学生信息管理系统(3)开发要求开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具开发环境及工具1、操作系统:Windows 72、数据库软件:SQL Server 20083、Java 开发工具:Eclipse(5)系统功能简介系统功能简介设计总说明II一、学生管理1、添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号” , “姓名” ,“性别” , “班级” , “学院” , “籍贯” 。完成新纪录的添加。2、删除学生记录。可以根据输入的“学号”或者”姓名”进行删除的操作。二、学生查询3、查询学生信息。用户可以选择通过“按姓名查询” ,也可以选择“

4、按学号查询”查询学生信息,查询到的信息会在窗口中显示出来。3、文件退出(6)开发分工情况开发分工情况本系统由本人独立完成广东海洋大学本科生课程设计3数据库原理及应用课程设计报告数据库原理及应用课程设计报告1 1、需求分析、需求分析在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些年来许多人所研究的。随着这些年电脑计算机的速度质的提高,成本的下降,IT 互联网大众趋势的发展。我们使用电脑高效率处理数据信息成为可能。 学生信息管理系统的出现,正是管理人员与信息数据,计算机进入互动时代的体现。友好的人机交互

5、模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。学生信息管理系统,以 SQL 数据库作为后台信息存储,Java 作为前台系统的语言。提供了对学生信息添加,查询,删除等功能。实现了最基本的信息管理。2 2、概念结构设计、概念结构设计 教师教师 ID教师姓名登录密码课程课程号教师 ID课程名称成绩学号课程号广东海洋大学本科生课程设计43 3、逻辑结构设计、逻辑结构设计StudentInfo 表:字段名 类型空值约束条件学号Char(10)not null主键姓名varchar(10)出生日期 datetime籍贯varchar(50) 系号char(2)not nu

6、ll 外键班级号char(6)not null 外键4 4、物理结构设计、物理结构设计create table StudentInfo(学号 char(10) primary key,姓名 varchar(10) ,性别 char(2) ,出生日期 datetime ,籍贯 varchar(50) ,成绩学生性别姓名学号籍贯班级号总人数登录密码籍贯班级名称班级号班级管理员登录密码管理员 ID广东海洋大学本科生课程设计5系号 char(2) ,班级号 char(6) ,)5 5、系统实现系统实现5.5.1前台界面:广东海洋大学本科生课程设计65.2 后台代码实现:见附录6 6、优缺点及自我评价、

7、优缺点及自我评价 由于时间仓促,本系统还有许多功能没有实现,也有一些漏洞。同时,也因为自广东海洋大学本科生课程设计7己掌握的知识不够扎实,不够全面,所以,这个学生信息管理系统只实现了一些简单的基本功能,其他功能还有待完善。本次课程设计自我感觉很辛苦,但是受益匪浅。因为数据库,Java 这两门课的知识学的不够扎实,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手,通过在百度、书本、同学的帮助下有些得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计,逐渐能将课本上的知识应用到实际操作中,但是我发现我现在学到的知识还远远不够,要想做出一个功能比较全面,界面比较漂亮的系统

8、还需要更多相关的知识。所以,在接下来的日子里,我还有待加强学习。在设计的过程中发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,导致设计系统的时候频频出现错误。 通过这次课程设计使我懂得了理论与实际相结合很重要,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正达到学以致用的目的,从而提高自己的实际动手能力和独立思考的能力。7 7、参考文献、参考文献(1)王珊,萨师煊.数据库系统概论M,高等教育出版社,2014.(2 2)耿祥义,张跃平.Java2 实用教程M,清华大学出版社,2013.附 录8附录附录1、添加学生面板类的代码添

9、加学生面板类的代码package jieweixiao;/导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“添加学生面板”类public class AddStudentPanel extends JPanel implements ActionListener/声明连接数据库对象Connection con;/声明 SQL 语句对象PreparedStatement st;/创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel(学

10、号);JLabel jLabel2=new JLabel(姓名);JLabel jLabel3=new JLabel(性别);JLabel jLabel4=new JLabel(出生日期);JLabel jLabel5=new JLabel(籍贯);JLabel jLabel6=new JLabel(注意:出生日期格式为 YYYY-MM-DD);JTextField jTextField1=new JTextField();JTextField jTextField2=new JTextField();JTextField jTextField3=new JTextField();JTextF

11、ield jTextField4=new JTextField();JRadioButton jRadioButton1=new JRadioButton(男);JRadioButton jRadioButton2=new JRadioButton(女);ButtonGroup buttonGroup1=new ButtonGroup();JButton jButton1=new JButton(存入数据库);/构造方法public AddStudentPanel()附 录9try/调用初始化方法jbInit();catch(Exception exception)exception.prin

12、tStackTrace();/界面初始化方法private void jbInit() throws Exception/连接数据库/con=new Connection(); /创建一个 statement 对象来将 SQL 语句发送到数据库String url=jdbc:sqlserver:/localhost:1433; DatabaseName=StudentManager;String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driver);/加载驱动!con=DriverManager.ge

13、tConnection(url,sa,xjw1123);/连接数据库!String sql=insert into StudentInfo+ values(?,?,?,?,?,?,?);st=con.prepareStatement(sql);/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setBounds(new Rectangle(21,17,64,24);jLabel2.setBounds(new Rectangle(21,51,53,22);jLabel3.setBounds(new Rectangle(21,86,61,27);jLabel4

14、.setBounds(new Rectangle(21,122,59,25);jLabel5.setBounds(new Rectangle(21,188,54,24);jLabel6.setBounds(new Rectangle(102,153,219,27);jTextField1.setBounds(new Rectangle(102,10,200,30);jTextField2.setBounds(new Rectangle(102,49,200,30);jTextField3.setBounds(new Rectangle(102,117,200,33);jTextField4.s

15、etBounds(new Rectangle(102,183,200,29);jRadioButton1.setBounds(new Rectangle(102,83,65,30);jRadioButton2.setBounds(new Rectangle(190,85,85,30);jButton1.setBounds(new Rectangle(103,217,180,30);附 录10/设置单选按钮被选中jRadioButton1.setSelected(true);/添加按钮动作事件jButton1.addActionListener(this);/添加组件到面板this.add(jT

16、extField1);this.add(jLabel1);this.add(jLabel2);this.add(jTextField2);this.add(jRadioButton1);this.add(jRadioButton2);this.add(jLabel3);this.add(jLabel4);this.add(jTextField3);this.add(jLabel6);this.add(jTextField4);this.add(jLabel5);this.add(jButton1);buttonGroup1.add(jRadioButton1);buttonGroup1.add

17、(jRadioButton2);/点击按钮事件/事件相应器 当你定义的事件捕捉以后就会执行这个里面的代码public void actionPerformed(ActionEvent e)/获取用户输入的信息String xuehao=jTextField1.getText();String xingming=jTextField2.getText();String xingbie=;if(jRadioButton1.isSelected()xingbie+=男;if(jRadioButton2.isSelected()xingbie+=女;String dateString=jTextFie

18、ld3.getText();String jiguan=jTextField4.getText();附 录11try/设置日期格式/st.execute(set dateformat ymd);/利用 st 对象执行 SQL 语句,进行插入操作 st.setString(1,xuehao); st.setString(2,xingming); st.setString(3,xingbie); st.setString(4,dateString); st.setString(5,jiguan); st.setString(6,); st.setString(7,); st.executeUpda

19、te(); /清空文本行的内容jTextField1.setText();jTextField2.setText();jTextField3.setText();jTextField4.setText();/利用消息对话框提示删除操作成功 JOptionPane.showMessageDialog(this,插入成功!);catch(Exception ex)/利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialog(this,ex);/ex.printStackTrace();2、删除学生面板类的代码删除学生面板类的代码package jiewe

20、ixiao;/导入系统的类包附 录12import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“删除学生面板”类public class DeleteStudentPanel extends JPanel implements ActionListener/声明连接数据库对象Connection con;/声明 SQL 语句对象Statement st;/创建组件对象JLabel jLabel1=new JLabel(请输入待删除的学生的学号:);JTextField jTextFi

21、eld1=new JTextField();JButton jButton1=new JButton(删除);/构造方法public DeleteStudentPanel()try/调用初始化方法jbInit();catch(Exception exception)exception.printStackTrace();/界面初始化方法private void jbInit() throws Exception/连接数据库/con=DBConnect.getConn();String url=jdbc:sqlserver:/localhost:1433; DatabaseName=Studen

22、tManager;String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driver);/加载驱动!con=DriverManager.getConnection(url,sa,xjw1123);/连接数据库!st=con.createStatement();附 录13/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,14);jLabel1.setBounds(new Rectangle(

23、70,20,200,30);jTextField1.setBounds(new Rectangle(70,80,207,41);jButton1.setBounds(new Rectangle(70,175,205,36);/添加按钮动作事件jButton1.addActionListener(this);/添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);/点击按钮事件public void actionPerformed(ActionEvent e)/获取用户输入的学号String xuehao=jTextF

24、ield1.getText();/要求用户确认删除if(JOptionPane.showConfirmDialog(this,确认要删除吗?)=JOptionPane.YES_OPTION)try/利用 st 对象执行 SQL 删除操作st.executeUpdate(delete from StudentInfo where 学号=+xuehao+);/利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,删除操作成功!);/清空输入学号的文本行jTextField1.setText();catch(Exception ex)/利用消息对话框提示

25、不能删除JOptionPane.showMessageDialog(this,删除操作执行失败!);附 录143、按姓名查询学生面板类的代码按姓名查询学生面板类的代码package jieweixiao;import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“添加学生面板”类public class InquireOnNamePanel extends JPanel implements ActionListener/声明连接数据库对象Connection con;/声明 SQL

26、语句对象Statement st;/创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel(请输入待查询的学生的姓名:);JTextField jTextField1=new JTextField();JButton jButton1=new JButton(按姓名查询);JScrollPane jScrollPane1=new JScrollPane();JTextArea jTextArea1=new JTextArea();/构造方法public InquireOnNamePanel()try/调用初始化方法jbInit();catch(Exception e

27、xception)/exception.printStackTrace();/面板初始化方法附 录15private void jbInit() throws Exception/连接数据库/con=DBConnect.getConn();String url=jdbc:sqlserver:/localhost:1433; DatabaseName=StudentManager;String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driver);/加载驱动!con=DriverManager.getC

28、onnection(url,sa,xjw1123);/连接数据库!st=con.createStatement();/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,14);jLabel1.setBounds(new Rectangle(80,10,200,34);jTextField1.setBounds(new Rectangle(80,50,200,30);jButton1.setBounds(new Rectangle(100,90,160,30);jScrollPane

29、1.setBounds(new Rectangle(29,125,308,130);/添加按钮动作事件jButton1.addActionListener(this);/添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(jTextArea1);this.add(jLabel1);this.add(jTextField1);this.add(jButton1);/点击按钮事件public void actionPerformed(ActionEvent e)/获取用户输入的姓名String xingming=jTextFie

30、ld1.getText();/清空文本区原有的内容jTextArea1.setText();/要求用户确认删除try附 录16/利用 st 对象执行 SQL 语句,返回结果集对象ResultSet rs=st.executeQuery(select * from StudentInfo where 姓名=+xingming+);/处理结果集:逐条显示结果集中的记录while(rs.next()jTextArea1.append(rs.getString(学号)+ +rs.getString(姓名)+ +rs.getString(性别)+ +rs.getDate(出生日期)+ +rs.getSt

31、ring(籍贯)+n); catch(Exception ex) /利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,查询失败!); /清空文本行的内容jTextField1.setText();4、按学号查询学生面板类的代码按学号查询学生面板类的代码package jieweixiao;/导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“添加学生面板”类public class InquireOnXHPanel e

32、xtends JPanel implements ActionListener/声明连接数据库对象Connection con;/声明 SQL 语句对象附 录17Statement st;/创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel(请输入待查询的学生的学号:);JTextField jTextField1=new JTextField();JButton jButton1=new JButton(按学号查询);JTextArea jTextArea1=new JTextArea();/构造方法public InquireOnXHPanel()try/调

33、用初始化方法jbInit();catch(Exception ex)JOptionPane.showMessageDialog(this,ex+00);/面板初始化方法private void jbInit() throws Exception/连接数据库/con=DBConnect.getConn();String url=jdbc:sqlserver:/localhost:1433; DatabaseName=StudentManager;String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(dri

34、ver);/加载驱动!con=DriverManager.getConnection(url,sa,xjw1123);/连接数据库!st=con.createStatement();/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,16);jLabel1.setBounds(new Rectangle(46,4,222,32);jTextField1.setBounds(new Rectangle(47,37,247,31);jButton1.setBounds(new Rect

35、angle(47,86,247,30);jTextArea1.setBounds(new Rectangle(24,130,305,109);/添加按钮动作事件附 录18jButton1.addActionListener(this);/添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);/点击按钮事件public void actionPerformed(ActionEvent e)/获取用户输入的学号String xuehao=jTextField1.getText()

36、;/清空文本区原有的内容jTextArea1.setText();try/利用 st 对象执行 SQL 语句,返回结果集对象 ResultSet rs=st.executeQuery(select * from StudentInfo where 学号=+xuehao); /处理结果集:逐条显示结果集中的记录 /此处没有使用 while,因为学号是唯一的,而姓名不是,所以在InquireOnNamePanel.java 里使用了 whileif(rs.next()jTextArea1.append(rs.getString(学号)+ +rs.getString(姓名)+ +rs.getStri

37、ng(性别)+ +rs.getDate(出生日期)+ +rs.getString(籍贯)+n);elseJOptionPane.showMessageDialog(this,没有这个学号!);catch(Exception ex)/利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,查询失败!+00);/清空文本行的内容jTextField1.setText();附 录195、系统主界面类的代码系统主界面类的代码package jieweixiao;/导入系统的包import java.awt.*;import java.awt.event.*;i

38、mport javax.swing.*;/创建主界面类public class MainFrame extends JFrame implements ActionListener/创建内容面板JPanel contentPane;/创建菜单栏(见 267 页的图 12.1 里的菜单栏)JMenuBar jMenuBar1=new JMenuBar();JMenu jMenuFile=new JMenu(文件);JMenuItem jMenuFileExit=new JMenuItem(退出);JMenu jMenu1=new JMenu(学生管理);JMenuItem jMenuItem1=

39、new JMenuItem(添加学生);JMenuItem jMenuItem2=new JMenuItem(删除学生);JMenuItem jMenu3=new JMenuItem(学生信息修改);JMenu jMenu2=new JMenu(学生查询);JMenuItem jMenuItem3=new JMenuItem(按姓名查询);JMenuItem jMenuItem4=new JMenuItem(按学号查询);/创建标签,用于显示信息JLabel jLabel1=new JLabel(欢迎使用学生信息管理系统);JLabel jLabel2=new JLabel(2015-数据库课

40、程设计);/构造方法,创建对象时自动调用public MainFrame()try附 录20/关闭框架窗口时的默认事件方法setDefaultCloseOperation(EXIT_ON_CLOSE);/调用初始化方法jbInit();catch(Exception exception)exception.printStackTrace();/界面初始化方法private void jbInit() throws Exception/创建内容面板和其布局contentPane =(JPanel) getContentPane();contentPane.setLayout(null);/框架的

41、大小和其标题setSize(new Dimension(400,320);setTitle(学生信息管理系统);/添加事件监听器jMenuFileExit.addActionListener(this);jMenuItem1.addActionListener(this);jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenu3.addActionListener(this);/添加菜单条setJMenuBar(jMenuBar1

42、);/添加菜单组件到菜单条jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenuFileExit);/添加菜单项组件到菜单组件jMenuFile.add(jMenuFileExit);附 录21jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenu3);jMenu2.add(jMenuItem3);jMenu2.add(jMenuItem4);/添加标签到内容面板contentPane.add(jLabe

43、l1);contentPane.add(jLabel2);/设置标签组件的大小和字体jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,20);jLabel1.setBounds(new Rectangle(65,70,275,55);jLabel2.setFont(new java.awt.Font(宋体,Font.BOLD,16);jLabel2.setBounds(new Rectangle(90,150,200,35);/菜单事件的处理方法public void actionPerformed(ActionEvent actionEvent)/点击“文件”菜单下的“退出”菜单项if(actionEvent.getSource()=jMenuFileExit)System.exit(0);/点击“学生管理”菜单下的“添加学生”菜单项if(actionEvent.getSource()=jMenuItem1)/创建添加学生面板对象AddStudentPanel add=new AddStudentPanel();/移除主界面上原有的内容this.remove(this.getContentPane();this.set

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论