—java课程设计_第1页
—java课程设计_第2页
—java课程设计_第3页
—java课程设计_第4页
—java课程设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java 课程设计课程设计题目题目:员工工资管理系统员工工资管理系统班级班级:09 软件软件 学号学号:姓名姓名:丘素泉丘素泉设计时间设计时间:2011.6.目录目录一、一、目录目录*1二、二、内容内容1、时间进度安排、时间进度安排*22. 系统的软硬件环境(运行平台)系统的软硬件环境(运行平台)*23. 系统的适用范围系统的适用范围*24. 系统总体框架图系统总体框架图*35. 模块功能模块功能*36. UML 类图、关键技术与主要算法等类图、关键技术与主要算法等*61) 、创建主界面的类、创建主界面的类 DBApplicationTest*62)、创建连接数据库进行插入操作的类、创建连接数

2、据库进行插入操作的类InsertInfo*83)、创建一个连接数据库进行删除操作的类、创建一个连接数据库进行删除操作的类DeleteInfo*94)、创建一个连接数据库进行查询操作的类、创建一个连接数据库进行查询操作的类 SearchInfo*105)、创建一个连接数据库进行修改操作的类、创建一个连接数据库进行修改操作的类 UpdateInfo*126)、创建一个定义表格的类、创建一个定义表格的类MyTableModel*147、系统使用说明、系统使用说明*158 8、总结、总结*169 9、参考文献、参考文献*161.时间进度安排时间进度安排顺序阶段日期计 划 完 成 内 容备注16 月 7

3、 日6 月 11 日充分解读题目内容,查阅资料,安排具体任务。5 天26 月 12 日自学 Mysql 数据库基本知识,安装 Mysql 数据库1 天36 月 13 日6 月 17 日编制程序,单元测试。5 天46 月 18 日、19 日程序整合,综合调试。2 天56 月 20 日22 日撰写课程设计报告。3 天66 月 23 日答辩。1 天2. 系统的软硬件环境(运行平台)系统的软硬件环境(运行平台)硬件环境PC 机软件环境(1) 操作系统:Windows XP(2) 开发工具: Eclipse (3)数据库:Mysql3. 系统的适用范围系统的适用范围一般的个体户,小商场,小超市,专卖店及

4、对系统要求不是很高的小企业等。4. 系统总体框架图系统总体框架图5. 模块功能模块功能主界面:主界面:查询:查询:查询:查询:01插入界面:插入界面:删除:删除:02修改:修改:036. UML类图、关键技术与主要算法等类图、关键技术与主要算法等1) 、创建主界面的类、创建主界面的类 DBApplicationTest,在此类中创建用于显示的窗体 JFrame frame; 创建用于初始化显示的面板 JPanel pnlInit,创建用于显示员工工资等信息的面板 JPanel pnlShow,创建用于以表格显示员工工资等信息的面 Jpane pnlSearchInfoShow,/*显示初始化界

5、面*/public void showWel()pnlInit=new JPanel();/创建用于初始化界面的面板lblErrMsg=new JLabel();/创建显示错误信息的标签JLabel lblteaID=new JLabel(请输入员工编号:);/创建表示输入员工编号的标签txfstaffID=new JTextField(25);/创建用于员工编号的文本框btnSearch=new JButton(查询);/创建表示查询的按钮btnInsert=new JButton(插入);/创建表示插入的按钮btnUpdate=new JButton(修改);/创建表示修改的按钮btnDe

6、lete=new JButton(删除);/创建表示删除系统的按钮btnExit=new JButton(退出);/创建表示退出系统的按钮btnSearch.addActionListener(this); /为查询按钮添加监听方法btnInsert.addActionListener(this); /为插入按钮添加监听方法btnUpdate.addActionListener(this); /为修改按钮添加监听方法btnDelete.addActionListener(this); /为删除按钮添加监听方法btnExit.addActionListener(this);/为退出按钮添加监听方

