文档库 最新最全的文档下载
当前位置:文档库 › java课程设计报告_mini人事管理系统

java课程设计报告_mini人事管理系统

JAVA程序设计课程设计报告

课题: mini人事管理系统

姓名:

学号:

同组姓名:

专业班级:

指导教师:

设计时间:

目录

一、系统描述 (1)

1. 前言 (1)

2. 开发系统的功能介绍 (1)

二、分析与设计 (2)

1. 功能模块划分 (2)

2. 数据库结构描述 (2)

3. 各个模块实现方法描述 (3)

4. 测试数据及期望结果 (5)

三、源代码 (5)

1. 主页面设计 (5)

2. 记录添加界面的开发设计 (12)

3. 上班登记子系统开发设计 (14)

4. 下班登记子系统开发设计 (16)

5. 信息统计页面的设计开发 (18)

四、系统测试 (22)

五、总结 (25)

1. 实验心得 (25)

2. 参考文献 (26)

一、系统描述

1.前言

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。

目前,无论是机关、事业单位、还是企业单位,人事管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而人事管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助

在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。

2、开发系统的功能介绍

(1)上班登记子系统

上班登记子系统主要对所有员工的上班信息进行登记,包括员工的工号、员工的姓名、员工的上班时间和相应的备注信息,并且还要能够删除错误的员工上班时间信息的记录

(2)下班登记子系统

下班登记子系统主要对所有员工的下班信息进行登记,包括员工的工号、员工的姓名、员工的下班时间和相应的备注信息,并且还要能够删除错误的员工下班时间信息的记录。

(3)请假登记子系统

请假登记子系统主要对所有员工的请假信息进行登记,包括员工的工号、员工的姓名、员工的请假时间和相应的备注信息,并且还要能够删除错误的员工请假时间信息的记录。

(4)信息统计子系统

信息统计系统主要对所有员工的上班时间信息、下班时间信息、请假时

间信息进行统计,包括员工的工号、员工的姓名、员工的上班时间、员工的下班时间、员工的请假时间和相应的备注信息,并且还可以删除错误的员工时间信息的记录。

(5)记录添加子系统

记录添加子系统的主要作用是在数据库中添加员工工号、员工姓名、相应的时间和备注。

二、分析与设计

本组共有三人一起完成本次的课程设计任务,组长是李海霞,组员有李丹和周露,组内分工为:李丹负责上班系统的开发,周露负责下班系统的开发,李海霞负责请假系统的开发以及统计信息系统的开发,然后再将每人完成的开发系统总结到一块。大家一起研究错误出在哪里,该怎么改正这些错误。 1.功能模块划分

本系统分为如下的几大模块:

2.数据库结构描述

在这个MINI 开发系统中,选用mysql 作为系统服务数据库,这是因为mysql 功

能强大,操作简便,应用较广。数据库方面只做了一张表,根据功能不同,在每个子系统里面读取的数据部分不同。设计的表如表一:

表一

3.各个模块实现方法描述

1) 上班登记模块描述(负责人:李丹)

上班登记子系统主要包括一个上班信息统计界面和一个上班信息添加界面。上班信息统计界面是一个表格,每一行就是一个员工的相关信息。如果某条记录不符合要求,可以将此条记录删除。

上班信息添加界面主要是员工工号、员工姓名、相应时间和相关备注信息。可以根据信息添加界面上的系统时间指示来填入相应的时间。

其流程图为:

2) 下班登记模块描述(负责人:周露)

下班登记子系统主要对所有员工的下班信息进行登记,包括员工的工号、员工的姓名、员工的下班时间和相应的备注信息,并且还要能够删除错误的员工下班时间信息的记录。下班信息添加界面主要是员工工号、员工姓名、相应时间和相关备注信息。可以根据信息添加界面上的系统时间指示填入相应的时间。

其流程图为:

3) 请假登记模块描述(负责人:李海霞)

