欢迎来到天天文库
浏览记录
ID:9317176
大小:110.50 KB
页数:9页
时间:2018-04-27
《基于c#的考勤系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于C#的考勤系统设计 摘要:在.NET集成开发平台下,利用C#进行程序设计,通过读取ID卡上的标识性数据,结合数据库技术设计并实现了考勤系统。阐述了系统设计思路及关键技术。 关键词:.NET;考勤系统;C#;ID卡;数据库技术 中图分类号:TP319文献标识码:A文章编号文章编号:16727800(2013)0010010702 基金项目:紫琅职业技术学院特色专业建设项目(201104) 作者简介:韩小祥(1979-),男,硕士,紫琅职业技术学院讲师,研究方向为数据绑定技术、数字水印技术;万里骏(1983-),女,硕士,紫琅职业技术学
2、院助理实验师,研究方向为无线传感网络。 0引言9 信息化时代的今天,考勤系统被广泛应用在各行各业,其形式丰富、技术多样,很好地解决了传统签到式考勤的弊端,提高了实时精度,并有利于数据查询与汇总。目前,利用.NET技术实现的考勤系统还比较少。.NET的集成开发环境具备高效、快速开发的特性,其数据控件功能强大、使用方便、扩展性强。考勤系统中采用刷卡模式的较多,利用读卡器进行读卡操作,并获取标识性数据,通过对该标志性数据的识别获得相应的身份,从而进行精确的考勤,这种方法操作简便,实时性强。 1设计思路 考勤系统可基于C/S或B/S架构进行设计,
3、由于考勤管理的严肃性,在终端仅需进行简单的刷卡操作,数据查询与汇总应由专门的人员进行操作,所以绝大多数考勤系统以C/S架构的形式呈现。本系统以125K低频读卡器为例,C#为编程语言进行开发。.NET集成开发环境提供了丰富的控件及数据绑定功能,这给程序设计带来了极大的便捷体验。程序界面以Windows窗体呈现,充分利用ListView控件的数据绑定功能灵活设计,以达到简洁、实用、高效的目的。 序号列名数据类型说明 1KIDint自动编号,主键 2KNamevarchar(50)员工名称 3KDatevarchar(50)考勤日期 4KTi
4、meVarchar(50)考勤时间 5KDetailsvarchar(50)考勤细节,如事假、病假记载 3实现过程 3.1ID卡读取9 为了识别刷卡者的身份,最重要的环节便是通过读卡器读取ID卡中的标识性数据,如ID卡号。员工使用ID卡刷卡,读卡器开始工作,在读出ID号码后会向上位机通过串口发出指令,上位机监视串口缓冲区中是否有数据进来,如果有则读进来,读多少个字节要看读卡器的通许协议,在C#中可以使用SerialPort的DataReceiving事件来监控是否有数据进来,然后使用SerialPort的ReadLine方法来读取缓冲区里
5、的数据,并在文本框中显示,其过程如下: privatebytereceivedData=newbyte[11]; privatedelegatevoidUpdateTextEventHandler(stringtext);//定义委托 privateeventUpdateTextEventHandlertextChanged;//定义事件 privatevoidChangeText(stringtext)//事件处理方法 { textBox1.Text=text; } publicForm1() {9 InitializeCo
6、mponent(); if(serialPort1.IsOpen) { serialPort1.Close(); } serialPort1.BaudRate=9600;//设置波特率为9600 serialPort1.PortName="COM1";//设置端口号,这里使用COM1端口 serialPort1.ReceivedBytesThreshold=11;//设置DataReceived事件发生前内部输入缓冲区中的字节数为11 textChanged+=newUpdateTextEventHandler(ChangeTex
7、t);//将事件处理方法添加到事件中去 serialPort1.Open(); } privatevoidserialPort1_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse)9 { serialPort1.Read(receivedData,0,11); stringtext=Encoding.ASCII.GetString(receivedData).Substring(1,10); serialPort1.DiscardInBuff
8、er(); this.Invoke(textChanged,newstring{text}); } 3.2窗体布局与查询 (1)
此文档下载收益归作者所有