【精品毕设】百货店POS积分管理系统―积分点更新生成以及通票回收处理(包含源码+论文word)

点击获取源码+论文word

  

百货店是生活中不可缺少的一部分,为了给顾客提供更方便的服务平台以及更好的服务质量,而设计了POS积分管理系统。百货店通过点积分的管理获得顾客更好的信誉,增加客户流量,获得更多的利益。在百货店经营的过程中,每天的交易次数成千上万,所以,对顾客使用积分卡信息的查询是很重要的。根据这一点,设计了积分更新生成及通票回收处理的功能。积分点更新生成是指,将顾客交易情况生成更新查询文件;通票回收处理是指,对一定时间后没有使用过的通票进行回收处理以及保存相关信息。涉及到的技术主要是对文件的读和写操作、对数据库的查询和插入以及简单计算编程等等。是基于日文操作系统Windows 2000,采用Java开发语言,并使用SQL server 2000数据库,JDBC驱动器来完成积分点更新生成以及通票回收处理的功能。

关键字: POS积分管理;百货店;积分点;更新生成;通票回收处理

 

Abstract

Department store is an essential part in our lives. In order to provide the more convenient service platforms and better service qualities with customers, the POS integral management system is designed. Through this integral management the department store obtains a better prestige from customers, attracts more consumers and gains more benefits. For the customers, the searching of information of the used integral card is very important because of the large number of transaction every day. According to this point, the integral update document generation and coupon recycling functions are designed. Integral Point Generation Update is to make the information of customer transactions into inquiring updated document and Coupon Recycling is to recycle the un-used coupon after a certain period of time and preserve relevant information. The technology involved is mainly concerned with the reading and writing of documents, the inquiring and inserting of the database, simple calculation programming and so on. The system is based on the Windows 2000 of Japanese, developed though JAVA, with SQL server 2000 as the database, JDBC as the driver.

Key words: Integral management of POS; Department store; Integral point; Generation update; Coupon recycling

目   录

                                                          

1   引    言. 1

2   模块需求分析. 1

2.1   模块功能需求. 2

2.2   客户对该模块的期望. 2

2.3   模块其他需求. 3

3   可行性研究. 3

3.1   技术可行性. 3

3.2   经济可行性. 4

4   数据库设计. 4

4.1   数据流程图. 4

4.1.1   通票回收处理数据流程图. 4

4.1.2   积分点更新生成数据流程图. 5

4.2   数据库表结构设计. 6

5   环境搭建. 8

5.1   安装jdk1.5.0_06软件. 8

5.2   安装Eclipse3.2 9

5.3   安装Microsoft SQL Server 2000 Driver for JDBC Service 9

5.4   Microsoft SQL Server 2000安装. 10

5.5   设置数据源. 10

6   模块功能代码实现过程. 11

6.1   共同类或方法的代码实现. 11

6.2   MAIN主程序实现. 14

6.2.1   积分更新生成代码实现及说明. 14

6.2.2   通票回收处理代码实现及说明. 16

7   模块测试结果. 17

7.1   积分更新生成文件测试结果. 17

7.2   通票回收处理测试结果. 18

结    论. 19

参考文献. 20

致    谢. 21

声    明. 22

  1. 引    言

21世纪的今天,人类已步入一个高速发展的信息时代。随着科学技术的不断发展,日益更新,计算机技术的发展更是突飞猛进,并在人们的生活当中起着重要的作用。运用计算机技术可以开发各式各样的产品,如:积分管理系统等等。

积分管理,它的概念在人们的记忆中并不陌生,它属于各大企业经营管理中的一种方式,也是提高管理效率的一种手段。随着WTO的步伐加快,国际化竞争必然加剧,国际国内市场将面临更为激烈的争夺。参与市场竞争,更多的要靠先进超前的经营管理观念和方法、系统的战略规划、科学的市场分析、规范的管理运作、入微的客户服务、优秀的员工队伍等综合实力。经营绩效是公司管理的重心,建立先进的管理系统,对推动公司战略实现、提高经营业绩是非常重要的。因此POS积分管理系统就是在具备先进科学技术条件下,以先进超前的经营管理理念为基础而设计的一套先进的管理系统。

