轻工业学院课程设计说明书题目:基于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日课程设计成绩评定表目录1实验任务和目的 (1)2实验过程和结果 (1)2.1实验过程 (1)2.2实验结果 (2)3实验总结和心得 (3)4参考文献 (4)5附录(代码) (4)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附录(代码)HANDLE icdev;int st;void CXpDlg::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultswitch (nIDEvent){case 1:{icdev=rf_usbinit();rf_beep(icdev,50);KillTimer(1);break;}case 2:{UpdateData(true);9;UpdateData(false);unsigned long snr;//unsigned long value;rf_card(icdev,1,&snr);st=rf_authentication(icdev,0,3);if (st!=0)m_1.AddString("验证密码失败!");unsigned long val=0;st=rf_initval(icdev,13,val);//初始化第三扇区第一块st=rf_authentication(icdev,0,2);//验证密码if (st!=0)m_2.AddString("验证密码失败!");unsigned long va=100;st=rf_initval(icdev,9,va);//初始化第二扇区第一块if(st==0){m_1.AddString("初始化成功!");//在显示框显示"加值成功!"KillTimer(2);}elsem_1.AddString("初始化失败!");//在显示框显示"加值失败!"}case 3:{UpdateData(true);5;UpdateData(false);unsigned long snr;unsigned long value;rf_card(icdev,1,&snr);st=rf_authentication(icdev,0,1);if (st!=0)m_1.AddString("验证密码失败!");unsigned chardatabuff[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块值操作块值CString str;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);}int xie;void CXpDlg::OnButton2(){// TODO: Add your control notification handler code hereUpdateData(true);xie=5;UpdateData(false);unsigned long snr;rf_card(icdev,1,&snr);st=rf_authentication(icdev,0,1);if (st!=0){m_1.AddString("验证密码失败!");}CString data=m_e2;char*data1=data.GetBuffer(data.GetLength());st=rf_write(icdev,xie,(unsignedchar*)data1);if (st==0){m_1.ResetContent(); //清除显示m_1.AddString("更改成功!");}elsem_1.AddString("FAIL!");st=rf_halt(icdev);}void CXpDlg::OnButton1(){// TODO: Add your control notification handler code hereUpdateData(true);unsigned long snr;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("充值成功!");//在显示框显示"加值成功!"}elsem_1.AddString("充值失败!");//在显示框显示"加值失败!"m_e1=0;UpdateData(false);}void CXpDlg::OnButton3(){// TODO: Add your control notification handler code hereUpdateData(true);13;UpdateData(false);unsigned long snr;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("更改成功!");//在显示框显示"加值成功!"}. .. .elsem_1.AddString("更改失败!");//在显示框显示"加值失败!"m_e1=0;UpdateData(false);}.. ..范文. .。