请假登记子系统主要对所有员工的请假信息进行登记,包括员工的工号、员工的姓名、员工的请假时间和相应的备注信息,并且还要能够删除错误的员工请假时间信息的记录。

在这个下班信息添加界面中,主要是读取员工的ID、员工的姓名、员工的请假时间以及相关的描述信息,并将这些信息写入到数据库中。

其流程图为:

4) 信息统计模块描述(负责人:李海霞)

信息统计系统主要对所有员工的上班时间信息、下班时间信息、请假时间信息进行统计,包括员工的工号、员工的姓名、员工的上班时间、员工的下班时间、员工的请假时间和相应的备注信息,并且还可以删除错误的员工时间信息的记录。

信息统计子系统主要是一个信息统计界面。信息统计界面是一个表格,每一行就是一个员工的相关信息。如果觉得某些记录不符合要求,还可以将此条记录删除。在此界面,可以看到所有员工的上下班时间及其请假时间。

4.测试数据及期望结果

这个阶段的工作主要是实际运行人事管理系统应用程序,进入人事管理系统登录界面,

在前一阶段,虽然也作了性能预测,但是仅仅做了性能估计,且在估计过程中,做了许多简化和假设,忽略了许多次要因素,因而估计是粗糙的,并可能失真。在试运行阶段,必须进行实际测量和评价,测试数据尽可能覆盖现实世界的各种情况。

如果实际测试结果不符合设计目标,则需返回物理设计阶段,修改参数。有时也许还需要返回初始阶段。

期望结果:比方说,员工A3:00来上班,点击上班登记,手动添加上班记录。下班亦然。在统计模块中可以自动统计并显示出每个员工每天上下班,请假的全部记录。

三、源代码

1.主页面的设计开发

package manpowersystem;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import https://www.wendangku.net/doc/6418052444.html,yout.*;

import javax.swing.event.*;

