实训八 RFID刷卡消费程序编程练习
一、实训目的
1、练习刷卡操作中自动寻卡、人工寻卡的编程实现方法。
2、练习读写RFID卡存储的信息、读写数据库信息、验证卡是否有效等方面的编程方法。
二、实训设备
1、笔记本电脑,Windows 7或Win10操作系统,Java、Eclipse、Windowbuilder、MySQL等软件环境。
2、BC750AS RFID读写器,MF1 空白卡。
三、程序功能简介
1、具有自动寻卡、人工寻卡两种刷卡方式,自动记录刷卡情况。
2、刷卡过程中,根据数据库中记录的信息对卡中的信息进行识别和判断,是否为合法卡。如果是合法卡,则对卡中的次数值进行减值操作,同时对数据库发卡信息表中对应记录的值进行减值操作,然后在刷卡信息表中添加一条刷卡记录。
3、对同一个卡,具有防止重复刷卡的误操作功能。
四、实训内容和步骤
1、新建数据库表tblswipe,有如下3个字段:
swipeid,int //设置为自动增长,关键字
cardid,varchar,10
swipetime,varchar,20
2、在eclipse中新建SWT项目
进入Eclipse后,单击菜单“文件--新建--项目…”,或在起始页中单击“新建项目…”,打开新建项目窗口,选择“WindowBuilder—SWT Designer—SWT/JFace Java Project”,然后单击下一步,输入项目名称:SwipeCardTest20160211XX,然后单击“确定”按钮。
3、新建应用程序窗口
选中新建项目中的“src”,单击菜单“文件—新建—其他…”,打开“新建”对话框,选择“SWT—Application Window”,单击“下一步”,打开“New SWT Application”对话框。
4、设计程序界面
从解决方案资源管理器窗口中双击“SwipeCard.java”,选择Design视图,先修改窗口的标题为“SwipeCardTest 16物联网1班 xxx 20160211xx”,然后从工具箱中添加控件: 4个标签(label),3个文本框(Text)和5个按钮(button),修改控件的名称(Name)和显示的文本(text),进行适当的布局调整,使各控件整齐美观。
5、拷贝库文件夹(lib),添加MySQL数据库驱动程序
在项目中新建文件夹(lib),将其中的库文件(12个)拷贝到该文件夹中,并将mysql-connector-java-5.1.35.jar和jna_.4.2.2.jar也拷贝到该文件夹中,将项目库文件的引用位置改为项目中lib文件夹中的库文件。
6、新建数据模型实体类CardEntity.java,属性与表的字段名称和类型相对应,每个属性有get和set两个方法函数。
7、新建数据模型实体类SwipeEntity.java,属性与表的字段名称和类型相对应,每个属性有get和set两个方法函数。
8、新建数据库连接类BaseDao.java,有一个方法函数getConnection( )。
9、新建数据访问对象类CardDao.java,有insertCard( )、queryCard( )和updateCard( )三个方法函数。
10、新建数据库访问对象类SwipeDao.java,包括插入记录insertSwipe( )、queryCard( )两个方法函数。
11、编写“查询发卡记录”按钮单击事件监听程序
12、编写“查询刷卡记录”按钮单击事件监听程序
13、创建类文件DataConvert.java,用于实现字符串和日期变量相互转换。
14、创建类文件AutoSwipeTask.java,继承父类TimerTask,其中有一个run()函数,是定时器Timer每隔2000毫秒执行该函数一次。
15、新建装载DLL和实现刷卡操作的类LoadDll.java,包括连接Connect()、断开连接disConnect()、刷卡swipeCard()、出错提示音errorBeep()等方法函数,其中代码大部分可以从实训七的代码中复制)。
刷卡swipeCard( )方法函数中,刷卡过程包括以下6个步骤:
(1) 寻卡,读取卡号。
(2) 从数据库中查找是否存在发卡信息。
(3) 根据发卡信息,判断卡余额(次数)是否大于0,是否在有效期内。
(4) 卡中的余额值减1。
(5) 数据库中发卡信息余额减1。
(6) 添加一条刷卡记录。
16、在SwipeCard.java中,编写窗口激活(shellActivated)时执行的代码,该段代码的功能是打开RFID读写器。
(1)类级的变量
(2)输入窗口激活和关闭时执行的代码
(3)输入“自动寻卡”按钮的单击事件监听程序,启动定时器,每2秒执行一次timerTask(任务),并实现按钮互锁。
(4)输入“停止寻卡”按钮的单击事件监听程序,关闭定时器,显示返回的信息。
(5)输入“手动寻卡”按钮的单击事件监听程序,调用刷卡程序,并显示返回的信息。
17、运行调试
录入编辑完成后,单击工具栏中的“启动”按钮,测试各个按钮的功能,检查程序的运行情况。调试完成后,将源程序(解决方案)压缩为SwipeCardTest20160211XX.rar,作为实训题的附件上传。
附:(1)源程序目录架构
(2)运行效果图
五、实训总结
1、本次实训是如何实现自动刷卡操作的?
2、一次成功的刷卡过程主要进行哪些操作?
3、简述本次实训的收获。
本类资料全部为博主在开展项目化教学过程中的部分原创作品,用于指导学生进行项目实训。