java毕业设计——基于java+JDBC+sqlserver的POS积分管理系统设计与实现(毕业论文+程序源码)——POS积分管理系统

基于java+JDBC+sqlserver的POS积分管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+JDBC+sqlserver的POS积分管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

1.开发一个大而复杂的POS积分管理软件系统,将它进行适当的分解,不但可以降低其复杂性,还可以减少开发工作量,降低开发成本,提高软件生产率。其中, 积分失效处理,是为了刺激客户消费,对于一年以内未购买任何商品的会员,对其积分进行清除处理。数据处理模块,是对商品销售金额等具体数据进行计算处理,以方便企业对各类型商品销售情况等进行数据分析。作为商务用软件,错误检测机制尤为重要。因此,在模块开发时应考虑到各种实发情况的出现,并做出相应处理。在完成程序开发后,需作成单元检测清单(PCL),并进行测试,验证软件的有效性,发现并修补缺陷,以提高软件质量,确保开发出用户满意的软件产品。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:11660个字33页
包含内容:整套源码+完整毕业论文


3、关键词

POS积分管理软件系统;积分失效;数据分析;单元检测清单

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言
1.1 课题背景
省略

1.2 选题意义
不同类型的销售行业有自己的特点,对于零售业而言,是一个成本敏感,同时具有大规模的分布性和灵活多变的特点。因此,如何处理好在一个高度分布的网络环境中,多种软硬件平台的管理、部署和升级,适应实际的需求变化,为用户提供一种可靠的低成本运作模式,成为零售业解决方案成功的关键。

针对这一情况,希望研究出一套POS积分管理系统,用来对商品销售情况、会员消费情况、分店经营情况等信息进行系统高效的管理。降低甚至消除不必要的成本和费用,给客户带来更大效益。而本课题的研究正是要在这个系统之下开发出积分失效和数据分析两个模块。其中积分失效模块对一年内未购买任何物品的会员,进行积分过期失效处理。这样做可以刺激用户消费,提高销售业绩。而数据分析模块则是对商品销售信息进行分析,对各种类型的商品销售情况,销售利润做成数据资料以供外部分析使用。

1.3 研究方法
作为以JAVA语言为基础的商务型软件,此次研究主要采用面向对象的方法进行软件开发。尽可能模拟人类习惯的思维方式来分析和解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。在程序中,采用了JDBC—ODBC桥的方式,进行数据库连接。另外,由于是商务软件,就要考虑到用户在使用该系统时有可能出现的各种错误,并针对这些错误制定出解决的方案。整个开发过程分为四个部分,包括分析工程、设计工程、制造工程、测试工程。下面将详细对上述过程进行细致的描述。

2 分析工程
2.1 需求分析
由于该百货店实行会员管理模式,每个会员都有代金消费点数,其中就存在部分会员在获得消费点后,因某些原因长期未能进行消费,但仍要对他们的消费点进行管理,这就给整个管理系统带来了负担,同时也占用了很多不必要的资源,无形中增大了管理的成本。为了解决这个问题,就需要建立一个模块来定期检查会员消费情况,对限定时间内未消费的用户进行积分失效处理,以节约系统资源,同时,也在一定程度上刺激会员消费。
把握市场动向,提高销售利润是企业的最终目标。在企业管理日趋科学化的今天,如何准确及时地进行生产经营决策是销售企业面临的严峻问题。要求决策者准确及时地捕捉到销售信息,分析销售情况,随时根据历史的销售情况,对下一步的生产经营科学地进行决策。销售分析需要大量的基础数据,但是如果将原始的销售信息直接用于分析又会给分析工作带来很大不便,是效率无法提高。因此就需要将原始销售信息进行整理,处理成决策分析所需的数据资料,进行保存。

2.2 系统分析
2.2.1 系统构成
① 硬件需求:计算机一台
② 操作系统:Windows
③ 开发语言:Java
④ 开发工具:eclipse
⑤ 数据库:Microsoft SQL Server
⑥ 其他软件:Microsoft SQL Server Driver for JDBC Service,Subversion
2.2.2 系统模块
① 积分失效
从会员信息表中,找出一年前注册,当前点数不为0,且一年内未进行消费的用户,对其积分进行清零处理。
② 数据分析
对每日POS消费记录文件进行数据处理,生成用于外部数据分析的明细文件

2.2.3 系统数据分析
会员数据:包括会员的基本信息数据(入会日期,会员编码,姓名,住址,联系电话,出生年月日,会员种类,入会店铺编码等等);
积分数据:包括积分卡基本信息数据(会员编码,现在积分点,累计积分点,输出累计积分点,增加累计积分点,基本累计积分点,购买次数,购买累计金额等等);
店铺数据:包括店铺基本信息数据(店铺编码,店铺名称,DOMINANT编码,住址,联系电话等等);
用于进行数据分析处理的原始销售信息存放于一个名为FSP_EFI010.DAT的文件中,其数据格式如表1所示:

表1 原始销售信息文件数据格式
在这里插入图片描述

