超市收银系统java课程设计.docx

上传人:b****3 文档编号:10217214 上传时间:2023-05-24 格式:DOCX 页数:21 大小:180.18KB
下载 相关 举报
超市收银系统java课程设计.docx_第1页
第1页 / 共21页
超市收银系统java课程设计.docx_第2页
第2页 / 共21页
超市收银系统java课程设计.docx_第3页
第3页 / 共21页
超市收银系统java课程设计.docx_第4页
第4页 / 共21页
超市收银系统java课程设计.docx_第5页
第5页 / 共21页
超市收银系统java课程设计.docx_第6页
第6页 / 共21页
超市收银系统java课程设计.docx_第7页
第7页 / 共21页
超市收银系统java课程设计.docx_第8页
第8页 / 共21页
超市收银系统java课程设计.docx_第9页
第9页 / 共21页
超市收银系统java课程设计.docx_第10页
第10页 / 共21页
超市收银系统java课程设计.docx_第11页
第11页 / 共21页
超市收银系统java课程设计.docx_第12页
第12页 / 共21页
超市收银系统java课程设计.docx_第13页
第13页 / 共21页
超市收银系统java课程设计.docx_第14页
第14页 / 共21页
超市收银系统java课程设计.docx_第15页
第15页 / 共21页
超市收银系统java课程设计.docx_第16页
第16页 / 共21页
超市收银系统java课程设计.docx_第17页
第17页 / 共21页
超市收银系统java课程设计.docx_第18页
第18页 / 共21页
超市收银系统java课程设计.docx_第19页
第19页 / 共21页
超市收银系统java课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超市收银系统java课程设计.docx

《超市收银系统java课程设计.docx》由会员分享,可在线阅读,更多相关《超市收银系统java课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

超市收银系统java课程设计.docx

超市收银系统java课程设计

第1章需求分析

1.1超市收银系统需求分析

超市收银系统主要可分为收银员用户,经理用户和服务台用户。

(1)收银员用户的功能需求是对顾客是否会员进行判断及结账,然后把会员的消费

状况分别存入会员表,消费表以及收银台表。

(2)服务台用户的需求是在会员管理子模块中对会员进行添加,删除,修改,查询以及会员详细消费信息的查询和在商品管理子模块中对商品的添加,修改,删除。

(3)经理用户的功能需求是对某收银台的销售总量和某商品的具体信息进行查询以了解超市的经营状况。

1.2类的说明:

(1)MembHandle类方法有六个:

AddToDb()用于添加会员;

QueryAllFromDb()用于查询全部会员信息;

QueryByIdFromDb()用于查询某会员的消费总额

delete()用于删除某会员

update()修改某会员信息

updateSum()修改某会员的消费总额

(2)GoodsHandle类方法有六个:

AddToDb()添加某商品信息

delete()删除删除商品信息

update()修改商品信息

QueryAllFromDb()查询全部商品信息

QueryByIdFromDb()查询某商品信息

QueryByIdFrDb()查询某商品价格

(3)ConsumeHandle类方法有三个

QueryConsuByID()查询某会员详细消费信息

QueryAll()查询全部会员详细消费信息

Add()插入会员消费信息

(4)DeskHandle类方法有三个

QueryAllFromDb()查询全部收银台消费信息

QueryByIdFromDb()查询某收银台消费信息

AddOrUpdate()会员消费金额添加到收银台

(5)ManagHandle类一个方法

Querywhethexs()查询经理登录用户是否存在

(6)ServiceHandle类一个方法

Querywhethexs()查询服务台登录用户是否存在

(7)CashierHandle一个方法

Querywhethexs()查询收银员登录用户是否存在

第2章系统总体设计

2.1总体设计

(1)总体设计图

(1)总体设计图

 

 

(2)各模块功能

表2-1超市收银系统功能模块表

功能模块

包含子功能模块

功能

服务台模块

会员管理子模块

商品管理子模块

对会员信息的添加,修改,删除,查询及消费查询

对商品信息的添加,修改,删除

收银员模块

根据是否会员结账(消费大于二百元给一张九折的会员卡),把会员消费情况存入数据库

经理模块

查看某商品的信息以及某收银台的销售情况

公有模块

实现用户的身份验证,退出系统等功能

2.2设计数据管理子系统

(1)数据库表

表2-2数据库表

序号

数据库表

数据表存储的内容

1

member

存储会员的信息

2

goods

存储商品的信息

3

consume

存储会员消费的信息

4

cashier

存储收银员的信息

5

manager

存储经理的信息

6

service

存储服务台的息

7

desk

存储收银台信息

(2)数据库表结构

①会员表的详细数据字段:

表2-3member会员表

序号

字段名

字段类型

说明

备注

1

membID

varchar(20)notnull

会员卡号

关键字

2

membName

varchar(20)notnull

会员姓名

3

idID

varchar(50)

身份证号

4

Carddate

varchar(50)

会员卡日期

5

Sum

double

销售总额

②收银员表详细数据字段:

