您的当前位置:首页正文

学生档案管理系统

2022-09-02 来源:客趣旅游网
计算机科学与技术学院 课程设计报告

南华大学

计算机科学与技术学院

课程设计报告

( 2007 ~2008 学年度 第 1 学期 )

课程名称 面向对象程序设计—JAVA

设计题目 基于JAVA学生档案管理系统

组长 组员 组员 组员

姚永林 刘 峰 黄 镔 余 江

学号 学号 学号 学号

20054440237 20054440235 20054440244 20054440246

地点

弘辰6-317

教师

谭敏生

1

计算机科学与技术学院 课程设计报告

目录

1. 需求分析................................................................................................................... 3 2. 设计要求................................................................................................................... 3 4. 功能需求................................................................................................................... 3 5. 总体设计................................................................................................................... 3 6. 系统的具体实现 ........................................................................................................ 6 7. 附录:(部分程序主要代码) ..................................................................................... 9 8. 总计分析................................................................................................................. 30 9. 参考文献................................................................................................................. 30

2

计算机科学与技术学院 课程设计报告

1. 需求分析

随着学校向全国学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的学生档案管理系统,以便完成对学生档案信息的管理。

基于文件、表格等纸介质的手工处理,学生信息管理部门信息处理工作量大,容易出错,且管理方面因人而异。然而学校系统软件对学生信息管理系统应该覆盖各个所需功能,使各级管理人员和广大教职工在信息系统的辅助下进行工作,提高管理的整体水平。使得学生信息管理更方便。

学生信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了可能。在采用和实施学生信息管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。学校管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。

采用和实施学生档案管理系统不仅仅是为了提高工作效率。同时在使用学生档案管理系统后,学校相关领导可以较为全面、准确的了解到同学们的综合信息,然后方便更具各种信息对学校的管理做出各种决策。

2. 设计要求

1.要求在前台主界面上显示数据库中存放的学生的基本信息,由特定权限的管理员或者用户登录后通过按钮或菜单对学生的信息进行录入、修改、查询、删除等功能。 2.利用JDBC驱动程序连接数据库,修改、存储学生的基本信息。

3. 课程设计软硬件环境

1) 系统开发工具的选择

后台数据库:SQL Server 2000

开发平台: java_app_platform_sdk-5_02-windows.exe Eclipse.exe 2) 性能需求 硬件环境

处理器:InterCR300或更高。 内存:128MB(建议256MB)。 硬盘空间:30MB。

软件环境

操作系统:Windows98 或Windows2000 / Windows NT Server 4.0/window XP。 数据库:SQL Server 2000。

4. 功能需求

1> 学籍管理:对学生的学籍信息进行管理 2> 班级管理:对各年级的班级进行管理

3> 课程设置:能对各年级的课程进行添加,修改等操作或添加新的课程,删除以前的

课程 4> 成绩管理:对学生的各学期的考试成绩进行录入,修改,查询等操作

5. 总体设计

3

计算机科学与技术学院 课程设计报告

1) 软件结构设计

本系统是对学生的基本档案信息进行管理,主要包括学生学籍信息管理,班级信息管理,课程设置,学生成绩管理。其中每各管理模块都能进行添加,删除,修改,查询的基本操作。

系统主要划分为四各模块:

1> 学籍管理模块:对学生的学籍信息进行综合管理,学生入学时,可以添加

学籍信息,退学或转学时可以删除学生的学籍信息,学生学籍信息的修改,查询。

2> 班级管理模块:对各年级的班级信息进行管理,能添加新的班级,删除已

有班级或更新原有班级的信息

3> 课程设置模块:对所有年级的课程进行综合管理,能添加新的课程,删除

已有课程或更新某一年级的课程

4> 成绩管理模块:对学生各学期考试的成绩信息进行综合管理,能在考试后

添加学生的成绩或删除学生的某课程的成绩以及按学号,班级,课程三种

查询方式查询学生的成绩信息

2) 系统模块设计

学生档案管理系统总体结构图

主要页面文件清单

文件名 start.java

功能描述 系统开始运行的界面

4

计算机科学与技术学院 课程设计报告

