超市收银系统构建_超市收银系统设计

2020-02-25 其他范文 下载本文

超市收银系统构建由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“超市收银系统设计”。

超市是一家小型超级市场,由自选商场、仓库和行政办公室三部分组成。按照设计规划,在自选商场门口设两个收银点,用两台电脑为顾客服务,对顾客所购商品进行计价和收款。在商场后面的仓库和行政办公室里再各设一台电脑,仓库的电脑用于商场进货时有关商品数据的录入,行政办公室的电脑用于决策支持和退货商品的数据录入,兼做文字处理和报表打印。

商场的所有数据都保存在行政办公室电脑上,同时在仓库电脑上做一个备份,确保数据安全。4台电脑上都安装Windows XP操作系统和数据库管理系统,组成对等网。为了减少网络故障对系统的影响,收银点上的两台电脑平时不接入网络,但其中有操作员库和商品价格库的备份,收银过程中直接调用本地硬盘上的数据,产生的销售数据也直接保存在本地硬盘中。只有当行政办公室电脑进行数据查询汇总或仓库电脑需要更新商品库时,才临时将这两台电脑的硬盘映射成网络驱动器,由后台电脑对其中的数据进行操作,操作完成后再立即断开网络驱动器。

网络结构

该网络系统采用星形拓扑结构,以集线器为中心结点,把4台外围电脑连接起来,呈辐射状互联结构。每台电脑均配有打印机和手持式红外线条码阅读器。收银系统对电脑本身的要求并不高,可以使用赛扬兼容机;集线器使用的是D-Link公司的8口10/100M自适应集线器;网卡使用D-Link公司的DE530TX 10/100M自适应网卡;收银点的打印机使用Epson公司的LQ-300K窄行针式打印机,可以打印复写纸;行政办公室和仓库的打印机使用Epson公司的LQ-1600KⅢ宽行打印机;条码阅读器使用的是台湾产红外线条码阅读器。如果商场同意,在经费充裕的情况下,收银点可以推荐使用台式激光条码阅读机。

系统结构图 程序总体设计

笔者使用Delphi 5.0作为主要开发语言,其中系统主要模块有:操作员登录模块、收银/进货模块、查询模块、报表/资金管理/数据汇总模块、操作员管理模块及操作员密码修改模块等。

在整个系统中,客户使用最多的是收银模块,提高收银的处理速度成为提高整个系统速度的关键。经过分析,笔者认为提高收银速度的瓶颈主要集中在操作员的数据录入和打印机的数据输出上。操作员的数据录入包括商品条码录入、顾客所购同一种商品多于一件时商品数量的录入以及最后一个商品录入完毕后通知电脑计算总价等。因此,笔者将所有的录入放在一个输入框Edit1中,当收银员按回车键确认输入完毕后,由程序根据输入数据的长度自动判断输入数据的属性,收银员只需使用条码阅读器和小键盘就可以完成所有的操作。为了提高打印机的输出速度,该系统还在收银模块中采用了直接打印的方法,将打印机作为输出文件,把打印字符直接送到打印机上输出,避免了使用Windows 98的打印机驱动程序所带来的时间延迟问题。数据输入和输出部分处理过程的主要代码如下:

procedure TForm10.Edit1KeyDown(Sender: TObject;var Key: Word;Shift: TShiftState);…… begin if key=vk_return then begin //计算输入框中字符的个数

inlength:=length(edit1.text);case inlength of

//字符长度为零时,调用计价子模块

0:begin

form11.showmodal;

end;

//输入1到3个数字时,作为数量处理

1,2,3:begin //flag为全局变量

if flag then begin

dm.table11.Edit;dm.table11[‘shuliang’]:=strtoint(edit1.text);

dm.table11[‘chengben’]:=dm.table11[‘cbdanjia’]*dm.table11[‘shuliang’];

dm.table11[‘liangshou’]:=dm.table11[‘lsdanjia’]*dm.table11[‘shuliang’];

dm.table11.post;

edit3.text:=floattostr(strtofloat(edit3.text)+(dm.table11[‘shuliang’]-1)*dm.table11[‘lsdanjia’]);

edit2.text:=edit1.text;

dm.table9.Edit;

dm.table9[‘kucheng’]:=dm.table9[‘kucheng’]-strtoint(edit2.text)+1;

dm.table9[‘shuliang’]:=dm.table9[‘shuliang’]+strtoint(edit2.text)-1;

dm.table9.post;

edit1.Clear;

edit2.text:=‘1’;

flag:=false;

//打印购物清单,清单由商品条码、商品名、单价、数量和小计构成str:= dm.table11[‘tiaoma’];

str:=str+‘’+dm.table11[‘pinming’];

str:=str+‘ ’+floattostr(dm.table11 [‘lsdanjia’]);

if inlength=1 then str:=str+‘ ’+ inttostr(dm.table11[‘shuliang’]);

if inlength=2 then str:=str+‘ ’+ inttostr(dm.table11[‘shuliang’]);

if inlength=3 then str:=str+‘ ’+ inttostr(dm.table11[‘shuliang’]);

str:=str+‘ ’+ floattostr(dm.table11[‘liangshou’]);

aignfile(f, ‘lpt1’);

rewrite(f);

try

writeln(f,str);

finally

closefile(f);

end else

showmeage(‘请您先输入条码,然后再输入数量’);

end;//输入超过4位时,当成条码处理

else if dm.table9.FindKey([edit1.text])then begin

if dm.table11.Active=false then dm.table11.open;

//打印购物清单

……

flag:=True;

dm.table11.Edit;

if dm.table11.recordcount=0 then begin

dm.table11.Insert;

dm.table11[‘mingxi’]:=strtoint(inttostr(dm.table10[‘danhao’])+‘01’);

end else begin

dm.table11.Last;

i:=dm.table11[‘mingxi’];

dm.table11.Insert;

dm.table11[‘mingxi’]:=i+1;

end;

dm.table11.edit;

dm.table11[‘danhao’]:=dm.table10 [‘danhao’];……

dm.table11[‘xsdate’]:=date;

dm.table11[‘liangshou’]:=dm.table11 [‘lsdanjia’]*1;

dm.table11.post;

dm.table9.Edit;

dm.table9[‘kucheng’]:= dm.table9 [‘kucheng’]-1;

dm.table9[‘shuliang’]:=dm.table9 [‘shuliang’]+1;

dm.table9.Post;

edit3.text:=floattostr(strtofloat(edit3.text)+dm.table11[‘liangshou’]);

edit1.Clear;

end else begin

showmeage(‘库存里没有此商品.请查看输入的条码是否正确’);

edit1.clear;

《超市收银系统构建.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
超市收银系统构建
点击下载文档
相关专题 超市收银系统设计 超市 系统 超市收银系统设计 超市 系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文