表2-4cashier收银员表

序号

字段名

字段类型

说明

备注

1

CashID

varchar(20)notnull

收银员编号

关键字

2

CashName

varchar(20)notnull

收银员姓名

3

CashPwd

varchar(20)notnull

收银员密码

4

CashDeskNo

varchar(20)

收银台编号

③商品表goods的详细数据字段:

表2-5goods商品表

序号

字段名

字段类型

说明

备注

1

GoodsID

varchar(20)notnull

商品编号

关键字

2

GoodsName

varchar(20)notnull

商品名称

3

Bid

doublenotnull

进价

4

SellPri

double

售价

5

GSum

int

总数

6

RemainNum

intnotnull

剩余数

7

ImportDat

varchar(50)

入库日期

 

④会员消费表consume的详细数据字段:

表2-6consume会员消费表

序号

字段名

字段类型

说明

备注

1

MembID

varchar(20)notnull

会员编号

关键字

2

GoodsID

varchar(20)notnull

商品编号

关键字

3

SalesDat

varchar(50)notnull

消费日期

关键字

4

ConsuAmount

varchar(20)notnull

消费数量

关键字

⑤服务台表service的详细数据字段:

表2-7service服务台表

序号

字段名

字段类型

说明

备注

1

ServID

varchar(20)notnull

服务台编号

关键字

2

ServName

varchar(20)notnull

服务台用户名

3

ServPwd

varchar(20)notnull

服务台密码

⑥经理表manager的详细数据字段:

表2-8manager系院表

序号

字段名

字段类型

说明

备注

1

ManagID

varchar(20)notnull

经理编号

关键字

2

ManagName

varchar(20)notnull

经理用户名

3

ManagPwd

varchar(20)notnull

经理密码

收银台desk销售表

表2-9desk表

序号

字段名

字段类型

说明

备注

1

CashDeskNo

varchar(20)notnull

收银台编号

关键字

2

Date

varchar(20)notnull

日期

关键字

3

SalesSum

double

销售总额

2.3设计人机交互子系统

(1)用户分类

本系统的用户可分为三类:

①服务台用户;

②收银员用户;

③经理用户。

(2)用户描述

①服务台用户的描述:

服务台用户在整个收银系统中起到管理和维护的作用,对会员,商品的信息进行管理和维护。

②收银员用户的描述:

收银员用户在本系统中具有结账的权限。

③经理用户的描述:

经理在本系统中具有查看某收银台消费状况以及某商品消费信息的权限。

(3)人机交互子系统

人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按照不同的用户只能进行用户权限内的操作,其结构图如下:

第3章详细设计

3.1用户登录流程图

 

3.2顾客结账流程图

 

3.3服务台添加会员流程图

 

 

第4章系统实现

本系统采用了三层架构来实现,即分为用户界面层、业务逻辑层和数据访问层,用户界面层是展示给用户的界面;业务逻辑层是对系统业务实体的封装;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。

4.1DbLink类主要是与数据库连接

packagedatabase;

importjava.sql.*;

publicclassDbLink{//连接数据库

StringdbURL;//数据库标识

Stringuser;//datauser

Stringpassword;

publicDbLink(){

dbURL="jdbc:

mysql:

//localhost:

3306/supcash?

useUnicode=true&characterEncoding=GBK";

user="root";

password="";

}

publicConnectiongetConnection()

{try

{Class.forName("com.mysql.jdbc.Driver");

returnDriverManager.getConnection(dbURL,user,password);

}catch(Exceptione){System.out.println("链接失败"+e.toString());}

returnnull;}

}

4.2ServiceHandle类完成服务台用户登录验证的功能

packagecontrol;

importdatabase.*;

importjava.sql.*;

publicclassServiceHandle{//完成服务台登录的验证

Connectionconn;

PreparedStatementps;

DbLinkdbLink;

publicServiceHandle(){

conn=null;

ps=null;

dbLink=newDbLink();

}

publicintQuerywhethexs(Stringid,Stringpsw){//查询服务台登录用户是否存在

ResultSetrs=null;

intflag=0;

try{conn=dbLink.getConnection();

Stringsql="select*fromservicewhereServID='"+id+"'andServPwd='"+psw+"'";

ps=conn.prepareStatement(sql);

rs=ps.executeQuery();

while(rs.next()){

if(rs.getString("ServPwd").equals(psw)&&rs.getString("ServID").equals(id))

flag=1;

}

}catch(Exceptionex){}

returnflag;

}

 

}

图4-1服务台用户登录

4.3收银员结账界面

GoodsHandle类可获取商品价格及完成商品的添加,删除,修改,查询

packagecontrol;

importdatabase.*;

importjava.awt.*;

importjava.sql.*;

importjava.util.ArrayList;

importGui.PayPanel;

