店铺收银系统金掌柜优越的设计.docx
- 文档编号:18406979
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:27
- 大小:251.26KB
店铺收银系统金掌柜优越的设计.docx
《店铺收银系统金掌柜优越的设计.docx》由会员分享,可在线阅读,更多相关《店铺收银系统金掌柜优越的设计.docx(27页珍藏版)》请在冰点文库上搜索。
店铺收银系统金掌柜优越的设计
店铺收银系统
金掌柜前言
8月27日上午支付宝在微博上发表声明称:
由于某些原因,支付宝将停止所有线下POS业务。
随着声明的发布,许多问题也接踵而至。
虽然支付宝声称不会影响商户的正常业务,但众多用户也将面临着重新选择POS机问题,而一般银行POS机的申请与受理程序繁琐,售后服务滞后,成功率低,淘宝商家重新申请银行POS机也存在一定的难度。
支付宝线下POS业务的停止,不仅影响众多淘宝用户,而且对于拿到第三方支付牌照的企业而言,是警示,也是挑战。
目前,获得第三方支付牌照的企业有上百家,用户选择多样,单一POS收单已经不能满足现代企业支付需求,POS附加增值功能优势将越来越突出。
在第三方支付市场中不乏多功能的产品,其中由广东银联与汇卡商务推出的电子交易管家—金掌柜则是其中之一。
金掌柜交易功能丰富,申请手续简单,售后服务好,与其他线下POS产品相比,更具有综合性优势。
据介绍,金掌柜是一款功能齐全、拓展性强的创新型电子交易软件。
除了传统的POS机功能外,它还拥有移动POS机和整套完善的销售系统,可以在PC、平板和手机端同步应用。
金掌柜采用云计算技术,集成了结算、营销、贷款和管理等核心功能和一站式服务,帮助商户轻松实现多样化收银、支付结算、报表管理、商品管理、会员管理等众多功能,灵活应对各种电子交易管理需求。
同时,还能帮助商户记录交易信息,实时生成流水账,并能通过系统的交易流水轻松获取银行授信,解决企业的资金难题,为企业的生意发展与壮大提供支持和动力。
由此可见,金掌柜除了POS收单外,还包括贷款和管理等增值功能,性价比确实比传统收单POS机高,功能更强大,也更能适应商户多样化的需求。
随着支付宝线下POS业务的停止,金掌柜或许能成为接棒支付宝线下POS业务最佳选择。
1系统概述
1.1设计题目
商店收银系统
1.2可行性分析
1.2.1背景
商店是一个很繁忙的地方,每天有很多的顾客要买东西,收银员要和很多的顾客结算,并且要给这些结算存档,以便日后查看。
如果只用人工的方法去处理这些结算和计算的数据将是一件很繁琐的事情,将投入大量的人力物力,为了解决这个问题,实现科学化、现代化的商店收银管理,我们就必须设计开发商店收银系统,并用于实践。
而商店收银管理系统是对商店的收款信息进行管理的计算机网络软件系统,它可完成商店中各种货品的收银工作,并对可以对特定时间段的出售信息进行查询。
1.3总环境图
图1.1是一幅上下文环境图,它演示了该商店收银管理系统的外部实体和系统接口。
图1.1商店收银系统
2系统目标和建设原则
2.1系统目标
2.1.1近期目标
该系统可以使商店的收银工作变得轻松了许多,商店的管理员不必将大量的时间用在对厚厚的账本的管理上,可以直接查询数据库来相关的信息。
因此,开发商店收银系统可以提高收银员和管理员的工作效率,利用计算机的方便、快捷、友好的操作环境,来完成相对比较复杂、繁琐的事务,使用户可以轻松地完成对商品的查找等操作,大大提高工作效率。
2.1.2远期目标
随着商店规模的扩大,商品种类的日益增加,对商品库存的管理越来越复杂,功能也需要不断的加强和扩充,本系统希能够通过不同版本的升级来完成业务功能的不断扩充和更新以完成更加复杂的工作。
最终目标是方便超市收银员和管理员的各项操作。
3支撑环境规划
3.1网络逻辑结构
该商店收银系统系统是为了方便商店收银员和管理员的操作而设计的,为每个商品管理人员和收银员配备了一台电脑,并把所有的电脑联入商店局域网内,以方便管理。
为了对数据的安全性、准确性地保护,这些电脑都共享一个后台数据库。
本系统采用下图局域网模式来构建的:
3.2软件支撑环境及开发工具
图3.1超市收银管理系统的局域网逻辑结构设计:
3.2.1软件支撑环境
本系统是在下列系统配置下完成的:
(1)操作系统:
MicrosoftWindowsXPProfessional(SP2)
(2)中央处理器(CPU):
Inter(R)Pentium(R)4
(3)硬盘:
80G
(4)内存:
512MB
3.2.2开发工具
本系统是在下列开发环境下完成的:
(1)应用程序开发环境:
eclipse
(2)后台数据库开发工具:
MicrosoftSQLServer2000
(3)文档开发环境:
MicrosoftOfficeWord2003
4系统设计
4.1功能结构
在此次设计中,依据系统结构化设计方法,把本系统划分为若干个功能模块,某些模块又可以划分为多个子模块,某些子模块又可划分为多个二级子模块,经层层分解后,最小的子模块的功能便十分明确和简单了。
这样做,不仅展现了一个应用软件系统的整体性和层次性,而且通过屏幕对每个应用模块有明显的提示,在这些提示下,用户可以方便地进入系统的每一层进行操作,可以非常方便地使用这一数据库应用系统。
4.1.1功能结构图
图4.2超市收银管理系统功能结构图(a)~(c)
4.1.2主要功能说明
本系统主要分成三个功能模块,每个模块都独立的完成了自己的功能,以下是对各功能模块的说明:
(1)用户信息管理功能。
该功能模块可以实现系统用户对自己基本信息的修改,不过只限于对登录密码的修改,因为用户帐号都是超市为了方便管理而事先分配好了的,是不能改变的。
出于对用户信息的安全性考虑,只能修改当前登录的用户的密码。
(2)商品入库信息管理功能。
该功能模块是实现对即将入库的商品的统计,由于商品信息的庞大、复杂,在入库前需要对其进行详细地记录管理,为商品的库存管理打下良好的基础。
需要记录的内容有:
入库商品的商品号、名称、类型、价格、同类商品的数量、采购员、验收员、生产厂商、产地、入库时间等。
同时能够实现对商品入库信息的添加、修改、删除和查询功能。
(3)商品销售信息管理功能。
该功能模块是把要销售的商品从超市中取出来,并对库存商品进行相应的记录管理,并且把顾客的购买信息打印下来给顾客做凭证。
需要记录的内容有:
出售商品的名称、类型、销售价格、数量、销售时间等,同时能够实现对商品销售信息的添加、修改、删除和查询功
4.2数据库结构
4.2.1E-R图
为了把系统的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(E-R图)。
它描述了从用户角度看到的数据,它反映了用户的显示环境,而且与在软件中的实现方法无关。
(a)上图(b)下图
(c)
(d)
图4.3超市收银管理管理系统E-R图(a)~(d)
4.2.2关系数据库模式
在本系统的数据库设计中,设计了四个基本数据库表:
用户资料表USERS,商品入库资料表GOODS_IMPORT,库存商品资料表GOODS_INFO,商品销售资料表GOODS。
具体结构图如下列表所示:
表4.1USERS表
字段名称
标识名称
数据类型
空否
字段说明
USER_ID
帐号
CHAR(20)
N
主码
USER_PASSWORD
密码
CHAR(20)
N
USER_TYPE
用户类型
INT(4)
N
1:
收银员
2:
管理员
表4.2GOODS_IMPORT表
字段名称
标识名称
数据类型
空否
字段说明
IMPORT_ID
入库商品商品号
VARCHAR(20)
N
主码
IMPORT_NAME
入库商品名称
VARCHAR(20)
N
IMPORT_TIME
入库时间
DATETIME
N
IMPORT_NUM
入库商品数量
VARCHAR(20)
N
IMPORT_PRICE
入库商品价格
MONEY
N
PRODCOM
生产厂商
VARCHAR(20)
N
PRODPLACE
产地
VARCHAR(20)
N
BUYER
采购员
VARCHAR(20)
N
CHECKER
验收员
VARCHAR(20)
N
IMPORT_MEMO
入库商品备注
VARCHAR(50)
N
字段名称
标识名称
数据类型
空否
字段说明
GOODS_IN_ID
库存商品商品号
VARCHAR(20)
N
主码
GOODS_IN_NAME
入库商品名称
VARCHAR(20)
N
GOODS_IN_TIME
入库时间
DATETIME
N
GOODS_IN_NUM
库存商品数量
VARCHAR(20)
N
IN_INPORT_PRICE
入库价格
MONEY
N
IN_EXPORT_PRICE
销售价格
MONEY
N
IN_PROCOM
生产厂商
VARCHAR(20)
N
IN_MEMO
库存商品备注
VARCHAR(50)
N
表4.3GOODS_INFO表
表4.4GOODS表
字段名称
标识名称
数据类型
空否
字段说明
GOODS_ID
出售商品的商品号
VARCHAR(50)
N
主码
GOODS_NAME
销售商品名称
VARCHAR(50)
N
PRICE
价格
VARCHAR(50)
N
SALES_TIME
出售时间
DATETIME
Y
自动获得,可以为空
AGIO
是否打折
VARCHAR(50)
N
ISIN
是否入库
int
N
1:
是0:
否
5总体实施计划
(1)首先,根据所作的需求分析,完成基本的功能界面设计,并且把界面设计成方便、易用和人性化的用户界面。
(2)根据
(1)中界面设计,把每个功能通过代码来实现,以完成功能的定义。
(3)根据4.3.3关系数据库模式中的数据库表的设计,并通过SQLServer2000建立数据库。
(4)把设计好的界面和数据库连接起来,使整个系统能够运行。
(5)选取几个典型的例子对该系统进行测试,不断地发现问题和解决问题,最终使该系统能够正常的运行,完成相应的任务。
(6)以下是该系统的主要界面:
图5.1登录界面
图5.2主控界面
图5.3收银员结账界面
图5.4查询已出售商品界面
这些主要界面代表了系统中的主要风格,功能和界面都大致与这些界面设计的一样。
所以不再一一列出。
6部分代码
6.1收银主界面代码
packagecounter;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.Vector;
importjavax.swing.*;
importjavax.swing.table.DefaultTableModel;
publicclassshopextendsJFrameimplementsActionListener{
privateJTextFieldvip,good,no,ying,shi,zhao;
privateJLabelvipid,ys,goodid,goodno,yingshou,shishou,zhaoling;
privateJButtonok,check;
privateJRadioButtonyn;
publicdoublediscount=1;
doubletotal;
//Stringid;
JPanelp1,p2,p3,p4;
JScrollPanesp;String[]colNames={"商品ID","商品名称","单价","数目"};
String[][]shopList=newString[20][4];
DefaultTableModelmodel=newDefaultTableModel();//定义DefaultTableModel模型
JTablejTable1=newJTable(model);//定义JTable为DefaultTableModel的实例model模式
publicshop()
{
super("商店结算系统");
Containercontainer=getContentPane();
vipid=newJLabel("VIP号");
vip=newJTextField(10);
vip.setEditable(false);
ys=newJLabel("是否是VIP用户");
yn=newJRadioButton("是",false);
yn.addActionListener(this);
goodid=newJLabel("商品ID");
good=newJTextField(10);
goodno=newJLabel("商品数量");
no=newJTextField(10);
ok=newJButton("确定");
container.add(ok);
ok.addActionListener(this);
yingshou=newJLabel("应收");
ying=newJTextField(10);
ying.setEditable(false);
shishou=newJLabel("实收");
shi=newJTextField(10);
zhaoling=newJLabel("找零");
zhao=newJTextField(10);
zhao.setEditable(false);
check=newJButton("结算");
check.addActionListener(this);
p1=newJPanel();
p2=newJPanel();
p3=newJPanel();
p4=newJPanel(newGridLayout(3,1));
model.addColumn("商品名称");
model.addColumn("商品id");
model.addColumn("单价");
model.addColumn("数目");
sp=newJScrollPane(jTable1,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
sp.setBorder(BorderFactory.createTitledBorder("商品清单"));
//p1p2p3分别放置三行,P4放p1p2p3
p1.add(vipid);
p1.add(vip);
p1.add(ys);
p1.add(yn);
p2.add(goodid);
p2.add(good);
p2.add(goodno);
p2.add(no);
p2.add(ok);
p3.add(yingshou);
p3.add(ying);
p3.add(shishou);
p3.add(shi);
p3.add(zhaoling);
p3.add(zhao);
p3.add(check);
p4.add(p1);
p4.add(p2);
p4.add(p3);
container.add(p4,"North");
container.add(sp);
setBounds(300,100,550,300);
setVisible(true);
}
publicstaticvoidmain(Stringargs[])
{
shopapplication=newshop();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//****************************事件处理***************************************************************
publicvoidactionPerformed(ActionEvente){
//**********************确定按钮事件***************************************************************
if(e.getSource()==yn){
if(yn.isSelected()){
vip.setEditable(true);
discount=0.9;
}
else{
vip.setText("");
vip.setEditable(false);
discount=1;
}
}
//**********************确定按钮事件***************************************************************
if(e.getSource()==ok){
Stringsql,isbn,num;
Stringsql1,id;
Vectortempvector=newVector(1,1);//定义临时集合
isbn=good.getText().trim();
id=vip.getText().trim();
sql="select*fromgoods";
sql1="select*fromuser";
doubleprice;
intnumber;
connectionco=newconnection();
ResultSetrs=co.getResultSet(sql);
ResultSetrs1=co.getResultSet(sql1);
//记录集有记录
if(yn.isSelected())
{
if(check(rs1,"userid",id))
{
if(check(rs,"isbn",isbn)){
try{
num=no.getText().trim();
rs.beforeFirst();//移动游标到零的位置
rs.next();
price=Double.parseDouble(rs.getString("price").trim());//读取价格
number=Integer.parseInt(no.getText().trim());//读取数量
total=price*number*discount;//计算应收价
ying.setText(String.valueOf(total));//显示应收的价格
sql="select*fromgoodswhereisbn='"+isbn+"'";
ResultSetrs2=co.getResultSet(sql);
rs2.beforeFirst();
rs2.next();
//while(rs2.next()){
tempvector=newVector(1,1);//新的vector二维数组
tempvector.add(rs2.getString("isbn"));
tempvector.add(rs2.getString("goodsname"));
tempvector.add(rs2.getString("price"));
//tempvector.add(no.getText().trim());
tempvector.addElement(num);
model.addRow(tempvector);
//}
}
catch(SQLExceptione1){
e1.printStackTrace();
}
}
else
JOptionPane.showMessageDialog(this,"对不起,商品不存在!
","警告",JOptionPane.INFORMATION_MESSAGE);
}
else{
yn.setSelected(false);
vip.setText("");
vip.setEditable(false);
discount=1;
no.setText("");
good.setText("");
JOptionPane.showMessageDialog(this,"用户不存在!
","警告",JOptionPane.INFORMATION_MESSAGE);
}
}
else{
if(check(rs,"isbn",isbn)){
try{
num=no.getText().trim();
rs.beforeFirst();//移动游标到零的位置
rs.next();
price=Double.parseDouble(rs.getString("price").trim());//读取价格
number=Integer.parseInt(no.getText().trim());//读取数量
total=price*number*discount;//计算应收价
ying.setText(String.valueOf(total));//显示应收的价格
if(total>200)
{
insertin=newinsert();
}
sql="select*fromgoodswhereisbn='"+isbn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 店铺 收银 系统 掌柜 优越 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)