logo资料库

基于java和SQL的学生信息管理系统设计.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
中北大学 数据库原理 课 程 设 计 说 明 书 学生姓名: 学生姓名: 学生姓名: 学生姓名: 学 院: 专 业: 题 目: 指 导 教 师 武大为 学 号: 11060342X37 李力钊 学 号: 11060342X28 周荣祥 学 号: 11060342X20 南子锐 学 号: 11060342X44 信息商务学院 计算机科学与技术 学生学籍管理系统 武瑞娟 2013 年 6 月 27 日
1 设计目的: 按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小 型的学生学籍管理系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合, 使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面, 使学生能深入理解和灵活掌握教学内容。 2 设计内容: 设计内容:设计如下主要功能模块 1) 实现学生基本情况的录入、修改、删除等基本操作。 2) 对学生基本信息提供灵活的查询方式。 3) 完成一个班级的学期选课功能。 4) 实现学生成绩的录入、修改、删除等基本操作。 5) 能方便的对学生的一个学期成绩进行查询。 6) 具有成绩统计、排名等功能。 7) 具有留级、休学等特殊情况的处理功能。 8) 能输出常用的各种报表。 9) 具有数据备份和数据恢复功能。 设计要求: 学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。 对于新生班级,应该首先进行基本情况录入、选课、然后才能进行成绩录入。 3.功能模块详细设计 3.1 详细设计思想 这个学生管理系统,我们组用 Java 的 JDK1.6 开发工具和微软的 Microsoft SQL Server 数据库两者相结合做出来的。 一数据库的设计:
1 创建数据库 StudentManager 1.1 创建表:ClassInfo 1.2 创建表:DepartmentInfo 1.3 创建表:StudentInfo 图 1.0 图 1.1 图 1.2 图 1.3 二创建“数据源(ODBC)” 具体步骤: “开始”-“控制面板”-“管理工具”-“数据源(ODBC) -在用户 DNS 里,点“添加”--在数据源驱动列表最下方选择“SQLServer” -点“完成”--出现了一个创建到 SQL Server 的新数据源 -在数据源“名称”右侧,填写数据库的名称;在“服务器”右侧,写(local) -点“下一步”--继续点“下一步” -在更改默认的数据库为“StudentManager”,这里的数据库为我刚刚新建的数据库。 -点“下一步” -点“完成” -出现一个“ODBC Microsoft SQL Server 安装”对话框 -点击下面的“测试数据源”
-出现图 2.1 就好了。 -下面依次点击“确定”就完成了。 -完成了以后,你会在数据源里看到自己刚刚新建的数据源,名为:“StudentManager” 图 2.1 图 2.2 3.2 核心代码: 三代码的编写: 3.1 数据库连接类的代码(文件名:DBConnect.java)注意,这个文件最先编译,因为后面 的几个文件的编译会用到该文件编译完产生的 DBConnect.class 文件 //导入 sql 数据库包 import java.sql.*; //创建数据库连接类 public class DBConnect { //静态方法提高数据库的连接效率 public static Connection getConn() throws Exception { //加载 JDBC 驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //以系统默认用户身份,连接数据库 StudentManager
return DriverManager.getConnection("jdbc:odbc:StudentManager","",""); } } 3.2 添加学生面板类的代码(文件名:AddStudentPanel.java) //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“添加学生面板”类 public class AddStudentPanel extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明 SQL 语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("学号"); 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(); JTextField jTextField4=new JTextField(); JRadioButton jRadioButton1=new JRadioButton("男"); JRadioButton jRadioButton2=new JRadioButton("女"); ButtonGroup buttonGroup1=new ButtonGroup(); JButton jButton1=new JButton("存入数据库"); //构造方法 public AddStudentPanel() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } }
//界面初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); //创建一个 statement 对象来将 SQL 语句发送到数据库 st=con.createStatement(); //框架的布局 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.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.setBounds(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)); //设置单选按钮被选中 jRadioButton1.setSelected(true); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jTextField1); 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(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=jTextField3.getText(); String jiguan=jTextField4.getText(); try{ //设置日期格式 st.execute("set dateformat ymd"); //利用 st 对象执行 SQL 语句,进行插入操作 st.executeUpdate("insert StudentInfo values('"+xuehao+"','"+xingming+"','"+xingbie+"','"+dateString+"','"+jiguan+"','"+xuehao.substrin g(4,6)+"','"+xuehao.substring(0,6)+"')"); into //清空文本行的内容 jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); //利用消息对话框提示删除操作成功 JOptionPane.showMessageDialog(this,"插入成功!"); } catch(Exception ex){ //利用消息对话框提示不能插入,并显示异常的信息 JOptionPane.showMessageDialog(this,"输入数据错误或者数据库不允许插入! ex.printStackTrace(); "); } } } 3.3 删除学生面板类的代码(文件名:DeleteStudentPanel.java) //导入系统的类包 import 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 jTextField1=new JTextField(); JButton jButton1=new JButton("删除"); //构造方法 public DeleteStudentPanel() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //界面初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,14)); jLabel1.setBounds(new Rectangle(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); }
分享到:
收藏