资源描述
基于RFID超市管理系统
内容摘要
超市伴随市场经济和现代信息技术发展,不可必需要卷如信息现代化大潮,怎样使用现代化工具,使企业和经营者个人在最小投入下获取最大回报。成为每一个人梦想。所以,在超市管理中引进现代化办公软件,就成为时下最好处理措施。伴随管理信息系统理论实践深入发展,伴随信息系统优越性深入表现,现代信息化管理系统替换传统简单计算机操作方法是社会发展一个肯定趋势。管理信息系统是对一个组织进行全方面管理人机系统,综合利用计算机技术、信息技术、管理技术和决议技术,和现代化管理思想、方法和手段结合起来,辅助管理人员进行管理和决议。商业管理信息系统就是融合现代商业经营管理思想和优异信息处理技术为一体管理信息系统。
关键字:超市管理系统、RFID技术、数据库
目 录
1.超市管理系统计划 ..........................................................................3
1.1现实状况分析.........................................................................................3
1.2系统目标....................................................................................... 3
1.3研究背景........................................................................................3
2.需求分析...........................................................................................4
2.1系统需求........................................................................................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 技术基础工作原理是:标签进入磁场后,随即接收解读器发出射频信号,凭借着感应电流所取得能量发送存放在芯片中产品信息(Passive Tag,无源标签或被动标签),或让标签主动发送某一频率信号(Active Tag,有源标签或主动标签),解读器读取信息并完成解码后,再送至中央信息系统进行相关数据处理。
RFID 系统,是由阅读器(Reader)和电子标签(TAG)正是所谓应答器(Transponder)及应用软件系统这三个部分所组成,其工作原理是由阅读器Reader 发射一特定频率无线电波能量给应答器Transponder,用以驱动Transponder电路将内部数据送出,这时 Reader 便依序接收解读数据,再送给应用程序做对应处理。以 RFID 卡片阅读器和电子标签之间通讯及能量感应方法上来看,大致上能够分为:感应耦合(Inductive Coupling) 及后向散射耦合(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.源代码
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new chaoshi ());
}
}
}
**********************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Collections;
using System.IO;
namespace WindowsApplication1
{
public partial class chaoshi : Form
{
public chaoshi()
{
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.IPAddress addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
textBox1.Text = addr.ToString();
}
static public string sqlstr = "";//数据库连接字符串
static public string type = "";
static public string port = "";
data da = new data();
Class1 cl1 = new Class1();
TcpListener tl;
Thread acceptThread;
UdpClient receivingUdpClient;
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
//串口数据接收时间
public delegate void ybb(SerialPort sp1);
private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
ybb ybb2 = new ybb(chuankou);
BeginInvoke(ybb2, sp);
}
string stt = "";
//串口处理
public void chuankou(SerialPort sp1)
{
try
{
int ili = sp.BytesToRead;
byte[] s = new byte[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 (int i = 0; i < cards.Length; i++)
{
if (cards[i] != "")
{
tab(da.selectProcardid(cards[i]), cards[i]);
bool c5 = false;
for (int l = 0; l < comboBox5.Items.Count; 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
{ }
}
TcpClient tc;
public void internet()
{
while (true) //循环侦听
{
//treeView1.Nodes.Clear();
Socket socket = tc.Client;
Setsocket(socket);
while (true) //循环侦听
{
if (socket.Poll(-1, SelectMode.SelectRead))
{
try
{
byte[] by = new byte[0];
socket.Receive(by);
}
catch
{
break;
}
if (socket.Available != 0)
{
try
{
byte[] receiveBytes = new byte[socket.Available];
socket.Receive(receiveBytes);
stt += cl1.ZHTO16(receiveBytes);
for (int i = 0; i < stt.Length - 6; i = i + 0)
{
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)
{
string card16 = stt.Substring(6, Convert.ToInt32(stt.Substring(4, 2), 16) * 2);
string cardAC = 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;
}
}
}
}
public void GPRS()
{
while (true) //循环侦听
{
//treeView1.Nodes.Clear();
Socket socket = tl.AcceptSocket();
Setsocket(socket);
while (true) //循环侦听
{
if (socket.Poll(-1, SelectMode.SelectRead))
{
try
{
byte[] by = new byte[0];
socket.Receive(by);
}
catch
{
break;
}
if (socket.Available != 0)
{
try
{
byte[] receiveBytes = new byte[socket.Available];
socket.Receive(receiveBytes);
stt += cl1.ZHTO16(receiveBytes);
for (int i = 0; i < stt.Length - 8; i = i + 0)
{
if (stt.Substring(i, 4) == "68AA")
{
i = i + Conver
展开阅读全文