POS积分管理系统的先进性,是要经过详细的需求分析和精心的设计才能实现的。一个公司的管理系统是否先进、完善,是由公司的管理制度,管理理念来决定的。然而一个公司的管理系统的先进性、完善性直接体现了该公司的管理制度和管理理念。因此具有先进和完善的管理系统,对各大企业的管理和发展都起着非常重要的作用。但是怎样才能体现一个管理系统是否真正的先进和完善呢?这在我们开发该POS积分管理系统时,首要涉及考虑的问题。比如:在积分管理系统中,会员的基本信息是否完整,店铺的基本信息是否完整,系统的积分更新是否准确及时,管理系统的性能是否稳定,管理系统的利用是否节约系统资源降低成本等等都是必须考虑的问题。

为了满足某百货店的需求,我们设计出具有以下优点的POS积分管理系统。如:检索迅速,可靠性高,稳定性强,更新方便,保密性好,成本低,使用方便等等。有了这些优点,各大企业可以利用积分管理系统通过积分的手段提高经营绩效,达到增加利润的目的,增加各个企业之间的竞争,从而促进社会经济的发展。

总的来说开发一套POS积分管理系统是很重要的。在这个POS积分管理系统中,主要负责积分更新生成和通票回收处理这两个模块的分析、设计和实现。结合所学的知识,基于日文系统Windows 2000,采用Java开发语言,并使用SQL server 2000的数据库来实现积分点更新生成以及通票回收处理的功能。下面将介绍开发过程中实现该模块的具体内容。

  1. 模块需求分析

各企业或百货店为了在激烈竞争的商场中立于不败之地,就必须与客户建立良好的关系,这就要求在各企业或百货店中拥有一套管理完善的、先进的、稳定的、功能齐全的POS积分管理系统。这里的POS积分管理系统是面向最终客户的,因此这里所谓的客户是指个人。

在每个店铺中拥有很多个客户,而客户又可能拥有旧店铺编码和旧会员编码,但是店铺与客户的关系却不是多对多的关系而是一对多的关系。通过对客户基本资料与店铺基本信息的管理,从而增加企业或百货店与客户的交易信誉度,使得客户在购买商品时买的放心,买的开心,以至于提高客户的满意度,吸引和保持更多的客户。

积分点更新生成模块,该模块是查询所需要更新的信息,将所需要更新的信息存在DAT文件中。通票回收处理是将符合某种条件的信息在CSV文件中显示。

    1. 模块功能需求

  1. 积分卡所包含的基本资料
    1. 会员基本资料:包括会员编码,姓名,出生年月日,联系电话(可登记多个电话),会员种类(分为三个种类:一般,法人,社员),性别,邮编,联系地址,入会的店铺编码,无效区分(分为两种:有效,无效)。
    2. 店铺基本资料:包括店铺编码,店铺名称,店铺邮编,店铺地址,联系电话。
    3. 积分点基本资料:包括会员编码,旧会员编码,优惠等级,各种积分点(分为六种积分点:现时积分点,累计积分点,输出的累计积分点,增加的累计积分点,基本累计积分点,奖金积分累计积分点),最新一次使用积分卡的日期,使用积分卡的次数,购买金额,会员打折金额,系统更新日期。
    4. 其它资料:会员状态包括会员编码,店铺编码,更新种类(分为三种类型:登陆,修改,删除),处理日表包括营业日,处理日,登陆日期,更新时间。
  1. 处理功能需求

  1. 积分点更新生成:查询会员状态中的会员编码,按条件检索会员基本资料,店铺基本资料,积分点基本资料,以及其它将符合条件的数据取出存在内存中,然后再根据积分点更新生成的条件将符合的结果保存在DAT文件中,以方便更新查询。
  2. 通票回收处理:该模块主要针对通票回收和通票存储CSV文件进行处理,将符合日期条件的数据重新写入通票存储CSV文件中,方便查询。
    1. 客户对该模块的期望
    • 实现该模块的所有功能;
    • 稳定性强;
    • 可调用性强;
    1. 模块其他需求
  • 开发环境需求

  1. 硬件需求:计算机一台。
  2. 操作系统:Windows 2000(日文)。
  3. 开发语言:Java(版本号:jdk1.5.0_06 ,eclipse 3.2)。
  4. 数据库:Microsoft SQL Server 2000。
  5. 其他软件需求:Microsoft SQL Server 2000 Driver for JDBC Service。
  • 人力资源需求

