搜索
您的当前位置:首页正文

JAVA课程设计报告学生信息管理系统

来源:独旅网
 .

JAVA程序设计 课程设计报告

课 题: 学生信息管理系统 姓 名:

学 号: ************ 同组姓名:

专业班级: 网络工程11102班 指导教师:

设计时间: 2013-6-24

评阅意见: 评定成绩: 指导老师签名: 年 月 日 教育资料

.

目录

1. 系统描述 .......................................................................................................................................................3

1.1设计目的 ................................................................................................................................................3 1.2 需求分析 ...............................................................................................................................................3

1.21 设计任务要求 ..........................................................................................................................3 1.2 2系统功能需求分析 .................................................................................................................4 1.23界面构建 .....................................................................................................................................4

2.分析与设计 .........................................................................................................................................................5

2.1功能模块分析 .......................................................................................................................................5

2.11图形用户界面的设计 ..............................................................................................................6 2.12个人信息管理模块 ............................................................................................................... 16 2.13 选课信息管理模块 .............................................................................................................. 23 2.14奖励信息管理模块 ............................................................................................................... 28 2.4 测试数据和数据结果 ................................................................................................................... 32 3.系统测试 .......................................................................................................................................................... 34

运行截图 .................................................................................................................................................... 34 3.1用户界面 ............................................................................................................................................. 34 3. 2个人信息管理 ................................................................................................................................... 34 3. 3 选课信息管理 .................................................................................................................................. 35 3. 4 奖励信息管理 .................................................................................................................................. 35 4.心得体会 .......................................................................................................................................................... 36 5.参考文献 .......................................................................................................................................................... 37 6.附录 ................................................................................................................................................................... 37

教育资料

.

1. 系统描述

1.1设计目的

本程序用于用户对少量学生信息进行简单的管理,本程序针对于对安全

系数要求不高,操作不是很复杂的小型客户开发。本程序可以实现对学生信息的录入、查询、修改、删除等操作,同时支持查看所有学生信息,功能完善,界面简洁美观,布局合理,操作简便,简单易用,任何人可轻松操作。同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低。本程序数据库采用SQL server2005进行数据存储,该数据库可实现关系较为简单的数据管理。

1.2 需求分析

利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。我这次的课题就是设计与实现一个学生信息管理系统。

1.21 设计任务要求

该学生信息管理系统的设计要求主要有以下几点: (1)使用图形用户界面;

(2)用数据库建立几个学生信息表;

(3)能连接数据库并实现对学生信息查询、增、删、改等功能。

教育资料

.

1.2 2系统功能需求分析

系统主要分为以下几个模块:

(1) 个人信息管理 (2) 选课信息管理 (3) 奖励信息管理

系统主要包括以下几项功能: (1)添加学生信息; (2)查询学生信息; (3)删除学生信息; (4)修改学生信息。

1.23界面构建

1、为了便于各种操作,软件采用多窗口的模式。用户可在不同窗口进行相应操作(录入、查询、修改、删除、显示所有学生信息)。

2、主窗口是用户进行各种操作的平台,具体操作在各个独立功能窗口中完成。

3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗口的唯一通道。 4、当用户在进行个别录入、删除或错误输入操作时,会弹出相应对话框提示用户。

5、界面布局尽量合理,各组件位置分布均匀美观。

教育资料

.

2.分析与设计

2.1功能模块分析

以下是学生信息管理系统功能模块关系图,主要包含查询、添加、修改、删除

学生信息等功能。

教育资料

学生信息管理系统 个人信息管理 选课信息管理 奖励信息管理 .

查询,删查询,删 除,修除,修改,插入改,插入 操作 操作

各模块分析如下:

2.11图形用户界面的设计

功能:用户进入时的页面,丰富了整个系统的结构主界面窗口设计函数代码程序如下: package stumanage;

教育资料

查询,删除,修改,插入操作 .

import javax.swing.*; import java.awt.*; import sun.awt.image.*; import java.awt.event.*; /**

*

Title:

*

Description:

*

Copyright: Copyright (c) 2003

*

Company:

* @author not attributable * @version 1.0 */