Scanuser.java Cxbj.java Addxj.java Scanresult.java Adduser.java Cxxj.java Tjkcxx.java Xiugaimima.java Addresult.java Xgbj.java Xgcj.java Xgkcxx.java Xgxjxx.java Mainframe.java 3) 数据库结构设计 班级信息表

浏览用户系统用户 查询学生班级 添加学生档案(学籍) 查询成绩信息 添加用户 查询学生档案(学籍) 添加学生的课程信息 修改用户的密码 添加学生成绩 修改学生的班级 修改学生的成绩 修改学生的课程信息 修改学生的学籍信息 主题窗口 课程信息表

年级课程信息表

5

计算机科学与技术学院 课程设计报告

学生成绩信息表

学生基本信息表

6. 系统的具体实现

1) 登录界面

6

计算机科学与技术学院 课程设计报告

对于已经注册的管理员,在进入管理系统之前先要进行登录,在下面的登录界面经过身份验证后才能进入系统操作界面。只有有正确用户名及密码的管理员或者用户才能进入系统界面,对数据库中的学生信息进行添加、修改及删除等功能。当登录不成功时,系统不提供除修改密码和退出以外的任何操作。

2) 学生学籍信息的管理

通过管理员身份验证后,管理员进入的就是学生学籍信息管理的页面,当用户选择不同的操作时系统户跳入到不同的界面进行操作,如学生学籍信息的添加查询和修改等功能。

a) 添加学籍信息

输入的学生信息可以包括学生的姓名、性别、学号、班级、联系电话、联系地址及备注。其中学号为主键,如果输入了相同的学号或者是非阿拉伯数字,系统将不写入数据库,会出现提示页面。

7

计算机科学与技术学院 课程设计报告

b) 修改学籍信息

当学生的相关资料有变化时,管理员需要对学生的信息进行维护与修改,为了操作方便,只要输入相应的学号,就可以对学生的信息修改。也可以逐条修改。修改学生信息的时候我们还可以对其相关的学籍信息进行删除。

8

计算机科学与技术学院 课程设计报告

c) 查询学籍信息

查询学籍,该部分是通过用户输入的欲查询的学生学号、名字或者班级来查询该学生的详细信息。用户输入学号后如果数据库中不存在该学生的学籍信息,系统将会提示该学生不存在信息。如果存在该学生系统将会输出该学生的详细信息,包括学生姓名、学号、性别、班级,学生详细信息显示如下:

d) 其他系统功能

对于系统的其他一些班级、课程及成绩的相关功能和上面介绍基本相同。不同的模块将实现不同的操作,并将个操作与数据库进行读写,及时更新数据库内容。

以上是对学生信息管理系统的各个功能介绍,其具体实现请看附录代码。

7. 附录:(部分程序主要代码)

添加学生学籍信息

package studentsystem;

import javax.swing.*; import java.awt.*;

import com.borland.jbcl.layout.*; import java.awt.event.*; import java.sql.*; /**

*

Title:

*

Description:

*

Copyright: Copyright (c) 2006

*

Company:

* @author not attributable * @version 1.0

9

计算机科学与技术学院 课程设计报告

*/

