超市收银系统设计思路参考模板_第1页
超市收银系统设计思路参考模板_第2页
超市收银系统设计思路参考模板_第3页
超市收银系统设计思路参考模板_第4页
超市收银系统设计思路参考模板_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、超市收银系统设计分析一、 系统整体架构图1从图1可以看出,系统框架很清晰,用户登录,根据用户权限的不同,对应不同的操作方法,操作对象为商品。但本系统要求使用C/S框架结构来设计。C/S框架介绍:C/S 结构,即大家熟知的客户机和服务器结构。C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS(数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用

2、户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。鉴于超市收银系统的特性,本系统不牵扯多个客户端,不需要线程同步。1 / 13二、 代码设计框架因为使用C/S框架设计程序,因此有固定的设计步骤:1. 项目包的设计:图2client包:主要由客户端操作界面类和客户端业务类组成,客户端操作类也就是客户端main方法类,主要负责引导用户操作,提供系统界面信息提示操作,包括:初始化登录视图、商品库存管理视图和收银管理视图;客户端业务类主要包括处理客户端请求并将客户端请求打包发

3、送给服务器的方法和一些辅助操作方法。处理库存管理员请求方法为:商品入库、商品出库、新增商品、查询全部商品和按编号查询商品;处理收银员请求方法为:扫描商品、修改购买数量商品和结账。entity包:主要由系统所涉及的实体类组成,根据操作视图可以确定为用户类和商品类。图3 用户信息图4 商品信息server包:主要由服务器主流程类(线程类)和服务器(数据处理)业务类组成,服务器主流程类也即main方法类,主要负责接收客户端请求,并根据请求标志信息分配相应操作,最后再将处理数据发送给客户端;服务器数据处理业务类主要由处理客户端请求的方法和商品信息库组成。util包:util包为实用工具包,主要包括项目

4、中一些工具类,主要包括数据处理类(加密、解密、数据转换、特殊文件操作和数据打包)和常量类。本项目主要包括数据打包类、常量类和proprties文件操作类。perties文件:Properties文件是一个文本文件;properties文件的语法有两种,一种是注释,一种是属性配置;注释:前面加上#号;属性配置:以“键=值”的方式书写一个属性的配置信息。Properties类本身表示了对一种Map结构的操作,properties文件本身就表示一个“键值对”的集合,因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带

5、参数的Properties对象,通过别的方式给里面添加“键值对”。perties在本项目的作用主要用来配置服务器信息:主机名和端口号。2、项目设计知识点本项目主要设计关键知识点:类和对象,封装,继承,异常,集合和泛型,输入/输出,多线程和网络编程。3、代码编写思路1) 创建项目2) 创建Java包:客户端包,服务器包,实体包,实用工具包。3) 创建配置文件:.properties文件或 .xml文件。4) 创建各Java包中的类文件:客户端包:客户端操作界面类和客户端业务类;服务器包:服务器主流程类(线程类)和服务器业务类(数据处理);实体包:根据具体项目情况创建;实用工具包:&

6、#252; 数据包类:主要储存客户端和服务器之间交互的关键数据,包括实体对象和逻辑判断标志等;ü 常量类:客户端和服务器之间需要共同使用的状态常量,一般为业务操作标识符和系统信息常量(正确、错误状态常量,配置信息常量)。ü 工具类:一般为配置文件的操作类。5) 编写个项目文件(由简入繁:单个功能实现到全部功能拓展)。6) 项目调试。三、 具体代码分析1. perties文件编写该文件主要用户配置socket套接字属性:主机名和端口号,在此配置信息为:图5 sys信息2. 实体类编写根据entity包分析可知:Goods类和Users类。Goods类:图6 Go

