收藏 分销(赏)

JAVA考勤管理系统.doc

上传人:精**** 文档编号:9849195 上传时间:2025-04-10 格式:DOC 页数:26 大小:235KB
下载 相关 举报
JAVA考勤管理系统.doc_第1页
第1页 / 共26页
JAVA考勤管理系统.doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述
JAVA考勤管理系统 26 2020年4月19日 文档仅供参考 课程设计任务书 系别 电气与电子工程系 专业 计算机应用技术 班级 指导教师 题目 JAVA考勤管理系统 设计目的:熟练掌握JAVA程序设计图形开发、事件驱动机制、各种组件使用。 设计要求:用JAVA设计一个计算器小程序;设计的作品以单个Java文件形式,若是Applet小程序,则附带相关的网页;不要使用包路径;代码书写规范,无语法和逻辑错误; 课程设计要求: 1.画出程序设计流程图,说明程序设计流程。 2. 根据流程图,说明所使用的相关知识。 3. 编写出程序 4. 撰写课程设计说明书。 课程说明书里应包括目录,程序流程图,程序,总结(印象较深的经验/教训等)。要求:设计要有相应的设计报告,报告要包含题目、目录、摘要、关键字、正文、参考文献几部分;字体、字号格式按样文设置;正文要有需求分析、概要设计、详细设计、代码、结论等部分构成,并有必要的图表和效果图; 结题形式 程序代码,设计说明书 时间分配:总体设计时间为1周 1. 设计流程图 1天 2. 编写各部分程序 2天 3. 上机调试,实现功能 1天 4. 写说明书、答辩 1天 目录 第一章 考勤管理系统功能 3 第二章 软件开发 4 2.1 用户登录 4 2.2 用户管理模块开发 4 2.2.1 用户添加 4 2.2.2 用户修改 6 2.2.3 用户删除 6 2.3 考勤管理模块开发 8 2.3.1 考勤人员添加 8 2.3.2 考勤管理设置 9 2.3.3 考勤课程设置 10 2.3.4 人员考勤管理 11 2.4 考勤查询 13 2.4.1 考勤卡号查询 13 2.4.2 考勤姓名查询 14 2.4.3 考勤周次查询 15 第三章 总结 17 3.1 建立数据源 17 3.2 控件使用 17 3.3 JAVA 代码结构认识 18 第一章 考勤管理系统功能 说明《考勤管理系统》为了解决班级考勤,开发的一个基于Java—Swing和mssql的桌面管理系统。 介绍主要功能(模块结构图) 考勤周次查询 考勤姓名查询 考勤卡号查询 考勤人员添加 考勤课程设置 人员考勤管理 考勤管理设置 用户修改 系统退出 用户删除 用户添加 考 勤 查 询 考 勤 管 理 用 户 管 理 考勤管理系统 第二章 软件开发 2.1 用户登录 1、用户登录界面 2、程序的开发流程 输入用户名、密码 数据库中是否有记录 进入管理界面 是 否 3、核心代码 str3="select * from hy where name='"+str1+"'and pwd='"+str2+"'"; con = DriverManager.getConnection("jdbc:odbc:wk","sa",""); stmt=con.createStatement(); 2.2 用户管理模块开发 2.2.1 用户添加 1、用户添加界面 2、程序的开发流程 按下 下一个 按钮 记录是否到底 否 显示下一记录 是 游标到起始记录 3、核心代码 String str_sql="insert into biao (name,pwd,grade) values ('"+str_name+"','"+str_pwd+"','"+user_type+"')"; try {conn=DriverManager.getConnection("jdbc:odbc:wk", "sa", ""); stmt=conn.createStatement(); stmt.executeUpdate(str_sql); JOptionPane.showConfirmDialog(this, "添加成功!", "系统提示", JOptionPane.CLOSED_OPTION,JOptionPane.INFORMATION_MESSAGE); tx.setText(""); fd1.setText(""); fd2.setText(""); } catch (SQLException e) {e.printStackTrace();} 2.2.2 用户修改 1、用户修改界面 2、程序的开发流程 开始修改用户 修改用户或密码 是否更新用户或密码 更新 否 是 3、核心代码 conn = DriverManager.getConnection("jdbc:odbc:wk","sa",""); sta=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=sta.executeQuery("select name,pwd,grade from hy"); rs.next(); text1.setText(rs.getString("name")); pwd.setText(rs.getString("pwd")); cpwd.setText(pwd.getText()); 2.2.3 用户删除 1、用户删除界面 2、程序的开发流程 删除 获取卡号 是否删除 删除 是 否 3、核心代码 conn=DriverManager.getConnection("jdbc:odbc:wk", "sa", ""); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery("select name,pwd,grade from hy"); rs.next(); tx.setText(rs.getString("name"));fd1.setText(rs.getString("pwd"));rs.updateString(1,tx.getText());rs.updateString (2, fd1.getText()); rs.updateInt(3, user_type); rs.updateRow(); JOptionPane.showConfirmDialog(this, "确定要删除吗?", "系统提示",JOptionPane.CLOSED_OPTION,JOptionPane.INFORMATION_MESSAGE); rs.deleteRow(); rs=stmt.executeQuery("select name,pwd,grade from hy"); 2.3 考勤管理模块开发 2.3.1 考勤人员添加 1、考勤人员添加界面 2、程序的开发流程 开始添加人员信息 是否为空,重复 否 完成,显示在表中 是 3、核心代码 conn=DriverManager.getConnection("jdbc:odbc:wk", "sa", ""); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery("select id,code,name,class,tel from biao1"); rs.last(); r_date=new Object[rs.getRow()][]; rs.beforeFirst(); rs.close();stmt.close();conn.close();i=0} bg=new JTable(r_date,t); s=new JScrollPane(); s.setViewportView(bg); sql="insert into kq (code,name,class,tel) values('"+scode+"','"+sname+"','"+sclass+"','"+stel+"')"; 2.3.2 考勤管理设置 1、考勤管理设置界面 2、程序的开发流程 开始 检测数据库中是否存在记录 设置按钮不可用,重置,可重新设置 删除表中数据,设置按钮不可用 是 否 则不可设置 3、核心代码 b1.setEnabled(false); b2.setEnabled(true); try { conn=DriverManager.getConnection("jdbc:odbc:wk","sa",""); stmt=conn.createStatement(); stmt.executeUpdate("insert into check_option (kx,c1,c2,c3,c4,c5) values ('"+tx1.getText()+"','"+tx2.getText()+"','"+tx3.getText()+"'," +"'"+tx4.getText()+"','"+tx5.getText()+"','"+tx6.getText()+"')"); stmt.close(); conn.close(); 2.3.3 考勤课程设置 1、考勤课程设置界面 2、程序的开发流程 新建Visual class类 建立课程管理窗体添加课程 将数据加入库 3、核心代码 try {conn=DriverManager.getConnection("jdbc:odbc:wk","sa",""); stmt=conn.createStatement(); for(int i=1;i<=5;i++) {if(i==1){ stmt.executeUpdate("insert into check_class (x1,x2,x3,x4,x5) values ('"+jTextField1.getText()+"','"+jTextField6.getText()+"','"+jTextField11.getText()+"','"+jTextField16.getText()+"','"+jTextField21.getText()+"')");} 2.3.4 人员考勤管理 1、人员考勤管理界面 2、程序的开发流程 选择课程 扫描卡号 确定 选择考勤类型 添加 3、核心代码 计算日期 Date date1=new Date(); Calendar c=Calendar.getInstance(Locale.CHINESE); c.setTimeInMillis(date1.getTime()); c.add(Calendar.HOUR,-10); DateFormat df=DateFormat.getDateTimeInstance(); try {return c.getTime().before(df.parse(date2)); } catch (ParseException e) {e.printStackTrace();return false;} conn=DriverManager.getConnection("jdbc:odbc:wk","sa",""); stmt=conn.createStatement(); rs=stmt.executeQuery("select code from yu_kq where name='"+tx2.getText()+"'"); if(rs.next()) {s_code=rs.getString(1); Calendar c=Calendar.getInstance(Locale.CHINESE); SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); c.getTime(); c.add(Calendar.HOUR, +14); s_datetime=sim.format(c.getTime()); 2.4 考勤查询 2.4.1 考勤卡号查询 1、考勤卡号查询界面 2、程序的开发流程 输入考号/日期 从数据库中获取信息 显示在表中 3、核心代码 date=new Object[rs.getRow()][]; rs.beforeFirst(); s.remove(bg); bg=new JTable(date,t); bg.setBounds(10, 120, 350, 180); s.setViewportView(bg); s.setBounds(10, 120, 350, 185); 2.4.2 考勤姓名查询 1、考勤姓名查询界面 2、程序的开发流程 输入姓名/日期 从数据库中获取信息 显示在表中 在数据库中建立 “人员—考勤”视图 3、核心代码 conn=DriverManager.getConnection("jdbc:odbc:wk","sa",""); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery("select * from find_code where name='"+t_code.getText()+"'"); rs.last(); 2.4.3 考勤周次查询 1、考勤周次查询界面 2、程序的开发流程 输入信息 从数据库中获取信息 输出显示 3、核心代码 周次转换为天数的算法 (周数-1)*7+星期几 调用以下类中的方法 daycount=(Integer.parseInt(t_week.getText())-1)*7+Integer.parseInt(t_date.getText()); System.out.println("天数"+daycount); String result = ""; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); long i=86400000; try {Date ldate = df.parse(ymd); result = df.format(new Date(ldate.getTime()+nextYmd * i)).toString(); } catch (ParseException e) { e.printStackTrace(); } return result;}} 第三章 总结 3.1 建立数据源 1、使用JDBC-ODBC java联接了数据源 2、使用JDBC for SQL** 驱动。 映射 ODBC 桥 JAVA 3、建立数据源ODBC 控制面板——管理工具——数据源ODBC ——系统DSN——添加——选择数据库类型SQL 指定数据源名称:(名称:ts)——服务器名称:在服务管理中粘贴 ——登录方式 系统默认——更改默认数据库(新建的库) ——数据源测试——完成 private Connection conn=null;//声明数据联接 private Statement stmt=null;//传递sql语句 private ResultSet rs=null;//接收结果(记录集) 3.2 控件使用 1、JFrame添加背景图片 //菜单背景 .private Image img_main=null; private ImageIcon icon_main=null; private JLabel l=null; private JLayeredPane p=null; //背景图标 img_main=ImageIO.read(this.getClass().getResource("/pro_2/pic/main.jpg")); icon_main=new ImageIcon(img_main); //添加背景图片 l=new JLabel(icon_main); p=this.getLayeredPane(); p.setOpaque(false); l.setBounds(0,0,icon_main.getIconWidth(), icon_main.getIconHeight());//设置背景标签的位置 p.add(l, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。 Container cp=this.getContentPane(); cp.setLayout(null); ((JPanel)cp).setOpaque(false); 2、如何在jTextField上添加事件,实现输入数据触发事件 t-jTextField对象 t.getDocument().addDocumentListener( new DocumentListener() { public void changedUpdate(DocumentEvent arg0) { //当属性或者属性集发生变化时通知 } public void insertUpdate(DocumentEvent arg0) { //文本输入时通知 } public void removeUpdate(DocumentEvent arg0) { //删除文本时通知 } } ); 3、在容器中添加滚动条容器 private JScrollPane p=new JScrollPane(); //声明并创立滚动条容器 p.setBounds(10, 10, 300, 300); //设置位置 this.add(p);//添加 3.3 JAVA 代码结构认识 经过这次的课程设计,让我更好的巩固了JAVA课程中所学习地知识,对JAVA开发程序有了一个系统的了解。知道了在开发程序时,应该先构建一个体系,在设计程序前应该先将程序的流程图画出来,再有目的的去编写各部分的程序。同时,也让我感觉到了JAVA语言功能的强大。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服