3 设计工程
3.1 外部设计(概要设计)
3.1.1 数据库设计
数据库表结构的设计在每一个开发项目中都是非常重要的一个部分,数据库表设计的好坏直接关系到开发过程中代码实现的功能强大与否,是否包含齐备客户所需求的功能。因此现在来介绍该模块所用到的数据库表的详细设计。各数据表定义如表2所示

表2 数据表定义
在这里插入图片描述

表3 FSPTB_MEMBER(会员)
在这里插入图片描述

表4 FSPTB_MEMBER_STATUS(会员状态)
在这里插入图片描述

表5 FSPTB_POINT(积分)
在这里插入图片描述

表6 FSPTB_POINT_JNL(积分更新记录)
在这里插入图片描述

表7 FSPTB_POINT_RIREKI(积分当日消费记录)
在这里插入图片描述

3.1.2 数据流程图

在这里插入图片描述

图1 积分失效处理流图

在这里插入图片描述

图2 数据分析模块流图

在这里插入图片描述

图3 注释图

3.2 内部设计(详细设计)
3.2.1 积分失效详细代码设计
省略

表8 POINT信息项目移动表
在这里插入图片描述

表9 POINT更新日志新建项目移动表
在这里插入图片描述

在这里插入图片描述

表10 POINT更新日志更新项目移动表
在这里插入图片描述
在这里插入图片描述

表11 POINT履历(追加)项目移动表
在这里插入图片描述

表12 POINT履历(更新)项目移动表
在这里插入图片描述

表13用户数据项目移动表
在这里插入图片描述
在这里插入图片描述

3.2.2 数据分析模块详细代码设计

  1. 初期处理。
    (1)共通文件(INI)取得。
    如存在错误,输出错误信息,程序结束。
    (2)输出开始日志。
  2. 分析用POS明细文件作成。
    (1)文件检查处理。
    ①. 检查POS明细文件路径。
    如果不存在,输出错误日志,程序结束。
    ②. 生成POS明细文件。
    如果超过99个,直接跳转到步骤3。
    ③. 检查POS项目信息文件路径。
    如果不存在,输出错误日志,程序结束。
    ④. 检查POS项目信息文件。
    如果不存在,输出错误日志,程序结束。
    (2)读取POS项目信息文件。
    当数据读完,结束。
    (3)POS明细文件CODE作成。
    (4)参照“项目数据移动表”。
  3. 结束处理。
    输出结束日志。

表14项目数据移动表
在这里插入图片描述
在这里插入图片描述

4 制造工程
4.1 开发环境
开发环境为Eclipse,JDK包采用版本为jdk。OBDC数据源为tokyosuper。数据库登录帐号:sa ;密码:123456。
4.2 程序开发
4.2.1 程序流程图
在这里插入图片描述

图4 积分失效模块流程图
在这里插入图片描述