public class WelcomeFrame extends JFrame {

JPanel jPanel1 = new MyPanel();

ImageIcon imageIcon1 = new ImageIcon(\"beautiful.jpg\"); BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanel2 = new JPanel();

GridBagLayout gridBagLayout1 = new GridBagLayout();

教育资料

.

JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); JButton jButton3 = new JButton(); JButton jButton4 = new JButton(); JButton jButton5 = new JButton();

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

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

public static void main(String[] args) {

WelcomeFrame welcomeFrame = new WelcomeFrame(); welcomeFrame.pack(); welcomeFrame.show(); }

private void jbInit() throws Exception {

教育资料

.

imageIcon1.setDescription(\"beautiful.jpg\"); imageIcon1.setImageObserver(this); jPanel1.setLayout(borderLayout1);

jPanel1.setMinimumSize(new Dimension(600, 400)); jPanel1.setPreferredSize(new Dimension(600, 420)); this.setLocale(java.util.Locale.getDefault()); this.setResizable(true);

this.setSize(new Dimension(747, 396)); this.setState(Frame.NORMAL);

jPanel2.setBackground(UIManager.getColor(\"RadioButtonMenuItem.selectionBackground\"));

jPanel2.setForeground(Color.black);

jPanel2.setMinimumSize(new Dimension(100, 30)); jPanel2.setPreferredSize(new Dimension(100, 400)); jPanel2.setLayout(gridBagLayout1); jButton1.setToolTipText(\" 个人信息管理\"); jButton1.setText(\" 个人信息管理\"); jButton1.addActionListener(new

WelcomeFrame_jButton1_actionAdapter(this)); jButton2.setToolTipText(\" 选课信息管理\"); jButton2.setText(\" 选课信息管理\");

教育资料

.

jButton2.addActionListener(new

WelcomeFrame_jButton2_actionAdapter(this)); jButton3.setToolTipText(\"奖励信息管理\"); jButton3.setText(\"奖励信息管理\"); jButton3.addActionListener(new

WelcomeFrame_jButton3_actionAdapter(this)); jButton4.addActionListener(new

WelcomeFrame_jButton4_actionAdapter(this)); jButton5.setToolTipText(\"退出系统\"); jButton5.setText(\"退出系统\"); jButton5.addActionListener(new

WelcomeFrame_jButton5_actionAdapter(this));

this.getContentPane().add(jPanel1, BorderLayout.CENTER); jPanel1.add(jPanel2, BorderLayout.EAST);

jPanel2.add(jButton1, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, Insets(0, 0, 0, 0), 0, 0));

jPanel2.add(jButton2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0

,GridBagConstraints.CENTER, Insets(9, 0, 0, 21), 0, 0));

GridBagConstraints.NONE,

new

GridBagConstraints.NONE,

new

教育资料

.

jPanel2.add(jButton3, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0

,GridBagConstraints.CENTER, Insets(10, 0, 0, 10), 0, 0));

jPanel2.add(jButton5, new GridBagConstraints(0, 4, 2, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, Insets(0, 0, 0, 11), 21, 0));

jPanel2.add(jButton4, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, Insets(9, 0, 13, 0), 12, 0)); }

class MyPanel extends JPanel {

public void paintComponent(Graphics g) { super.paintComponent(g); imageIcon1.paintIcon(this, g, 0, 0); } }

GridBagConstraints.NONE,

new

GridBagConstraints.NONE,

new

GridBagConstraints.NONE,

new

教育资料

.

void jButton4_actionPerformed(ActionEvent e) { MainFrame.main( null ); this.hide();

MainFrame.jTabbedPane1.setSelectedComponent( MainFrame.jPanel4); }

void jButton1_actionPerformed(ActionEvent e) { MainFrame.main( null ); this.hide(); }

void jButton3_actionPerformed(ActionEvent e) { MainFrame.main( null ); this.hide();

MainFrame.jTabbedPane1.setSelectedComponent( MainFrame.jPanel3); }

void jButton2_actionPerformed(ActionEvent e) { MainFrame.main( null ); this.hide();

MainFrame.jTabbedPane1.setSelectedComponent( MainFrame.jPanel2);

教育资料

.

}

void jButton5_actionPerformed(ActionEvent e) { System.exit(0); } } class

WelcomeFrame_jButton4_actionAdapter

implements