publicclassGoodsHandle{

Connectionconn;

PreparedStatementps;

DbLinkdbLink;

Dialogdialog;

publicGoodsHandle(){

conn=null;

ps=null;

dbLink=newDbLink();

}

publicvoidAddToDb(Goodsgoods){//添加某商品信息

try{conn=dbLink.getConnection();

Stringsql="insertintogoodsvalues(?

?

?

?

?

?

?

)";

ps=conn.prepareStatement(sql);

//System.out.println(userName);

ps.setString(1,goods.getGoodsID());

ps.setString(2,goods.getGoodsNam());

ps.setString(3,Double.toString(goods.getBid()));

ps.setString(4,Double.toString(goods.getSellPri()));

ps.setString(5,Double.toString(goods.getGSum()));

ps.setString(6,goods.getImportDat());

ps.setString(7,Double.toString(goods.getGSum()));

ps.execute();

}catch(Exceptionex){}

}

publicvoiddelete(Strings){//删除删除商品信息

try{conn=dbLink.getConnection();

Stringsql1="deletefromgoodswhereGoodsID='"+s+"'";

ps=conn.prepareStatement(sql1);

ps.execute();

Stringsql2="deletefromConsumewhereGoodsID='"+s+"'";

ps=conn.prepareStatement(sql2);

ps.execute();

}catch(Exceptionex){}

}

publicvoidupdate(Stringa,Stringb,Stringc,Stringd,Stringf,Stringg){//修改商品信息

try{conn=dbLink.getConnection();

Stringsql="updategoodssetGoodsName='"+b+"',Bid="+c+",SellPri="+d

+",GSum="+f+",ImportDat='"+g+"'whereGoodsID='"+a+"'";

ps=conn.prepareStatement(sql);

//System.out.println(userName);

ps.execute();

}catch(Exceptionex){}

}

publicArrayListQueryAllFromDb(){//查询全部商品信息

ArrayListal=newArrayList();

ResultSetrs=null;

try{conn=dbLink.getConnection();

Stringsql="select*fromgoods";

ps=conn.prepareStatement(sql);

rs=ps.executeQuery();

while(rs.next()){

Stringstr="编号:

"+rs.getString

(1)+"名称:

"+rs.getString

(2)+"进价:

"

+rs.getString(3)+"卖价:

"+rs.getString(4)+"总数量:

"

+rs.getString(5)+"进货日期:

"+rs.getString(6)+"余量:

"+rs.getString(7);

al.add(str);

}

}catch(Exceptionex){}

returnal;

}

publicArrayListQueryByIdFromDb(StringGoodsID){

ArrayListal=newArrayList();//查询某商品全部信息

ResultSetrs=null;

try{conn=dbLink.getConnection();

Stringsql="select*fromgoodswhereGoodsID=?

";

ps=conn.prepareStatement(sql);

//System.out.println(userName);

ps.setString(1,GoodsID);

rs=ps.executeQuery();

while(rs.next()){

Stringstr="编号:

"+rs.getString

(1)+"名称:

"+rs.getString

(2)+"进价:

"

+rs.getString(3)+"卖价:

"+rs.getString(4)+"总数量:

"

+rs.getString(5)+"进货日期:

"+rs.getString(6)+"余量:

"+rs.getString(7);

al.add(str);

}

}catch(Exceptionex){}

returnal;

}

publicdoubleQueryByIdFrDb(StringGoodsID,intn){//查询某商品价格

ResultSetrs=null;doubled=0;

try{conn=dbLink.getConnection();

Stringsql="select*fromgoodswhereGoodsID=?

";

ps=conn.prepareStatement(sql);

ps.setString(1,GoodsID);

rs=ps.executeQuery();

while(rs.next()){

inta=Integer.parseInt(rs.getString(7))-n;

if(a<0){

dialog=newDialog(dialog,"库存不够!

",true);

dialog.show();break;

}

Strings="updategoodssetRemainNum='"+a+"'whereGoodsID="+GoodsID;

ps=conn.prepareStatement(s);

ps.execute();

d=Double.valueOf(rs.getString(4)).doubleValue();}

}catch(Exceptionex){}

returnd;

}

}

 

图4-2收银员结账界面

 

图4-3会员支付界面

第5章系统测试

在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。

然后在完成所有模块后,我们将各子模块集成起来,再对它进行系统测试,以及验证系统是否实现了指定的功能。

最后找几个其他的同学再对系统进行黑盒子测试,验证系统是否满足用户的功能需求。

在测试的过程,发现了许多问题及功能缺陷,最后经过修改调试后都解决了。

比如,有一个问题是在顾客购买某商品数量超过库存时系统照样存入数据库,经过修改,通过弹出对话框警告库存不够并拒绝存入数据库使问题得到了解决。

 

参考文献:

[1]史斌星.java基础及应用教程[M].北京:

清华大学出版社.2007

[2]王珊,萨日煊.数据库系统概论(第四版)[M].北京:

高等教育出版社.2008

[3]吴倩.java语言程序设计[M].北京:

机械工业出版社.2007

[4]柳西玲.java语言程序设计基础[M].北京:

清华大学出版社.2005

[5]刘宝林.java程序设计与案例[M].北京:

高等教育出版社.2004

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2