积分点更新生成和通票回收处理这两个模块需要一个人完成。

  • 时间需求

完成积分点更新生成和通票回收处理的功能需要3个月的时间。

  1. 可行性研究

    1. 技术可行性

  • Java技术的特点

以Java作为该模块的开发工具,是因为它是目前使用最为广泛的网络编程语言之一,并且具有简单、面向对象、稳定、与平台无关、解释型、多线程、安全、动态等特点。

  1. 简单:Java语言简单是指这门语言既易学又好用,而且Java中不再使用指针的概念。
  2. 面向对象:基于对象的编程更符合人的思维模式,使人们更容易编写程序。
  3. 与平台无关:这一点是Java语言最大的优点。即用Java编写的程序可以在任何安装了Java虚拟机(JVM)的计算机上正确运行。
  4. 解释型:Java不针对特定的CPU芯片进行编译,而是把程序编译为叫做自解码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了Java虚拟机(JVM)的任何系统上被解释执行。
  5. 多线程:Java还有一特点就是内置对多线程的支持。多线程支持完成多个任务。
  6. 安全:当使用支持Java的浏览器时,可以放心地运行Java的小应用程序(Java Applet),不必担心病毒的感染和恶意企图。
  7. 动态:Java程序的基本组成单元是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序即类库。
  • Microsoft SQL Server 2000的可行性分析

选择以Microsoft SQL Server 2000作为该模块的数据库,SQL Server 2000数据库学起来较为简单,容易使用,因此使用数据库查询语句,条件查询语句以及写入语句,对数据库进行查询取值,并向数据库里写入数据。

在技术难度方面,由于有指导老师的指导和相关的参考文献,特别是网上众多的网友所提供的资料,使得在开发过程中所遇到的困难都能够一一得到解决。

  1. 经济可行性

随着科学技术的发展,特别是计算机技术的飞跃发展,使得计算机在人们的生活使用中越来越普遍。计算机的普遍使用说明人们的生活水平提高了,从而也说明了计算机的价格越来越被众多人所接受。然而价格的低廉并不是说产品的质量不好,是因为技术的飞跃发展使得产品的成本降低。因此开发POS积分管理系统所需要的成本也是该百货店所能接受的,并且通过POS积分管理系统的管理使得客户获得相应的好处,从而使百货店获得更高的利益。除此之外它还具有很多优点,例如:

  1. 可以随时获得客户的基本资料,以及店铺的基本资料,通过这些可以增加客户与百货店之间的相互信任度。保证交易中的安全性。
  2. 方便百货店对客户积分的管理以及更新,以便让客户在符合条件的情况下享受某种特别优惠待遇,从而增加客户对百货店的满意度,吸引更多的客户。

根据以上分析,实现积分点更新生成以及通票回收处理的功能是可行的。

  1. 数据库设计

    1. 数据流程图

      1. 通票回收处理数据流程图

如图1通票回收处理数据流程图:

通票回收处理数据流程图说明:

通票回收处理数据流程涉及两个文件,通票回收数据文件只是输出文件,通票回收储蓄文件既是输出也是输入文件。

通票回收数据文件:所存放的数据是每次交易时使用积分卡所存放的交易时间以及其它数据信息。

通票回收储蓄文件:所存放的数据是每次通票处理时所存放的最新数据。

所存放的内容和通票回收数据文件一样。

      1. 积分点更新生成数据流程图

如图2积分点更新生成数据流程图:

图2积分点更新生成数据流程图

积分点更新生成数据流程图说明:

积分点更新生成数据流程处理时需要用到7种数据和一个文件,从这7个数据表中取出数据,将符合条件的数据存放在文件中,做成积分更新生成文件即积分更新数据文件。

会员数据:包括会员的基本信息数据(入会日期,会员编码,姓名,住址,联系电话,出生年月日,会员种类,入会店铺编码等等);

积分数据:包括积分卡的基本信息数据(会员编码,现在积分点,累计积分点,输出累计积分点,增加累计积分点,基本累计积分点,购买次数,购买累计金额等等);

