淮 阴 工 学 院
射频识别技术应用实习报告
选题名称:
系(院):
专
班
姓
业:
级:
名:
指导教师:
基于 RFID 的学生考勤系统
计算机工程学院
计算机科学与技术(物联网方向)
物联网 1091
王 xx
学 号: xxxxxxxxxxx
刘 x
学年学期: 2011 ~ 2012 学年 第 2 学期
2011 年 1 月 11 日
课题
名称
设计
目的
实验
环境
任务
要求
设计任务书
基于 RFID 的学生考勤系统
1. 熟练使用 ADO.NET 进行数据库操作;
2. 熟练掌握 C#窗口设计;
3. 掌握 RF_03TA 模块的通信;
4. 掌握 C#串口通信;
5. 提高查阅资料的能力和撰写论文报告的能力;
6. 提高分析问题、解决问题的能力。
1. 微型电子计算机(PC);
2. 安装 Windows XP 或 WIN7 操作系统;
3. 安装 Microsoft Visual Studio 2010、SQL Server 2005
4. RF-03TA 模块
1. 查阅有关资料;
2. 使用 SQL SERVER 2005 创建数据库
3. 使用 C#窗体实现操作界面;
4. 通过串口进行数据传送;
5. 编程、调试;
6. 撰写 2000 字的实践报告,并附电路原理图、软件流程图以及软件。
工作进度计划
序号
起止日期
工 作 内 容
2011.12.20~2011.12.22
需求分析、建立数据库、划分模块、登陆模块
设计
2011.12.23~2011.12.26 设计 C#前台窗体,编写后台程序
2011.12.27~2012.1.5 软件整合、测试、功能完善
2012.1.6~2012.1.6
编写报告
1
2
3
4
指导教师(签章):
2012 年 1 月 8 日
摘要:
学生考勤对加强教学管理,促进教学改革有着非常重要的意义。目前学生考
勤管理都是以任课老师上课点名,记录学生上课情况。这样学生对自己的出勤情
况没有整体的统计信息。教师对学生的出勤情况不容易查看。因此一个好的学生
考勤系统可以在一定程度上解决这些弊端。本设计的主要内容是实现基于 RFID
学生考勤系统的硬件软件结合环境。硬件环境主要是单片机控制的射频读卡器,
该读卡器采用非接触式射频 IC 卡技术与 PC 机连接,通过使用 C#窗体设计的用
户操作软件对读卡器进行控制以实现考勤功能。通过读取 IC 卡号,根据数据库
内存储内容调出相应信息并执行相应考勤信息更新操作。软件大体分为:学生、
教师、管理员三个模块,主要实现考勤及考勤情况的相应查询操作。
关键词:RFID;学生考勤;C#窗体
目录
1 课题综述 ............................................................................................................................ 1
1.1 课题来源..................................................................................................................................1
1.2 课题意义..................................................................................................................................1
1.3 预期目标..................................................................................................................................1
1.4 面对的问题..............................................................................................................................1
1.5 需解决的关键技术..................................................................................................................1
2 系统分析 ............................................................................................................................ 1
2.1 基础知识..................................................................................................................................1
2.2 基本思路及算法......................................................................................................................2
2.3 功能模块框图..........................................................................................................................2
3 总体方案与设计 ................................................................................................................3
3.1 总体需求分析..........................................................................................................................3
3.2 数据库设计..............................................................................................................................3
3.3 软件设计..................................................................................................................................3
3.4 硬件连接图..............................................................................................................................8
3.5 系统流程图..............................................................................................................................9
4 程序调试 ............................................................................................................................ 9
4.1 调试过程及步骤......................................................................................................................9
4.2 调试中出现的问题及解决方法........................................................................................... 10
5 运行与测试 ......................................................................................................................10
5.1 登陆模块................................................................................................................................10
5.2 学生模块................................................................................................................................11
5.3 教师模块................................................................................................................................13
5.4 管理员模块............................................................................................................................16
《射频识别技术课程设计报告》
1 课题综述
1.1 课题来源
本课题来源于刘虎老师。
1.2 课题意义
通过本课题,可以巩固 RFID 知识,并且将 C#程序设计、数据库技术、串
口通信这三种技术融合到一起,提高我们的实践能力。
1.3 预期目标
系统能够实现以学生、教师、管理员三种用户身份登录;三个模块都能够实
现密码修改;学生、教师模块能够实现各自对应的考勤情况查询;教师模块能够
实现学生考勤;管理员模块能够查询教师及学生的密码。
1.4 面对的问题
①长期没有接触编程语言
②C#窗体基础较为弱
③从未接触过串口通信
④没有数据库需要的信息
1.5 需解决的关键技术
本次课程设计要解决的关键技术有数据库的合理建立,C#窗体间数据的传
送,以及 C#串口通信接受数据。其中数据库和 C#窗体已经学过,只需要将其应
用到实战中去,而 C#串口通信从来没有接触过,因而其成为了关键中的关键。
2 系统分析
2.1 基础知识
本次课程设计涉及的基础知识有 C#窗体设计、C#串口通信、数据库操作、
ADO.NET 等。其中最为关键的是 C#串口通信和 ADO.NET。对于本项目,C#串
口通信只要能够实现接受数据即可。
1
《射频识别技术课程设计报告》
2.2 基本思路及算法
可将系统分为学生、教师、管理员三大模块;教师模块,教师模块可以实现
密码修改,学生考勤,学生考勤情况查询三大功能;学生模块可以进行个人考勤
情况查询和密码修改;管理员模块主要实现用户密码查询功能。
其中考勤功能的实现是将提供的读卡器与计算机串口相连,通过串口通信读
入读卡器得到的卡号,如果符合考勤条件,则将数据库对应的考勤次数加一;考
勤查询功能的实现则是根据数据的内容,显示数据。
模糊查询时,将数据的数据与数据库中的对应数据进行比较,如果该数据包
含于数据库中的对应数据则,将数据库中的数据添加到待选择列表中。
2.3 功能模块框图
登 陆
学 生
教 师
管理员
个
人
考
勤
情
况
查
询
密
码
修
改
学
生
考
勤
情
况
查
询
学
生
考
勤
密
码
修
改
密
码
修
改
用
户
密
码
查
询
图 2-1 功能模块框图
2
《射频识别技术课程设计报告》
3 总体方案与设计
3.1 总体需求分析
系统能够实现以学生、教师、管理员三种用户身份登录后对应的查询考勤情
况、学生考勤、信息维护等功能。
3.2 数据库设计
数据库名称 : studentclock
数据表解释 :
administrator(ano,aname,apassword)
*管理员(工号、姓名、密码)
student(sno,sid, sname,spassword,class,dept)
*学生(ID 号、学号、姓名、密码、班级、系院)
course(cno,cname,tno,tname,tpassword,ctime)
*课程(课程号、课程名、教师工号、教师姓名、教师密码、课时)
slotcard(scsno,scno,sctime)
*刷卡(刷卡人学号、所上课程号、上课次数)
3.3 软件设计
本系统软件使用 C#编写,界面使用 C#窗体实现,主要代码分析如下:
3.3.1 连接数据库
定义一个类,其中存放连接字符串,这样便于移植到其它的计算机中运行,
该类的代码如下:
class DBString
{
public string dbString = @"Data
Source=.\SQLEXPRESS;AttachDbFilename=H:\studentclock\studentclock.mdf;Integ
rated Security=True;Connect Timeout=30;User Instance=True";
}
如果要掉用数据库,则需定义一个如下所示数据库连接:
DBString dbcon = new DBString();
string conString = dbcon.dbString;
SqlConnection studentSqlConnection = new SqlConnection(conString);
//获得连接字符串
3.3.2 模糊查询
3
《射频识别技术课程设计报告》
将数据的数据与数据库中的对应数据进行比较,如果该数据包含于数据库中
的对应数据则,将数据库中的数据添加到待选择列表中。其代码如下:
DBString dbcon = new DBString();
string conString = dbcon.dbString;
using (SqlConnection studentSqlConnection = new
//获得连接数据库字符串
SqlConnection(conString))
{
studentSqlConnection.Open();
using (SqlCommand cmd =
studentSqlConnection.CreateCommand())
{
cmd.CommandText = "select * from student";
using (SqlDataReader reader = cmd.ExecuteReader())
{
//判断是否有数据的标志
int bz = 0;
for (int i = 0; i == 0; )
{
if (reader.Read())
//.read是从开始的数据前到最
后,如果没有了,返回Flase
reader.GetString(reader.GetOrdinal("sname"));
//得到学生姓名
{
string dbsname =
(dbsname.Contains(textBox7.Text.ToString()))// ||
dbsname.StartsWith(textBox7.Text.ToString()) ||
dbsname.EndsWith(textBox7.Text.ToString()))
listBox1.Items.Add(dbsname.ToString());
bz = 1;
if
{
}
4
}
else
{
}
break;
}
if (bz == 0)
{
MessageBox.Show("查无符合数据!");
}
}
}