本次开发主要做了从串口分别获取读者卡号和图书卡号,实现图书管理,图书借阅,读者管理等功能。开发语言是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. 移动端最强适配(rem适配之px2rem) 移动端结合Vuex实现简单loading加载效果
  2. 卷积神经网络CNN要点:CNN结构、采样层、全连接层、Zero-padding、激活函数及Dropout
  3. centos和redhat启用epel软件库
  4. 汉字笔画数据_中国最生僻的5个汉字,仅仅只有一笔,专家:能认识一个就不错了...
  5. 支付宝:预计三年内智能出行将覆盖全国
  6. git学习(三)版本的前进后退
  7. AIDL的简单使用和注意事项
  8. 如何记录流水账,打开图表查看账目
  9. 潮流计算机课设,(潮流计算的计算机算法课程设计范文.doc
  10. 项目管理(PMP)认证介绍
  11. 如何使用U盘制作苹果系统启动盘
  12. matlab 计算逆时针夹角,计算两个向量的逆时针夹角
  13. 度量学习DML之MoCO
  14. 网页崩溃原因软件测试,支招:原来这些才是APP崩溃的主要原因!资深技术大牛测试经验总结...
  15. 第二章:华为VRP(理论+实验命令)
  16. 查找计算机硬件和软件的翻译工具,计算机软件和硬件,PC computer software and hardware,音标,读音,翻译,英文例句,英语词典...
  17. python的实例和类.
  18. ChatGPT和GPT-3.5生成人工智能存在的五个急需解决的缺陷
  19. 花生壳动态动态域名解析路由器解析语法
  20. 景观雕塑商城搭建应该注意些什么

热门文章

  1. 安装maskrcnn-banchmark时遇到的“AT_CHECK“ is undefined错误
  2. 处理IRP的几种方式
  3. 未来教育计算机三级数据库演示大题,2019年计算机三级数据库考试强化试题及答案003...
  4. HTML CSS基本知识点总结
  5. LOH杂合性缺失简介
  6. 计算机颜色系统是三大色彩体系,色彩体系三大属性学习
  7. 五个温度带的分界线_初中地理知识点:我国的温度带
  8. Mybatis-Plus eq、ne、gt、lt、ge、le
  9. 3.1 YOLO系列理论(YOLOV1、YOLOV2、YOLOV3)
  10. Python-Flask实战项目一:仿知乎轻量级web问答平台搭建