java.awt.event.ActionListener { WelcomeFrame adaptee;

WelcomeFrame_jButton4_actionAdapter(WelcomeFrame adaptee) { this.adaptee = adaptee; }

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

WelcomeFrame_jButton1_actionAdapter

implements

java.awt.event.ActionListener {

教育资料

.

WelcomeFrame adaptee;

WelcomeFrame_jButton1_actionAdapter(WelcomeFrame adaptee) { this.adaptee = adaptee; }

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

WelcomeFrame_jButton3_actionAdapter

implements

java.awt.event.ActionListener { WelcomeFrame adaptee;

WelcomeFrame_jButton3_actionAdapter(WelcomeFrame adaptee) { this.adaptee = adaptee; }

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

教育资料

.

class WelcomeFrame_jButton2_actionAdapter implements

java.awt.event.ActionListener { WelcomeFrame adaptee;

WelcomeFrame_jButton2_actionAdapter(WelcomeFrame adaptee) { this.adaptee = adaptee; }

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

WelcomeFrame_jButton5_actionAdapter

implements

java.awt.event.ActionListener { WelcomeFrame adaptee;

WelcomeFrame_jButton5_actionAdapter(WelcomeFrame adaptee) { this.adaptee = adaptee; }

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

教育资料

.

}

2.12个人信息管理模块

功能:对学生个人信息进行管理,并且具有查询,删除,修改,插入等功能。 代码如下:

Font f = new java.awt.Font(\"SansSerif\

UIManager.put(\"Label.font\

UIManager.put(\"Label.foreground\UIManager.put(\"Button.font\UIManager.put(\"Menu.font\UIManager.put(\"MenuItem.font\UIManager.put(\"List.font\UIManager.put(\"CheckBox.font\UIManager.put(\"RadioButton.font\UIManager.put(\"ComboBox.font\ UIManager.put(\"TextArea.font\ UIManager.put(\"dbTextArea.font\ UIManager.put(\"font\

MainFrame mainFrame = new MainFrame();

mainFrame.setFont(new java.awt.Font(\"SansSerif\ mainFrame.pack();

教育资料

.

mainFrame.setSize(600,450); mainFrame.show(); }

private void jbInit() throws Exception { font1 = new java.awt.Font(\"SansSerif\ this.getContentPane().setLayout(paneLayout1); jPanel1.setLayout(borderLayout1);

jdbNavToolBar1.setDebugGraphicsOptions(0); jdbNavToolBar1.setAlignment(FlowLayout.CENTER); jPanel5.setLayout(borderLayout2); database1.setConnection(new

com.borland.dx.sql.dataset.ConnectionDescriptor(\"jdbc:microsoft:sqlserver://localhost:1433;databaseName=student\

\"sa\

\"sa\

false,

\"com.microsoft.jdbc.sqlserver.SQLServerDriver\")); database1.setDatabaseName(\"\");

jPanel6.setFont(new java.awt.Font(\"SansSerif\ jPanel6.setMinimumSize(new Dimension(50, 100)); jPanel6.setPreferredSize(new Dimension(50, 110)); jPanel6.setLayout(borderLayout3);

jPanel7.setFont(new java.awt.Font(\"SansSerif\ jPanel7.setMinimumSize(new Dimension(100, 30));

教育资料

.

jPanel7.setPreferredSize(new Dimension(100, 40)); jPanel7.setLayout(flowLayout1);

jPanel8.setFont(new java.awt.Font(\"SansSerif\ jPanel8.setMinimumSize(new Dimension(10, 10)); jPanel8.setLayout(gridBagLayout2); jLabel1.setText(\"学号:\");

flowLayout1.setAlignment(FlowLayout.LEFT);

jLabel2.setHorizontalAlignment(SwingConstants.RIGHT); jLabel2.setText(\"姓名:\");

jLabel3.setHorizontalAlignment(SwingConstants.RIGHT); jLabel3.setText(\"性别:\");

jLabel4.setHorizontalAlignment(SwingConstants.RIGHT); jLabel4.setText(\"班级:\");

jLabel5.setHorizontalAlignment(SwingConstants.RIGHT); jLabel5.setText(\"生日:\");

jLabel6.setHorizontalAlignment(SwingConstants.RIGHT); jLabel6.setText(\"电话:\");

jLabel7.setHorizontalAlignment(SwingConstants.RIGHT); jLabel7.setText(\"地址:\"); jButton1.setText(\"修改\");

jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this)); jButton2.setText(\"取消\");

教育资料

.

jdbTable1.setFont(new java.awt.Font(\"SansSerif\ jdbTable1.setDataSet(queryDataSet2);

jTabbedPane1.setFont(new java.awt.Font(\"SansSerif\ jTabbedPane1.setMinimumSize(new Dimension(500, 194)); jTabbedPane1.setPreferredSize(new Dimension(500, 607)); queryDataSet2.setProvider(null); queryDataSet2.setQuery(new

com.borland.dx.sql.dataset.QueryDescriptor(database1,

\"SELECT

student_info.student_id,student_info.student_name,student_info.student_class,student_info.stud\" +

\"ent_sex,student_info.student_birthday,student_info.student_tel,student_info.student_address \" +

\"FROM student.dbo.student_info\ column8.setCaption(\"生日\");

column8.setColumnName(\"student_birthday\");

column8.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP); column8.setDisplayMask(\"yyyy-MM-dd\"); column8.setEditMask(\"yyyy-MM-dd\"); column8.setSchemaName(\"dbo\"); column8.setTableName(\"student_info\"); column8.setWidth(10);

教育资料

.

column8.setServerColumnName(\"student_birthday\"); column8.setSqlType(93); column9.setCaption(\"学号\");

column9.setColumnName(\"student_id\");

column9.setDataType(com.borland.dx.dataset.Variant.INT); column9.setEditMask(\"######\");

column9.setFont(new java.awt.Font(\"SansSerif\ column9.setRowId(true);

column9.setSchemaName(\"dbo\"); column9.setTableName(\"student_info\"); column9.setWidth(10);

column9.setServerColumnName(\"student_id\"); column9.setSqlType(4); column10.setCaption(\"姓名\");

column10.setColumnName(\"student_name\");

column10.setDataType(com.borland.dx.dataset.Variant.STRING); column10.setPrecision(50); column10.setSchemaName(\"dbo\"); column10.setTableName(\"student_info\"); column10.setWidth(10);

column10.setServerColumnName(\"student_name\"); column10.setSqlType(12);

教育资料

.

column11.setCaption(\"班级\");

column11.setColumnName(\"student_class\");

column11.setDataType(com.borland.dx.dataset.Variant.INT); column11.setSchemaName(\"dbo\"); column11.setTableName(\"student_info\"); column11.setWidth(10);

column11.setServerColumnName(\"student_class\"); column11.setSqlType(4); column12.setCaption(\"性别\");

column12.setColumnName(\"student_sex\");

column12.setDataType(com.borland.dx.dataset.Variant.STRING); column12.setPrecision(50); column12.setSchemaName(\"dbo\"); column12.setTableName(\"student_info\"); column12.setWidth(10);

column12.setServerColumnName(\"student_sex\"); column12.setSqlType(12); column13.setCaption(\"联系电话\"); column13.setColumnName(\"student_tel\");

column13.setDataType(com.borland.dx.dataset.Variant.STRING); column13.setPrecision(50); column13.setSchemaName(\"dbo\");

教育资料

.

column13.setTableName(\"student_info\"); column13.setWidth(10);

column13.setServerColumnName(\"student_tel\"); column13.setSqlType(12); column14.setCaption(\"联系地址\");

column14.setColumnName(\"student_address\");

column14.setDataType(com.borland.dx.dataset.Variant.STRING); column14.setPrecision(150); column14.setSchemaName(\"dbo\"); column14.setTableName(\"student_info\"); column14.setWidth(14);

column14.setServerColumnName(\"student_address\"); column14.setSqlType(12);

queryDataSet2.setColumns(new Column[] {column9, column10, column11, column12, column8, column13, column14}); queryDataSet2.addNavigationListener(new MainFrame_queryDataSet2_navigationAdapter(this)); jPanel1.setFont(new java.awt.Font(\"SansSerif\ jPanel1.setPreferredSize(new Dimension(472, 580)); jPanel5.setFont(new java.awt.Font(\"SansSerif\

tableScrollPane1.setFont(new java.awt.Font(\"SansSerif\

tableScrollPane1.getViewport().setFont(new java.awt.Font(\"SansSerif\

教育资料

.

this.setFont(new java.awt.Font(\"SansSerif\ jPanel2.setFont(new java.awt.Font(\"SansSerif\ jPanel2.setLayout(borderLayout4); jLabel8.setText(\"学号:\");

jLabel9.setRequestFocusEnabled(true); jLabel9.setText(\"姓名: \"); jLabel10.setText(\"班级: \"); jLabel11.setText(\"性别: \"); jdbNavToolBar2.setEnabled(false);

jdbNavToolBar2.setAlignment(FlowLayout.CENTER); jPanel10.setMinimumSize(new Dimension(300, 10)); jPanel10.setPreferredSize(new Dimension(300, 10));

jPanel10.setLayout(borderLayout5);

2.13 选课信息管理模块

功能:对学生选课信息进行管理,方便学生查询,具有查询,修改,删除,插入功能 模块代码如下:

jLabel12.setText(\"学校设置可选课程信息\");

jPanel11.setMinimumSize(new Dimension(200, 10)); jPanel11.setPreferredSize(new Dimension(200, 10)); jPanel11.setLayout(borderLayout6); jLabel13.setText(\"个人已选课程信息\"); jButton3.setText(\"选课\");

教育资料

.

jButton3.addActionListener(new MainFrame_jButton3_actionAdapter(this)); jButton4.setText(\"退课\");

jButton4.addActionListener(new MainFrame_jButton4_actionAdapter(this)); jPanel12.setLayout(xYLayout1); queryDataSet1.setReadOnly(false); queryDataSet1.setQuery(new

com.borland.dx.sql.dataset.QueryDescriptor(database1,

\"SELECT

student_coursecode.course_code,student_coursecode.course_name,student_coursecode.course_period\" +

\coursecode.course_address\" +

\" FROM student.dbo.student_coursecode\ column1.setCaption(\"课程代号\"); column1.setColumnName(\"course_code\");

column1.setDataType(com.borland.dx.dataset.Variant.INT); column1.setRowId(true);

column1.setSchemaName(\"dbo\");

column1.setTableName(\"student_coursecode\"); column1.setWidth(10);

column1.setServerColumnName(\"course_code\"); column1.setSqlType(4);

教育资料

.

column2.setCaption(\"课程名称\");

column2.setColumnName(\"course_name\");

column2.setDataType(com.borland.dx.dataset.Variant.STRING); column2.setPrecision(50); column2.setSchemaName(\"dbo\");

column2.setTableName(\"student_coursecode\"); column2.setWidth(10);

column2.setServerColumnName(\"course_name\"); column2.setSqlType(12); column3.setCaption(\"课程学时\");

column3.setColumnName(\"course_period\");

column3.setDataType(com.borland.dx.dataset.Variant.INT); column3.setSchemaName(\"dbo\");

column3.setTableName(\"student_coursecode\"); column3.setWidth(10);

column3.setServerColumnName(\"course_period\"); column3.setSqlType(4);

column4.setCaption(\"课程学分\");

column4.setColumnName(\"course_credit\");

column4.setDataType(com.borland.dx.dataset.Variant.DOUBLE); column4.setSchemaName(\"dbo\");

column4.setTableName(\"student_coursecode\");

教育资料

.

column4.setWidth(10);

column4.setServerColumnName(\"course_credit\"); column4.setSqlType(6);

column5.setCaption(\"任课老师\");

column5.setColumnName(\"course_teacher\");

column5.setDataType(com.borland.dx.dataset.Variant.STRING); column5.setPrecision(50); column5.setSchemaName(\"dbo\");

column5.setTableName(\"student_coursecode\"); column5.setWidth(10);

column5.setServerColumnName(\"course_teacher\"); column5.setSqlType(12); column6.setCaption(\"上课地点\");

column6.setColumnName(\"course_address\");

column6.setDataType(com.borland.dx.dataset.Variant.STRING); column6.setPrecision(50); column6.setSchemaName(\"dbo\");

column6.setTableName(\"student_coursecode\"); column6.setWidth(10);

column6.setServerColumnName(\"course_address\"); column6.setSqlType(12);

queryDataSet1.setColumns(new Column[] {column1, column2, 教育资料

column3,

.

column4, column5, column6});

jdbTable2.setDataSet(queryDataSet1); jdbTable2.setEditable(false); column7.setCaption(\"学生姓名\");

column7.setColumnName(\"course_name\");

column7.setDataType(com.borland.dx.dataset.Variant.STRING); column7.setPrecision(50); column7.setSchemaName(\"dbo\"); column7.setTableName(\"student_course\"); column7.setWidth(10);

column7.setServerColumnName(\"course_name\"); column7.setSqlType(12); jLabel14.setText(\"学号:\"); jLabel15.setText(\"性别: \");

jLabel16.setRequestFocusEnabled(true); jLabel16.setText(\"姓名: \"); jLabel17.setText(\"班级: \"); jPanel3.setLayout(borderLayout7);

jPanel15.setMinimumSize(new Dimension(200, 100)); jPanel15.setPreferredSize(new Dimension(200, 250)); jPanel15.setLayout(borderLayout8); jPanel14.setLayout(borderLayout9);

教育资料

.

jPanel14.setMinimumSize(new Dimension(300, 50)); jPanel14.setPreferredSize(new Dimension(300, 50)); jPanel14.setVerifyInputWhenFocusTarget(true); jPanel13.setPreferredSize(new Dimension(404, 40)); jPanel16.setPreferredSize(new Dimension(280, 10));

jPanel16.setLayout(gridBagLayout1);

2.14奖励信息管理模块

功能:对学生奖励信息进行管理,具有插入,删除,修改,查询功能 模块代码如下:

jLabel18.setText(\"获奖时间:\"); jLabel19.setText(\"获奖名称:\"); jdbTextField1.setText(\"jdbTextField1\"); jdbTextField1.setColumnName(\"gcheck_time\"); jdbTextField1.setDataSet(qSet_jiangli); jdbTextField2.setText(\"jdbTextField2\"); jdbTextField2.setColumnName(\"gcheck_title\"); jdbTextField2.setDataSet(qSet_jiangli); jdbTextArea1.setText(\"jdbTextArea1\"); jdbTextArea1.setColumnName(\"gcheck_disc\");

教育资料

.

jdbTextArea1.setDataSet(qSet_jiangli); jPanel17.setLayout(borderLayout10); jButton5.setText(\"增加\"); jButton6.setText(\"取消\");

jPanel18.setLayout(borderLayout11); borderLayout11.setVgap(10);

jLabel20.setText(\"获奖内容具体描述:\"); jdbTextField3.setEnabled(true); jdbTextField3.setAlignmentX((float) 0.5); jdbTextField3.setDoubleBuffered(false);

jdbTextField3.setMinimumSize(new Dimension(10, 22)); jdbTextField3.setPreferredSize(new Dimension(15, 22)); jdbTextField3.setMargin(new Insets(1, 3, 1, 3));

jdbTextField3.setText(\"\"); qSet_jiangli.setQuery(new

com.borland.dx.sql.dataset.QueryDescriptor(database1,

\"SELECT

student_gcheck.gcheck_id,student_gcheck.gcheck_no,student_gcheck.gcheck_name,student_gcheck.gc\" +

\"heck_time,student_gcheck.gcheck_title,student_gcheck.gcheck_disc \" +

\"FROM student.dbo.student_gcheck\ column20.setCaption(\"获奖时间\");

教育资料

.

column20.setColumnName(\"gcheck_time\");

column20.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP); column20.setEditMask(\"yyyy-MM-dd\"); column20.setDisplayMask( \"yyyy-MM-dd\"); column20.setSchemaName(\"dbo\"); 教育资料column20.setTableName(\"student_gcheck\"); column20.setWidth(20);

column20.setServerColumnName(\"gcheck_time\"); column20.setSqlType(93); jdbTable4.setDataSet(qSet_jiangli); column21.setColumnName(\"gcheck_id\");

column21.setDataType(com.borland.dx.dataset.Variant.INT); column21.setRowId(true);

column21.setSchemaName(\"dbo\"); column21.setTableName(\"student_gcheck\");

column21.setVisible(com.borland.jb.util.TriStateProperty.FALSE); column21.setServerColumnName(\"gcheck_id\"); column21.setSqlType(4);

column22.setColumnName(\"gcheck_no\");

column22.setDataType(com.borland.dx.dataset.Variant.INT); column22.setSchemaName(\"dbo\"); column22.setTableName(\"student_gcheck\");

.

column22.setVisible(com.borland.jb.util.TriStateProperty.FALSE); column22.setServerColumnName(\"gcheck_no\"); column22.setSqlType(4);

column23.setColumnName(\"gcheck_name\");

column23.setDataType(com.borland.dx.dataset.Variant.STRING); 教育资料column23.setPrecision(10); column23.setSchemaName(\"dbo\"); column23.setTableName(\"student_gcheck\");

column23.setVisible(com.borland.jb.util.TriStateProperty.FALSE); column23.setServerColumnName(\"gcheck_name\"); column23.setSqlType(1);

column24.setCaption(\"获奖名称\"); column24.setColumnName(\"gcheck_title\");

column24.setDataType(com.borland.dx.dataset.Variant.STRING); column24.setPrecision(50); column24.setSchemaName(\"dbo\"); column24.setTableName(\"student_gcheck\"); column24.setWidth(20);

column24.setServerColumnName(\"gcheck_title\"); column24.setSqlType(12); column25.setCaption(\"具体说明\"); column25.setColumnName(\"gcheck_disc\");

.

column25.setDataType(com.borland.dx.dataset.Variant.STRING); column25.setPrecision(50); column25.setSchemaName(\"dbo\"); column25.setTableName(\"student_gcheck\"); column25.setWidth(40);

column25.setServerColumnName(\"gcheck_disc\"); column25.setSqlType(12);

qSet_jiangli.setColumns(new Column[] {column21, column22, column23, column20, column24, column25});

jdbNavToolBar3.setAlignment(FlowLayout.CENTER);

jPanel3.addFocusListener(new MainFrame_jPanel3_focusAdapter(this)); this.getContentPane().add(jTabbedPane1, new \"jTabbedPane1\

PaneConstraints.ROOT, 1.0f));

PaneConstraints(\"jTabbedPane1\

2.4 测试数据和数据结果

教育资料

.

教育资料

.

3.系统测试

运行截图 3.1用户界面

3. 2个人信息管理

教育资料

.

3. 3 选课信息管理

3. 4 奖励信息管理

教育资料

.

4.心得体会

做课程设计让我对java有了新的认识,首先我接触了很多上课见过见过但没有实际用过的类和方法,让我对编程有了许多新的思想。

大一学了C语言,虽然当时学的还不错,由于学的都是入门知识,所以自己做的都是DOS下执行的程序,虽然可以实现一定的功能,但和自己平时用的软件相差很大。这学期刚开课学java感觉没什么新鲜感,它的跨平台特性也只是听听,根本没有认识,知道学到第七章图形界面用户编程的时候,我发现学会之后自己可以做出来的软件就更接*时使用的软件了,不过由于平时学习不刻苦,到时没有时间静下心来写java代码,知道做课程设计,才静下心来开始研究java,结合以前的编程知识,做起了自己的程序。

我曾经用c语言做过这个系统,做起来会比较熟练,同时想通过做课设学习一点数据库的知识,感觉这些知识更贴近实际应用,选好之后开始准备课设,先从最简单的主窗体,到主窗体的菜单,组件添加,再到各个功能的独立窗体的建立,再到最后的数据库连接,功能的实现,一步步走来,收获颇多。其中独立窗体中的组件排版是碰到的第一个问题,最简单的方法是在建每个窗体时把所有需要的组件全部重新添加进去,但是这样代码会很长,而却会多占很多内存空间,于是我决定把个功能窗体中共同的组件在一个新方法中统一加载,为了减小占内存空间,组建的在主类的构造方法中生成,所有独立功能窗口公用组件,这样既减少了代码额长度,又提高了程序的内存利用率。还有很多问题,都在权衡之后得到了较优的解决方法。它能够使这次课设还让我对java的跨平台性有了进一步认识,当我学好代码兴致勃勃的想把它做成exe可执行文件时,在网上搜索之后发现它似乎很难实现,就是应为它的java语言的实现机制,通过jre来执行执行java代码,而不是调用系统本地代码。除此之外我还学到了新的编程技巧,比如对try,catch的运用。刚学的时候就是照书本上的打,很不情愿但是必须打的代码,在做课设时,我发现他又很神奇的功能可以帮助我解决用其他办法不好解决的问题,比如关闭窗口。刚开始程序只有主窗口时,关闭很好实现,但随着程序功能的完善,需要关闭的窗口越来越多,需要关闭的类型也便多了,到了关闭Dialog的时候,发现Dialog不能强制转化为Frame,如果想用前面的方法管还得把多处代码进行修改,不过我想到了用try来解决这个问题。

教育资料

.

5.参考文献

[1] 印旻.Java与面向对象程序设计教程.北京:清华大学出版社,1999.11 [2] 宛延闿.Java程序设计实例剖析.北京:国防工业出版社,2003.03 [3] 周晓聪.面向对象程序设计与Java语言.北京:机械工业出版社,2004.03 [4] 王克宏、郝建文. Java技术教程. 北京:清华大学出版社,2002.9月

6.附录

源代码:

package stumanage;

import javax.swing.*; import javax.swing.plaf.*;

import com.borland.dbswing.*; import java.awt.*;

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

*

Title:

*

Description:

*

Copyright: Copyright (c) 2003

*

Company:

* @author not attributable * @version 1.0 */

public class MainFrame extends JFrame {

PaneLayout paneLayout1 = new PaneLayout();

教育资料

.

static JTabbedPane jTabbedPane1 = new JTabbedPane(); static JPanel jPanel1 = new JPanel(); static JPanel jPanel2 = new JPanel(); static JPanel jPanel3 = new JPanel(); static JPanel jPanel4 = new JPanel(); static JPanel jPanel5 = new JPanel();

BorderLayout borderLayout1 = new BorderLayout(); JdbNavToolBar jdbNavToolBar1 = new JdbNavToolBar(); BorderLayout borderLayout2 = new BorderLayout(); Database database1 = new Database(); JPanel jPanel6 = new JPanel();

BorderLayout borderLayout3 = new BorderLayout(); JPanel jPanel7 = new JPanel(); JPanel jPanel8 = new JPanel();

FlowLayout flowLayout1 = new FlowLayout(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton();

TableScrollPane tableScrollPane1 = new TableScrollPane(); JdbTable jdbTable1 = new JdbTable();

QueryDataSet queryDataSet2 = new QueryDataSet(); Column column8 = new Column(); Column column9 = new Column(); Column column10 = new Column(); Column column11 = new Column(); Column column12 = new Column(); Column column13 = new Column(); Column column14 = new Column(); Font font1;

BorderLayout borderLayout4 = new BorderLayout(); JPanel jPanel9 = new JPanel(); JLabel jLabel8 = new JLabel(); JLabel jLabel9 = new JLabel(); JLabel jLabel10 = new JLabel(); JLabel jLabel11 = new JLabel();

JdbNavToolBar jdbNavToolBar2 = new JdbNavToolBar(); JPanel jPanel10 = new JPanel(); JPanel jPanel11 = new JPanel();

教育资料

.

JPanel jPanel12 = new JPanel();

BorderLayout borderLayout5 = new BorderLayout(); JLabel jLabel12 = new JLabel();

TableScrollPane tableScrollPane2 = new TableScrollPane(); JdbTable jdbTable2 = new JdbTable(); JLabel jLabel13 = new JLabel();

TableScrollPane tableScrollPane3 = new TableScrollPane(); BorderLayout borderLayout6 = new BorderLayout(); JButton jButton3 = new JButton(); JButton jButton4 = new JButton();

XYLayout xYLayout1 = new XYLayout();

QueryDataSet queryDataSet1 = new QueryDataSet(); Column column1 = new Column(); Column column2 = new Column(); Column column3 = new Column(); Column column4 = new Column(); Column column5 = new Column(); Column column6 = new Column(); Column column7 = new Column(); JdbTable jdbTable3 = new JdbTable(); JLabel jLabel14 = new JLabel(); JLabel jLabel15 = new JLabel(); JPanel jPanel13 = new JPanel(); JLabel jLabel16 = new JLabel(); JLabel jLabel17 = new JLabel();

BorderLayout borderLayout7 = new BorderLayout(); JPanel jPanel14 = new JPanel(); JPanel jPanel15 = new JPanel();

TableScrollPane tableScrollPane4 = new TableScrollPane(); BorderLayout borderLayout8 = new BorderLayout(); BorderLayout borderLayout9 = new BorderLayout(); JPanel jPanel16 = new JPanel(); JPanel jPanel17 = new JPanel(); JPanel jPanel18 = new JPanel();

JdbTable jdbTable4 = new JdbTable();

GridBagLayout gridBagLayout1 = new GridBagLayout(); JLabel jLabel18 = new JLabel(); JLabel jLabel19 = new JLabel();

JdbTextField jdbTextField1 = new JdbTextField(); JdbTextField jdbTextField2 = new JdbTextField(); JdbTextArea jdbTextArea1 = new JdbTextArea();

BorderLayout borderLayout10 = new BorderLayout(); JButton jButton5 = new JButton(); JButton jButton6 = new JButton();

教育资料

.

BorderLayout borderLayout11 = new BorderLayout(); JLabel jLabel20 = new JLabel();

JdbTextField jdbTextField3 = new JdbTextField(); JdbTextField jdbTextField4 = new JdbTextField(); JdbTextField jdbTextField5 = new JdbTextField(); JdbTextField jdbTextField7 = new JdbTextField(); JdbTextField jdbTextField8 = new JdbTextField(); JPanel jPanel19 = new JPanel();

GridBagLayout gridBagLayout2 = new GridBagLayout(); ButtonGroup buttonGroup1 = new ButtonGroup();

JdbRadioButton jdbRadioButton2 = new JdbRadioButton(); JdbRadioButton jdbRadioButton1 = new JdbRadioButton(); JdbNavField jdbNavField1 = new JdbNavField(); JdbTextField jdbTextField9 = new JdbTextField(); JdbTextField jdbTextField10 = new JdbTextField(); QueryDataSet queryDataSet4 = new QueryDataSet(); QueryDataSet qSet_course = new QueryDataSet(); Column column15 = new Column(); Column column16 = new Column(); Column column18 = new Column(); Column column19 = new Column();

JdbTextField jdbTextField11 = new JdbTextField(); JdbNavField jdbNavField2 = new JdbNavField(); JdbNavField jdbNavField3 = new JdbNavField(); JdbTextField jdbTextField12 = new JdbTextField(); JdbTextField jdbTextField13 = new JdbTextField(); JdbTextField jdbTextField14 = new JdbTextField(); QueryDataSet qSet_jiangli = new QueryDataSet(); Column column20 = new Column(); Column column21 = new Column(); Column column22 = new Column(); Column column23 = new Column(); Column column24 = new Column(); Column column25 = new Column();

JdbNavToolBar jdbNavToolBar3 = new JdbNavToolBar();

public MainFrame() { try {

jbInit(); }

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

教育资料

.

public static void main(String[] args) { try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }

catch (Exception e) { }

//System.out.println(new javax.swing.UIManager()); Font f = new java.awt.Font(\"SansSerif\UIManager.put(\"Label.font\

UIManager.put(\"Label.foreground\UIManager.put(\"Button.font\UIManager.put(\"Menu.font\UIManager.put(\"MenuItem.font\UIManager.put(\"List.font\

UIManager.put(\"CheckBox.font\UIManager.put(\"RadioButton.font\UIManager.put(\"ComboBox.font\ UIManager.put(\"TextArea.font\ UIManager.put(\"dbTextArea.font\ UIManager.put(\"font\

MainFrame mainFrame = new MainFrame();

mainFrame.setFont(new java.awt.Font(\"SansSerif\ mainFrame.pack();

mainFrame.setSize(600,450); mainFrame.show(); }

private void jbInit() throws Exception {

font1 = new java.awt.Font(\"SansSerif\ this.getContentPane().setLayout(paneLayout1); jPanel1.setLayout(borderLayout1);

jdbNavToolBar1.setDebugGraphicsOptions(0);

jdbNavToolBar1.setAlignment(FlowLayout.CENTER); jPanel5.setLayout(borderLayout2); database1.setConnection(new

com.borland.dx.sql.dataset.ConnectionDescriptor(\"jdbc:microsoft:sqlserver://localhost:1433;databaseName=student\ database1.setDatabaseName(\"\");

jPanel6.setFont(new java.awt.Font(\"SansSerif\ jPanel6.setMinimumSize(new Dimension(50, 100)); jPanel6.setPreferredSize(new Dimension(50, 110)); jPanel6.setLayout(borderLayout3);

教育资料

.

jPanel7.setFont(new java.awt.Font(\"SansSerif\ jPanel7.setMinimumSize(new Dimension(100, 30)); jPanel7.setPreferredSize(new Dimension(100, 40)); jPanel7.setLayout(flowLayout1);

jPanel8.setFont(new java.awt.Font(\"SansSerif\ jPanel8.setMinimumSize(new Dimension(10, 10)); jPanel8.setLayout(gridBagLayout2); jLabel1.setText(\"学号:\");

flowLayout1.setAlignment(FlowLayout.LEFT);

jLabel2.setHorizontalAlignment(SwingConstants.RIGHT); jLabel2.setText(\"姓名:\");

jLabel3.setHorizontalAlignment(SwingConstants.RIGHT); jLabel3.setText(\"性别:\");

jLabel4.setHorizontalAlignment(SwingConstants.RIGHT); jLabel4.setText(\"班级:\");

jLabel5.setHorizontalAlignment(SwingConstants.RIGHT); jLabel5.setText(\"生日:\");

jLabel6.setHorizontalAlignment(SwingConstants.RIGHT); jLabel6.setText(\"电话:\");

jLabel7.setHorizontalAlignment(SwingConstants.RIGHT); jLabel7.setText(\"地址:\"); jButton1.setText(\"修改\");

jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this)); jButton2.setText(\"取消\");

jdbTable1.setFont(new java.awt.Font(\"SansSerif\ jdbTable1.setDataSet(queryDataSet2);

jTabbedPane1.setFont(new java.awt.Font(\"SansSerif\ jTabbedPane1.setMinimumSize(new Dimension(500, 194)); jTabbedPane1.setPreferredSize(new Dimension(500, 607)); queryDataSet2.setProvider(null);

queryDataSet2.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, \"SELECT

student_info.student_id,student_info.student_name,student_info.student_class,student_info.stud\" +

\"ent_sex,student_info.student_birthday,student_info.student_tel,student_info.student_address \" +

\"FROM student.dbo.student_info\ column8.setCaption(\"生日\");

column8.setColumnName(\"student_birthday\");

column8.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP); column8.setDisplayMask(\"yyyy-MM-dd\"); column8.setEditMask(\"yyyy-MM-dd\"); column8.setSchemaName(\"dbo\");

教育资料

.

column8.setTableName(\"student_info\"); column8.setWidth(10);

column8.setServerColumnName(\"student_birthday\"); column8.setSqlType(93); column9.setCaption(\"学号\");

column9.setColumnName(\"student_id\");

column9.setDataType(com.borland.dx.dataset.Variant.INT); column9.setEditMask(\"######\");

column9.setFont(new java.awt.Font(\"SansSerif\ column9.setRowId(true);

column9.setSchemaName(\"dbo\");

column9.setTableName(\"student_info\"); column9.setWidth(10);

column9.setServerColumnName(\"student_id\"); column9.setSqlType(4);

column10.setCaption(\"姓名\");

column10.setColumnName(\"student_name\");

column10.setDataType(com.borland.dx.dataset.Variant.STRING); column10.setPrecision(50);

column10.setSchemaName(\"dbo\");

column10.setTableName(\"student_info\"); column10.setWidth(10);

column10.setServerColumnName(\"student_name\"); column10.setSqlType(12); column11.setCaption(\"班级\");

column11.setColumnName(\"student_class\");

column11.setDataType(com.borland.dx.dataset.Variant.INT); column11.setSchemaName(\"dbo\");

column11.setTableName(\"student_info\"); column11.setWidth(10);

column11.setServerColumnName(\"student_class\"); column11.setSqlType(4);

column12.setCaption(\"性别\");

column12.setColumnName(\"student_sex\");

column12.setDataType(com.borland.dx.dataset.Variant.STRING); column12.setPrecision(50);

column12.setSchemaName(\"dbo\");

column12.setTableName(\"student_info\"); column12.setWidth(10);

column12.setServerColumnName(\"student_sex\"); column12.setSqlType(12);

column13.setCaption(\"联系电话\");

column13.setColumnName(\"student_tel\");

column13.setDataType(com.borland.dx.dataset.Variant.STRING);

教育资料

.

column13.setPrecision(50);

column13.setSchemaName(\"dbo\");

column13.setTableName(\"student_info\"); column13.setWidth(10);

column13.setServerColumnName(\"student_tel\"); column13.setSqlType(12);

column14.setCaption(\"联系地址\");

column14.setColumnName(\"student_address\");

column14.setDataType(com.borland.dx.dataset.Variant.STRING); column14.setPrecision(150);

column14.setSchemaName(\"dbo\");

column14.setTableName(\"student_info\"); column14.setWidth(14);

column14.setServerColumnName(\"student_address\"); column14.setSqlType(12);

queryDataSet2.setColumns(new Column[] {column9, column10, column11, column12, column8, column13, column14});

queryDataSet2.addNavigationListener(new

MainFrame_queryDataSet2_navigationAdapter(this));

jPanel1.setFont(new java.awt.Font(\"SansSerif\ jPanel1.setPreferredSize(new Dimension(472, 580)); jPanel5.setFont(new java.awt.Font(\"SansSerif\

tableScrollPane1.setFont(new java.awt.Font(\"SansSerif\

tableScrollPane1.getViewport().setFont(new java.awt.Font(\"SansSerif\ this.setFont(new java.awt.Font(\"SansSerif\ jPanel2.setFont(new java.awt.Font(\"SansSerif\ jPanel2.setLayout(borderLayout4); jLabel8.setText(\"学号:\");

jLabel9.setRequestFocusEnabled(true); jLabel9.setText(\"姓名: \"); jLabel10.setText(\"班级: \"); jLabel11.setText(\"性别: \");

jdbNavToolBar2.setEnabled(false);

jdbNavToolBar2.setAlignment(FlowLayout.CENTER); jPanel10.setMinimumSize(new Dimension(300, 10)); jPanel10.setPreferredSize(new Dimension(300, 10)); jPanel10.setLayout(borderLayout5);

jLabel12.setText(\"学校设置可选课程信息\");

jPanel11.setMinimumSize(new Dimension(200, 10)); jPanel11.setPreferredSize(new Dimension(200, 10)); jPanel11.setLayout(borderLayout6); jLabel13.setText(\"个人已选课程信息\"); jButton3.setText(\"选课\");

jButton3.addActionListener(new MainFrame_jButton3_actionAdapter(this));

教育资料

.

jButton4.setText(\"退课\");

jButton4.addActionListener(new MainFrame_jButton4_actionAdapter(this)); jPanel12.setLayout(xYLayout1); queryDataSet1.setReadOnly(false);

queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, \"SELECT

student_coursecode.course_code,student_coursecode.course_name,student_coursecode.course_period\" +

\.course_address\" +

\" FROM student.dbo.student_coursecode\ column1.setCaption(\"课程代号\");

column1.setColumnName(\"course_code\");

column1.setDataType(com.borland.dx.dataset.Variant.INT); column1.setRowId(true);

column1.setSchemaName(\"dbo\");

column1.setTableName(\"student_coursecode\"); column1.setWidth(10);

column1.setServerColumnName(\"course_code\"); column1.setSqlType(4);

column2.setCaption(\"课程名称\");

column2.setColumnName(\"course_name\");

column2.setDataType(com.borland.dx.dataset.Variant.STRING); column2.setPrecision(50);

column2.setSchemaName(\"dbo\");

column2.setTableName(\"student_coursecode\"); column2.setWidth(10);

column2.setServerColumnName(\"course_name\"); column2.setSqlType(12);

column3.setCaption(\"课程学时\");

column3.setColumnName(\"course_period\");

column3.setDataType(com.borland.dx.dataset.Variant.INT); column3.setSchemaName(\"dbo\");

column3.setTableName(\"student_coursecode\"); column3.setWidth(10);

column3.setServerColumnName(\"course_period\"); column3.setSqlType(4);

column4.setCaption(\"课程学分\");

column4.setColumnName(\"course_credit\");

column4.setDataType(com.borland.dx.dataset.Variant.DOUBLE); column4.setSchemaName(\"dbo\");

column4.setTableName(\"student_coursecode\"); column4.setWidth(10);

教育资料

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

Top