




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章、设计任务书一、课程设计目的和要求1.目的:1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用,编程简练,可用,功能全面3)说明书、流程图要清楚4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。6)设计上交内容:设计报告一份(按格式书写);源程序文件。二、设计项目:1、项目名称:公司员工管理系统2、项目概述:在人才过剩的今天,企业对于有用人才的需求逐步加大,企业内部的人事变动和部门规划也开始加速,传统的人事档案已经不能满足各个企业的人员流动速度,迫使人们起用新的管理方法来管理员工的相关信息。科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,员工管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入各个行业和领域,将传统的员工管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。3、项目功能简介:增加增加用户、员工的基本信息(基本信息和工资信息)、部门信息、薪资信息删除可根据员工的编号及姓名等资料的删除修改用户可以对员工的姓名和编号、进行修改。查询用户可以根据姓名、编号,准确的查到要找的员工,也可以选择部门,查看选中的部门的所有员工。辅助可以调用单独制作的计算器进行数字计算,节省操作时间关于 可以了解本系统的运行环境,开发理念、开发人员等信息三、设计时间及内容序号时间内容11月4日班级分组,选定课题,查阅相关资料21月5日划分模块、小组成员分工,编制源程序31月6日编制源程序41月7日编制源程序51月8日编制源程序61月11日上机调试,修改、完善系统71月12日上机调试,修改、完善系统81月13日撰写课程设计报告,上机调试,修改、完善系统91月14日撰写课程设计报告,作品答辩101月15日实习成绩的评定四、设计方式和安排1、项目承接:筑梦小组2、小组成员:王英(组长)、涂云跃、孙胜胜、夏春碧、刘玮、周玉琳、华云平、王英良3、项目选题:根据小组成员的深入讨论后,结合当今市场需求,决定以员工管理为设计方向,以人性化管理操作为设计理念,根据课题工作量大小,合理分配人数(后台数据库开发:夏春碧、孙胜胜、王英良、周玉琳,前台开发:王英、涂云跃、刘玮、华云平,全组成员参加总体调试改进,组长负责本组设计工作的协调、分工等。4、设计过程:1)分析设计准备阶段(按组讨论、对系统功能进行分析,确定算法,并进行明确分工);2)编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)五、考核内容和方式1、在设计期间,小组成员要按时上机,设计结束根据记录的设计材料整理成设计说明书。设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。2、通过设计答辩方式,并结合小组成员的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量、答辩表现以及学习态度按五级分制综合评定。成绩分优、良、中、及格和不及格五等。第二章、项目总体设计一、总体设计思路:本系统管理的是大量的员工信息,涉及到员工各方面的信息安全,从系统的设计理念出发,我们必须保障系统内信息的安全,所以我们采取了通过密码验证的方式进入系统。设计流程介绍如下:进入登陆窗口为空判断为空不为空输入用户名和密码正确判断用户名密码不正确主窗体正确各种相关操作二、后台数据库设计1、数据库名称:yggl(员工管理 缩写)2、数据字典:库名(yggl)用户信息表(UserInformation)字段类型说明大小是否为空User_ID Int 员工编号NOT NULLUser_Name varchar员工姓名20NOT NULLPasswordvarchar密码20NOT NULLPopedom varchar权限20NOT NULL部门信息管理(DepartmentInformation)字段类型说明大小是否为空D_Numberint部门编号NOT NULLD_Namevarchar部门名称20NOT NULLD_Countvarchar部门人数20NOT NULL员工基本信息表(EmployeeInformation)字段类型说明大小是否为空E_Numberint-员工编号NOT NULLE_Namevarchar-姓名20NOT NULLE_Sexvarchar-性别2NOT NULLE_BornDatevarchar-出生日期30NOT NULLE_Marriagevarchar-婚姻状态4NOT NULLE_PoliticsVisagevarchar政治面貌20NOT NULLE_SchoolAgevarchar学历20NOT NULLE_EnterDatevarchar进入公司时间30NOT NULLE_InDueFormDatevarchar转正时间30NOT NULLE_Departmentvarchar部门20NOT NULLE_Headshipvarchar职务20NOT NULLE_Estatevarchar状态20NOT NULLE_Remarkvarchar备注500NOT NULL薪资信息表(WageInformation)字段类型说明大小是否为空W_Numberint员工编号NOT NULLW_Namevarchar员工姓名30NOT NULLW_BasicWageint基本工资NOT NULLW_Boonint福利NOT NULLW_Bonusint奖金NOT NULLW_CountMethodvarchar计算方法50NOT NULLW_FactWageint实发工资NOT NULL3、问题与难点:表与表之间的相互级联与更新三、前台效果图发布与设计过程(一)、登录窗口设计1、设计思路:本窗口是整个系统的入口,关系到系统内部各个员工的信息安全,在整个设计中有着重要的作用。具体可以分为用户名密码是否为空的判断和用户名密码是否正确判断。2、介绍与图解: 当用户密码为空时,给出相应提示信息,当用户密码输入并且正确时才能成功进入系统主窗体。 3、关键代码: 1)登录按钮的监听(为空判断)buttonEnter.addMouseListener(new MouseAdapter()public void mouseClicked(MouseEvent me)if(textName.getText().equals()new JOptionPane().showMessageDialog(null,用户名不能为空!);else if(textage.getText().equals()new JOptionPane().showMessageDialog(null,密码不能为空!);elseString sql=select * from UserInformation where User_Name = + textName.getText() + and Password = + textage.getText()+ ;System.out.println(sql);Judge(sql);); 2)登录按钮的监听(为空判断) private void Judge(String sqlString) if (database.joinDB() if (database.query(sqlString) try if(database.rs.isBeforeFirst() System.out.println(密码正确); jf.setVisible(false); System.out.println(main); /关闭数据库连接 .close(); new main(); else System.out.println(错误); new JOptionPane().showMessageDialog(null,用户名或密码错误!,JOptionPane.ERROR_MESSAGE); catch(Exception ex) System.out.println(ex.getMessage(); else System.out.println(连接数据库不成功!); new JOptionPane().showMessageDialog(null,连接数据库失败!,JOptionPane.ERROR_MESSAGE); (二)系统主窗体设计 1、设计思路: 本界面是整个系统操作主界面,是各个模块的操作的入口。具体分析如下: 主 窗 体系统管理信息管理信息查询关于修改密码重新登录添加删除修改密码员工信息管理(基本信息工资信息)部门信息管理员工信息查询(基本信息工资信息)部门信息查询 2、图解与介绍: (1)主窗体 1)效果图 2)关键代码: /主函数类 import java.awt.*;/倒包import java.awt.event.*;/倒包import javax.swing.*;/倒包import java.sql.*;/倒包public class main extends JFrame implements Runnable Thread t = new Thread(this);/在窗体里创建线程并实例化 JDesktopPane deskpane = new JDesktopPane();/在窗体里建立虚拟桌面并实例化 JPanel p = new JPanel();/创建一个面板并实例化 Label lp1 = new Label(欢 迎 进 入 员 工 管 理 系 统! 如 有 不 明 白 之 处 请 询 问 开 发 人 员!);/菜单上的图标创建并实例化- ImageIcon icon1 = new ImageIcon(image/tjsc.gif); ImageIcon icon2 = new ImageIcon(image/cxdl.gif); ImageIcon icon3 = new ImageIcon(image/xgmm.gif); ImageIcon icon4 = new ImageIcon(image/tcxt.gif); ImageIcon icon5 = new ImageIcon(image/jj.gif); ImageIcon icon6 = new ImageIcon(image/help.gif); ImageIcon icon7 = new ImageIcon(image/cx.gif); ImageIcon icon8 = new ImageIcon(image/gl.gif); ImageIcon icon9 = new ImageIcon(image/xt.gif); ImageIcon icon10 = new ImageIcon(image/xxgl.gif); ImageIcon icon11 = new ImageIcon(image/xxcx.gif); ImageIcon icon12 = new ImageIcon(image/bz.gif); ImageIcon icon13 = new ImageIcon(image/gy.gif); ImageIcon icon14 = new ImageIcon(image/glxx.gif); ImageIcon icon15 = new ImageIcon(image/cxxx.gif); public main() /构造函数 setTitle(员工管理系统);/设置窗体标题 Container con = getContentPane(); con.setLayout(new BorderLayout();/创建一个布局 con.add(deskpane, BorderLayout.CENTER);/实例虚拟桌面的布局 Font f = new Font(新宋体, Font.PLAIN, 12);/设置一个字体,以后设置字体全部调用这种字体,懒得弄那么花花哨哨的 JMenuBar mb = new JMenuBar();/实例化菜单栏 /实例化菜单开始 JMenu systemM = new JMenu(系统管理); systemM.setFont(f); JMenu manageM = new JMenu(信息管理); manageM.setFont(f); JMenu employeeMM = new JMenu(员工信息管理);/这个是信息管理的二级菜单 employeeMM.setFont(f); JMenu selectM = new JMenu(信息查询); selectM.setFont(f); JMenu employeeSM = new JMenu(员工信息查询);/这个是信息查询的二级菜单 employeeSM.setFont(f); JMenu aboutM = new JMenu(关于); aboutM.setFont(f); /实例化菜单结束 /实例化系统管理菜单的菜单项 JMenuItem password = new JMenuItem(密码修改); password.setFont(f); JMenuItem login = new JMenuItem(重新登陆); login.setFont(f); JMenuItem addDelete = new JMenuItem(添加/删除用户); addDelete.setFont(f); JMenuItem exit = new JMenuItem(退出系统); exit.setFont(f); systemM.add(password); systemM.add(login); systemM.add(addDelete); systemM.add(exit); /实例化系统管理菜单的菜单项结束/为系统管理菜单加事件- password.addActionListener(new ActionListener() /密码修改监听 public void actionPerformed(ActionEvent e) System.out.println(xiugaiPassword); deskpane.add(new xiugaiPassword();); login.addActionListener(new ActionListener() /重新登陆监听 public void actionPerformed(ActionEvent e) System.out.println(denglu); setVisible(false); new denglu();); addDelete.addActionListener(new ActionListener() /添加/删除用户监听 public void actionPerformed(ActionEvent e) deskpane.add(new AddDeleteUser();); exit.addActionListener(new ActionListener() /退出系统监听 public void actionPerformed(ActionEvent e) /new JOptionPane().showMessageDialog( setVisible(false);); /实例化信息管理的菜单项 JMenuItem departmentM = new JMenuItem(部门信息管理); departmentM.setFont(f); JMenuItem employeeM = new JMenuItem(基本信息管理); employeeM.setFont(f); JMenuItem wageM = new JMenuItem(薪资信息管理); wageM.setFont(f); employeeMM.add(employeeM); employeeMM.add(wageM); manageM.add(employeeMM); manageM.add(departmentM); /实例化信息管理的菜单项结束/为管理菜单加事件- departmentM.addActionListener(new ActionListener() /部门信息管理监听 public void actionPerformed(ActionEvent e) System.out.println(Departmentmanage); deskpane.add(new bumenmanage();); employeeM.addActionListener(new ActionListener() /基本信息管理监听 public void actionPerformed(ActionEvent e) System.out.println(Employeemanage); deskpane.add(new Employeemanage();); wageM.addActionListener(new ActionListener() /薪资信息管理监听 public void actionPerformed(ActionEvent e) System.out.println(gongziManage); deskpane.add(new gongziManage();); /实例化信息查询的菜单项 JMenuItem departmentS = new JMenuItem(部门信息查询); departmentS.setFont(f); JMenuItem employeeS = new JMenuItem(基本信息查询); employeeS.setFont(f); JMenuItem wageS = new JMenuItem(薪资信息查询); wageS.setFont(f); employeeSM.add(employeeS); employeeSM.add(wageS); selectM.add(employeeSM); selectM.add(departmentS); /实例化信息查询的菜单项结束/为查询菜单加事件- departmentS.addActionListener(new ActionListener() /部门信息查询监听 public void actionPerformed(ActionEvent e) System.out.println(bumenchaxun); deskpane.add(new bumenchaxun();); employeeS.addActionListener(new ActionListener() /基本信息查询监听 public void actionPerformed(ActionEvent e) System.out.println(yuangongxxchaxun); deskpane.add(new yuangongxxchaxun();); wageS.addActionListener(new ActionListener() /薪资信息查询监听 public void actionPerformed(ActionEvent e) System.out.println(gongzichaxun); deskpane.add(new gongzichaxun();); JMenuItem about = new JMenuItem(关于); about.setFont(f); aboutM.add(about);/为帮助菜单加事件- about.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) deskpane.add(new About();); mb.add(systemM); mb.add(manageM); mb.add(selectM); mb.add(aboutM); setJMenuBar(mb);/以下全都是在添加图标- /窗口图标 Image img = Toolkit.getDefaultToolkit().getImage(imagemain.gif); setIconImage(img); /添加菜单图标 19systemM.setIcon(icon9); manageM.setIcon(icon8); selectM.setIcon(icon7); addDelete.setIcon(icon1); password.setIcon(icon3); exit.setIcon(icon4); employeeMM.setIcon(icon5); employeeSM.setIcon(icon5); departmentM.setIcon(icon10); departmentS.setIcon(icon11); aboutM.setIcon(icon13); about.setIcon(icon13); employeeM.setIcon(icon14); wageM.setIcon(icon14); employeeS.setIcon(icon15); wageS.setIcon(icon15); JToolBar jToolBar1 = new JToolBar();/创建一个工具栏 jToolBar1.setLayout(new GridLayout(9, 1);/设置成网格布局 JButton jButton1 = new JButton();/创建并实例化按钮 jButton1.setToolTipText(员工基本信息管理);/设置按钮悬停信息 JButton jButton2 = new JButton(); jButton2.setToolTipText(员工基本信息查询); JButton jButton3 = new JButton(); jButton3.setToolTipText(修改密码); JButton jButton5 = new JButton(); jButton5.setToolTipText(计算器); JButton jButton6 = new JButton(); jButton6.setToolTipText(退出系统); jToolBar1.setMaximumSize(new java.awt.Dimension(600, 50);/设置工具栏最大值 jToolBar1.setMinimumSize(new java.awt.Dimension(600, 50);/设置工具栏最小值 jButton1.setIcon(new ImageIcon(image/1.png);/添加左边第一个按钮1图标 jButton1.addActionListener(new ActionListener() /监听该按钮1图表显示 public void actionPerformed(ActionEvent e) System.out.println(Employeemanage); deskpane.add(new Employeemanage();); jToolBar1.add(jButton1);/将按钮添加到JToolBar1中,以下同理添加按钮2 jButton2.setIcon(new ImageIcon(image/2.png); jButton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) deskpane.add(new yuangongxxchaxun();); jToolBar1.add(jButton2); jButton3.setIcon(new ImageIcon(image/3.png); jButton3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) deskpane.add(new xiugaiPassword();); jToolBar1.add(jButton3); jButton5.setIcon(new ImageIcon(image/5.png); jButton5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.out.println(Calculator); deskpane.add(new jisuanqi();); jToolBar1.add(jButton5); jButton6.setIcon(new javax.swing.ImageIcon(image/6.png); jButton6.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0);); jToolBar1.add(jButton6); /添加工具栏中按钮的方法结束 jToolBar1.setBounds(0, 0, 30, 600);/工具栏位置 jToolBar1.setEnabled(false);/禁止更改大小 con.add(jToolBar1, BorderLayout.WEST);/布局 Label lb2 = new Label(欢 迎 使 用 员 工 管 理 系 统 !); lb2.setForeground(Color.black); p.setLayout(new BorderLayout(); p.add(lp1, BorderLayout.EAST); p.add(lb2, BorderLayout.CENTER); t.start(); con.add(p, BorderLayout.SOUTH); Toolkit t = Toolkit.getDefaultToolkit();/这个类是抽象的,一切实际实现的抽象窗口工具包。类的工具包是用来约束的,实现各个组成部分的具体本地工具箱。 int width = t.getScreenSize().width - 200; int height = t.getScreenSize().height - 100; setSize(width, height); setLocation(150, 100); setVisible(true); setResizable(false); /线程的方法 public void run() System.out.println(线程启动了!);/友好提示 Toolkit t = Toolkit.getDefaultToolkit(); int x = t.getScreenSize().width; lp1.setForeground(Color.red); while (true) if (x -600) x = t.getScreenSize().width; lp1.setBounds(x, 0, 700, 20); x -= 10; try Thread.sleep(100); catch (Exception e) (2)密码修改窗口 1)效果图2)关键代码/将所有用用户名读出来 database.joinDB(); String sql=select * from UserInformation; try if(database.query(sql) while(database.rs.next() String name=database.rs.getString(User_Name); tf.addItem(name); catch(Exception e)/为确定按钮加事件 b1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String name= + tf.getSelectedItem(); System.out.println(name); String sql=select * from UserInformation where User_Name=+ name +; System.out.println(sql); try if(database.query(sql) database.rs.next(); String ps1=pas1.getText(); String password=database.rs.getString(Password); if(ps1.equals(password) if(pas2.getText().equals(pas3.getText()String supdate=update UserInformation set Password=+ pas3.getText()+ where User_Name=+ name +; database.executeSQL(supdate); new JOptionPane().showMessageDialog(null,密码更改成功!); else new JOptionPane().showMessageDialog(null,两次密码不同!); else new JOptionPane().showMessageDialog(null,旧密码不正确!); catch(Exception el) System.out.println(el););(3)添加删除用户窗口1)效果图2)关键代码:/将所有用用户名读出来 database.joinDB(); String sql = select * from UserInformation; try if (database.query(sql) while (database.rs.next() /顺序读出所有用户名 String n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旧房拆墙改造方案范本
- 浙江长征职业技术学院《生命应急救护》2023-2024学年第一学期期末试卷
- 沈阳工程学院《温病学研究进展》2023-2024学年第二学期期末试卷
- 咖啡行业指数分析报告
- 天津传媒学院《数值计算与》2023-2024学年第一学期期末试卷
- 塔里木职业技术学院《中医药文化与养生》2023-2024学年第二学期期末试卷
- 辽宁中医药大学杏林学院《工程光学(1)》2023-2024学年第一学期期末试卷
- 2025旅游度假区建设项目合同范本
- 中国矿业大学(北京)《禅宗与文学》2023-2024学年第一学期期末试卷
- 辽宁医药职业学院《合唱与指挥A》2023-2024学年第二学期期末试卷
- 广西钦州市钦州港经济技术开发区中学2025年初三第二学期第一次区模拟化学试题含解析
- 全国统一卷试题及答案
- 银行防抢防暴课件
- 水电工程验收单
- 妇科护理标准化管理
- 兰州2025年中国农业科学院兰州畜牧与兽药研究所招聘16人笔试历年参考题库附带答案详解
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(701-800题)
- 《哈哈镜笑哈哈》名师课件2022
- 传统皮影戏在小学艺术教育的应用与创新实践
- 2025年国家会展中心上海有限责任公司招聘笔试参考题库含答案解析
- 2022浪潮英政服务器CS5260H2用户手册
评论
0/150
提交评论