- 262.52 KB
- 2022-05-17 13:33:29 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
课程设计任务书系别电气与电子工程系专业计算机应用技术班级指导教师题目JAVA考勤管理系统设计目的:熟练掌握JAVA程序设计图形开发、事件驱动机制、各种组件使用。设计要求:用JAVA设计一个计算器小程序;设计的作品以单个Java文件形式,若是Applet小程序,则附带相关的网页;不要使用包路径;代码书写规范,无语法和逻辑错误;课程设计要求:1.画出程序设计流程图,说明程序设计流程。2.根据流程图,说明所使用的相关知识。3. 编写出程序4.撰写课程设计说明书。课程说明书里应包括目录,程序流程图,程序,总结(印象较深的经验/教训等)。要求:设计要有相应的设计报告,报告要包含题目、目录、摘要、关键字、正文、参考文献几部分;字体、字号格式按样文设置;正文要有需求分析、概要设计、详细设计、代码、结论等部分构成,并有必要的图表和效果图;结题形式程序代码,设计说明书时间分配:总体设计时间为1周1.设计流程图1天2.编写各部分程序2天3.上机调试,实现功能1天4.写说明书、答辩1天18
目录第一章考勤管理系统功能3第二章软件开发42.1用户登录42.2用户管理模块开发42.2.1用户添加42.2.2用户修改62.2.3用户删除62.3考勤管理模块开发82.3.1考勤人员添加82.3.2考勤管理设置92.3.3考勤课程设置102.3.4人员考勤管理112.4考勤查询132.4.1考勤卡号查询132.4.2考勤姓名查询142.4.3考勤周次查询15第三章总结173.1建立数据源173.2控件使用173.3JAVA代码结构认识1818
第一章考勤管理系统功能说明《考勤管理系统》为了解决班级考勤,开发的一个基于Java—Swing和mssql的桌面管理系统。介绍主要功能(模块结构图)考勤周次查询考勤姓名查询考勤卡号查询考勤人员添加考勤课程设置人员考勤管理考勤管理设置用户修改系统退出用户删除用户添加考勤查询考勤管理用户管理考勤管理系统18
第二章软件开发2.1用户登录1、用户登录界面2、程序的开发流程输入用户名、密码数据库中是否有记录进入管理界面是否3、核心代码str3="select*fromhywherename=""+str1+""andpwd=""+str2+""";con=DriverManager.getConnection("jdbc:odbc:wk","sa","");stmt=con.createStatement();2.2用户管理模块开发2.2.1用户添加1、用户添加界面18
2、程序的开发流程按下下一个按钮记录是否到底否显示下一记录是游标到起始记录3、核心代码Stringstr_sql="insertintobiao(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(SQLExceptione){e.printStackTrace();}18
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("selectname,pwd,gradefromhy");rs.next();text1.setText(rs.getString("name"));pwd.setText(rs.getString("pwd"));cpwd.setText(pwd.getText());18
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("selectname,pwd,gradefromhy");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();18
rs=stmt.executeQuery("selectname,pwd,gradefromhy");2.3考勤管理模块开发2.3.1考勤人员添加1、考勤人员添加界面2、程序的开发流程开始添加人员信息是否为空,重复否完成,显示在表中是3、核心代码conn=DriverManager.getConnection("jdbc:odbc:wk","sa","");18
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery("selectid,code,name,class,telfrombiao1");rs.last();r_date=newObject[rs.getRow()][];rs.beforeFirst();rs.close();stmt.close();conn.close();i=0}18bg=newJTable(r_date,t);s=newJScrollPane();s.setViewportView(bg);sql="insertintokq(code,name,class,tel)values(""+scode+"",""+sname+"",""+sclass+"",""+stel+"")";2.3.2考勤管理设置1、考勤管理设置界面2、程序的开发流程18
开始检测数据库中是否存在记录设置按钮不可用,重置,可重新设置删除表中数据,设置按钮不可用是否则不可设置3、核心代码b1.setEnabled(false);b2.setEnabled(true);try{conn=DriverManager.getConnection("jdbc:odbc:wk","sa","");stmt=conn.createStatement();stmt.executeUpdate("insertintocheck_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、考勤课程设置界面18
2、程序的开发流程新建Visualclass类建立课程管理窗体添加课程将数据加入库3、核心代码try{conn=DriverManager.getConnection("jdbc:odbc:wk","sa","");stmt=conn.createStatement();for(inti=1;i<=5;i++){if(i==1){stmt.executeUpdate("insertintocheck_class(x1,x2,x3,x4,x5)values(""+jTextField1.getText()+"",""+jTextField6.getText()+"",""+jTextField11.getText()+"",""+jTextField16.getText()+"",""+jTextField21.getText()+"")");}2.3.4人员考勤管理1、人员考勤管理界面18
2、程序的开发流程选择课程扫描卡号确定选择考勤类型添加3、核心代码计算日期Datedate1=newDate();Calendarc=Calendar.getInstance(Locale.CHINESE);c.setTimeInMillis(date1.getTime());c.add(Calendar.HOUR,-10);DateFormatdf=DateFormat.getDateTimeInstance();try{returnc.getTime().before(df.parse(date2));}catch(ParseExceptione){e.printStackTrace();returnfalse;}conn=DriverManager.getConnection("jdbc:odbc:wk","sa","");stmt=conn.createStatement();rs=stmt.executeQuery("selectcodefromyu_kqwhere18
name=""+tx2.getText()+""");if(rs.next()){s_code=rs.getString(1);Calendarc=Calendar.getInstance(Locale.CHINESE);SimpleDateFormatsim=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");c.getTime();c.add(Calendar.HOUR,+14);s_datetime=sim.format(c.getTime());2.4考勤查询2.4.1考勤卡号查询1、考勤卡号查询界面2、程序的开发流程输入考号/日期从数据库中获取信息显示在表中18
3、核心代码date=newObject[rs.getRow()][];rs.beforeFirst();s.remove(bg);bg=newJTable(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.18
TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery("select*fromfind_codewherename=""+t_code.getText()+""");rs.last();2.4.3考勤周次查询1、考勤周次查询界面2、程序的开发流程输入信息从数据库中获取信息输出显示18
3、核心代码周次转换为天数的算法(周数-1)*7+星期几调用以下类中的方法daycount=(Integer.parseInt(t_week.getText())-1)*7+Integer.parseInt(t_date.getText());System.out.println("天数"+daycount);Stringresult="";DateFormatdf=newSimpleDateFormat("yyyy-MM-dd");longi=86400000;try{Dateldate=df.parse(ymd);result=df.format(newDate(ldate.getTime()+nextYmd*i)).toString();}catch(ParseExceptione){e.printStackTrace();}returnresult;}}18
第三章总结3.1建立数据源1、使用JDBC-ODBCjava联接了数据源2、使用JDBCforSQL**驱动。映射ODBC桥JAVA3、建立数据源ODBC控制面板——管理工具——数据源ODBC——系统DSN——添加——选择数据库类型SQL指定数据源名称:(名称:ts)——服务器名称:在服务管理中粘贴——登录方式系统默认——更改默认数据库(新建的库)——数据源测试——完成privateConnectionconn=null;//声明数据联接privateStatementstmt=null;//传递sql语句privateResultSetrs=null;//接收结果(记录集)3.2控件使用1、JFrame添加背景图片//菜单背景.privateImageimg_main=null;privateImageIconicon_main=null;privateJLabell=null;privateJLayeredPanep=null;//背景图标img_main=ImageIO.read(this.getClass().getResource("/pro_2/pic/main.jpg"));icon_main=newImageIcon(img_main);//添加背景图片l=newJLabel(icon_main);p=this.getLayeredPane();p.setOpaque(false);l.setBounds(0,0,icon_main.getIconWidth(),icon_main.getIconHeight());//设置背景标签的位置p.add(l,newInteger(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。18
Containercp=this.getContentPane();cp.setLayout(null);((JPanel)cp).setOpaque(false);2、如何在jTextField上添加事件,实现输入数据触发事件t-jTextField对象t.getDocument().addDocumentListener(newDocumentListener(){publicvoidchangedUpdate(DocumentEventarg0){//当属性或者属性集发生变化时通知}publicvoidinsertUpdate(DocumentEventarg0){//文本输入时通知}publicvoidremoveUpdate(DocumentEventarg0){//删除文本时通知}});3、在容器中添加滚动条容器privateJScrollPanep=newJScrollPane();//声明并创建滚动条容器p.setBounds(10,10,300,300);//设置位置this.add(p);//添加3.3JAVA代码结构认识通过这次的课程设计,让我更好的巩固了JAVA课程中所学习地知识,对JAVA开发程序有了一个系统的了解。知道了在开发程序时,应该先构建一个体系,在设计程序前应该先将程序的流程图画出来,再有目的的去编写各部分的程序。同时,也让我感觉到了JAVA语言功能的强大。18