基于RFID超市管理系统的课程设计.docx
《基于RFID超市管理系统的课程设计.docx》由会员分享,可在线阅读,更多相关《基于RFID超市管理系统的课程设计.docx(40页珍藏版)》请在冰豆网上搜索。
基于RFID超市管理系统的课程设计
基于RFID超市管理系统的课程设计
基于RFID超市管理系统
内容摘要
超市随着市场经济和现代信息技术的的发展,不可必要的要卷如信息现代化的大潮,如何使用现代化的工具,使企业和经营者个人在最小的投入下获取最大的回报。
成为每一个人的梦想。
因此,在超市管理中引进现代化的办公软件,就成为时下最好的解决办法。
随着管理信息系统理论的实践进一步的发展,随着信息系统的优越性的进一步体现,现代信息化的管理系统代替传统的简单的计算机操作方式是社会发展的一个必然趋势。
管理信息系统是对一个组织进行全面管理的人机系统,综合运用计算机技术、信息技术、管理技术和决策技术,与现代化的管理思想、方法和手段结合起来,辅助管理人员进行管理和决策。
商业管理信息系统就是融合现代商业经营管理思想和先进的信息处理技术为一体的管理信息系统。
关键字:
超市管理系统、RFID技术、数据库
求........................................................................................4
2.2功能需求.......................................................................................4
3.RFID系统实施.................................................................................4
3.1无线射频识别系统的工作原理.....................................................5
4超市管理系统总体设计.....................................................................5
4.1系统主要功能.................................................................................6
4.2应用软件流程.................................................................................6
4.3应用软件调试过程..........................................................................6
5源代码..................................................................................................10
6心得体会..............................................................................................11
7参考文献..............................................................................................12
1.超市管理系统规划
1.1现状分析
最初的超市资料管理,都是靠人力来完成的。
但近几年我国超市经营规模日趋扩大,销售额和门店数量大幅度增加,而且许多超市正在突破以食品为主的传统格局,向品种多样化发展。
小型超市在业务上需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息,并对商品各种信息进行统计分析。
因此,在超市管理中引进现代化的办公软件,实现超市庞大商品的控制和传输,从而方便销售行业的管理和决策,为超市和超市管理人员解除后顾之忧。
1.2系统目的
帮助超市工作人员提高工作效率,帮助超市工作人员利用计算机,极为方便的对超市的商品进行等有关操作,使杂乱的超市数据能够具体化、直观化、合理化等。
1.3研究背景
目前,我国零售业信息化状况的三个层面的分布基本明朗:
在高端企业,进销调存核心结构体系基本运作正常,面临的主要问题是数据的深挖掘和加工、财务业务系统的高度集成、根据企业的并购重组保证系统和数据的统一、稳定;在中端企业,分散营运向集中管理转变,进销调存核心结构系统正在由分散单店管理、销售核算向连锁管理、进价核算过渡;在低端企业,刚刚涉足、转向连锁零售业,对于信息化认识处于表面层次,业务流程和信息系统建设需要一段时间的探索、认识和渐进过程。
而整个零售行业对信息化的认识已经逐渐趋向一致的认识:
信息化是企业可持续发展、增强核心竞争力的必要手段。
超市软件系统从企业运营及管理的实际情况出发,结合当前中国零售业业态发展趋势,顺应了零售行业对信息化的要求,为商业管理信息系统提供了系统全面的技术解决方案。
基于以上原因,超市信息管理系统目前在各个商业领域都发挥了很大的作用,也得到了越来越多的大、中、小型商业企业的应用。
但就目前的应用状况分析,管理系统在中、高端企业得到了广泛的应用和重视,在小型企业、零售店的应用仅局限于信息化的表面层次,没有得到高度的重视。
同时,小企业也因资金方面问题限制了其向更高程度信息化的应用!
随着信息化的快速发展,以及激烈的市场竞争,各企业也将在信息化上下功夫,以高效率、低成本立足市场,获得更多的利润。
2.需求分析
2.1系统需求
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要单明了,易于操作,服务器程序利于维护。
2.2功能需求
大大提高超市的运作效率,通过全面的信息采集和处理,辅助提高超市的决策水平;使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
3.RFID系统实施
3.1无线射频识别系统的工作原理
无线射频读写器在接收到需要读写标签的指令之后,会在一定的范围内发出无线射频信号,在该范围内的标签凭借线圈上的感应电流获得能量启动标签控制电路和射频电路发出存储在芯片中的数据,标签主动发出特定信号,读写器直接接受到该信号进行相应解码后恢复数据原始信息,然后传输到电子计算机中进行处理,管理系统得到相关的信息,这就是相应的自动识别的工作原理,如图所示:
图1RFID系统工作原理图
RFID技术的基本工作原理是:
标签进入磁场后,随即接收解读器发出的射频信号,凭借着感应电流所获得的能量发送存储在芯片中的产品信息(PassiveTag,无源标签或被动标签),或者让标签主动发送某一频率的信号(ActiveTag,有源标签或主动标签),解读器读取信息并完成解码后,再送至中央信息系统进行有关数据处理。
RFID系统,是由阅读器(Reader)与电子标签(TAG)正是所谓的应答器(Transponder)及应用软件系统这三个部分所组成的,其工作原理是由阅读器Reader发射一特定频率的无线电波能量给应答器Transponder,用以驱动Transponder的电路将内部的数据送出,这时Reader便依序接收解读数据,再送给应用程序做相应的处理。
以RFID卡片阅读器和电子标签之间的通讯及能量感应方式上来看,大致上可以分为:
感应耦合(InductiveCoupling)及后向散射耦合(BackscatterCoupling)两种。
一般低频的RFID大都采用第一种方式,而较高频大多则采用第二种方式。
阅读器能够根据使用的结构和技术不同分为读或读/写装置,是RFID系统信息控制和处理中心。
阅读器通常由耦合模块、收发模块、控制模块和接口单元组合而成。
阅读器与应答器之间一般采用的是半双工通信方式进行信息交换,同时阅读器还通过耦合给无源应答器提供能量和时序。
而在实际应用中,可以进一步通过Ethernet或WLAN等实现对物体识别信息的采集、处理及远程传送等基础管理功能。
应答器是RFID系统信息的载体,应答器大多是由耦合原件(线圈、微带天线等)与微芯片组成无源单元。
4超市管理系统总体设计
4.1系统主要功能
针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发一个小型的超市管理系统。
本系统包括如下功能:
对超市仓库的商品进行商品类别,商品名称,单价,保质期进行录入查询等功能。
功能图如下:
图2系统功能图
4.2应用软件流程
首先对电子标签进行注册,读入标签内信息,将读取到的信息发送给系统,显示标签注册成功,凭借注册的信息可以查阅到商品的类别,名称,单价及保质期。
图3流程图
4.3应用软件调试过程
(1)首先进入系统界面:
图4系统界面图
(2)在进入系统界面之后进行串口设置,选择当前的端口号,然后进行“开始寻卡”点击确认,结束寻卡:
图5系统界面图
图6系统界面图
(3)然后及女性商品类别,商品名称,保质期和单价的选择,之后进行注册:
图7系统界面图
(4)在确认注册后就会显示所选择商品的所有信息:
图8系统界面图
5.源代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Windows.Forms;
namespaceWindowsApplication1
{
staticclassProgram
{
///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newchaoshi());
}
}
}
**********************************************************************
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO.Ports;
usingSystem.Net;
usingSystem.Net.Sockets;
usingSystem.Threading;
usingSystem.Collections;
usingSystem.IO;
namespaceWindowsApplication1
{
publicpartialclasschaoshi:
Form
{
publicchaoshi()
{
InitializeComponent();
//初始化
dateTimePicker1.Value=DateTime.Now;
comboBox1.SelectedIndex=0;
comboBox4.SelectedIndex=0;
comboBox2.Items.Clear();
comboBox2.Items.Add("巧克力");
comboBox2.Items.Add("奶糖");
comboBox2.Items.Add("水果糖");
comboBox2.SelectedIndex=0;
comboBox3.Items.Add("雪碧");
comboBox3.Items.Add("红酒");
comboBox3.Items.Add("矿泉水");
comboBox3.SelectedIndex=0;
comboBox8.SelectedIndex=0;
comboBox9.SelectedIndex=0;
comboBox10.SelectedIndex=0;
comboBox11.SelectedIndex=0;
comboBox12.SelectedIndex=0;
comboBox13.SelectedIndex=0;
comboBox14.SelectedIndex=0;
sp.BaudRate=115200;
sp.PortName="COM1";
try
{
sp.Open();
}
catch
{
MessageBox.Show("串口打开出错");
}
sqlstr="Server="+textBox3.Text.Trim()+";uid="+textBox5.Text.Trim()+";pwd="+textBox6.Text.Trim()+";database="+textBox4.Text.Trim();
System.Net.IPAddressaddr=newSystem.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
textBox1.Text=addr.ToString();
}
staticpublicstringsqlstr="";//数据库连接字符串
staticpublicstringtype="";
staticpublicstringport="";
datada=newdata();
Class1cl1=newClass1();
TcpListenertl;
ThreadacceptThread;
UdpClientreceivingUdpClient;
IPEndPointRemoteIpEndPoint=newIPEndPoint(IPAddress.Any,0);
//串口数据接收时间
publicdelegatevoidybb(SerialPortsp1);
privatevoidsp_DataReceived(objectsender,SerialDataReceivedEventArgse)
{
ybbybb2=newybb(chuankou);
BeginInvoke(ybb2,sp);
}
stringstt="";
//串口处理
publicvoidchuankou(SerialPortsp1)
{
try
{
intili=sp.BytesToRead;
byte[]s=newbyte[ili];
sp.Read(s,0,s.Length);
stt+=cl1.ZHTOAC(s);
//16进制字符串处理(不符合要求的删除)
while(true)
{
//具体的处理
string[]sfg=stt.Split(']');
if(sfg.Length>1)
{
if(sfg[0]!
="")
{
if(sfg[0].Substring(0,1)=="[")
{
if(sfg[0]!
="[")
{
string[]cards=sfg[0].Substring
(1).Split(';');
for(inti=0;i{
if(cards[i]!
="")
{
tab(da.selectProcardid(cards[i]),cards[i]);
boolc5=false;
for(intl=0;l{
if(comboBox5.Items[l].ToString()==cards[i])
{
c5=true;
}
}
if(c5==false)
{
comboBox5.Items.Add(cards[i]);
comboBox5.SelectedIndex=comboBox5.Items.Count-1;
}
}
}
}
stt=stt.Remove(0,sfg[0].Length+1);
}
else
{
stt=stt.Remove(0,1);
}
}
else
{
stt=stt.Remove(0,1);
}
}
else
{
break;
}
}
}
catch
{}
}
TcpClienttc;
publicvoidinternet()
{
while(true)//循环侦听
{
//treeView1.Nodes.Clear();
Socketsocket=tc.Client;
Setsocket(socket);
while(true)//循环侦听
{
if(socket.Poll(-1,SelectMode.SelectRead))
{
try
{
byte[]by=newbyte[0];
socket.Receive(by);
}
catch
{
break;
}
if(socket.Available!
=0)
{
try
{
byte[]receiveBytes=newbyte[socket.Available];
socket.Receive(receiveBytes);
stt+=cl1.ZHTO16(receiveBytes);
for(inti=0;i{
if(stt.Substring(i,4)=="68AA")
{
i=i+Convert.ToInt32(stt.Substring(i+4,2),16)*2+8;
}
else
{
stt=stt.Remove(i,2);
}
}
while(true)
{
if(stt.Length>=6&&stt.Substring(0,4)=="68AA")
{
if(stt.Length>=Convert.ToInt32(stt.Substring(4,2),16)*2+8)
{
stringcard16=stt.Substring(6,Convert.ToInt32(stt.Substring(4,2),16)*2);
stringcardAC=cl1.ZHTOAC(cl1.ZH16(stt.Substring(6,Convert.ToInt32(stt.Substring(4,2),16)*2)));
stt=stt.Remove(0,Convert.ToInt32(stt.Substring(4,2),16)*2+8);
tab(da.selectProcardid(cardAC),cardAC);
}
else
{
break;
}
}
else
{
break;
}
}
}
catch
{}
}
else
{
break;
}
}
else
{
break;
}
}
}
}
publicvoidGPRS()
{
while(true)//循环侦听
{
//treeView1.Nodes.Clear();
Socketsocket=tl.AcceptSocket();
Setsocket(socket);
while(true)//循环侦听
{
if(socket.Poll(-1,SelectMode.SelectRead))
{
try
{
byte[]by=newbyte[0];
socket.Receive(by);
}
catch
{
break;
}
if(socket.Available!
=0)
{
try
{
byte[]receiveBytes=newbyte[socket.Available];
socket.Receive(receiveBytes);
stt+=cl1.ZHTO16(receiveBytes);
for(inti=0;i{
if(stt.Substring(i,4)=="68AA")
{
i=i+Convert.ToInt32(cl1.ZHTOAC(cl1.ZH16(stt.Substring(i+4,4))))*2+10;
}
else
{
stt=stt.Remove(i,2);
}
}
while(true)
{
if(stt.Length>=6&&stt.Substring(0,4)=="68AA")
{
if(stt.Length>=Convert.ToInt32(cl1.ZHTOAC(cl1.ZH16(stt.Substring(4,4))))*2+10)
{
stringcard16=cl1.ZHTOAC(cl1.ZH16(stt.Substring(8,Convert.ToInt32(cl1.ZHTOAC(cl1.ZH16(stt.Substring(0+4,4))))*2)));
stringcardAC=cl1.ZHTOAC(cl1.ZH16(card16));
stt=stt.Remove(0,Convert.ToInt32(cl1.ZHTOAC(cl1.ZH16(stt.Substring(0+4,4))))*2+10);
tab(da.selectProcardid(cardAC),cardAC);
}
else
{
break;
}
}
else
{
break;
}
}
}
catch
{}
}
else
{
break;
}
}
else
{
break;
}
}
}
}
publicvoidWIFI()
{
while(true)//循环侦听
{
//treeView1.Nod