图5 数据分析模块模块流程图
4.2.2 建立JDBC-ODBC桥接器

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");/*注册数据库驱动程序为    SQL JDBC-ODBC驱动*/
		} 
		catch (ClassNotFoundException e) {					/*如无法找到该驱动,则捕获异常,并输出错误*/
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

4.2.3 读取INI文件
INI文件中记录了本系统中所有数据文件的存储地址。因此,在开始模块编码前,一定要先读取该文件。专门建立一个类Iniread.java来实现各种功能。具体如下:
成员变量:

FileReader inOjb; 		//创建一个用来读取字符文件的对象
BufferedReader br;		//创建一个使用默认大小输入缓冲区的缓冲字符输入流。
Connection con;		//与特定数据库的连接
Statement stmt;		//用于执行静态 SQL 语句并返回它所生成结果的对象
String url;		//定义数据源名
String user;		//定义数据源的login name
String password;		//定义数据源的密码
/*构造方法(参数是为了进行数据库连接,在读取INI文件过程中如出现错误则将错误                                日志输入数据库的LOG表)*/
Iniread(String url,String user,String password){
inOjb=new FileReader("FSP.INI");
br=new BufferedReader(inOjb);
… 
…
}
/*此方法用于获取数据文件在服务器上的地址,参数是数据文件名*/
public String getaddress(String a)		{
str=br.readLine();	//读取INI文件中的一行
…
…
}

4.2.4 对数据库操作

//向数据库插入一条数据,此处temp除可进行插入操作外,还能进行更新,删除操作
String url="jdbc:odbc:tokyosuper";	//定义数据源名
String user="sa";				//定义数据源的login name
String password="123456";				//定义数据源的密码
String temp="INSERT INTO FSPTB_LOG(P_Sel,P_Msg,P_AppNM,P_FuncNM,P_JobNM,p_ErrDetail,P_InIFile) VALUES('L','读取文件错误','查找的地址不存在','iniread ','iniread ','FSP.INI读取出错','FSP.INI')";
try {
con=DriverManager.getConnection(url,user,password);
stmt=con.createStatement();
stmt.executeUpdate(temp);
con.close();
} 
catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//在数据库中查询数据查询的结果全部存放于ResultSet的对象中,利用next方法可以读取结果集的第一行,以后每执行一次,向下跳转一行。getxxx方法可以获得结果集中的某一项其中xxx为该项的属性,如String等
try {
			con=DriverManager.getConnection(url,user,password);
			stmt=con.createStatement();
			String temp="SELECT MEMBER_CODE,TENPO_CODE FROM FSPTB_MEMBER WHERE MEMBER_CODE='"+member+"'";
			ResultSet rs=stmt.executeQuery(temp);
			rs.next();
			String tenpo=rs.getString("TENPO_CODE");
} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

4.2.5 对文件操作

//判断文件路径或文件是否存在,File的exists方法返回是ture则存在。
File posdata=new File(Pos_Data);
File outposprefix=new File(Pos_Data,Out_Pos_PreFIX);
posdata.exists();
outposprefix.exists();

//打开文件,逐条读取
FileReader fr=new FileReader(positem.getPath());
BufferedReader inOjb = new BufferedReader(fr);
str=inOjb.readLine();
while(str!=null)
			{}

//打开文件写入数据
String address=file.getPath();
		FileWriter fw;
		try {
		fw = new FileWriter(address,true);//打开address所表示的文件,ture表示在该文件末尾写入数据,而非文件的开始处
			BufferedWriter out=new BufferedWriter(fw);
			//从新的一行开始写入		
out.newLine();
			//写入新的一行信息
			out.write(str,0,str.length());
			out.close();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

5 测试工程
5.1 测试准备
本系统属于一款商务应用型软件,因此,对各种可能出现的错误情况要有很高的检测能力,并进行响应处理。所以,在软件开发完成后,为了检验是否达到客户要求需要进行全面的测试,包括程序的逻辑处理,输入/输出处理,边界条件判断,异常处理等。在进行测试前,应针对上述各情况填写一份全面的单元测试检测清单。

5.1.1 积分失效模块单元检测表
表 15 积分失效模块单元检测表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.2 分析用POS明细作成模块单元检测表
表16 分析用POS明细作成模块单元检测表
在这里插入图片描述
在这里插入图片描述

5.2 测试实施
在准备好测试数据,配置好测试环境后,根据测试清单上的内容,逐条进行测试,其中,如果中途发现BUG存在,并对程序进行相应更改的话,则前面所做的测试全部作废,需重新开始测试。

5.2.1 测试页面截图
积分失效模块测试
如图6所示编号为842345143672的会员其注册日期为一年以前。其积分失效区分为有效。
在这里插入图片描述

图6 用户注册信息表

如图7所示该用户当前积分为130
在这里插入图片描述

图7 用户POINT信息表
在这里插入图片描述

图8所示为该用户积分被清零

图8 用户积分清零

数据分析模块测试结果如图9所示
在这里插入图片描述

图9 分析用POS明细文件生成

5.2.2 测试结果数据
FSP_EFI010.DAT文件中测试数据:
123456,sdcdsc,21458,20080525,13,1234567890123,2001010000000,苹果,122,554545,1234,2,1245,1222,1235,5589,7789,2490,009701
123456,sdcdsc,21458,20080525,13,1234567890123,2001010000000,苹果,122,254545,1234,1,1245,1222,1235,5589,7789,2490,009701
生成POS明细文件POS2004011004.DAT中结果数据如下:
51,123456,sdcdsc,20080525,13,1234567890123,20,01,010,000000,02001010000000,苹果,122,554545,0000000,0, ,000000,
51,123456,sdcdsc,20080525,13,1234567890123,20,01,010,000000,02001010000000,苹果,122,254545,0000000,0, ,000000,

结 论
本次设计的内容主要是对积分失效和数据处理模块进行设计。其中积分失效模块对一年内未购买任何物品的会员,进行积分过期失效处理。这样做可以刺激用户消费,提高销售业绩。而数据分析模块则是对商品销售信息进行分析,对各种类型的商品销售情况,销售利润做成数据资料以供外部分析使用。作为商务用软件,错误检测机制尤为重要。因此,在模块开发时应考虑到各种实发情况的出现,并做出相应处理。在完成程序开发后,做了单元检测清单(PCL),并进行测试,验证了软件的有效性,发现并修补缺陷,以提高软件质量,确保开发出用户满意的软件产品。

省略

参考文献
[1] 罗积玉,李超.软件工程推进方法[M].四川:电子科技大学出版社,2004.9。
[2] 杜斌,幸利.软件设计工程[M].四川:电子科技大学出版社,2004.9。
[3] 李超,罗积玉.软件制造工程[M].四川:电子科技大学出版社,2004.9。
[4] 林邦杰.Java程序设计入门教程[M].北京:中国青年出版社,2001。
[5] John D.mcGregor David A.Skyes[美].面向对象的软件测试[M].杨文宏等译.北京:机械工业出版社,2002。
[6] 周竞涛.Eclipse完全手册 基础·进阶·高级[M].北京:电子工业出版社,2006。
[7] 萧仁惠, 陈锦辉.JDBC数据库程序设计[M].北京:中国铁道出版社,2002。

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于java+JDBC+sqlserver的POS积分管理系统设计与实现(源码+文档)_java_JDBC_BS架构_POS积分管理系统.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值