店铺数据:包括店铺基本信息数据(店铺编码,店铺名称,优先级编码,住址,联系电话等等);

会员状态数据:记录是否曾经办理过积分卡的信息数据(会员编码,旧会员编码,店铺编码,旧店铺编码,优先级编码等等);

优先数据:记录优先级信息数据(优先级编码,优先级名称,更新日期等等);

奖励积分数据:记录会员获奖信息数据(处理日期,会员编码,每月消费金额,奖励积分点,系统更新日期等等);

处理日数据:记录所有处理的日期数据(营业日期,处理日期,登陆日期,更新日期等等);

  1. 数据库表结构设计

数据库表结构的设计在每一个开发项目中都是非常重要的一个部分,数据库表设计的好坏直接关系到开发过程中代码实现的功能强大与否,是否包含齐备客户所需求的功能。因此下面介绍该模块所用到的数据库表的详细设计:

  1. 表名定义

表1数据库表名一览

序号

表参数名

说明

1

FSPTB_MEMBER

记录会员基本信息

2

FSPTB_POINT

记录积分卡的基本信息

3

FSPTB_TENPO

记录店铺基本信息

4

FSPTB_MEMBER_STATUS

记录会员状态信息

5

FSPTB_DOMINANT

记录优先级别信息

6

FSPTB_POINT_BONUS

记录会员获奖信息

7

FSPTB_COMM_CONT

记录处理的日期信息

  1. 数据库表设计

表2会员表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

MEMBER_CODE

会员编码

Char

13

NOT NULL

NYUKAI_YMD

入会年月日

Char

8

NULL

SHIMEI_KANA_S

日语假名的姓

Char

16

NOT NULL

SHIMEI_KANA_N

日语假名的名

Char

16

NOT NULL

SHIMEI_KANJI_S

中文姓

Char

32

NOT NULL

SHIMEI_KANJI_N

中文名

Char

32

NOT NULL

BIRTH_DAY

出生年月日

Char

8

NULL

MEMBER_KBN

会员种类

Char

1

NULL

FM_KBN

性别

Char

1

NULL

NYUKAI_TENPO

入会的店铺编码

Char

6

NULL

MUKOU_KBN

起效种类

Char

1

NULL

ADD_YMDHMS

注册时间

Char

14

NULL

ADD_TANTOU

注册负责人ID

Char

6

NULL

UPD_YMDHMS

更新时间

Char

14

NULL

UPD_TANTOU

更新负责人ID

Char

6

NULL

表3会员状态表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

MEMBER_CODE

会员编码

Char

13

NOT NULL

OLD_MEMBER_CODE

旧会员编码

Char

13

NULL

DOMINANT_CODE

优先级别编码

Char

3

NOT NULL

TENPO_CODE

店铺编码

Char

6

NOT NULL

OLD_DOMINANT_CODE

旧优先级别编码

Char

3

NOT NULL

OLD_TENPO_CODE

旧店铺编码

Char

6

NOT NULL

UPD_KBN

更新种类

Char

1

NULL

MSTS_AUTO_ID

记录番号

Numeric

15

NULL

表4积分表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

MEMBER_CODE

会员编码

Char

13

NOT NULL

OLD_MEMBER_CODE

旧会员编码

Char

13

NULL

YUTAI_RANK

优惠等级

Char

2

NULL

NOW_POINT

现在积分点

9

8

NULL

RUIKEI_POINT

累计积分点

9

8

NULL

OUT_RUIKEI_POINT

输出的累计积分点

9

8

NULL

ADD_RUIKEI_POINT

增加的累计积分点

9

8

NULL

KIHON_RUIKEI_POINT

基本累计积分点

9

8

NULL

BONUS_RUIKEI_POINT

奖励累计积分点

9

8

NULL

KAIAGE_R

最后交易时间

Char

8

NULL

TUKI_KAIAGE_M

每月交易金额

9

10

NULL

BEFORE_TUKI_KAIAGE_M

前月交易金额

9

10

NULL

KAIAGE_F

交易次数

9

5

NULL

KAIAGE_M

交易金额

9

10

NULL

MEMBER_WARIBIKI_M

打折累计金额

9

10

NULL

KOUNYU_M

购买金额

9

10

NULL

MUKOU_KBN

