基于RFID的公交卡管理系统.docx
- 文档编号:4738073
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:12
- 大小:119.47KB
基于RFID的公交卡管理系统.docx
《基于RFID的公交卡管理系统.docx》由会员分享,可在线阅读,更多相关《基于RFID的公交卡管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
基于RFID的公交卡管理系统
郑州轻工业学院
课程设计说明书
题目:
基于RFID的公交卡管理系统
姓名:
院(系):
计算机与通信工程学院
专业班级:
物联网工程XXX
学号:
指导教师:
成绩:
时间:
2016年1月5日至2016年1月8日
郑州轻工业学院
课程设计任务书
题目基于RFID的公交卡管理系统
专业、班级物联网工程XX班学号姓名
主要内容、基本要求、主要参考资料等:
主要内容:
利用实验室的读卡器和M1卡,编写程序,实现一简单的公交卡管理功能。
基本要求:
(1)当卡放到读卡器上时能够自动显示姓名;
(2)读卡器可识别出该卡的类别,即月票、电子钱包、学生票,并显示出剩余的钱数或次数;
(3)当刷卡时,可自动扣除钱数或次数;
(4)当充值时,可加钱数或次数。
参考资料:
[1]高建良,贺建飚.物联网RFID原理与技术[M].北京:
电子工业出版社,2015.
[2]黄玉兰.物联网射频识别(RFID)核心技术详解[M].北京:
人民邮电出版社,2011.
2016年1月5日
课程设计成绩评定表
评定项目
内容
满分
评分
总分
学习态度
学习认真,态度端正,遵守纪律。
10
答疑和设计情况
认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。
40
说明书质量
设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。
40
回答问题情况
回答问题准确,基本概念清楚,有理有据,有一定深度。
10
总成绩
采用五级分制:
优、良、中、及格、不及格
指导教师评语:
签名:
年月日
1实验任务和目的
利用实验室的读卡器和M1卡,编写程序,实现一简单的公交卡管理功能。
能达到如下功能:
(1)当卡放到读卡器上时能够自动显示姓名;
(2)读卡器可识别出该卡的类别,即月票、电子钱包、学生票,并显示出剩余的钱数或次数;
(3)当刷卡时,可自动扣除钱数或次数;
(4)当充值时,可加钱数或次数。
2实验过程和结果
2.1实验过程
1.打开VC,建立新的MFC工程;
2.在MFC建立Dialog界面,如下图
3.建立相关的控件链接;
4.在程序编写相关程序,使其能达到相关目标;
5.运行程序检测实验是否成功。
2.2实验结果
1.基本界面
2.充值
3.更改持卡人信息
4.更改持卡类型
注:
月票只提示刷卡成功,不扣费。
3实验总结和心得
这次课程设计是在掌握前几次的实验的基础上完成的,几乎全是运用了前几次的函数这次课程设计比前几次实验主要多运用了值操作。
通过本次课程设计我学会MFC工程的建立,提升了自己的编程能力,查找资料也是学习新知识的必备技能,同时对M1卡的了解也更加深刻,对M1卡的操作也更加熟练,对课上老师讲的东西有了更深的理解,自己的动手能力也有了进一步的提升,这次的课程设计收获很大。
4参考文献
[1]高建良,贺建飚.物联网RFID原理与技术[M].北京:
电子工业出版社,2015.
[2]黄玉兰.物联网射频识别(RFID)核心技术详解[M].北京:
人民邮电出版社,2011.
5附录(代码)
HANDLEicdev;
intst;
voidCXpDlg:
:
OnTimer(UINTnIDEvent)
{
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
switch(nIDEvent)
{
case1:
{
icdev=rf_usbinit();
rf_beep(icdev,50);
KillTimer
(1);
break;
}
case2:
{
UpdateData(true);
9;
UpdateData(false);
unsignedlongsnr;
//unsignedlongvalue;
rf_card(icdev,1,&snr);
st=rf_authentication(icdev,0,3);
if(st!
=0)
m_1.AddString("验证密码失败!
");
unsignedlongval=0;
st=rf_initval(icdev,13,val);//初始化第三扇区第一块
st=rf_authentication(icdev,0,2);//验证密码
if(st!
=0)
m_2.AddString("验证密码失败!
");
unsignedlongva=100;
st=rf_initval(icdev,9,va);//初始化第二扇区第一块
if(st==0)
{
m_1.AddString("初始化成功!
");//在显示框显示"加值成功!
"
KillTimer
(2);
}
else
m_1.AddString("初始化失败!
");//在显示框显示"加值失败!
"
}
case3:
{
UpdateData(true);
5;
UpdateData(false);
unsignedlongsnr;
unsignedlongvalue;
rf_card(icdev,1,&snr);
st=rf_authentication(icdev,0,1);
if(st!
=0)
m_1.AddString("验证密码失败!
");
unsignedchardatabuff[17];
ZeroMemory(databuff,17);
st=rf_read(icdev,5,databuff);//读取2扇区1块值
if(st==0)
{
m_1.ResetContent();//清除显示
m_1.AddString("持卡人姓名:
");
m_1.AddString((char*)databuff);
st=rf_authentication(icdev,0,3);
if(st!
=0)
m_1.AddString("验证密码失败!
");
rf_readval(icdev,13,&value);//读取3扇区1块值操作块值
if(value%2==0)
{
m_2.ResetContent();//清除显示
m_2.AddString("学生卡");//在当前值框显示加值后的值
st=rf_authentication(icdev,0,2);
if(st!
=0)
m_1.AddString("验证密码失败!
");
rf_readval(icdev,9,&value);//读取2扇区1块值操作块值
CStringstr;
str.Format("%d",value);//格式转换为10进制
st=rf_decrement(icdev,9,1);
if(value<=0)
{
m_1.ResetContent();//清除显示
m_1.AddString("****余额不足,请充值****");
rf_beep(icdev,5000);
}
else
{
m_1.AddString("****余额为:
****");
m_1.AddString(str);//在当前值框显示加值后的值
rf_beep(icdev,50);
}
}
else
{
m_2.ResetContent();//清除显示
m_2.AddString("月票");//在当前值框显示加值后的值
m_1.AddString("****刷卡成功****");
rf_beep(icdev,50);
}
break;
}
else
{
//m_1.AddString("读数据失败!
");
m_1.ResetContent();//清除显示
m_1.AddString("&&&&&请刷卡!
&&&&&");
}
break;
}
}
CDialog:
:
OnTimer(nIDEvent);
}
intxie;
voidCXpDlg:
:
OnButton2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
xie=5;
UpdateData(false);
unsignedlongsnr;
rf_card(icdev,1,&snr);
st=rf_authentication(icdev,0,1);
if(st!
=0)
{
m_1.AddString("验证密码失败!
");
}
CStringdata=m_e2;
char*data1=data.GetBuffer(data.GetLength());
st=rf_write(icdev,xie,(unsignedchar*)data1);
if(st==0)
{
m_1.ResetContent();//清除显示
m_1.AddString("更改成功!
");
}
else
m_1.AddString("FAIL!
");
st=rf_halt(icdev);
}
voidCXpDlg:
:
OnButton1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
unsignedlongsnr;
rf_card(icdev,1,&snr);
st=rf_authentication(icdev,1,2);
if(st!
=0)
{
m_1.AddString("验证密码失败!
");
}
st=rf_increment(icdev,9,m_e1);
if(st==0)
{
m_1.ResetContent();//清除显示
m_1.AddString("充值成功!
");//在显示框显示"加值成功!
"
}
else
m_1.AddString("充值失败!
");//在显示框显示"加值失败!
"
m_e1=0;
UpdateData(false);
}
voidCXpDlg:
:
OnButton3()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
13;
UpdateData(false);
unsignedlongsnr;
rf_card(icdev,1,&snr);
st=rf_authentication(icdev,0,3);
if(st!
=0)
{
m_1.AddString("验证密码失败!
");
}
st=rf_increment(icdev,13,1);
if(st==0)
{
m_2.ResetContent();//清除显示
m_2.AddString("更改成功!
");//在显示框显示"加值成功!
"
}
else
m_1.AddString("更改失败!
");//在显示框显示"加值失败!
"
m_e1=0;
UpdateData(false);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 RFID 公交 管理 系统