public class tjxjxx extends JFrame { Statement ps,bhs; ResultSet rs; Connection con; String url;

JLabel jLabel1 = new JLabel(); JTextField xh = new JTextField(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JLabel jLabel8 = new JLabel(); JLabel jLabel9 = new JLabel(); JComboBox sex = new JComboBox(); JTextField xm = new JTextField(); JTextField rxrq = new JTextField();

JTextField rq = new JTextField(); JTextField tel = new JTextField();

JScrollPane jScrollPane1 = new JScrollPane(); JTextPane address = new JTextPane();

JScrollPane jScrollPane2 = new JScrollPane(); JTextPane comment = new JTextPane(); JButton ensure = new JButton(); JButton cancel = new JButton();

JComboBox jComboBox1 = new JComboBox(); JComboBox bh = new JComboBox();

public tjxjxx() { try { jbInit(); }

catch(Exception e) { e.printStackTrace(); }

try {

// String dn = \"com.microsoft.jdbc.sqlserver.SQLServerDriver\"; //连接数据库

// url = //

10

计算机科学与技术学院 课程设计报告

\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Student;\";

// Class.forName(dn);

// Connection con = DriverManager.getConnection(url, \"sa\ Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); Connection con = DriverManager.getConnection( \"jdbc:odbc:lee\ \"sa\

ps = con.createStatement(ResultSet.

TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); bhs= con.createStatement(ResultSet.

TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

rs = ps.executeQuery(\"select * from class\"); while(rs.next()){

bh.addItem(rs.getString(\"class_No\"));} }

catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, \"连接数据库错误!\"); }

}

public static void main(String[] args) { tjxjxx tjxjxx = new tjxjxx(); }

private void jbInit() throws Exception {

jLabel1.setFont(new java.awt.Font(\"Dialog\ jLabel1.setText(\"学 号\");

jLabel1.setBounds(new Rectangle(26, 34, 58, 44)); this.setForeground(Color.black); this.setResizable(false); this.setState(Frame.NORMAL); this.setTitle(\"添加学籍信息\");

this.getContentPane().setLayout(null);

xh.setFont(new java.awt.Font(\"Dialog\ xh.setText(\"\");

xh.setBounds(new Rectangle(90, 39, 143, 30)); jLabel2.setBounds(new Rectangle(26, 78, 58, 44)); jLabel2.setText(\"性 别\");

jLabel2.setFont(new java.awt.Font(\"Dialog\

11

计算机科学与技术学院 课程设计报告

jLabel3.setFont(new java.awt.Font(\"Dialog\ jLabel3.setText(\"班 号\");

jLabel3.setBounds(new Rectangle(26, 125, 58, 44)); jLabel4.setBounds(new Rectangle(16, 164, 65, 44)); jLabel4.setText(\"入校日期\");

jLabel4.setFont(new java.awt.Font(\"Dialog\ jLabel5.setBounds(new Rectangle(31, 215, 58, 44)); jLabel5.setText(\"备 注\");

jLabel5.setFont(new java.awt.Font(\"Dialog\ jLabel6.setBounds(new Rectangle(264, 33, 58, 44)); jLabel6.setText(\"姓 名\");

jLabel6.setFont(new java.awt.Font(\"Dialog\ jLabel7.setFont(new java.awt.Font(\"Dialog\ jLabel7.setText(\"出生日期\");

jLabel7.setBounds(new Rectangle(256, 78, 65, 44)); jLabel8.setBounds(new Rectangle(262, 125, 65, 44)); jLabel8.setText(\"联系电话\");

jLabel8.setFont(new java.awt.Font(\"Dialog\ jLabel9.setFont(new java.awt.Font(\"Dialog\ jLabel9.setText(\"家庭住址\");

jLabel9.setBounds(new Rectangle(256, 165, 65, 44)); sex.setFont(new java.awt.Font(\"Dialog\ sex.setBounds(new Rectangle(88, 88, 153, 32)); //sex.addItem(\"男\"); // sex.addItem(\"女\");

xm.setBounds(new Rectangle(347, 38, 126, 30)); xm.setText(\"\");

xm.setFont(new java.awt.Font(\"Dialog\ rxrq.setBounds(new Rectangle(89, 173, 153, 30)); rxrq.setText(\"\");

rxrq.setFont(new java.awt.Font(\"Dialog\ rq.setBounds(new Rectangle(348, 86, 126, 30)); rq.setText(\"\");

rq.setFont(new java.awt.Font(\"Dialog\

tel.setBounds(new Rectangle(351, 130, 126, 30));

tel.addActionListener(new tjxjxx_tel_actionAdapter(this)); tel.setText(\"\");

tel.setFont(new java.awt.Font(\"Dialog\

jScrollPane1.setBounds(new Rectangle(329, 185, 152, 131)); address.setFont(new java.awt.Font(\"Dialog\ address.setText(\"\");

jScrollPane2.setBounds(new Rectangle(85, 217, 161, 118)); comment.setFont(new java.awt.Font(\"Dialog\ comment.setText(\"\");

12

计算机科学与技术学院 课程设计报告

ensure.setBounds(new Rectangle(146, 358, 80, 33));

ensure.setFont(new java.awt.Font(\"Dialog\ ensure.setText(\"确 定\");

ensure.addActionListener(new tjxjxx_ensure_actionAdapter(this)); cancel.setBounds(new Rectangle(341, 355, 74, 32)); cancel.setFont(new java.awt.Font(\"Dialog\ cancel.setText(\"取 消\");

cancel.addActionListener(new tjxjxx_cancel_actionAdapter(this)); bh.setBounds(new Rectangle(88, 130, 154, 30)); bh.addItemListener(new tjxjxx_bh_itemAdapter(this)); bh.setBounds(new Rectangle(89, 129, 151, 31)); this.getContentPane().add(jLabel1, null); this.getContentPane().add(xh, null);

this.getContentPane().add(jLabel3, null); this.getContentPane().add(jLabel2, null); this.getContentPane().add(jLabel5, null); this.getContentPane().add(jLabel4, null); this.getContentPane().add(sex, null); this.getContentPane().add(rxrq, null);

this.getContentPane().add(jScrollPane1, null); jScrollPane1.getViewport().add(address, null); this.getContentPane().add(jScrollPane2, null); jScrollPane2.getViewport().add(comment, null); this.getContentPane().add(ensure, null); this.getContentPane().add(cancel, null); this.getContentPane().add(tel, null); this.getContentPane().add(rq, null); this.getContentPane().add(xm, null);

this.getContentPane().add(jLabel7, null); this.getContentPane().add(jLabel6, null); this.getContentPane().add(jLabel8, null); this.getContentPane().add(jLabel9, null); this.getContentPane().add(bh, null); this.getContentPane().add(bh, null); this.setBounds(200,200,600,450); sex.addItem(\"男\"); sex.addItem(\"女\"); this.setVisible(true); }

void tel_actionPerformed(ActionEvent e) { }

13

计算机科学与技术学院 课程设计报告

void cancel_actionPerformed(ActionEvent e) { this.dispose(); }

void ensure_actionPerformed(ActionEvent e) { JOptionPane.showConfirmDialog(null,

\"确定添加?\\"添加学籍\JOptionPane.YES_NO_OPTION); try {

try {

ps.executeUpdate(\"Insert +xh.getText().trim()+

Into

student

Values('\"

\"','\" +xm.getText().trim() +

\"','\" +sex.getSelectedItem().toString() + \"','\"

+rq.getText().trim() + \"','\" +bh.getSelectedItem() + \"','\"

+tel.getText().trim() + \"','\" +rxrq.getText().trim() + \"','\" +address.getText().trim() + \"','\"

+comment.getText().trim() + \"')\"); Log log=new Log();

log.addLog(\"\\r\\r\添加\"+xh.getText().trim()+\"成功\"); log.closeStream();

JOptionPane.showMessageDialog(null, \"添加学籍成功\"); this.dispose(); }

catch (SQLException sqle) { Log log=new Log();

log.addLog(\"\\r\\r\数据库连接出错\"); log.closeStream();

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

}

}

catch (Exception ex) { ex.getMessage();

14

计算机科学与技术学院 课程设计报告

String error = ex.getMessage();

JOptionPane.showMessageDialog(null, error); ex.printStackTrace();

} }

void bh_itemStateChanged(ItemEvent e) { } }

class tjxjxx_tel_actionAdapter implements java.awt.event.ActionListener { tjxjxx adaptee;

tjxjxx_tel_actionAdapter(tjxjxx adaptee) { this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) { adaptee.tel_actionPerformed(e); } }

class tjxjxx_cancel_actionAdapter implements java.awt.event.ActionListener { tjxjxx adaptee;

tjxjxx_cancel_actionAdapter(tjxjxx adaptee) { this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) { adaptee.cancel_actionPerformed(e); } }

class tjxjxx_ensure_actionAdapter implements java.awt.event.ActionListener { tjxjxx adaptee;

tjxjxx_ensure_actionAdapter(tjxjxx adaptee) { this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) { adaptee.ensure_actionPerformed(e);

15

计算机科学与技术学院 课程设计报告

}

}

class tjxjxx_bh_itemAdapter implements java.awt.event.ItemListener { tjxjxx adaptee;

tjxjxx_bh_itemAdapter(tjxjxx adaptee) { this.adaptee = adaptee; }

public void itemStateChanged(ItemEvent e) { adaptee.bh_itemStateChanged(e); } }

修改学生学籍信息(包括对学籍的删除) package studentsystem;

import javax.swing.*; import java.awt.*; import java.sql.*;

import java.awt.event.*; /**

*

Title:

*

Description:

*

Copyright: Copyright (c) 2006

*

Company:

* @author not attributable * @version 1.0 */

public class xgxjxx extends JFrame { Statement ps, up,sc; ResultSet rs; Connection con; String url;

JLabel jLabel1 = new JLabel(); JTextField xh = new JTextField(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel();

16

计算机科学与技术学院 课程设计报告

JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JLabel jLabel8 = new JLabel(); JLabel jLabel9 = new JLabel(); JTextField xm = new JTextField(); JTextField rxrq = new JTextField(); JTextField rq = new JTextField();

JTextField tel = new JTextField();

JScrollPane jScrollPane1 = new JScrollPane(); JTextPane address = new JTextPane();

JScrollPane jScrollPane2 = new JScrollPane(); JTextPane comment = new JTextPane(); JLabel jLabel10 = new JLabel(); JButton previous = new JButton(); JButton next = new JButton(); JButton last = new JButton(); JButton first = new JButton(); JButton xgxl = new JButton(); JButton gxjl = new JButton(); JButton cancel = new JButton(); JButton delete = new JButton();

JLabel jLabel11 = new JLabel(); JTextField sex = new JTextField();

JComboBox jComboBox1 = new JComboBox(); JComboBox jComboBox2 = new JComboBox(); JComboBox bh = new JComboBox();

public xgxjxx() { try {

jbInit();

}

catch (Exception e) { e.printStackTrace(); }

try {

Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); Connection con = DriverManager.getConnection( \"jdbc:odbc:lee\ \"sa\

ps = con.createStatement(ResultSet.

TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

17

计算机科学与技术学院 课程设计报告

sc=con.createStatement(ResultSet.

TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

}

catch (Exception err) { err.getMessage();

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error); } try {

rs = ps.executeQuery(\"select * from student\"); //读取数据库 if (rs.next()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\")); sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\"));

tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\"));

} }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

} }

public static void main(String[] args) { xgxjxx xgxjxx = new xgxjxx(); }

private void jbInit() throws Exception {

jLabel1.setFont(new java.awt.Font(\"Dialog\ jLabel1.setText(\"学 号\");

jLabel1.setBounds(new Rectangle(26, 34, 58, 44)); this.setForeground(Color.black); this.setResizable(false);

18

计算机科学与技术学院 课程设计报告

this.setState(Frame.NORMAL);

this.setTitle(\"修改学籍信息\");

this.getContentPane().setLayout(null); xh.setBackground(Color.white);

xh.setFont(new java.awt.Font(\"Dialog\ xh.setEditable(false); xh.setText(\"\");

xh.setBounds(new Rectangle(90, 39, 143, 30));

jLabel2.setBounds(new Rectangle(26, 78, 58, 44)); jLabel2.setText(\"性 别\");

jLabel2.setFont(new java.awt.Font(\"Dialog\ jLabel3.setFont(new java.awt.Font(\"Dialog\ jLabel3.setText(\"班 号\");

jLabel3.setBounds(new Rectangle(26, 125, 58, 44)); jLabel4.setBounds(new Rectangle(16, 164, 65, 44)); jLabel4.setText(\"入校日期\");

jLabel4.setFont(new java.awt.Font(\"Dialog\ jLabel5.setBounds(new Rectangle(31, 215, 58, 44)); jLabel5.setText(\"备 注\");

jLabel5.setFont(new java.awt.Font(\"Dialog\ jLabel6.setBounds(new Rectangle(264, 33, 58, 44)); jLabel6.setText(\"姓 名\");

jLabel6.setFont(new java.awt.Font(\"Dialog\ jLabel7.setFont(new java.awt.Font(\"Dialog\ jLabel7.setText(\"出生日期\");

jLabel7.setBounds(new Rectangle(256, 78, 65, 44)); jLabel8.setBounds(new Rectangle(262, 125, 65, 44)); jLabel8.setText(\"联系电话\");

jLabel8.setFont(new java.awt.Font(\"Dialog\ jLabel9.setFont(new java.awt.Font(\"Dialog\ jLabel9.setText(\"家庭住址\");

jLabel9.setBounds(new Rectangle(256, 165, 65, 44)); //sex.addItem(\"男\"); // sex.addItem(\"女\");

xm.setBounds(new Rectangle(347, 38, 126, 30)); xm.setText(\"\");

xm.setFont(new java.awt.Font(\"Dialog\ rxrq.setBounds(new Rectangle(89, 173, 153, 30)); rxrq.setText(\"\");

rxrq.setFont(new java.awt.Font(\"Dialog\ rq.setBounds(new Rectangle(348, 86, 126, 30)); rq.setText(\"\");

rq.setFont(new java.awt.Font(\"Dialog\ tel.setBounds(new Rectangle(351, 130, 126, 30));

19

计算机科学与技术学院 课程设计报告

tel.setText(\"\");

tel.setFont(new java.awt.Font(\"Dialog\

jScrollPane1.setBounds(new Rectangle(329, 185, 152, 131)); address.setFont(new java.awt.Font(\"Dialog\ address.setText(\"\");

jScrollPane2.setBounds(new Rectangle(85, 217, 161, 118)); comment.setFont(new java.awt.Font(\"Dialog\ comment.setText(\"\");

jLabel10.setFont(new java.awt.Font(\"Dialog\ jLabel10.setText(\"查看学籍信息\");

jLabel10.setBounds(new Rectangle(22, 343, 97, 33));

previous.setText(\"上一条记录\");

previous.addActionListener(new xgxjxx_previous_actionAdapter(this)); previous.setBounds(new Rectangle(147, 378, 111, 33)); previous.setFont(new java.awt.Font(\"Dialog\ next.setFont(new java.awt.Font(\"Dialog\ next.setBounds(new Rectangle(264, 378, 111, 33)); next.setText(\"下一条记录\");

next.addActionListener(new xgxjxx_next_actionAdapter(this)); last.setFont(new java.awt.Font(\"Dialog\

last.setBounds(new Rectangle(384, 378, 131, 33)); last.setText(\"最后一条记录\");

last.addActionListener(new xgxjxx_last_actionAdapter(this)); first.setFont(new java.awt.Font(\"Dialog\ first.setBounds(new Rectangle(26, 378, 111, 33)); first.setText(\"第一条记录\");

first.addActionListener(new xgxjxx_first_actionAdapter(this)); xgxl.setBounds(new Rectangle(34, 452, 96, 37)); xgxl.setFont(new java.awt.Font(\"Dialog\

xgxl.setText(\"修改记录\");

xgxl.addActionListener(new xgxjxx_xgxl_actionAdapter(this)); gxjl.setText(\"更新记录\");

gxjl.addActionListener(new xgxjxx_gxjl_actionAdapter(this)); gxjl.setFont(new java.awt.Font(\"Dialog\ gxjl.setBounds(new Rectangle(143, 452, 96, 37)); cancel.setBounds(new Rectangle(377, 453, 96, 38)); cancel.setFont(new java.awt.Font(\"Dialog\ cancel.setText(\"退 出\");

cancel.addActionListener(new xgxjxx_cancel_actionAdapter(this)); delete.setText(\"删除记录\");

delete.addActionListener(new xgxjxx_delete_actionAdapter(this)); delete.setFont(new java.awt.Font(\"Dialog\ delete.setBounds(new Rectangle(263, 452, 96, 38));

20

计算机科学与技术学院 课程设计报告

jLabel11.setFont(new java.awt.Font(\"Dialog\ jLabel11.setText(\"修改学籍信息\");

jLabel11.setBounds(new Rectangle(26, 416, 101, 37)); sex.setBounds(new Rectangle(90, 84, 143, 30)); sex.setText(\"\");

sex.setFont(new java.awt.Font(\"Dialog\

bh.setFont(new java.awt.Font(\"Dialog\ bh.setBounds(new Rectangle(89, 125, 150, 35)); this.getContentPane().add(jLabel1, null); this.getContentPane().add(xh, null); this.getContentPane().add(jLabel3, null); this.getContentPane().add(jLabel2, null); this.getContentPane().add(jLabel5, null); this.getContentPane().add(jLabel4, null); this.getContentPane().add(rxrq, null);

this.getContentPane().add(jScrollPane1, null); jScrollPane1.getViewport().add(address, null); this.getContentPane().add(jScrollPane2, null); jScrollPane2.getViewport().add(comment, null); this.getContentPane().add(tel, null); this.getContentPane().add(rq, null); this.getContentPane().add(xm, null);

this.getContentPane().add(jLabel7, null); this.getContentPane().add(jLabel6, null); this.getContentPane().add(jLabel8, null); this.getContentPane().add(jLabel9, null); this.getContentPane().add(jLabel10, null); this.getContentPane().add(previous, null); this.getContentPane().add(next, null); this.getContentPane().add(last, null); this.getContentPane().add(first, null); this.getContentPane().add(xgxl, null); this.getContentPane().add(gxjl, null); this.getContentPane().add(jLabel11, null); this.getContentPane().add(sex, null); this.getContentPane().add(delete, null); this.getContentPane().add(cancel, null); this.getContentPane().add(bh, null); this.getContentPane().add(bh, null); this.getContentPane().add(bh, null); this.setBounds(200, 150, 550, 550); this.setVisible(true); }

21

计算机科学与技术学院 课程设计报告

void first_actionPerformed(ActionEvent e) { try {

if (rs.first()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\")); sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\")); tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\"));

} else

JOptionPane.showMessageDialog(null, \"这是第一条记录\"); }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

} }

void next_actionPerformed(ActionEvent e) { try {

if (rs.next()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\")); sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\")); tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\"));

} else

JOptionPane.showMessageDialog(null, \"这是最后一条记录\");

22

计算机科学与技术学院 课程设计报告

}

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace(); } }

void previous_actionPerformed(ActionEvent e) { try {

if (rs.previous()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\"));

sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\"));

tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\"));

}

else

JOptionPane.showMessageDialog(null, \"这是第一条记录\"); }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace(); } }

void last_actionPerformed(ActionEvent e) { try {

if (rs.last()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\")); sex.setText(rs.getString(\"student_Sex\"));

23

计算机科学与技术学院 课程设计报告

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\"));

tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\")); }

else

JOptionPane.showMessageDialog(null, \"这是最后一条记录\"); }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace(); } }

void gxjl_actionPerformed(ActionEvent e) { try {

rs = ps.executeQuery(\"select * from student\"); //读取数据库 if (rs.next()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\"));

sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\"));

tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\")); comment.setText(rs.getString(\"comment\")); } }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

}

}

void xgxl_actionPerformed(ActionEvent e) {

24

计算机科学与技术学院 课程设计报告

JOptionPane.showConfirmDialog(null,

\"确定修改\\"修改学籍\JOptionPane.YES_NO_OPTION);

try {

ps.executeUpdate(\"update student set student_Name='\" + xm.getText().trim() +

\"',student_Sex='\" + sex.getText().trim() +

\"',born_Date='\"

+ rq.getText().trim() + \"',class_NO='\" + bh.getSelectedItem()+ \"',tele_Number='\" + tel.getText().trim() + \"',ru_Date='\" + rxrq.getText().trim() + \"',address='\" +

address.getText().trim() + \"',comment='\"

+ comment.getText().trim() + \"'where student_ID='\" + xh.getText().trim() + \"'\");

JOptionPane.showMessageDialog(null, \"修改学籍成功\"); //this.dispose(); }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace(); } }

void delete_actionPerformed(ActionEvent e) {

int v=JOptionPane.showConfirmDialog(this,\"确定删除吗?将删除所有此学生信息\用户确认\

JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);

if(v==JOptionPane.OK_OPTION) { try {

ps.executeUpdate(\"delete from student where student_ID='\" + xh.getText().trim() +

\"'\");

ps.executeUpdate(\"delete from result where student_ID='\" + xh.getText().trim() + \"'\"); Log log=new Log();

25

计算机科学与技术学院 课程设计报告

log.addLog(\"\\r\\r\修改\"+xh.getText().trim()+\"成功\"); log.closeStream();

JOptionPane.showMessageDialog(null, \"删除学籍成功\"); //this.dispose(); }

catch (SQLException sqle) {

String error = sqle.getMessage();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

} } try {

Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); Connection con = DriverManager.getConnection( \"jdbc:odbc:lee\

\"sa\

ps = con.createStatement(ResultSet.

TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY); }

catch (Exception err) {

String error = err.getMessage(); Log log=new Log();

log.addLog(\"\\r\\r\ log.closeStream();

JOptionPane.showMessageDialog(null, error);

}

try {

rs = ps.executeQuery(\"select * from student\"); //读取数据库 if (rs.next()) {

xh.setText(rs.getString(\"student_ID\")); xm.setText(rs.getString(\"student_Name\")); sex.setText(rs.getString(\"student_Sex\"));

rq.setText(rs.getString(\"born_Date\").substring(0, 10)); bh.addItem(rs.getString(\"class_NO\"));

tel.setText(rs.getString(\"tele_Number\"));

rxrq.setText(rs.getString(\"ru_Date\").substring(0, 10)); address.setText(rs.getString(\"address\"));

26

计算机科学与技术学院 课程设计报告

comment.setText(rs.getString(\"comment\")); } }

catch (SQLException sqle) {

String error = sqle.getMessage(); Log log=new Log();

log.addLog(\"\\r\\r\修改学籍错误\"+error); log.closeStream();

JOptionPane.showMessageDialog(null, error); sqle.printStackTrace();

} }

void cancel_actionPerformed(ActionEvent e) { this.dispose(); }

void bh_actionPerformed(ActionEvent e) { } }

class xgxjxx_first_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_first_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.first_actionPerformed(e); } }

class xgxjxx_next_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

27

计算机科学与技术学院 课程设计报告

xgxjxx_next_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.next_actionPerformed(e); } }

class xgxjxx_previous_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_previous_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.previous_actionPerformed(e); } }

class xgxjxx_last_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_last_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.last_actionPerformed(e); } }

class xgxjxx_gxjl_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_gxjl_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

28

计算机科学与技术学院 课程设计报告

adaptee.gxjl_actionPerformed(e); } }

class xgxjxx_xgxl_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_xgxl_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.xgxl_actionPerformed(e); } }

class xgxjxx_delete_actionAdapter

implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_delete_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.delete_actionPerformed(e); } }

class xgxjxx_cancel_actionAdapter implements java.awt.event.ActionListener { xgxjxx adaptee;

xgxjxx_cancel_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.cancel_actionPerformed(e); } }

class xgxjxx_bh_actionAdapter implements java.awt.event.ActionListener { xgxjxx adaptee;

29

计算机科学与技术学院 课程设计报告

xgxjxx_bh_actionAdapter(xgxjxx adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.bh_actionPerformed(e); } }

8. 总计分析

通过对网络编程的学习,我们初步掌握了通过编程实现学生信息管理系统的主要核心,实现了一个简单的学生信息管理系统。

本系统在目前的调试中,基本达到了当初的设计要求,设计上基本合理,功能基本完善,能够做到对学生各项档案信息的查询,删除,添加,修改等基本功能。其次本系统代码在附录中只给出了一部分,因为很多操作都是类似的,多以代码的主要轮廓应该比较清晰。 由于各种原因,我们设计的学生档案管理系统只完成了几个主要的功能实现,还存在着一些问题有待解决,系统设计的还不够精致同时也存在着很多的不足与缺陷,这还需要更我们进一步的完善。

首先是管理员的注册功能,这个功能应当设计在管理员系统管理内部,以保证其安全性,控制其注册范围,因此管理员一般是不可以初测的,这就保证了管理系统的安全性、保密性。 其次是学生的档案信息,在这个部分中录入的信息并不全面,只是最基本的信息,主要是完成了对学生学籍,课程,成绩和其他一些基本信息的操作。而没有对学生的退学,转学的功能进行考虑。

在这个学生管理系统的页面设计中,也有许多的不足,页面设计很不够精致,这些都需要去完善的。

对于这个系统的种种不足之处需要我们更进一步的去完善。其中的不足有待更进一步的弥补,这些都需要在使用发现与修改。希望用户能够多提意见。

9. 参考文献

《面向对象程序设计——JAVA》 张白一 崔尚森 著 西安电子科技大学出版社 《JAVA信息系统设计与开发实例》 黄明 梁旭 著 机械工业出版社

30

因篇幅问题不能全部显示,请点此查看更多更全内容