起效种类

Char

1

NULL

ADD_YMDHMS

登陆时间

Char

14

NULL

UPD_TANTOU

更新负责人ID

Char

6

NULL

表5优先级别表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

DOMINANT_CODE

优先级别编码

Char

3

NOT NULL

DOMINANT_KANA

日文名称

Char

20

NULL

DOMINANT_KANJI

中文名称

Char

30

NULL

UPD_YMDHMS

更新时间

Char

14

NULL

UPD_TANTOU

更新负责人ID

Char

6

NULL

表6店铺表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

TENPO_CODE

店铺编码

Char

6

NOT NULL

TENPO_KANA

日语名称

Char

20

NULL

TENPO_KANJI

中文名称

Char

30

NULL

DOMINANT_CODE

优先级别编码

Char

3

NULL

TENPO_ZIP

邮政编码

Char

7

NULL

TENPO_ADDR

地址

Char

100

NULL

TENCYO_MEI

店长名

Char

20

NULL

UPD_YMDHMS

更新时间

Char

14

NULL

UPD_TANTOU

更新负责人ID

Char

6

NULL

表7积分奖励表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

SHORI_YM

处理月

Char

6

NOT NULL

MEMBER_CODE

会员编码

Char

13

NOT NULL

TUKI_KAIAGE_M

每月交易金额

9

10

NULL

BONUS_POINT

奖励积分点

9

8

NULL

BONUS_KUBN

奖励种类

9

4

NULL

SYSTEM_UPD_YMDHMS

系统更新时间

Char

14

NULL

表8处理日表

主键

列(属性)名

中文名称

类型

宽度

是否允许为空

EIGYO_YMD

营业日期

Char

8

NOT NULL

SYORI_YMD

处理日期

Char

8

NOT NULL

ADD_YMD

登陆日期

Char

8

NOT NULL

ADD_HMS

登陆时间

Char

6

NOT NULL

UPD_YMD

更新日期

Char

8

NOT NULL

UPD_HMS

更新时间

Char

6

NOT NULL

  1. 环境搭建

    1. 安装jdk1.5.0_06软件

jdk1.5.0_06软件的安装和一般软件的安装一样,没有需要特别注意的地方,只需按步骤依次安装即可。安装完成后在所选安装目录下存在jdk1.5.0_06文件。

如图3jdk1.5.0_06文件:

文件路径:C:\Program Files\Java

文件名:jdk1.5.0_06

图3jdk1.5.0_06文件

    1. 安装Eclipse3.2

Eclipse 3.2,只要解压就可以使用,解压时可以设置或选择项目程序所在目录,在这里所编写的程序放在D:\FSP中,如图4 Eclipse3.2创建:

可设置或选择项目程序所在路径

图4 Eclipse3.2创建

    1. 安装Microsoft SQL Server 2000 Driver for JDBC Service

Microsoft SQL Server 2000 Driver for JDBC Service安装软件,在安装过程中没有什么特别的要求,即可安装成功。如图5JDBC安装:

点击“Finish”即可完成安装

图5JDBC安装

    1. Microsoft SQL Server 2000安装

开发某百货店POS积分管理系统时,共同使用一个服务器,因此Microsoft SQL Server 2000的安装是在服务器上进行的,这里的模块不涉及数据库Microsoft SQL Server 2000的安装,只是使用而已。

  1. 设置数据源

为了与该系统的数据库建立连接,首先需要配置一个ODBC数据源,步骤:

打开Windows中的控制面板后,双击“管理工具”接着双击“数据源(ODBC)”图标,出现界面;

  1. 单击界面中“System DSN”选项卡,出现对话框,此对话框用于设置系统数据源的名称和对应的驱动程序,单击“Add”按钮,出现对话框;
  2. 选择对话框中“SQL Server”条目,单击“完了 ”按钮,出现界面;
  3. 在界面中的第一个文件编辑框中键入连接的数据库的名称(例如:

“ tokyosuper” ),接着从服务器下拉框中选择服务器名字(例如:SK-XUFENG),(但是如果使用本机的数据库即已安装了相应的SQL Server数据库软件时,选择“Local(本地) ”就可以了。)出现界面;

  1. 选择由用户名和密码来连接服务器的单选按钮,在Login ID中填写用户名(例如:“sa”),在Password中填写密码,出现界面;
  2. 选中“chang the default database to”按钮,从服务器下拉框中选择“ tokyosuper”,点击下一步,接着点击完成,最后点击ok就可以了。

