JAVA考勤管理系统.docx
- 文档编号:4476445
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:17
- 大小:132.27KB
JAVA考勤管理系统.docx
《JAVA考勤管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA考勤管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
JAVA考勤管理系统
课程设计任务书
系别
电气与电子工程系
专业
计算机应用技术
班级
指导教师
题目
JAVA考勤管理系统
设计目的:
熟练掌握JAVA程序设计图形开发、事件驱动机制、各种组件使用。
设计要求:
用JAVA设计一个计算器小程序;设计的作品以单个Java文件形式,若是Applet小程序,则附带相关的网页;不要使用包路径;代码书写规范,无语法和逻辑错误;
课程设计要求:
1.画出程序设计流程图,说明程序设计流程。
2.根据流程图,说明所使用的相关知识。
3. 编写出程序
4.撰写课程设计说明书。
课程说明书里应包括目录,程序流程图,程序,总结(印象较深的经验/教训等)。
要求:
设计要有相应的设计报告,报告要包含题目、目录、摘要、关键字、正文、参考文献几部分;字体、字号格式按样文设置;正文要有需求分析、概要设计、详细设计、代码、结论等部分构成,并有必要的图表和效果图;
结题形式
程序代码,设计说明书
时间分配:
总体设计时间为1周
1.设计流程图1天
2.编写各部分程序2天
3.上机调试,实现功能1天
4.写说明书、答辩1天
第一章考勤管理系统功能
说明《考勤管理系统》为了解决班级考勤,开发的一个基于Java—Swing和mssql的桌面管理系统。
介绍主要功能(模块结构图)
考勤管理系统
用户管理
考勤管理
考勤查询
用户修改
用户删除
系统退出
用户添加
考勤管理设置
考勤课程设置
人员考勤管理
考勤人员添加
考勤卡号查询
考勤姓名查询
考勤周次查询
第二章软件开发
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、用户添加界面
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();}
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());
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();
rs=stmt.executeQuery("selectname,pwd,gradefromhy");
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("selectid,code,name,class,telfrombiao1");
rs.last();r_date=newObject[rs.getRow()][];
rs.beforeFirst();
rs.close();stmt.close();conn.close();i=0}
bg=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、程序的开发流程
开始
检测数据库中是否存在记录
设置按钮不可用,重置,可重新设置
删除表中数据,设置按钮不可用
是
否
则不可设置
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、考勤课程设置界面
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、人员考勤管理界面
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_kqwherename='"+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、程序的开发流程
输入考号/日期
从数据库中获取信息
显示在表中
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.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery("select*fromfind_codewherename='"+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);
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;}}
第三章总结
3.1建立数据源
1、使用JDBC-ODBCjava联接了数据源
2、使用JDBCforSQL**驱动。
JAVA
ODBC桥
映射
3、建立数据源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面板里。
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语言功能的强大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 考勤 管理 系统