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

上传人:b****7 文档编号:11368791 上传时间:2023-02-28 格式:DOCX 页数:28 大小:117.38KB
下载 相关 举报
用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

学院:

信息商务学院

专业:

计算机科学与技术 

题目:

学生学籍管理系统

指导教师

武瑞娟

 

 

 2018年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(47,86,247,30>>。

jTextArea

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

当前位置:首页 > 求职职场 > 简历

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

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