如图6数据源:

点击“ OK ”即可

图6数据源

  1. 模块功能代码实现过程

在这里负责的2个模块是积分更新生成模块和通票回收处理模块,详细实现过程如下:

    1. 共同类或方法的代码实现

  1. 建立JDBC-ODBC桥接器,如下实现代码:

建立JDBC-ODBC桥接器实现代码中s可用"sun.jdbc.odbc.JdbcOdbcDriver"来替换,即可实现JDBC-ODBC桥接器建立的功能。

  1. INI文件的获取

在这里的INI文件是系统中所公用的文件,里面存放了所有文件的存放路径信息。此功能实现代码省略。

  1. 数据库日志输出实现

在这些模块中需要输出消息日志,开始日志和结束日志,实现代码如下:

日志输出实现代码中str表示数据库插入语句INSERT插入数据库表FSPTB_LOG中的内容。p_Sel,p_Msg,p_AppNM,p_FuncNM, p_JobNM, p_ErrDetail,p_InIFile这些列名分别表示日志种类,日志信息,程序名,函数名,工作名,错误信息,INI文件名。

  1. 重新设置内容

在积分更新生成模块中,需要对从数据库中取出的内容按照某中条件进行重新设置,有三种不同的情况,实现代码如下:

public class Reset {

String ss;

//1)现在积分点和累计积分点重新设置

Reset(String s1){

         try{

         if(s1!=null){int a=Integer.parseInt(s1);

                if(a>=0){ss=String.valueOf(a);}

else{ ss="00000000";}

}

else{ ss="00000000";}}

catch(NumberFormatException e){}}

Reset(){}

//2)每月购买金额重新设值

public String resetKingaku(String s2){

try{

       if(s2!=null){int b=Integer.parseInt(s2);

if(b>=0){return(String.valueOf(b));}

                     else{return("0000000000");}}

       else{return("0000000000");}}

       catch(NumberFormatException e){return("");}

}

//3)奖励种类重新设置

public String resetBonusKubn(String s3){

    try{

if(s3!=null){return(s3);}

else{return("0001");}}

    catch(NumberFormatException e){return("");}

}

}

 

重新设置内容代码实现中有参数的构造函数Reset(String s1){…}是对现在积分点和累计积分点的重新设值,它的实现功能是如果取出的值为null或者小于0的情况下就将那个值重新设置为“00000000”; 方法public String resetKingaku(String s2){…},是对每月购买金额重新设值,它的实现功能是如果取出的值为null或者小于0的情况下就将那个值重新设置为“0000000000”;方法public String resetBonusKubn(String s3){…},是对奖励种类重新设值,如果所取的值不为空则返回所取得值,其它情况下都设置为“0001”。其中的两个方法由空构造函数Reset(){}的对象来调用。

public void writetofile(String filepath,String filename,String cotents){

File f=new File(filepath,filename);Fsplog error=new Fsplog();

try{

    FileWriter fwrite=new FileWriter(f,true);

BufferedWriter out=new BufferedWriter(fwrite);

out.write(cotents);out.close();fwrite.close();

}

catch(IOException e){

error.insert("('L','エラーログ','クーポン回収データ取得処理','Fsplog','FSP1510','エラー発生 ','FSP.INI')");

}

}

   

 
  1. 写入文件实现

在写入文件实现的代码中,有三个参数filepath, filename, cotents分别表示文件的路径,文件名,以及向文件中写入数据的内容。这里需要注意,当我们对文件进行操作时,一定要记得在每操作完以后要关闭文件,以便释放系统资源,否则造成不必要的资源浪费。

    1. MAIN主程序实现

      1. 积分更新生成代码实现及说明
  1. 定义相关联的变量,如下表9积分更新生成变量一览:

表9积分更新生成变量一览

变量名

类型

说明

point_ment

String

积分更新生成文件路径

pointmentdir_parent

String

积分更新生成文件父路径

pointmentname

String

积分更新生成文件名

statusMemberCode

String

会员状态的会员编码

