本次开发主要做了从串口分别获取读者卡号和图书卡号,实现图书管理,图书借阅,读者管理等功能。开发语言是C#,开发环境使用Visual Studio 2015。数据库采用sql Server。

  RFID选择

  读者卡跟图书卡均采用125K,一般称之为低频卡,典型的代表智能卡是EM公司与HID公司的125K智能卡。这类卡基本上都是只读、无源卡,识别距离在10cm左右。

  应答器采用e5551应答器芯片

  e5551芯片是Atmel公司生产的非接触式、无源、可读写、具有防碰撞能力的RFID器件,中心工作频率为 125K。具有以下主要特性:低功耗、低工作电压;非接触能量供给和读写数据;工作频率范围为100~150 kHz; EEPROM存储器容量为264位,分为8块,每块33位;具有7块用户数据,每块32位,共224位;

        

  实现功能:

           

  

  应用主界面: 管理员端、读者端

                  

  管理员端:(演示功能为添加图书)

        


  读者端:实现图书借阅与图书归还

        

                       (逻辑实现)

         

                (实现结果)

  借还实现代码 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Threading;namespace MyRFID
{public partial class frmBorrowBook : Form{BaseClass.BaseInfo baseinfo = new MyRFID.BaseClass.BaseInfo();//创建BaseInfo类的对象BaseClass.BaseInfo.cBorrowSituation BorrowSituation = new MyRFID.BaseClass.BaseInfo.cBorrowSituation();//创建cBorrowSituation类的对象BaseClass.BaseInfo.cBook Book = new MyRFID.BaseClass.BaseInfo.cBook();//创建cBook类public delegate void Displaydelegate(byte[] InputBuf);Byte[] OutputBuf = new Byte[4];public Displaydelegate disp_reader;public Displaydelegate disp_book;public frmBorrowBook(){InitializeComponent();}void Comm_ReaderReceived(object sender, SerialDataReceivedEventArgs e){Byte[] InputBuf = new Byte[4];try{if (serialReader.IsOpen){serialReader.Read(InputBuf, 0, serialReader.BytesToRead);    //读取缓冲区的数据直到“}”即0x7D为结束符//InputBuf = UnicodeEncoding.Default.GetBytes(strRD); //将得到的数据转换成byte的格式System.Threading.Thread.Sleep(50);this.Invoke(disp_reader, InputBuf);}}catch (TimeoutException ex)         //超时处理{MessageBox.Show(ex.ToString());}}void Comm_BookReceived(object sender, SerialDataReceivedEventArgs e){Byte[] InputBuf = new Byte[4];try{if (serialBook.IsOpen){serialBook.Read(InputBuf, 0, serialBook.BytesToRead);    //读取缓冲区的数据直到“}”即0x7D为结束符//InputBuf = UnicodeEncoding.Default.GetBytes(strRD); //将得到的数据转换成byte的格式System.Threading.Thread.Sleep(50);this.Invoke(disp_book, InputBuf);}}catch (TimeoutException ex)         //超时处理{MessageBox.Show(ex.ToString());}}public void DispReader(byte[] InputBuf){//textBox1.Text = Convert.ToString(InputBuf);string result = string.Empty;string readerno = string.Empty;string selectReader = "";string selectBorrow = "";BaseOperate bop = new BaseOperate();SqlDataReader reader;DataSet ds = new DataSet();ASCIIEncoding encoding = new ASCIIEncoding();for (int i = 0; i < InputBuf.Length; i++)//逐字节变为16进制字符,以%隔开{result += Convert.ToString(InputBuf[i], 16);}readerno = int.Parse(result, System.Globalization.NumberStyles.AllowHexSpecifier).ToString();selectReader = "select * from readerInfo where readerNo='" + readerno + "'";reader = bop.getread(selectReader);while (reader.Read()){readerNo.Text = reader.GetString(0);readerName.Text = reader.GetString(1);}selectBorrow = "select bookNo 书号,bookName 书名,author 作者, publisher 出版社,borrowDate 借出时间,returnDate 应归还时间 from borrowSituation where readerNo='" + readerno + "'";ds=bop.getds(selectBorrow,"borrowSituation");dataGridView1.DataSource = null;dataGridView1.DataSource = ds.Tables["borrowSituation"];}public void DispBook(byte[] InputBuf){//textBox1.Text = Convert.ToString(InputBuf);string result = string.Empty;string bookNo = string.Empty;string bookName = "";string author = "";string publisher = "";string borrowDate = "";string returnDate = "";string sqlselect = "";BaseOperate bop = new BaseOperate();SqlDataReader reader;ASCIIEncoding encoding = new ASCIIEncoding();for (int i = 0; i < InputBuf.Length; i++)//逐字节变为16进制字符,以%隔开{result += Convert.ToString(InputBuf[i], 16);}bookNo = int.Parse(result, System.Globalization.NumberStyles.AllowHexSpecifier).ToString();//获取该图书的信息sqlselect = "select * from bookInfo where bookNo='" + bookNo + "'";reader = bop.getread(sqlselect);while (reader.Read()){bookName = reader.GetString(1);author = reader.GetString(2);publisher = reader.GetString(3);borrowDate = DateTime.Now.Date.ToShortDateString();returnDate = DateTime.Now.AddDays(30).ToShortDateString();}sqlselect = "select * from borrowSituation where bookNo='" + bookNo + "'";reader = bop.getread(sqlselect);while (reader.Read()){readerNo.Text = reader.GetString(0);readerName.Text = reader.GetString(1);}//借书操作if (!reader.HasRows){if (readerNo.Text != ""){string insert = "";insert = "insert into borrowSituation values('" + readerNo.Text + "','" + readerName.Text+ "','" + bookNo + "','" + bookName + "','" + author + "','" + publisher + "','" + borrowDate +"','" + returnDate + "')";bop.getcom(insert);string selectBorrow = "select bookNo 书号,bookName 书名,author 作者, publisher 出版社,borrowDate 借出时间,returnDate 应归还时间 from borrowSituation where readerNo='" + readerNo.Text + "'";DataSet ds = new DataSet();ds = bop.getds(selectBorrow, "borrowSituation");dataGridView1.DataSource = null;dataGridView1.DataSource = ds.Tables["borrowSituation"];}elseMessageBox.Show("请先放入读者卡,在放入书籍");}//还书操作else{string sqlDelete = "";string sqlInsert = "";sqlDelete = "delete from borrowSituation where bookNo='" + bookNo + "'";bop.getcom(sqlDelete);sqlInsert= "insert into returnSituation values('" + readerNo.Text + "','" + readerName.Text+ "','" + bookNo + "','" + bookName + "','" + author + "','" + publisher + "','" + borrowDate +"','" + DateTime.Now.ToShortDateString() + "')";bop.getcom(sqlInsert);string selectBorrow = "select bookNo 书号,bookName 书名,author 作者, publisher 出版社,borrowDate 借出时间,returnDate 应归还时间 from borrowSituation where readerNo='" + readerNo.Text + "'";DataSet ds = new DataSet();ds = bop.getds(selectBorrow, "borrowSituation");dataGridView1.DataSource = null;dataGridView1.DataSource = ds.Tables["borrowSituation"];}}private void frmBorrowBook_Load(object sender, EventArgs e){serialReader.DataReceived += new SerialDataReceivedEventHandler(Comm_ReaderReceived);serialBook.DataReceived += new SerialDataReceivedEventHandler(Comm_BookReceived);disp_reader = new Displaydelegate(DispReader);disp_book = new Displaydelegate(DispBook);serialReader.Open();serialBook.Open();}private void close_Click(object sender, EventArgs e){serialBook.Close();serialReader.Close();this.Close();}}
}

程序源码及数据库下载地址: http://download.csdn.net/detail/kevin_iot/9724026

基于RFID的简易图书管理系统设计与实现相关推荐

  1. 【Java图书馆系统app】基于Vue+Vant+SSM图书管理系统设计

    源码地址:[Java图书馆系统app]基于Vue+Vant+SSM图书管理系统设计.zip_java条码管理系统-Android文档类资源-CSDN下载具体运行截图见项目说明:https://blog ...

  2. 基于JavaSwing+mysql的图书管理系统设计和实现

    前言: 项目是使用Java swing开发,可实现基础数据维护.图书类型管理和维护.图书信息管理和维护.注销退出.关于作者简介等功能.界面设计比较简介.适合作为Java课设设计以及学习技术使用. 引言 ...

  3. 基于RFID的智能仓储管理系统设计

    1  系统实现功能 多仓储位部署:部署方式采用将高频RFID分支器置于仓储位中心,高频RFID天线向外延伸的方式,可实现同时对多个仓储位同时进行监测. 入库功能:每个仓储位的货物都可以随时实现入库,通 ...

  4. c语言子菜单退出返回主菜单,毕业论文_图书管理系统设计报告077喜欢就下吧(范文1)...

    <毕业论文:图书管理系统设计报告07.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文_图书管理系统设计报告07(7)(喜欢就下吧)>相关文档资源请在帮帮文库(www. ...

  5. asp毕业设计——基于asp+access的订单管理系统设计与实现(毕业论文+程序源码)——订单管理系统

    基于asp+access的订单管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的订单管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...

  6. javaee图书管理系统mysql,图书管理系统设计与实现—看这篇就够了

    图书管理系统设计与实现 > 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力.物理.财力,极大的浪费了资源,对于图书管理人员来说 ...

  7. asp毕业设计——基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码)——选题管理系统

    基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的选题管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  8. RFID技术在图书管理应用中的优势

    什么是RFID技术 RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别无需人工干预,可工作于各种恶劣环境.RFID技术可识别高速运动物体并同时识别多个标签 ...

  9. asp毕业设计——基于asp+access的档案管理系统设计与实现(毕业论文+程序源码)——档案管理系统

    基于asp+access的档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的档案管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...

最新文章

  1. 《Windows Vista for Developers》系列
  2. Load 和 DOMContentLoaded 区别
  3. IDApython 命令
  4. 图说二叉树添加数据原理以及遍历原理
  5. class priority_queue 简单介绍
  6. 计算机主板用塑料做的好吗,电脑主板包装的塑料袋为什么是用透明胶封的,这样...-卓优商学问答...
  7. 机器学习模型_如何口述机器学习模型原理
  8. anaconda安装——添加镜像源
  9. Leetcode之整数反转
  10. 解决apicloud中真机同步海马玩模拟器中每次都要升级apploader的问题
  11. 【谷月老师讲WPS】用 Windows 11 的 WSL 安装 WPS for Linux
  12. 人月神话札记:未雨绸缪
  13. 订单系统设计,消息队列幂等处理思路
  14. 展锐Android-Q LCD调试
  15. php内存设置,修改php运行内存大小的限制
  16. 如何远程办公电脑 关于电脑远程办公的方法和工具分享
  17. AI产业链的划分,主要可分为基础层、技术层和应用层
  18. opencv python教程简书_OpenCV-Python教程:57.图像修复
  19. 美国大学计算机科学专业排名2020,美国大学计算机专业排名2020情况如何?
  20. JavaScript中关于call函数的一道面试题

热门文章

  1. 关于EL表达式获取参数的两种方法
  2. PHP实现带有验证码的登陆注册
  3. 计算机财务管理第五版第四章课后答案,计算机财务管理习题精简版
  4. ubuntu远程访问win7登录后语言为繁体字的解决办法
  5. 人工智能产业盛宴:2019 AIIA开发者大会即将揭幕
  6. INDEMIND带你玩转OpenCV4.0(一):DIS光流算法解析
  7. python电玩城源码_2019最新最全价值2W的微信H5电玩城游戏全套源码+架设教程+配置文档...
  8. 魔力拍证件照制作小程序
  9. css好看常用的中文字体
  10. 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程