用Java与SQLServer做的学生管理系统.docx

上传人:b****8 文档编号:8991545 上传时间:2023-02-02 格式:DOCX 页数:28 大小:117.16KB
下载 相关 举报
用Java与SQLServer做的学生管理系统.docx_第1页
第1页 / 共28页
用Java与SQLServer做的学生管理系统.docx_第2页
第2页 / 共28页
用Java与SQLServer做的学生管理系统.docx_第3页
第3页 / 共28页
用Java与SQLServer做的学生管理系统.docx_第4页
第4页 / 共28页
用Java与SQLServer做的学生管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

用Java与SQLServer做的学生管理系统.docx

《用Java与SQLServer做的学生管理系统.docx》由会员分享,可在线阅读,更多相关《用Java与SQLServer做的学生管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

用Java与SQLServer做的学生管理系统.docx

用Java与SQLServer做的学生管理系统

 

中北大学

数据库原理

课程设计说明书

 

 

学生姓名:

武大为

学号:

11060342X37

学生姓名:

李力钊

学号:

11060342X28

学生姓名:

周荣祥

学号:

11060342X20

学生姓名:

南子锐

学号:

11060342X44

学院:

信息商务学院

专业:

计算机科学与技术 

题目:

学生学籍管理系统

指导教师

武瑞娟

 

 

 

 

 2013年6月27日

 

1设计目的:

按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的学生学籍管理系统。

通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。

2设计内容:

设计内容:

设计如下主要功能模块

1)实现学生基本情况的录入、修改、删除等基本操作。

2)对学生基本信息提供灵活的查询方式。

3)完成一个班级的学期选课功能。

4)实现学生成绩的录入、修改、删除等基本操作。

5)能方便的对学生的一个学期成绩进行查询。

6)具有成绩统计、排名等功能。

7)具有留级、休学等特殊情况的处理功能。

8)能输出常用的各种报表。

9)具有数据备份和数据恢复功能。

设计要求:

学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。

对于新生班级,应该首先进行基本情况录入、选课、然后才能进行成绩录入。

3.功能模块详细设计

3.1详细设计思想

这个学生管理系统,我们组用Java的JDK1.6开发工具和微软的MicrosoftSQLServer数据库两者相结合做出来的。

一数据库的设计:

1创建数据库StudentManager

图1.0

1.1创建表:

ClassInfo

图1.1

1.2创建表:

DepartmentInfo

图1.2

1.3创建表:

StudentInfo

图1.3

二创建“数据源(ODBC)”

具体步骤:

“开始”-“控制面板”-“管理工具”-“数据源(ODBC)

-在用户DNS里,点“添加”--在数据源驱动列表最下方选择“SQLServer”

-点“完成”--出现了一个创建到SQLServer的新数据源

-在数据源“名称”右侧,填写数据库的名称;在“服务器”右侧,写(local)

-点“下一步”--继续点“下一步”

-在更改默认的数据库为“StudentManager”,这里的数据库为我刚刚新建的数据库。

-点“下一步”

-点“完成”

-出现一个“ODBCMicrosoftSQLServer安装”对话框

-点击下面的“测试数据源”

-出现图2.1就好了。

图2.1

-下面依次点击“确定”就完成了。

-完成了以后,你会在数据源里看到自己刚刚新建的数据源,名为:

“StudentManager”

图2.2

3.2核心代码:

三代码的编写:

3.1数据库连接类的代码(文件名:

DBConnect.java)注意,这个文件最先编译,因为后面的几个文件的编译会用到该文件编译完产生的DBConnect.class文件

//导入sql数据库包

importjava.sql.*;

//创建数据库连接类

publicclassDBConnect