pointMemberCode

String

积分中会员编码

pointNowPoint

String

积分中现在积分点

pointTukiKaiageM

String

积分中每月交易金额

pointRuikeiPoint

String

积分中累计积分点

memberTenpoCode

String

会员中店铺编码

memberShimeiKanaS

String

会员中会员日语假名姓

memberShimeiKanaN

String

会员中会员日语假名名

memberBirthDay

String

会员中生日日期

memberUpdYmdhms

String

会员中更新日期

tenpoDominantCode

String

店铺中优先级别编码

tenpoTenpoCode

String

店铺中店铺编码

pointBonusBonusKubn

String

积分奖励中奖励种类

  1. 访问INI文件,检查积分更新文件路径和生成积分更新文件,代码实现如下:

      File pointment=new File(pointmentdir_parent,pointmentname);

   pointment.createNewFile();}

//2)生成积分更新生成文件目录及文件

else{

   try{   Fsplog message2=new Fsplog();

message2.insert("('G','業務ログ','ファイル存在チェック処理','Fsplog','FSP1240','NULL','FSP_INI')");

System.out.println("ポイントマスタメンテファイルディレクトリが存在しない場合");

       pointmentdirparent.mkdirs();

   catch(SecurityException e){

   error.insert("('L','エラーログ','ポイントマスタメンテ','Fsplog','FSP1240','エラーが発生','FSP.INI')");}}}

catch(IOException e){System.exit(1);}

//访问INI文件

Iniread rd=new Iniread(url,user,password);

//检查积分生成文件路径是否存在