7、法 Box boxButton= Box.createVerticalBox();/创建纵向显示其组件的BoxboxButton.add(btnSearch);/将查询按钮放入组件中boxButton.add(Box.createVerticalStrut(20);/设置按钮之间的高度boxButton.add(btnInsert);/将插入按钮放入组件中boxButton.add(Box.createVerticalStrut(20);/设置按钮之间的高度boxButton.add(btnUpdate);/将修改按钮放入组件中boxButton.add(Box.createVerticalS

8、trut(20);/设置按钮之间的高度boxButton.add(btnDelete);/将删除按钮放入组件中boxButton.add(Box.createVerticalStrut(20);/设置按钮之间的高度boxButton.add(btnExit); /将退出按钮放入组件中JPanel spnl1=new JPanel(); /创建画板spnl1.setLayout(new BorderLayout();/为画板设置边界布局管理器spnl1.add(txfstaffID,BorderLayout.NORTH);/将表示员工编号的文本框放入到布局的上部spnl1.add(lblErrM

9、sg,BorderLayout.CENTER);/将表示错误信息的标签放入到布局的中央pnlInit.setLayout(new BorderLayout(); /为画板设置边界布局管理器pnlInit.add(lblteaID,BorderLayout.NORTH);/将表示员工编号的标签放入到布局的上部pnlInit.add(spnl1,BorderLayout.CENTER);/将表示员工的文本框和错误信息的标签的画板放入到布局的中央pnlInit.add(boxButton,BorderLayout.EAST);/将存放按钮的Box组件放入到布局的右边。double basic_sal

10、ary= Double.valueOf(txfbasic_salary.getText();/取得输入的员工底薪double deduction_salary = Double.valueOf(txfdeduction_salary.getText();/取得输入的员工提成说明:必须将 getText()取得的数据进行 double 型转换,否则没办法进行四则运算。进入主函数public static void main(String args)DBApplicationTest dba = new DBApplicationTest();dba.mainFram();2)、创建连接数据库进行

11、插入操作的类)、创建连接数据库进行插入操作的类InsertInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 数据库用户名String password = root; / 数据库密码private Connection conn = null; / 数据

12、库连接对象private Statement stmt = null; / 执行SQL文对象private ResultSet rs = null;/结果集对象/*构造方法*/public UpdateInfo() try Class.forName(driver); / 加载驱动器conn = DriverManager.getConnection(url, userName, password);/ 建立数据库连接System.out.println(数据库连接成功); catch (ClassNotFoundException e)System.out.print(ClassNotFou

13、ndException+ e.getMessage();/打印输出异常信息e.printStackTrace();/追踪异常事件发生时执行堆栈的内容 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容/*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_salary, double d

14、eduction_salary)throwsboolean udpflag = false;/定义表示修改成功标志变量 try /*设置可以滚动和更新的结果集*/stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String updstaffInfo = UPDATE staffInfo SET age = +age +,department =+dep+, +basic_salary = +basic_salary + ,+deduction_salary =

15、+deduction_salary + ,monthly_salary = +String.valueOf(basic_salary+deduction_salary)+,+annual_salary = +String.valueOf(basic_salary+deduction_salary)*12)+ + WHERE staffID= +staffID + ; System.out.println(更新员工工资等信息的SQL语句为:+updstaffInfo);/打印输出更新的SQL语句int count = stmt.executeUpdate(updstaffInfo); /取得更新

16、的个数 if(count0) /*如果有SQL语句被更新*/ udpflag = true;/将修改成功标志设置为true else/*如果没有SQL语句被更新*/ udpflag = false;/将修改成功标志设置为false /返回修改成功标志 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息 e.printStackTrace();/追踪异常事件发生时执行堆栈的内容 return udpflag;public void setRs(ResultSet rs) this.

17、rs = rs;public ResultSet getRs() return rs;3)、创建一个连接数据库进行删除操作的类)、创建一个连接数据库进行删除操作的类DeleteInfopublic class DeleteInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 数据库用户名String password = root; / 数据库密码private Connection conn = null; / 数据库连接对象private State

18、ment stmt = null; / 执行SQL文对象private ResultSet rs = null;/结果集对象/*构造方法*/public DeleteInfo() try Class.forName(driver); / 加载驱动器conn = DriverManager.getConnection(url, userName, password);/ 建立数据库连接System.out.println(数据库连接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundException+ e.ge

19、tMessage(); /打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容/*删除操作*/public boolean deleteInfo( String staffID)boolean delflag = false;/定义表示删除成功标志的变量 try /*设置可以滚动和更新的结果集*/stmt = co

20、nn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String delstaffInfo = DELETE FROM staffInfo WHERE staffID= +staffID + ; System.out.println(删除员工工资等信息的SQL语句为:+delstaffInfo);/打印输出更新的SQL语句 int count = stmt.executeUpdate(delstaffInfo); if(count0) /*如果有SQL语句被更新*/ delflag

21、= true;/将删除成功标志设置为true else /*如果没有SQL语句被更新*/ delflag = false;/将删除成功标志设置为false catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息 e.printStackTrace();/追踪异常事件发生时执行堆栈的内容 return delflag;/返回删除成功标志public void setRs(ResultSet rs) this.rs = rs;public ResultSet getRs() return

22、 rs; 4)、创建一个连接数据库进行查询操作的类、创建一个连接数据库进行查询操作的类 SearchInfopublic class SearchInfo String driver = ; String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 数据库用户名String password = root; / 数据库密码private Connection conn = null; / 数据库连接对象private Statement stmt = null; / 执行SQL文对象private R

23、esultSet rs = null;/结果集对象public static int rowcount = 0;/表示检索出表中记录数的变量/*构造方法*/public SearchInfo() try Class.forName(driver); / 加载驱动器conn = DriverManager.getConnection(url, userName, password);/ 建立数据库连接System.out.println(数据库连接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundExcepti

24、on+ e.getMessage(); /打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容/*员工工资等信息查询*/public ResultSet search(String staffID) String selstaffInfo =; /*如果员工编号为空,执行查询员工工资等信息SQL语句*/if(sta

25、ffID .equals() selstaffInfo = SELECT staffID,staffName,age,sex,nation,department,basic_salary, + deduction_salary,monthly_salary,annual_salary +FROM staffInfo ;else /*如果员工编号不为空,执行查询员工工资等信息SQL语句*/ selstaffInfo = SELECT staffID,staffName,age,sex,nation,department,basic_salary, +deduction_salary,monthl

26、y_salary,annual_salary +FROM staffInfo where staffID= +staffID + ; System.out.println(查询员工工资等信息的SQL语句为:+selstaffInfo);/打印输出查询SQL语句 try /*设置可以滚动和更新的结果集*/stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(selstaffInfo); rs.last(); /将结果集位置移到最后

27、 rowcount = rs.getRow(); /获得当前的行编号 System.out.println(检索出记录数为:+rowcount);/打印输出当前行编号 if (rowcount 0) /*如果检索到记录*/ return rs;/返回取得的结果集 else rs = null;/将结果集设置为空 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息e.printStackTrace();/追踪异常事件发生时执行堆栈的内容return rs; /返回结果集 5)、创建

28、一个连接数据库进行修改操作的类)、创建一个连接数据库进行修改操作的类 UpdateInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 数据库用户名String password = root; / 数据库密码private Connection conn

29、= null; / 数据库连接对象private Statement stmt = null; / 执行SQL文对象private ResultSet rs = null;/结果集对象/*构造方法*/public UpdateInfo() try Class.forName(driver); / 加载驱动器conn = DriverManager.getConnection(url, userName, password);/ 建立数据库连接System.out.println(数据库连接成功); catch (ClassNotFoundException e)System.out.print

30、(ClassNotFoundException+ e.getMessage();/打印输出异常信息e.printStackTrace();/追踪异常事件发生时执行堆栈的内容 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息e.printStackTrace(); /追踪异常事件发生时执行堆栈的内容 /*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_sal

31、ary, double deduction_salary)throws boolean udpflag = false;/定义表示修改成功标志变量 try /*设置可以滚动和更新的结果集*/ stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String updstaffInfo = UPDATE staffInfo SET age = +age +,department =+dep+, +basic_salary = +basic_salary + ,+dedu

32、ction_salary = +deduction_salary + ,monthly_salary = +String.valueOf(basic_salary+deduction_salary)+,+annual_salary = +String.valueOf(basic_salary+deduction_salary)*12)+ + WHERE staffID= +staffID + ;说明:画线部分实现把double型转化为字符串,否则在数据库中见无法识别。 System.out.println(更新员工工资等信息的SQL语句为:+updstaffInfo);/打印输出更新的SQL语

33、句int count = stmt.executeUpdate(updstaffInfo); /取得更新的个数 if(count0) /*如果有SQL语句被更新*/ udpflag = true;/将修改成功标志设置为true else /*如果没有SQL语句被更新*/ udpflag = false;/将修改成功标志设置为false /返回修改成功标志 catch (SQLException e) System.out.println(SQLException异常 + e.getMessage();/打印输出异常信息 e.printStackTrace();/追踪异常事件发生时执行堆栈的内容

34、 catch (NumberFormatException e) System.out.println(NumberFormatException异常 + e.getMessage();/打印输出异常信息 e.printStackTrace(); return udpflag;public void setRs(ResultSet rs) this.rs = rs;public ResultSet getRs() return rs;6)、创建一个定义表格的类)、创建一个定义表格的类MyTableModelpublic class MyTableModel extends AbstractTa

35、bleModel private static final long serialVersionUID = 1L;final String columnNames = 员工编号,员工姓名,年龄 , 性别,民族,所在部门,底薪, 提成,月薪, 年薪; /定义表头显示信息 String staffID = ;/定义表示员工编号的变量 SearchInfo si = new SearchInfo();/创建查询员工工资等信息类的对象 ResultSet rs = si.search(staffID);/调用查询员工工资等信息的方法 int count = SearchInfo.rowcount; /

36、取得查询的员工工资等信息的数目 final Object data = new ObjectcountcolumnNames.length ;/创建二维表格 /*构造方法*/ public MyTableModel() try rs.first();/将结果集指针移到到第一个位置 data 00=rs.getString(1);/取得员工编号 data 01=rs.getString(2);/取得员工姓名 data 02=rs.getString(3);/取得员工年龄 data 03=rs.getString(4);/取得员工性别 data 04=rs.getString(5); /取得民族

37、data 05=rs.getString(6);/取得员工所在部门 data 06=rs.getString(7);/取得底薪 data 07=rs.getString(8);/取得提成 data 08=rs.getString(9);/取得员工月薪 data 09=rs.getString(10); /取得员工年薪 int i =1;/初始化变量i int j = 0;/初始化变量jwhile(rs.next()data ij+=rs.getString(1);/取得员工编号data ij+=rs.getString(2);/取得员工姓名data ij+=rs.getString(3);/取得员工年龄data ij+=rs.getString(4);/取得员工性别data ij+=rs.getString(5); /取得民族data ij+=rs.getString(6);/取得员工所在部门data ij+=rs.getString(7);/取得底薪data ij+=rs.getString(8);/取得提成data i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论