7、ods类Users类:图7 Users类注:因为涉及到socket编程,因此两实体类均需要序列化。3. 实用工具包类编写1) 数据包类(Datas类):因为该项目为超市收银系统,根据项目效果图可知,主要设计对象为:商品对象(goods),用户对象(user);为便于商品信息操作,创建商品集合,又因为牵扯到库存管理和收银两个类,进而创建库存商品集合和购买商品集合;又因为牵扯到客户端和服务器端业务请求操作,因此创建业务操作标识变量:flag。具体内容如下:图8 Datas类图9 库存商品集合应用需求图10 购买商品集合应用需求注:因为涉及到socket编程,Datas类需要序列化。2) 工具类(T

8、ools类文件):Tools文件主要用于操作perties文件,对perties文件操作之前,首先需要加载源文件(鉴于加载操作特殊性(提前操作),使用static块来封装),然后才能读取perties文件中键对应的值。该类主要是用于读取socket参数信息(host,port)。图11Propertis方法:void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。ClassLoader类:类加载器是负责加载类的对象。InputStream getResourceAsStream(String name):返

9、回读取指定资源的输入流。3) 常量类:由代码编写思路分析可知:常量类列表主要由以下几个部门组成:系统配置常量,系统信息反馈常量,系统操作常量,管理员操作常量,收银员操作常量。图12 常量列表注:具体常量参数可以在具体编程中增加或删减。4. 客户端类编写1) 客户端操作界面类:客户端操作界面类主要完成如下工作:(1)用户登录(2)用户操作用户登录有两个选项:管理员和收银员;用户操作也分别按照管理员和收银员来展开。图13 管理员登录成功视图图14 收银员登录成功视图鉴于登录操作只有两个选项,采用if-else编写较为快捷。具体代码截图如下:图15登录操作代码管理员操作和业务员操作选择较多,因此采用

10、switch来实现较为合适,具体代码截图如下:图16 管理员操作代码图17 收银员操作代码main()方法:原则上main()越简单越好,具体代码截图如下:图18 main()方法代码注:代码编写按如上模块来进行编写(登录方法,管理员操作方法,收银员方法),具体方法的实现依靠客户端业务类,本类中主要负责视图的引导和显示,可以分模块来进行编写和调试,遵循由简入繁原则。2) 客户端业务类:客户端类的方法编写主要为满足客户端操作界面类的需求且需要实现与服务器端的信息交互(通过socket编程实现),因此具体代码包括登录信息的处理(方法),管理员视图下的业务操作处理(方法),收银员视图下的业务操作处理

11、(方法),以及业务操作过程需要的逻辑操作方法的编写。具体代码截图如下:图19 客户端业务方法因为需要使用socket编程来实现客户端与服务器的数据通信,因此需要socket的初始化和socket的关闭操作。具体代码如下:图20 socket的初始化和关闭操作注:客户端业务类的调试应该在服务器类的框架搭好之后进行(可以完成基本的通信应答操作)。客户端编程关键点:客户端发送数据编写原则,通过Datas类中的属性参数作为载体,即对客户信息,商品信息和业务操作常量标识符进行数据打包,统统将需要发送的关键信息封装到Datas对象内,然后将这个对象发送给服务器,具体代码截图如下:图21 商品入库关键信息D

12、atas打包发送代码同时读取服务器端返回的Datas数据,提取需要的信息进行处理和判断,其中包括状态常量信息(success或error),具体代码截图如下:图22 读取服务器返回数据并处理5. 服务器类编写1) 服务器主流程类:服务器主流程类也即线程类,本线程类采用继承Thread父类来实现。run()方法主要负责读取客户端发送过来的数据,提取业务操作常量标识,然后分别进行相应的操作,具体的数据处理依靠服务器业务类来实现,然后在将处理好的数据打包(Datas)发送给客户端,具体代码截图如下:图23 读取客户端数据并进行相应的操作代码图24 将处理好的数据打包发送给客户端操作代码2) 服务器业务类:服务器业务类主要包括两部分:基础数据:用户信息(管理员和收银员的账号、密码-ROM型),库存商品信息(ROM型),购买商品信息(RAM型);处理客户端请求的数据处理方法。基础数据以后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论