超市收银系统设计思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超市收银系统设计分析
一、系统整体架构
图1
从图1可以看出,系统框架很清晰,用户登录,根据用户权限的不同,对应不同的操作方法,操作对象为商品。
但本系统要求使用C/S框架结构来设计。
C/S框架介绍:
C/S 结构,即大家熟知的客户机和服务器结构。
C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS(数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server 程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
鉴于超市收银系统的特性,本系统不牵扯多个客户端,不需要线程同步。
二、代码设计框架
因为使用C/S框架设计程序,因此有固定的设计步骤:
1.项目包的设计:
图2
client包:主要由客户端操作界面类和客户端业务类组成,客户端操作类也就是客户端main 方法类,主要负责引导用户操作,提供系统界面信息提示操作,包括:初始化登录视图、商品库存管理视图和收银管理视图;客户端业务类主要包括处理客户端请求并将客户端请求打包发送给服务器的方法和一些辅助操作方法。处理库存管理员请求方法为:商品入库、商品出库、新增商品、查询全部商品和按编号查询商品;处理收银员请求方法为:扫描商品、修改购买数量商品和结账。
entity包:主要由系统所涉及的实体类组成,根据操作视图可以确定为用户类和商品类。
图3 用户信息
图4 商品信息
server包:主要由服务器主流程类(线程类)和服务器(数据处理)业务类组成,服务器主流程类也即main方法类,主要负责接收客户端请求,并根据请求标志信息分配相应操作,最后再将处理数据发送给客户端;服务器数据处理业务类主要由处理客户端请求的方法和商品信息库组成。
util包:
util包为实用工具包,主要包括项目中一些工具类,主要包括数据处理类(加密、解密、数据转换、特殊文件操作和数据打包)和常量类。
本项目主要包括数据打包类、常量类和proprties文件操作类。
sys.properties文件:
Properties文件是一个文本文件;properties文件的语法有两种,一种是注释,一种是属性配置;注释:前面加上#号;属性配置:以“键=值”的方式书写一个属性的配置信息。
Properties类本身表示了对一种Map结构的操作,properties文件本身就表示一个“键值对”的集合,因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties 的容器,实际上就是创建一个默认不带参数的Properties对象,通过别的方式给里面添加“键值对”。
sys.properties在本项目的作用主要用来配置服务器信息:主机名和端口号。
2、项目设计知识点
本项目主要设计关键知识点:类和对象,封装,继承,异常,集合和泛型,输入/输出,多线程和网络编程。
3、代码编写思路
1)创建项目
2)创建Java包:客户端包,服务器包,实体包,实用工具包。
3)创建配置文件:.properties文件或 .xml文件。
4)创建各Java包中的类文件:
客户端包:客户端操作界面类和客户端业务类;
服务器包:服务器主流程类(线程类)和服务器业务类(数据处理);
实体包:根据具体项目情况创建;
实用工具包:
✓数据包类:主要储存客户端和服务器之间交互的关键数据,包括实体对象和逻辑判断标志等;
✓常量类:客户端和服务器之间需要共同使用的状态常量,一般为业务操作标识符和
系统信息常量(正确、错误状态常量,配置信息常量)。
✓工具类:一般为配置文件的操作类。
5)编写个项目文件(由简入繁:单个功能实现到全部功能拓展)。
6)项目调试。
三、具体代码分析
1.sys.properties文件编写
该文件主要用户配置socket套接字属性:主机名和端口号,在此配置信息为:
图5 sys信息
2.实体类编写
根据entity包分析可知:Goods类和Users类。
Goods类:
图6 Goods类
Users类:
图7 Users类
注:因为涉及到socket编程,因此两实体类均需要序列化。
3.实用工具包类编写
1)数据包类(Datas类):
因为该项目为超市收银系统,根据项目效果图可知,主要设计对象为:商品对象(goods),用户对象(user);为便于商品信息操作,创建商品集合,又因为牵扯到库存管理和收银两个类,进而创建库存商品集合和购买商品集合;又因为牵扯到客户端和服务器端业务请求操作,因此创建业务操作标识变量:flag。具体内容如下:
图8 Datas类
图9 库存商品集合应用需求
图10 购买商品集合应用需求
注:因为涉及到socket编程,Datas类需要序列化。
2)工具类(Tools类文件):
Tools文件主要用于操作sys.properties文件,对sys.properties文件操作之前,首先需要加载源文件(鉴于加载操作特殊性(提前操作),使用static块来封装),然后才能读取sys.properties文件中键对应的值。
该类主要是用于读取socket参数信息(host,port)。