public class MainFrame extends JFrame {

private ImageIcon fmImage; //主框架面板代码文件声明的属性和变量

XYLayout xYLayout1 = new XYLayout();

JButton jTitleButton = new JButton();

JButton jOnWorkButton = new JButton();

JButton jOffWorkButton = new JButton();

JButton jLeaveWorkButton = new JButton();

JButton jStaticButton = new JButton();

JButton jExitButton = new JButton();

public MainFrame() {

try {

jbInit();

addWindowListener( new WindowAdapter() { //窗口事件监听public void windowClosing( WindowEvent e ) {

dispose(); //销毁窗口}} );}

catch ( Exception e ) {

e.printStackTrace();}}

public static void main( String[] args ) {

MainFrame mainFrame = new MainFrame();

mainFrame.validate();

mainFrame.setLocation( 200, 150 );

mainFrame.setSize( 600, 480 );

mainFrame.setVisible( true );

mainFrame.pack();}

private void jbInit() throws Exception {

fmImage=new ImageIcon

( manpowersystem.MainFrame.class.getResource("Fengmian.png" ) ); jTitleButton.setBackground( new Color( 210, 138, 177 ) ); jTitleButton.setIcon( fmImage );

jTitleButton.setFocusable( false ); //此按钮的聚焦作用失效xYLayout1.setWidth( 540 );

xYLayout1.setHeight( 407 );

this.getContentPane().setBackground( new Color( 210, 138, 177 ) ); this.setLocale( java.util.Locale.getDefault() );

this.setResizable( true );

this.setTitle( "Mini人事管理系统" );

this.addWindowListener(new

MainFrame_this_windowAdapter( this ) );

this.getContentPane().setLayout( xYLayout1 );

jOnWorkButton.setBackground( new Color( 212, 158, 217 ) ); jOnWorkButton.setFont( new java.awt.Font( "DialogInput", 1, 16 ) ); jOnWorkButton.setText( "上班登记" );

jOnWorkButton.addActionListener(new

MainFrame_jOnWorkButton_actionAdapter( this ) ); jOnWorkButton.addHierarchyBoundsListener( new

MainFrame_jOnWorkButton_hierarchyBoundsAdapter( this ) ); jOffWorkButton.setBackground( new Color( 212, 158, 217 ) ); jOffWorkButton.setFont( new java.awt.Font( "DialogInput", 1, 16 ) ); jOffWorkButton.setText( "下班登记" );

jOffWorkButton.addActionListener(new

MainFrame_jOffWorkButton_actionAdapter(this)); jOffWorkButton.addAncestorListener( new

MainFrame_jOffWorkButton_ancestorAdapter( this ) ); jLeaveWorkButton.setBackground( new Color( 212, 158, 217 ) ); jLeaveWorkButton.setFont( new java.awt.Font( "DialogInput", 1, 16 ) ); jLeaveWorkButton.setText( "请假登记" );

jLeaveWorkButton.addActionListener(new

MainFrame_jLeaveWorkButton_actionAdapter(this)); jLeaveWorkButton.addAncestorListener( new

MainFrame_jLeaveWorkButton_ancestorAdapter( this ) ); jStaticButton.setBackground( new Color( 212, 158, 217 ) ); jStaticButton.setFont( new java.awt.Font( "DialogInput", 1, 16 ) ); jStaticButton.setText( "统计情况" );

jStaticButton.addActionListener(new

MainFrame_jStaticButton_actionAdapter(this));

jStaticButton.addAncestorListener( new

MainFrame_jStaticButton_ancestorAdapter( this ) );

jExitButton.setBackground( new Color( 212, 158, 217 ) );

jExitButton.setFont( new java.awt.Font( "DialogInput", 1, 16 ) );

jExitButton.setText( "退出系统" );

jExitButton.addActionListener(new MainFrame_jExitButton_actionAdapter( this ) ); jExitButton.addAncestorListener(new

MainFrame_jExitButton_ancestorAdapter( this ) );

this.getContentPane().add( jTitleButton,new XYConstraints( 0, 0, 358, 409 ) ); this.getContentPane().add( jOnWorkButton,new XYConstraints( 393, 35, 115, 45 ) ); this.getContentPane().add( jOffWorkButton,

new XYConstraints( 393, 109, 115, 45 ) );

this.getContentPane().add( jLeaveWorkButton,

new XYConstraints( 393, 184, 115, 45 ) );

this.getContentPane().add( jStaticButton,

new XYConstraints( 393, 258, 115, 45 ) );

this.getContentPane().add( jExitButton,

new XYConstraints( 393, 332, 115, 45 ) );this.setResizable(false);}

void this_windowClosed( WindowEvent e ) {

System.exit( 0 );}

void jOnWorkButton_ancestorMoved( HierarchyEvent e ) {}

void jOffWorkButton_ancestorMoved( AncestorEvent e ) {}

void jLeaveWorkButton_ancestorMoved( AncestorEvent e ) {}

void jStaticButton_ancestorMoved( AncestorEvent e ) {}

void jExitButton_ancestorMoved( AncestorEvent e ) {}

void jExitButton_actionPerformed( ActionEvent e ) {System.exit( 0 );

}//退出系统按钮的事件处理

void jOnWorkButton_actionPerformed( ActionEvent e ) {

OnWorkPanel onWorkPanel = new OnWorkPanel();

onWorkPanel.setVisible(true);}//上班登记按钮的事件处理

void jOffWorkButton_actionPerformed(ActionEvent e) {

OffWorkPanel offWorkPanel = new OffWorkPanel();

offWorkPanel.setVisible(true);}//下班登记按钮的事件处理

void jLeaveWorkButton_actionPerformed(ActionEvent e) {

LeaveWorkPanel leaveWorkPanel = new LeaveWorkPanel(); leaveWorkPanel.setVisible(true);}//请假登记按钮的事件处理

void jStaticButton_actionPerformed(ActionEvent e) {

StaticPanel staticPanel = new StaticPanel();

staticPanel.setVisible(true);}//统计情况按钮的事件处理}

Class MainFrame_this_windowAdapter

extends java.awt.event.WindowAdapter {

MainFrame adaptee;

MainFrame_this_windowAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void windowClosed( WindowEvent e ) {

adaptee.this_windowClosed( e );}}

class MainFrame_jOnWorkButton_hierarchyBoundsAdapter extends java.awt.event. HierarchyBoundsAdapter {

MainFrame adaptee;

MainFrame_jOnWorkButton_hierarchyBoundsAdapter( MainFrame adaptee ) { this.adaptee = adaptee;}

public void ancestorMoved( HierarchyEvent e ) {

adaptee.jOnWorkButton_ancestorMoved( e );}}

class MainFrame_jOffWorkButton_ancestorAdapter implements javax.swing.event. AncestorListener {

MainFrame adaptee;

MainFrame_jOffWorkButton_ancestorAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void ancestorAdded( AncestorEvent e ) {}

public void ancestorRemoved( AncestorEvent e ) {}

public void ancestorMoved( AncestorEvent e ) {

adaptee.jOffWorkButton_ancestorMoved( e );}}

class MainFrame_jLeaveWorkButton_ancestorAdapter implements javax.swing.event.AncestorListener {MainFrame adaptee;

MainFrame_jLeaveWorkButton_ancestorAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void ancestorAdded( AncestorEvent e ) {}

public void ancestorRemoved( AncestorEvent e ) {}

public void ancestorMoved( AncestorEvent e ) {

adaptee.jLeaveWorkButton_ancestorMoved( e );}}

class MainFrame_jStaticButton_ancestorAdapter

implements javax.swing.event.AncestorListener {

MainFrame adaptee;

MainFrame_jStaticButton_ancestorAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void ancestorAdded( AncestorEvent e ) {}

public void ancestorRemoved( AncestorEvent e ) {}

public void ancestorMoved( AncestorEvent e ) {

adaptee.jStaticButton_ancestorMoved( e );}}

class MainFrame_jExitButton_ancestorAdapter

implements javax.swing.event.AncestorListener {

MainFrame adaptee;

MainFrame_jExitButton_ancestorAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void ancestorAdded( AncestorEvent e ) {}

public void ancestorRemoved( AncestorEvent e ) {}

public void ancestorMoved( AncestorEvent e ) {

adaptee.jExitButton_ancestorMoved( e );}}

class MainFrame_jExitButton_actionAdapter

implements java.awt.event.ActionListener {

MainFrame adaptee;

MainFrame_jExitButton_actionAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void actionPerformed( ActionEvent e ) {

adaptee.jExitButton_actionPerformed( e );}}

class MainFrame_jOnWorkButton_actionAdapter

implements java.awt.event.ActionListener {

MainFrame adaptee;

MainFrame_jOnWorkButton_actionAdapter( MainFrame adaptee ) {

this.adaptee = adaptee;}

public void actionPerformed( ActionEvent e ) {

adaptee.jOnWorkButton_actionPerformed( e );}}

class MainFrame_jOffWorkButton_actionAdapter

implements java.awt.event.ActionListener {

MainFrame adaptee;

MainFrame_jOffWorkButton_actionAdapter(MainFrame adaptee) {

this.adaptee = adaptee;}

public void actionPerformed(ActionEvent e) {

adaptee.jOffWorkButton_actionPerformed(e);}}

class MainFrame_jLeaveWorkButton_actionAdapter implements java.awt.event.ActionListener {MainFrame adaptee;

MainFrame_jLeaveWorkButton_actionAdapter(MainFrame adaptee) {

this.adaptee = adaptee;}

public void actionPerformed(ActionEvent e) {

adaptee.jLeaveWorkButton_actionPerformed(e);}}

class MainFrame_jStaticButton_actionAdapter implements java.awt.event.ActionListener {MainFrame adaptee;

MainFrame_jStaticButton_actionAdapter(MainFrame adaptee) {

this.adaptee = adaptee;}

public void actionPerformed(ActionEvent e) {

adaptee.jStaticButton_actionPerformed(e);}}

2.记录添加界面的开发设计

package manpowersystem;

import java.io.*;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.table.*;

public class RecordItem {

private String strEmployeeID;

private String strEmployeeName;

private String strOnWorkTime;

private String strOffWorkTime;

private String strLeaveWorkTime;

private String strDescribe;

public RecordItem() {

strEmployeeID = new String( "" );

strEmployeeName = new String( "" );

strOnWorkTime = new String( "" );

strOffWorkTime = new String( "" );

strLeaveWorkTime = new String( "" );

strDescribe = new String( "" );}

public void SetOnworkItem( String strEmployeeID, String strEmployeeName, String strOnWorkTime, String strDescribe ) {

this.strEmployeeID = strEmployeeID;

this.strEmployeeName = strEmployeeName;

this.strOnWorkTime = strOnWorkTime;

this.strDescribe = strDescribe;}

public void SetOffworkItem( String strEmployeeID, String strEmployeeName, String strOffWorkTime, String strDescribe ) {

this.strEmployeeID = strEmployeeID;

this.strEmployeeName = strEmployeeName;

this.strOffWorkTime = strOffWorkTime;

this.strDescribe = strDescribe;}

public void SetLeaveworkItem( String strEmployeeID, String strEmployeeName, String strLeaveWorkTime, String strDescribe ) {

this.strEmployeeID = strEmployeeID;

this.strEmployeeName = strEmployeeName;

this.strLeaveWorkTime = strLeaveWorkTime;

this.strDescribe = strDescribe;}

public String GetEmployeeID() {

return strEmployeeID;}

public String GetEmployeeName() {

return strEmployeeName;}

public String GetOnWorkTime() {

return strOnWorkTime;}

public String GetOffWorkTime() {

return strOffWorkTime;}

public String GetLeaveWorkTime() {

return strLeaveWorkTime;}

public String GetDescribe() {

return strDescribe;}

public void SetEmployeeID( String strEmployeeID ) {

this.strEmployeeID = strEmployeeID;}

public void SetEmployeeName( String strEmployeeName ) {

this.strEmployeeName = strEmployeeName; }

public void SetOnWorkTime( String strOnWorkTime ) { this.strOnWorkTime = strOnWorkTime;}

public void SetOffWorkTime( String strOffWorkTime ) { this.strOffWorkTime = strOffWorkTime;}

public void SetLeaveWorkTime( String strLeaveWorkTime ) { this.strLeaveWorkTime = strLeaveWorkTime;}

public void SetDescribe( String strDescribe ) {

this.strDescribe = strDescribe;}}

3.上班登记子系统开发设计

package manpowersystem;

import java.io.*;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.table.*;

import java.util.*;

import https://www.wendangku.net/doc/6418052444.html,yout.*;

public class OnWorkPanel extends TablePanel {

String[] arrField = {"工号", "姓名", "上班时间", "备注"}; public OnWorkPanel() {

tableModel = new DefaultTableModel( arrData, arrField ); jRecordTable = new JTable( tableModel ); jTableScrollPane.getViewport().add( jRecordTable, null ); UpdateRecord(); //更新表格

this.setTitle( "上班登记页面" );}

public void AddRecord() {

OnWorkRecordPane recordPane = new OnWorkRecordPane();

recordPane.setSize( 630, 300 );

recordPane.setLocation( 230, 100 );

recordPane.setVisible( true );

recordPane.setResizable( false );

recordPane.validate();

UpdateRecord(); //更新表格}

public void DelRecord() {

jTableScrollPane.getViewport().add( jRecordTable, null );

intRow = jRecordTable.getSelectedRow();

if ( intRow == -1 )return;

try {database.DeleteData( tableModel.getValueAt( intRow, 0 ).toString() );} catch ( Exception e ) {e.printStackTrace();}

UpdateRecord(); //更新表格}

public void UpdateRecord() {

Object[][] arrTmp = {}; //设定表格的字段

tableModel = new DefaultTableModel( arrTmp, arrField ); jRecordTable = new JTable( tableModel );

jTableScrollPane.getViewport().add( jRecordTable, null );

try {RecordItem[] result = new RecordItem[ 100 ];

for ( int j = 0; j < 100; j++ )

result[ j ] = new RecordItem();

result = database.AccessData();

for ( int i = 0; i < result.length; i++ ) {

Object newdata[] = {result[ i ].GetEmployeeID(),

result[ i ].GetEmployeeName(),

result[ i ].GetOnWorkTime(),

result[ i ].GetDescribe()};

String strTmp = result[ i ].GetOnWorkTime();

if ( strTmp.trim().length() == 0 )

continue;

tableModel.addRow( newdata );}}

catch ( Exception e ) {

e.printStackTrace();}}}

public class OnWorkRecordPane extends RecordPane { public OnWorkRecordPane() {}

public void RestoreRecord() {

String strTmp = jEmployeeIDTextField.getText();

if(strTmp.trim().length() == 0){

this.dispose();return;}

item.SetOnworkItem( jEmployeeIDTextField.getText(), jEmployeeNameTextField.getText(), jDateTimeTextField.getText(), jReasonTextField.getText() );try {

database.StoreData( item );}

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

this.dispose();}}

4.下班登记子系统开发设计

package manpowersystem;

import java.io.*;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.table.*;

import java.util.*;

import https://www.wendangku.net/doc/6418052444.html,yout.*;

public class OffWorkPanel extends TablePanel {

String[] arrField = {"工号", "姓名", "下班时间", "备注"};

public OffWorkPanel() {

tableModel = new DefaultTableModel( arrData, arrField ); jRecordTable = new JTable( tableModel );

jTableScrollPane.getViewport().add( jRecordTable, null ); UpdateRecord(); //更新表格

this.setTitle( "下班登记页面" );}

public void AddRecord() {

OffWorkRecordPane recordPane = new OffWorkRecordPane(); recordPane.setSize( 630, 300 );

recordPane.setLocation( 230, 100 );

recordPane.setVisible( true );

recordPane.setResizable( false );

UpdateRecord(); //更新表格}

public void DelRecord() {

jTableScrollPane.getViewport().add( jRecordTable, null );

intRow = jRecordTable.getSelectedRow();

if (intRow == -1)return;

try {database.DeleteData( tableModel.getValueAt( intRow, 0 ).toString() );} catch ( Exception e ) {

e.printStackTrace();}

UpdateRecord(); //更新表格}

public void UpdateRecord() {

Object[][] arrTmp = {}; //设定表格的字段

tableModel = new DefaultTableModel( arrTmp, arrField );

RecordTable = new JTable( tableModel );

jTableScrollPane.getViewport().add( jRecordTable, null );

try {

RecordItem[] result = new RecordItem[ 100 ];

for ( int j = 0; j < 100; j++ )

result[ j ] = new RecordItem();

result = database.AccessData();

for ( int i = 0; i < result.length; i++ ) {

Object newdata[] = {result[ i ].GetEmployeeID(), result[ i ].GetEmployeeName(),

result[ i ].GetOffWorkTime(),

result[ i ].GetDescribe()};

String strTmp = result[ i ].GetOffWorkTime();

if ( (strTmp== null) || (strTmp.trim().length() == 0) ) continue;

tableModel.addRow( newdata );}}

catch ( Exception e ) {

e.printStackTrace();}}}

public class OffWorkRecordPane extends RecordPane { public OffWorkRecordPane() {}

public void RestoreRecord() {

String strTmp = jEmployeeIDTextField.getText();

if ( strTmp.trim().length() == 0 ) {

this.dispose();return;}

item.SetOffworkItem( jEmployeeIDTextField.getText(), jEmployeeNameTextField.getText(), jDateTimeTextField.getText(), jReasonTextField.getText() );

try {database.StoreData( item );}

catch ( Exception e ) {

e.printStackTrace();}

this.dispose();}}

5.信息统计页面的设计开发

package manpowersystem;

import java.util.*;

相关文档
相关文档 最新文档