{

//静态方法提高数据库的连接效率

publicstaticConnectiongetConn()throwsException

{

//加载JDBC驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//以系统默认用户身份,连接数据库StudentManager

returnDriverManager.getConnection("jdbc:

odbc:

StudentManager","","");

}

}

3.2添加学生面板类的代码(文件名:

AddStudentPanel.java)

//导入系统的类包

importjava.awt.*;

importjava.sql.*;

importjavax.swing.*;

importjava.awt.event.*;

//创建“添加学生面板”类

publicclassAddStudentPanelextendsJPanelimplementsActionListener

{

//声明连接数据库对象

Connectioncon;

//声明SQL语句对象

Statementst;

//创建组件对象:

标签、文本行、单选

JLabeljLabel1=newJLabel("学号");

JLabeljLabel2=newJLabel("姓名");

JLabeljLabel3=newJLabel("性别");

JLabeljLabel4=newJLabel("出生日期");

JLabeljLabel5=newJLabel("籍贯");

JLabeljLabel6=newJLabel("注意:

出生日期格式为YYYY-MM-DD");

JTextFieldjTextField1=newJTextField();

JTextFieldjTextField2=newJTextField();

JTextFieldjTextField3=newJTextField();

JTextFieldjTextField4=newJTextField();

JRadioButtonjRadioButton1=newJRadioButton("男");

JRadioButtonjRadioButton2=newJRadioButton("女");

ButtonGroupbuttonGroup1=newButtonGroup();

JButtonjButton1=newJButton("存入数据库");

//构造方法

publicAddStudentPanel()

{

try{

//调用初始化方法

jbInit();

}

catch(Exceptionexception){

exception.printStackTrace();

}

}

//界面初始化方法

privatevoidjbInit()throwsException

{

//连接数据库

con=DBConnect.getConn();

//创建一个statement对象来将SQL语句发送到数据库

st=con.createStatement();

//框架的布局

this.setLayout(null);

//设置各组件的大小

jLabel1.setBounds(newRectangle(21,17,64,24));

jLabel2.setBounds(newRectangle(21,51,53,22));

jLabel3.setBounds(newRectangle(21,86,61,27));

jLabel4.setBounds(newRectangle(21,122,59,25));

jLabel5.setBounds(newRectangle(21,188,54,24));

jLabel6.setBounds(newRectangle(102,153,219,27));

jTextField1.setBounds(newRectangle(102,10,200,30));

jTextField2.setBounds(newRectangle(102,49,200,30));

jTextField3.setBounds(newRectangle(102,117,200,33));

jTextField4.setBounds(newRectangle(102,183,200,29));

jRadioButton1.setBounds(newRectangle(102,83,65,30));

jRadioButton2.setBounds(newRectangle(190,85,85,30));

jButton1.setBounds(newRectangle(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);

}

//点击按钮事件

//事件相应器当你定义的事件捕捉以后就会执行这个里面的代码

publicvoidactionPerformed(ActionEvente)

{

//获取用户输入的信息

Stringxuehao=jTextField1.getText();

Stringxingming=jTextField2.getText();

Stringxingbie="";

if(jRadioButton1.isSelected())

xingbie+="男";

if(jRadioButton2.isSelected())

xingbie+="女";

StringdateString=jTextField3.getText();

Stringjiguan=jTextField4.getText();

try{

//设置日期格式

st.execute("setdateformatymd");

//利用st对象执行SQL语句,进行插入操作

st.executeUpdate("insertintoStudentInfovalues('"+xuehao+"','"+xingming+"','"+xingbie+"','"+dateString+"','"+jiguan+"','"+xuehao.substring(4,6)+"','"+xuehao.substring(0,6)+"')");

//清空文本行的内容

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

jTextField4.setText("");

//利用消息对话框提示删除操作成功

JOptionPane.showMessageDialog(this,"插入成功!

");

}

catch(Exceptionex){

//利用消息对话框提示不能插入,并显示异常的信息

JOptionPane.showMessageDialog(this,"输入数据错误或者数据库不允许插入!

");

ex.printStackTrace();

}

}

}

3.3删除学生面板类的代码(文件名:

DeleteStudentPanel.java)

//导入系统的类包

importjava.awt.*;

importjava.sql.*;

importjavax.swing.*;

importjava.awt.event.*;

//创建“删除学生面板”类

publicclassDeleteStudentPanelextendsJPanelimplementsActionListener

{

//声明连接数据库对象

Connectioncon;

//声明SQL语句对象

Statementst;

//创建组件对象

JLabeljLabel1=newJLabel("请输入待删除的学生的学号:

");

JTextFieldjTextField1=newJTextField();

JButtonjButton1=newJButton("删除");

//构造方法

publicDeleteStudentPanel()

{

try{

//调用初始化方法

jbInit();

}

catch(Exceptionexception){

exception.printStackTrace();

}

}

//界面初始化方法

privatevoidjbInit()throwsException

{

//连接数据库

con=DBConnect.getConn();

st=con.createStatement();

//框架的布局

this.setLayout(null);

//设置各组件的大小

jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,14));

jLabel1.setBounds(newRectangle(70,20,200,30));

jTextField1.setBounds(newRectangle(70,80,207,41));

jButton1.setBounds(newRectangle(70,175,205,36));

//添加按钮动作事件

jButton1.addActionListener(this);

//添加组件到面板

this.add(jLabel1);

this.add(jTextField1);

this.add(jButton1);

}

//点击按钮事件

publicvoidactionPerformed(ActionEvente)

{

//获取用户输入的学号

Stringxuehao=jTextField1.getText();

//要求用户确认删除

if(JOptionPane.showConfirmDialog(this,"确认要删除吗?

")==JOptionPane.YES_OPTION)

{

try{

//利用st对象执行SQL删除操作

st.executeUpdate("deletefromStudentInfowhere学号='"+xuehao+"'");

//利用消息对话框提示删除操作成功

JOptionPane.showMessageDialog(this,"删除操作成功!

");

//清空输入学号的文本行

jTextField1.setText("");

}

catch(Exceptionex){

//利用消息对话框提示不能删除

JOptionPane.showMessageDialog(this,"删除操作执行失败!

");

}

}

}

}

3.4按姓名查询学生面板类的代码(文件名:

InquireOnNamePanel.java)

//导入系统的类包

importjava.awt.*;

importjava.sql.*;

importjavax.swing.*;

importjava.awt.event.*;

//创建“添加学生面板”类

publicclassInquireOnNamePanelextendsJPanelimplementsActionListener

{

//声明连接数据库对象

Connectioncon;

//声明SQL语句对象

Statementst;

//创建组件对象:

标签、文本行、单选

JLabeljLabel1=newJLabel("请输入待查询的学生的姓名:

");

JTextFieldjTextField1=newJTextField();

JButtonjButton1=newJButton("按姓名查询");

JScrollPanejScrollPane1=newJScrollPane();

JTextAreajTextArea1=newJTextArea();

//构造方法

publicInquireOnNamePanel()

{

try{

//调用初始化方法

jbInit();

}

catch(Exceptionexception){

exception.printStackTrace();

}

}

//面板初始化方法

privatevoidjbInit()throwsException

{

//连接数据库

con=DBConnect.getConn();

st=con.createStatement();

//框架的布局

this.setLayout(null);

//设置各组件的大小

jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,14));

jLabel1.setBounds(newRectangle(80,10,200,34));

jTextField1.setBounds(newRectangle(80,50,200,30));

jButton1.setBounds(newRectangle(100,90,160,30));

jScrollPane1.setBounds(newRectangle(29,125,308,130));

//添加按钮动作事件

jButton1.addActionListener(this);

//添加组件到面板

this.add(jScrollPane1);

jScrollPane1.getViewport().add(jTextArea1);

this.add(jLabel1);

this.add(jTextField1);

this.add(jButton1);

}

//点击按钮事件

publicvoidactionPerformed(ActionEvente)

{

//获取用户输入的姓名

Stringxingming=jTextField1.getText();

//清空文本区原有的内容

jTextArea1.setText("");

//要求用户确认删除

try{

//利用st对象执行SQL语句,返回结果集对象

ResultSetrs=st.executeQuery("select*fromStudentInfowhere姓名='"+xingming+"'");

//处理结果集:

逐条显示结果集中的记录

while(rs.next())

{

jTextArea1.append(rs.getString("学号")+""+rs.getString("姓名")+""+rs.getString("性别")+""+rs.getDate("出生日期")+""+rs.getString("籍贯")+"\n");

}

}

catch(Exceptionex)

{

//利用消息对话框提示查询失败

JOptionPane.showMessageDialog(this,"查询失败!

");

}

//清空文本行的内容

jTextField1.setText("");

}

}

3.5按学号查询学生面板类的代码(文件名:

InquireOnXHPanel.java)

//导入系统的类包

importjava.awt.*;

importjava.sql.*;

importjavax.swing.*;

importjava.awt.event.*;

//创建“添加学生面板”类

publicclassInquireOnXHPanelextendsJPanelimplementsActionListener

{

//声明连接数据库对象

Connectioncon;

//声明SQL语句对象

Statementst;

//创建组件对象:

标签、文本行、单选

JLabeljLabel1=newJLabel("请输入待查询的学生的学号:

");

JTextFieldjTextField1=newJTextField();

JButtonjButton1=newJButton("按学号查询");

JTextAreajTextArea1=newJTextArea();

//构造方法

publicInquireOnXHPanel()

{

try{

//调用初始化方法

jbInit();

}

catch(Exceptionexception){

exception.printStackTrace();

}

}

//面板初始化方法

privatevoidjbInit()throwsException

{

//连接数据库

con=DBConnect.getConn();

st=con.createStatement();

//框架的布局

this.setLayout(null);

//设置各组件的大小

jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,16));

jLabel1.setBounds(newRectangle(46,4,222,32));

jTextField1.setBounds(newRectangle(47,37,247,31));

jButton1.setBounds(newRectangle(4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1