try{代码省略……

//1)当存在文件目录时,生成积分更新生成文件

if(pointmentdirparent.exists()){

 
  1. 从数据库表中取值的过程

在积分更新生成模块中主要是查询数据库,然后将符合条件的值取出,首先取出的是FSPTB_MEMBER_STATUS中的MEMBER_CODE 的值,代码如下:

try{

              con=DriverManager.getConnection(url,user,password);

              sql=con.createStatement();

    String str1="SELECT * FROM FSPTB_MEMBER_STATUS";

rs1=sql.executeQuery(str1);int count=0;

       while(rs1.next()){count++;……代码省略}

if(count==0){

System.out.println("メンバーステータスのレコード数が0です");}

end.insert("('E','終了ログ','ポイントマスタメンテ','Fsplog','FSP1240','NULL','FSP_INI')");

        rs1.close();sql.close();con.close();}

    catch(SQLException e){error.insert("('L','エラーログ','DBマスタ存在チェック処理','Fsplog','FSP1240','エラーが発生','))}

 

查询数据库代码实现中,需要用到数据库的查询语句“SELECT 列名 FROM 表名”,以及条件查询语句“SELECT列名FROM 表名 WHERE 条件”,该模块所要用的数据都是在while(rs1.next()){…}循环中符合条件的情况下取出的。所取出的值通过以下代码写入积分更新生成文件,代码如下:

String  str=geshi(sGeshi,mentTenpoCode)+","+

geshi(sGeshi,mentMemberCode)+","+geshi(sGeshi,mentRecordKubn)+","+geshi(sGeshi,mentShimeiKanaS)+","+geshi(sGeshi,mentShimeiKanaN)+","+geshi(sGeshi,mentBirthDay)+","+geshi(sGeshi,mentSyoPoint)+","+geshi(sGeshi,mentTukiKaiageM)+","+geshi(sGeshi,mentRuikeiPoint)+","+geshi(sGeshi,mentBonusBonusKubn)+","+geshi(sGeshi,mentYoutaiRanku)+","+geshi(sGeshi,mentUpdYmdhms);

writetofile(pointmentdir_parent,pointmentname,str);//调用文件写入函数

其中调用的geshi(String s1,String s2){...}是字符串格式规范方法,使写入文件的内容格式整齐,好看。

 
      1. 通票回收处理代码实现及说明

通票回收处理模块只是对文件的一些操作,有些文件操作在以上的介绍中已经说明过,这里就不做详细的介绍,下面介绍一些与该模块有关的其它功能实现内容。

  1. 系统当天日期取得,代码实现如下:

public String Todaysdatatime(){

Date TodayTime=new Date();//设置Date对象TodayTim

//下面用SimpleDateFormat来设置所需取得的时间格式

    SimpleDateFormat matter=new SimpleDateFormat("yyyyMMdd");

        return(matter.format(TodayTime));//返回当天日期

}

e

 
  1. 由于该模块需要取得近三个月内的数据信息,因此需要求得三个月前的日期,代码实现如下:

return(Integer.parseInt(Integer.toString(yy-1)+Integer.toString((mm+12)-3)+ymd.substring(7, 8)));}

//2) 当月份大于3月时的情况

    else{

return(Integer.parseInt(syear+"0"+Integer.toString(mm-3)+ymd.substring(7, 8)));}}

public int Yearmonthday(String ymd){

String syear=ymd.substring(0, 4);//取得当前日期的年份

    String smonth=ymd.substring(4, 6);//取得当前日期的月份 

    int mm=Integer.parseInt(smonth);

    int yy=Integer.parseInt(syear);

//1)当月份小于等于3月时的情况

if((mm-3)<=0){

 
  1. 取得的当前日期需要和文件中所取得的日期进行比较,代码实现如下:

//取得文件中每一行的前8位数据即年月日

代码省略……

//将年月日转化为整型数据类型

try{qianyymmdd=str.substring(0, 8);}

catch(IndexOutOfBoundsException e){}

try{qianYymmdd=Integer.parseInt(qianyymmdd);}

catch(NumberFormatExceptione){//e.printStackTrace();}

//取得日期与求得前三月的日期作比较

jieguo=qianYymmdd-sannYearMonthDay;

if(jieguo>=0){

recordcount++;dataString=fspCsv.Datasave(str);

}

str=bufferedRead.readLine();

       while(str!=null){

……代码省略}

 

调用以上构造函数代码即可实现通票回收处理的功能。

  1. 模块测试结果
    1. 积分更新生成文件测试结果

该模块的测试结果是在积分更新生成文件中写入符合条件的数据,如图7积分更新生成文件:

图7积分更新生成文件

    1. 通票回收处理测试结果

该模块需要处理两个文件,一个是通票回收数据文件,另一个是通票回收存储文件。将这两个文件中符合条件的数据取出并保存,然后一起写入通票回收存储文件中,以下是写入问文件之前的文件,如图8通票回收数据文件和图9通票回收存储文件(处理前):

图8通票回收数据文件

图9通票回收存储文件(处理前)

将符合条件的数据写入文件后,如图10通票回收存储文件:

图10通票回收存储文件

结    论

到目前为止,在老师的指导和同学的帮助下,顺利实现了需求分析中设计的所有功能。通过对积分更新生成文件和通票回收处理模块的设计和功能实现,进一步锻炼了Java编程能力,学习了更多关于Java编程语言和SQL数据库方面的知识。比如Java编程中如何建立JDBC桥接器,怎样运用Java中的各种类对象,怎样查询API知识,以及怎样用Java来查询数据库表等等。实现积分更新生成文件和通票回收处理模块的功能时,运用到很多关于文件操作的知识。在文件操作这一方面,遇到很多问题,但是在老师的指导和帮助下,成功地解决了这一难题,实现了本设计文件所需的功能。

通过本次设计,总结经验,在编程方面有以下几点需要注意:主程序代码应避免太长,以增加查阅和修改代码的效率;变量定义应按照程序规范来设置,以便容易理解;避免冗余代码,减少系统资源利用率。

参考文

[1]孙燕.《Java 2 入门与实例教程》[M].北京:中国铁道出版社,2003。

[2]耿祥义,张跃平,王克宏.《JAVA 2 实用教程》[M].北京:清华大学出版社,2004。

[3]金尊和,干毅民. 《Java 高级编程》[M].北京:电子工业出版社,1997。

[4]黄聪明.《精通Java 2程序设计》[M].北京:清华大学出版社,2004。

[5]方睿,刁仁宏,吴四九.《网络数据库原理及应用》[M].成都:四川大学出版社,2005。

[6]闪四清.《SQL Server 2000数据库管理》[M].北京:北京希望电子出版社,2002。

[7]孙鑫 .JAVA 入门视频教程网站. [M].

http://www.admin5.com/html/edu/web/Javascript/20061226/31969.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值