当前位置: 首页 > news >正文

基于Java的银行排号系统的设计与实现【源码+文档+部署讲解】

目  录

内容提要

1. 引言

2. 系统分析

2.1 系统初步调查

2.2 系统可行性分析

2.2.1 经济可行性

2.2.2 操作可行性

2.2.3 技术可行性

2.3 系统开发环境概述

2.3.1 硬件环境

2.3.2 软件环境

2.4 系统需求分析

2.4.1 业务流程分析

2.4.2 系统体系结构设计

2.4.3 系统逻辑模型

2.5 系统需求定义

2.5.1 客户用例图

2.5.2 业务员用例图

3.系统总体设计

3.1 系统设计目的与任务

3.2 开发设计思想

3.3 系统总体设计框架

3.4 系统功能详细设计

4.数据库设计

4.1 数据库需求分析

4.2 数据库概念设计

4.3 数据库逻辑结构设计

4.4 系统安全性设计

5.系统的实现

5.1 系统的总体概述

5.2 系统相关技术简介

5.2.1 C/S的简介

5.2.2 Socket的简介

5.2.3 JAVA多线程技术

5.3 系统的执行流程图

5.4 系统主界面的实现

5.4.1 服务器主界面的实现

5.4.2 客户端界面的实现

5.5 服务器端取号的实现

5.6 客户端业务处理的实现

5.7 Dao层的实现

6. 结语

致谢

参考文献

Agricultural Bank of China Xinzhou branch in Queueing system design and Implementation

中国农业银行忻州分行排号系统的设计与实现

学生姓名:韩  超

指导教师:郝伟 王亚娟

内容提要  银行排号系统是为解决一些服务业营业大厅排队问题而设计的,它能够有效地提高工作人员的工作效率,也能够使顾客合理的安排等待时间,让顾客感到服务的公平公正。论文首先讨论了排号系统的背景、意义、应用现状以及研究与开发现状。本文在对C/S架构、Socket网络编程技术、Java线程编程等相关技术理论做了简单的论述。结合工程项目,具体论述了排号系统的需求分析、整体设计以及系统数据库的设计,其中包括业务流程图、系统用例图、功能结构图、数据流程图、以及系统数据库的E-R图的分析和描述。其次,论文着重讨论了C/S架构的排号系统的设计和实现。在论文中详细地论述了排号系统的数据库设计与系统实现的各个步骤,并对原型系统作了简要介绍。最后,论文对主要完成的工作进行了总结,并提出了研究的不足之处以及对今后研究的展望。

关键词  C/S架构 Java多线程 排号系统 Socket网络编程

1. 引言

随着科技的不断发展,人们越来越要求办事的效率,讨厌把宝贵的时间花在一些排队的事情上。我国是一个人口众多的国家,各大银行,邮局,医院等营业大厅常常人满为患,排着长队等着办理业务,这种局面常常使人们怨声载道。

随着社会的发展,特别是信息技术的发展,计算机已经在社会的各个方面凸显出来。原始呆板固化的排队等候方式转变为基于计算机管理与控制的舒适、休闲的等候方式。由于原始的排队等候方式存在不方便、不安全等缺点,而基于计算机管理与控制的舒适、休闲的等候方式完全可以解决这些弊端,人们不仅可以自由安排等待时间,而且可以轻松的享受其他服务,这方式不仅提高了业务员的工作效率,也提高了其业务素质。

排号系统在现今的服务行业还是个比较新鲜的名词,利用这种先进的排号系统管理模式将网络技术、通信技术相结合,采用TCP/IP通信连接,使企业的服务机构通过网络与顾客通信,完成对顾客的管理。排号系统实现每个客户端可以迅速建立与服务器端的实时通信连接,并且操作互动的业务。顾客不仅可以进行取号业务,还可以进行一些其它操作,业务员除了进行业务处理还可以对数据库进行一些增删改查等操作。随着网络编程技术研究的不断深入和完善,国内外越来越多的企业己经开始使用排号系统,中国建设银行,上海长海医院等地方已开始使用,并且取得了相当的业绩和成果。

论文的第一章介绍了系统分析,重点介绍了系统的可行性分析,系统的需求分析,其中包括业务流程图、系统用例图、逻辑模型图、体系结构图等;第二章介绍了系统的整体设计,重点介绍了开发设计思想,系统详细功能设计及系统总体框架等;第三章介绍了系统的数据库设计,重点介绍了数据库的概念设计及逻辑结构设计等,其中包括ER图、数据字典表等;第四章介绍了系统的实现,主要介绍了一些所用到的关键技术、系统程序执行流程、以及系统的实现,其中分别介绍了系统主界面实现、服务端取号的实现、客户端业务处理的实现、Dao层实现等,文中详细论述了系统实现的各个步骤;第五章对本人的工作做出了总结并展望后继的工作。 

2. 系统分析

2.1 系统初步调查

社会生产力的发展与进步,积极推动了人类思想的革新与创造,从而一系列新生事物的诞生接踵而来。但是新生事物的生存与延续取决于人类的检验,因而它的可行性至关重要。万事求得发展的根本保障是物质基础,经济的飞速发展推动生活水平显著提高。所以,生活质量的标准化、多样化使市场需求处于必不可少的地位,而市场规模也随之扩大,因此,经过详细的调查,目前在我国,虽然服务行业蓬勃地发展起来,但是基本上都还在使用排队方式办理业务。在此方式下,不仅秩序混乱,还效率低下,顾客还怨声载道。显然,随着服务行业的发展,这种形式已不再适合新型服务行业的要求,对行业的发展也有一定的限制,直接导致了工作人员的工作效率低下。因此本文设计了这个功能实用的排号系统,解决服务行业里混乱的场面。

2.2 系统可行性分析

2.2.1 经济可行性

该系统对操作环境没有太多要求,系统的开发不需要很强的经济支持,就其功能和给企事业单位带来的方便来说,是完全可行的。

2.2.2 操作可行性

目前计算机已经普及到所有的单位及大部分家庭,不仅在企事业单位,即使足不出户也能通过网络对单位和人员进行统一管理。本系统的使用者有两类人,第一是客户;第二是银行柜员,对于这两类人员使用本系统都是可行的。本系统操作非常简单,不需要进行培训只需阅读说明书就可以进行操作。

2.2.3 技术可行性

本系统采用Java语言编写,它是一种简单的,面向对象的编程语言,具有多线程,分布式,跨平台等特性。它有自己的安全机制,并且移植性很好。在数据库方面采用了Oracle 10g,其灵活性,安全性和易用性为数据库编程提供了良好的条件。在数据持久化层,选用了JDBC,开发者掌握这些技术就可以具备开发此系统的能力,另外,此系统对开发环境的要求,都是大部分Java程序员进行软件开发使用的开发环境,所以,技术方面也是可行的。

2.3 系统开发环境概述

2.3.1 硬件环境

本系统采用单机操作方式,基本配置如下;

处理器:Intel(R) Core(TM)2 Duo CPU  T6400@2.00GHz

硬盘空间:200GB

内存:2G

显示器:NVIDIA GeForce 9300M GS

2.3.2 软件环境

采用C/S架构,使用Eclipse运行环境

开发平台:MyEclipse

操作系统:Windows 7

数据库服务器:Oracle 10g

使用技术:Java GUI、JDBC、Socket、Xml

2.4 系统需求分析

2.4.1 业务流程分析

在调研过程中,已了解到所涉及的业务流程如图2-1所示

图2-1业务流程图

2.4.2 系统体系结构设计

图 2-2系统体系结构

2.4.3 系统逻辑模型

图 2-3 系统逻辑模型

2.5 系统需求定义

2.5.1 客户用例图

图 2-3 客户用例图

2.5.2 业务员用例图

图 2-3 业务员用列图

3.系统总体设计

3.1 系统设计目的与任务

系统设计阶段的主要目的是,将系统分析阶段所提出的、充分反映用户信息需求的系统逻辑方案转换成可以实施的、基于计算机和网络技术的物理方案。这一阶段的主要任务是从信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的需要,并考虑到经济、技术和运行环境等方面的条件,确定系统的整体结构和系统各组成部分的技术方案,合理选择计算机和通信的软件、硬件设备,提出系统的实施计划。

3.2 开发设计思想

排号系统从界面上看主要实现两个方面的功能:

(1)取号 客户按键反馈给服务器,然后服务器从数据库获得一个号反馈给顾客,这就完成了取号的过程,在顾客取号的可视化界面上顾客可以查询当前取号总人数,也可查询到已处理的人数,在顾客想放弃当前的号票时也可以对号票进行删除,顾客还可以在可视化界面看到自己的取票信息和需要等待的人数。

(2)叫号 业务员按键反馈给服务器,服务器拿到取号时存储在数据库中的数据,进行业务处理,在这个过程中业务员可以进行对顾客人数的查询,还可以对不需要进行处理的票号进行删除,也可已充当管理员的角色对数据库进行删除。业务员还可以查看顾客的取票情况,以及票号的业务的处理情况。

排号系统的特点:

(1)可操作性

界面简易,使用通用的菜单式风格,使用直观,操作简便。

(2) 容量大

支持联网,不限制取号数量,可满足大型客流场所的使用。

(3)高性能

系统的所有对象都存放到数据库中,表示逻辑与业务逻辑相互分离,保证系统的处理能力。

(4)伸缩性

它能适应不同的应用环境,对于只实现基本功能的服务大厅,如银行系统,可以采用微机控制的排号系统,无需单独配置系统电脑,即可实现自动排队叫号的功能。

(5)可靠性

能保证长时间的正常运行,同时系统有比较好的安全机制,提高了安全性能。

3.3 系统总体设计框架

据以上章节所做需求分析对系统进行功能设计,见系统功能模块图如图3-1所示:

图3-1 系统的总体功能模块图

3.4 系统功能详细设计

该系统功能从服务器端和客户端角度来说可分以下两大模块,具体每一个模块又分为几个小模块:

(1) 服务器端

1)取号功能:打开服务器与终端进行通信。由于把服务器设置到了用户的一端,所以在服务器端进行取号,然后把号存到数据库中。

2)统计功能:数据访问层从数据库中查出所有取票人数和等待人数在服务器端界面显示。

3)删除功能:删除当前取票顾客的排号。

4)查询功能:顾客可以从此处了解到所有顾客的取票情况及被处理状况。

5)通知功能:从服务器端获得排号,通过服务器端通知***用户到***工作台办理业务。

(2) 客户端

同一时刻允许多个工作台办理业务。用户通过在服务器端的通知功能知道去哪个工作台办理业务,工作台显示正在为哪个号码的用户办理业务。

1) 登录功能:业务员从此处登录,业务员的姓名,密码是事先录入数据库的。

2) 叫号功能:业务员点击处理按钮触发事件发送信息给服务器,服务器从数据库拿到号票,返回给业务员进行业务处理。

3)统计功能:数据访问层从数据库查询总取票人数和查询未处理人数在业务端显示。

4) 删除功能:业务员可以删除数据库中所有的记录,也可以选择删除某条记录。

5) 查询功能:业务员可以查询所有顾客的取票情况及业务员对号票的处理情况,这块主要为了能够及时掌握顾客取票信息及业务员处理情况。

4.数据库设计

4.1 数据库需求分析

通过对排号系统内容和数据流程分析,设计的数据项和数据结构如下:

(1)顾客信息。包括的数据项有顾客ID,顾客排号、取号时间、服务类型、状态标志等。

(2)业务端信息。包括的数据项有业务ID、处理时间、服务台编号、属于那种服务类型,服务的顾客票号。

(3)业务员信息。包括的数据项有业务员姓名、业务员密码。

(4)自动出号信息。包括的数据项有ID、服务类型。

有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计。

4.2 数据库概念设计

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有顾客信息实体、业务端信息实体、业务员信息实体、自动出号信息实体。各个实体的E-R图及其关系描述如下:图 4-3顾客信息实体E-R图

图 4-4 自动出号信息实体E-R图

实体之间关系E-R图:

图 4-5 实体之间关系E-R图

4.3 数据库逻辑结构设计

在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。排号系统数据库中的各个表的设计结果如下面的几个表格所示,每个表格表示数据库中的一个表。

(1) 顾客信息表customer_tbl

表customer_tbl用来保存顾客取票信息,结构如表4-1所示。

表 4-1 customer_tbl的结构

字段名

字段类型

中文描述

备注

非空

主键

Id

NUMBER

唯一标识

nextId

NUMBER

顾客排号

Unique

takeDate

Date

取票日期

type

NUMBER

服务类型

1:vip 2:普通

flag

NUMBER

处理标记

Unique

(2) 业务端信息表work_tbl

表work_tbl用来保存业务端信息,结构如表4-2所示。

表 4-2 work_tbl的结构

字段名

字段类型

中文描述

备注

非空

主键

Id

NUMBER

唯一标识

processDate

Date

处理日期

workId

NUMBER

服务台编号

type

NUMBER

服务类型

1:vip 2:普通

nextId

NUMBER

顾客排号

Unique

(3) 业务员信息表workmen_tbl

表workmen_tbl用来表示业务员信息,结构如表4-3所示。

表 4-3 workmen_tbl的结构

字段名

字段类型

中文描述

备注

非空

主键

Id

NUMBER

唯一标识

name

varchar2(20)

用户名

password

varchar2(20)

密码

(4) 自动出号信息srt_tbl

表srt_tbl用来产生唯一的号票信息,表结构如表4-4所示

表4-4 srt_tbl的结构

字段名

字段类型

中文描述

备注

非空

主键

nextId

NUMBER(20)

顾客排号

type

NUMBER(7)

服务类型

Unique

4.4 系统安全性设计

(1)数据因素:系统数据库中包含多个表信息,所以在系统与数据库的连接上,直接封装到代码中,由于java的安全机制比较好,所以数据信息在存储和传递过程中不可见。

(2)硬件及物理因素:系统硬件及安全环境安全可靠,包括机房设施、计算机主体、存储系统、数据通信设备设施等方面是安全的。

(3)存储安全:通过oracle的数据库安全设置,连接数据库需要用户名和密码,保证了数据库的安全性[14]。

5.系统的实现

5.1 系统的总体概述

排号系统采用java GUI设计的界面,它通过scoket实现点对点的通信,在实现过程中,客户取号的一端设置成了server端,业务员处理一端设置成了client端,所以必须先启动server端,才能启动client端。在整个系统中server端实现了顾客的取号功能和一些查询删除功能,client端实现了业务员登录和叫号处理以及一些查询删除功能。

5.2 系统相关技术简介

5.2.1 C/S的简介  

传统的应用体系结构模式主要有两种:C/S(Client/Server)结构模式B/S(Browser/ Server)结构模式。

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是C/S形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向

C/S体系结构的优点: 

(1) 应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

(2) 数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络[18] 。

5.2.2 Socket的简介

Socket 是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。在java中创建一个Socket,用它建立与其他机器的连接。从Socket得到的结果是一个InputStream以及OutputStream或Reader和Writer,以便将连接作为一个I/O流对象对待。这有两个基于数据流的套接字类:一个是ServerSocket,服务器用它“侦听”进入的连接;另一个是Socket,客户用他初始化一次连接。一旦客户(程序)申请建立一个套接字连接,ServerSocket就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。可以利用getInputStream()以及getOutputStream()每个套接字产生对应的InputStream和OutputStream对象。这些数据流必须封装到缓冲区内。在排号系统中采用了TCP/IP协议,这样实现了点对点通信等功能[3]。

5.2.3 JAVA多线程技术

(1)多线程[17]

多线程编程技术是Java语言的重要特点。多线程编程的含义是将程序任务分成几个并行的子任务。特别是在网络编程中,你会发现很多功能是可以并发执行的。比如网络传输速度较慢、用户输入速度较慢,你可以用两个独立的线程去完成这两个功能,而不影响正常的显示或其它功能。

多线程是与单线程比较而言的,普通的Windows采用单线程程序结构,其工作原理是:主程序有一个消息循环,不断从消息队列中读入消息来决定下一步所要干的事情,一般是针对一个函数,只有等这个函数执行完之后,主程序才能接收另外的消息来执行。比如子函数功能是在读一个网络数据,或读一个文件。只有等读完这个数据或文件才能接收下一个消息。在执行这个子函数过程中你什么也不能干。但往往读网络数据和等待用户输入有很多时间处于等待状态,多线程利用这个特点将任务分成多个并发任务后,就可以解决这个问题。

(2)线程创建的方法[16]

1)从一个自定义的类中创建一个对象,这个类扩展了Thread类。

2)使用接口。在java中,用于创建线程的接口是Runable。

(3) 多线程在排号系统中的应用

为了实现多用户同时在线服务采用了多线程机制,在实际应用中启动一个业务端产生一个线程。业务端分布在不同的机器上,同时进行业务处理。多线程解决了并发执行造成的死锁问题。并实现了多用户同时在线处理。

5.3 系统的执行流程图

以下是系统的执行流程如 5 - 1 所示

图5-1 服务器端系统执行流程(一)

图5-1 客户端系统执行流程(二)

5.4 系统主界面的实现

5.4.1 服务器主界面的实现

用户在取号的时候必须先启动服务器,才能进行取号。服务器端主界面如图 5-2所示

图5-2 服务器端主界面

服务器端主界面采用菜单式风格,用户可以根据需求进行取号,查询,删除等功能。界面主要采用了Grid LayoutFlow LayoutBorderLayout等布局管理器来对界面进行布局的。

5.4.2 客户端界面的实现

客户端是为业务员设计的以下是客户端登录界面如图5-3所示

图5-3 业务员登录界面

客户端业务处理界面如图5-4所示

  

图5-4 业务处理界面

5.5 服务器端取号的实现

在整个系统中取号是一个至关重要的环节,也是设计它的目的所在。它的实现与其他模块紧密相连,它在Server端实现的,取号分为两个服务类型:vip业务和普通业务。首先在数据库里建立srt_tbl这张表,它用来存储自动生成的客户牌号。它里面设置两个字段,一个是nextId,一个是type类型。nextId是用来标识顾客的牌号的,而type则是用来表示顾客所要选取的服务类型,vip业务和普通业务。当点击其中的一个业务时它就会产生一个牌号,这个牌号是通过在dao层的一个方法实现的,dao层通过JDBC连接数据库实现数据的持久化。在取完号的同时调用Dao层的saveID()方法把这个信息保存在cuntomer_tbl表中。

(1)vip会员取号如图5-6

图5-6 vip用户取号界面

(2) 普通会员取号如图5-7

图5-7普通用户取号界面

普通会员的取号的实现跟vip会员一样这里就不详细标注说明。

5.6 客户端业务处理的实现

这个模块的实现主要是在不同的业务员登录后选择了服务台以后才开始业务处理,业务处理的实现首先是server端调用socketThread这个多线程类,在这个类的run方法里调用了service层的unProcess(int type)方法从数据库中拿到nextId(牌号),client端从server端的输出流里获得牌号,进行处理。处理的时候会显示提示信息。

1)业务处理如图5-8所示

  

图5-8 业务处理界面(一)

5.7 Dao层的实现

Dao层是整个系统的关键所在,它是实现与数据库交互的桥梁,在这层里,主要是对一些数据的增删改查,它使用了JDBC作为与数据库连接的桥梁,配合一些pojo类来完成与数据库的交互,使业务逻辑层能够调用它来完成业务逻辑。Dao层也是所谓的Dao模式,它采用了接口机制,在这一层只完成与数据库的交互,实现了低耦合。

6. 结语

本系统可解决排队混乱问题。主要包括两大模块,十个小功能。主要是实现取号,叫号功能。在取号的设计中用到了高低值算法,也使用了多线程技术,目的是可以使多个业务员同时在线进行业务处理。系统中还使用了XML解析、资源配置文件,与以前的同类系统相比,它把容易变动的信息写到配置文件中,需要更改的时候只要改动配置文件中的信息就可以,不需要改动已封装好的代码,实现低耦合的特性,并且重用性也很好。

使用C/S架构开发的系统也有不足之处:首先,使用Swing作为界面开发技术,代码量庞大,实现的界面却较粗糙、不美观。其次,由于在设计中考虑问题有些欠缺,导致系统功能不完善,有些功能不太合乎业务逻辑。比如把用户取号设置在了服务器端,还有在顾客取号端设置了删除功能,不合乎业务逻辑也降低了系统的安全性。

随着Java技术的不断发展,排号系统涉及的领域越来越广,它的复杂性也变得越来越高,与此同时随着各种硬件的不断发展以及Web技术的发展,排号系统会越来越多的应用在不同领域。因此仍需要继续研究,下一步应对Web服务以及面向对象的方法和技术进行深入研究。此外,本课题采用了安全性较好的Java技术、Oracle数据库管理系统进行研发,没有专门涉及安全性的探讨研究,但这一特性的研究必不可少,特别是在企业管理这一类高敏感的系统中,这是下一步工作的重点问题。

致谢

     大学四年的学习以今天的毕业论文画了一个句号。感谢大学四年,各位老师对我的教诲,感谢山西大学商务学院,感谢大家有缘能在生命中重要的四年,出现在彼此的生活中,感谢上天。

    很幸运,在我大学的最后一次作业的完成中,能得到xx老师的指导与帮助,有了一次宝贵的机会跟xx老师接触。xx老师严谨治学的态度,在我的心里留下深刻的影响,在以后的日子里,我要学习xx老师的求实精神。这里,真诚的向xx老师说一句:x老师,感谢您,祝您一切都好。

在此,同时感谢我的父母,对我的支持,没有他们的支持,我走不到今天。感谢与我共同走过大学的朋友们、同学们,每个在我脆弱、困难的时候,扶过我一把的你,我都记得。感谢上天,感谢命运,能有机会在彼此的生命中出现,并共同走过一个春天。感谢所有帮助过我的老师、同学、朋友,感谢你们,希望你们在以后的日子里,开心、快乐,希望你们过得比我好!!

参考文献

[1] 罗骏,何羽.SQL实用简明教程.北京.清华大学出版社.2004:1-6

[2] 邵荣.Java编程实践指南.北京.清华大学出版社.2003:20-25

[3] Bruce Eckel.Java编程思想.北京.机械工业出版社.2005:312-356

[4] 李诚,王兵.Java2简明教程.北京.清华大学出版社.2004:334-338

[5] 王克宏,张炳文.Java语言SQL接口——JDBC编程技术.北京.清华大学出版社.2001:234-262  

[6] 刘巍,唐学兵.利用Java的多线程技术实现数据库的访问.计算机应用.2002,(12):121-123  

[7] 雍俊海.JAVA程序设计教程.北京.清华大学出版社.2007

[8]Oram,Andy.Database programming with JDBC & Java paperback book.O'Reilly & Associates.Inc.2000

[9] Cay S. Horstmann ,Gary Cornell .Core Java 2 Volume I – Fundamentals.Seventh

Edition.2004

[10]Cay S. Horstmann ,Gary Cornell.Core Java 2 Volume II - Advanced

Features.Seventh Edition.2004

[11] Bruce Eckel .Thinking in java 4.Prentice Hall PTR.2006-02-15

[12] 阎宏.Java与模式.北京.电子工业出版社.2002

[13] ORACLE公司.ORACLE 8i 初学者指南.www.china-public.com

[14] 中科永联高级技术培训中心.http://www.itisedu.com/phrase/200604237235.html

[15] 赖万钦.Java 多线程探讨.福建电脑.2007,(7):13-14

[16] 姜景根,李祥.基于Java的多线程并发服务器的设计与应用.电脑与信息技

术.2007,1 5(1):16-17

[17]刘惠萍,刘亮亮,张力.C/S模式下的三层架构.科技信息.2006,(6):

20-25

[18] Brian Goetz .Exploiting ThreadLocal to enhance scalability.IBM中国.

IBM Developer.2001-10-01

 .

Agricultural Bank of China Xinzhou branch in Queueing system design and Implementation 

Abstract: Grade system is designed to solve problems of queuing in Hall of bussiness services. It can effectively improve the staff's efficiency, and make the customers reasonably arrange the waiting time, then supply fair and just service for the customers.

Firstly, background, significance, development and application of grades system were discussed in this paper. The C/S structure, Socket network programming technology, Java-thread programming, and other related technologies were also simply dissertated. The requirements of the trademark system analysis, system design and database design were well-documented, which included the operational flow chart, the system use case plans, functional structure, data flow chart, and the ER system database analysis and description of the plan.

Secondly, the design and implementation of C/S structure was discussed in this paper, which mainly concerned the design of database system, the various steps of the Grade system, and the introduction of prototype system.

Finally, the main conclusion was summarized in this paper. Moreover, the inadequacy of this study was suggested as well as the prospects for the future research.

Keywords: C/S structure; Java multi-threaded; grade system; Socket network programming;

相关文章:

基于Java的银行排号系统的设计与实现【源码+文档+部署讲解】

目 录 内容提要 1. 引言 2. 系统分析 2.1 系统初步调查 2.2 系统可行性分析 2.2.1 经济可行性 2.2.2 操作可行性 2.2.3 技术可行性 2.3 系统开发环境概述 2.3.1 硬件环境 2.3.2 软件环境 2.4 系统需求分析 2.4.1 业务流程分析 2.4.2 系统体系结构设计 2.4.3 系统逻辑模型 2.5 …...

linux-26 文件管理(四)install

说一个命令,叫install,man install,install是什么意思?安装,install表示安装的意思,那你猜install是用来干什么的?猜一猜干什么的?安装软件,安装第三方软件,错…...

VS2015中使用boost库函数时报错问题解决error C4996 ‘std::_Copy_impl‘

在VS2015中使用boost库函数buffer时遇到问题,其他函数定义均能执行,当加上bg::buffer(参数输入正确);语句后就报如下错误: 错误 C4996 std::_Copy_impl: Function call with parameters that may be unsafe - this call relies…...

pikachu靶场--目录遍历和敏感信息泄露

pikachu靶场—目录遍历和敏感信息泄露 目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再…...

植物大战僵尸杂交版3.0.2版本

更新内容 植物大战僵尸杂交版3.0.2版本的更新内容如下: • 修复BUG: • 游戏内贴图错乱的BUG。 • 无尽模式卡死的BUG。 • 卡牌模仿者的一系列BUG。 • 干扰车可能同时出现多辆的BUG。 • 冒险模式部分关卡无法过关的BUG。 • 新增内容&#xf…...

kafka怎么保证顺序消费?

kafka怎么保证顺序消费? 1. 分区内的顺序保证2. 并发消费3. 实现顺序消费的策略4. 注意事项 kafka创建 topic 的时候没有指定分区数量,那么默认只会有一个分区。如果你想要创建一个具有多个分区的 topic,你可以在创建 topic 的命令中指定 --p…...

Makefile 模板 --- 内核模块

内核模块模板 驱动源码同级目录下 #******************************************************************************* # xxx Co., Ltd. All Right Reserved. # Author : # Version : V1.0.0 2020.10.21 # Description : # Note : gaoyang3513163.co…...

仓库叉车高科技安全辅助设备——AI防碰撞系统N2024G-2

在当今这个高效运作、安全第一的物流时代,仓库作为供应链的中心地带,其安全与效率直接关系到企业的命脉。 随着科技的飞速发展,传统叉车作业模式正逐步向智能化、安全化转型,而在这场技术革新中,AI防碰撞系统N2024G-2…...

计算机视觉CV期末总复习

1.计算机视觉基础 数字图像表示 二值图像 仅包含黑白两种颜色的图像,只使用1个比特为(0黑或1白)表示 彩色图像:分不同的颜色空间 gray灰度图像 每个像素只有一个采样颜色,取值范围0--255,为8比特位&a…...

【微信小程序获取用户手机号

微信小程序获取用户手机号有2种,一种是前端自己解密,一种是获取后发给后端,后端去解密 重点:要在微信公众平台设置里面绑定微信开放平台账号,不然反解不出来用户手机号上代码: <button style"font-size: 16px;" open-type"getPhoneNumber" getphonenumb…...

WFP Listbox绑定数据后,数据变化的刷新

Listbox绑定数据通过ItemsSource来的&#xff0c;如果绑定的是普通的List<数据>&#xff0c;不会自己刷新。 使用ObservableCollection集合 解决问题的方法: 将数组替换为 ObservableCollection ObservableCollection 是专为绑定设计的集合类型&#xff0c;可以通知 W…...

Android Camera压力测试工具

背景描述&#xff1a; 随着系统的复杂化和业务的积累&#xff0c;日常的功能性测试已不足以满足我们对Android Camera相机系统的测试需求。为了确保Android Camera系统在高负载和多任务情况下的稳定性和性能优化&#xff0c;需要对Android Camera应用进行全面的压测。 对于压…...

【华为OD-E卷 - 最优资源分配 100分(python、java、c++、js、c)】

【华为OD-E卷 - 最优资源分配 100分&#xff08;python、java、c、js、c&#xff09;】 题目 某块业务芯片最小容量单位为1.25G&#xff0c;总容量为M*1.25G&#xff0c;对该芯片资源编号为1&#xff0c;2&#xff0c;…&#xff0c;M。该芯片支持3种不同的配置&#xff0c;分…...

字符串格式时间(HH-MM)添加间隔时间后转为HH-MM输出

转换时间代码如下所示 #include <iostream> #include <iomanip> #include <sstream>//添加时间转换为时间 std::string addMinutesToTime(const std::string& timeStr, int minutesToAdd) {int hours, minutes;char delimiter;//解析输入时间std::istri…...

SQL 基础教程 - SQL ORDER BY 关键字

SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集进行排序。 SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序&#xff0c;您可以使用 DESC 关键字。 SQL ORD…...

STM32 软件I2C读写

单片机学习&#xff01; 目录 前言 一、软件I2C读写代码框架 二、I2C初始化 三、六个时序基本单元 3.1 引脚操作的封装和改名 3.2 起始条件执行逻辑 3.3 终止条件执行逻辑 3.4 发送一个字节 3.5 接收一个字节 3.5 发送应答&接收应答 3.5.1 发送应答 3.5.2 接…...

neo4j学习笔记

图数据库 图数据库是基于图论实现的一种NoSQL数据库&#xff0c;其数据存储结构和数据查询方式都是图论为基础的&#xff0c;图数据库主要用于存储更多的连接数据。 图论&#xff08;GraphTheory&#xff09;是数学的一个分支。图论以图为研究对象&#xff0c;图论的图是由若干…...

【动手学电机驱动】STM32-MBD(2)将 Simulink 模型部署到 STM32G431 开发板

STM32-MBD&#xff08;1&#xff09;安装 STM32 硬件支持包 STM32-MBD&#xff08;2&#xff09;Simulink 模型部署 【动手学电机驱动】STM32-MBD&#xff08;2&#xff09;Simulink 模型部署 1. 软硬件条件和环境测试1.1 软硬件条件1.2 开发环境测试 2. 创建基于 STM32 处理器…...

Nginx代理本地exe服务http为https

Nginx代理本地exe服务http为https 下载NginxNginx命令exe服务http代理为https 下载Nginx 点击下载Nginx 下载好之后是一个压缩包&#xff0c;解压放到没有中文的路径下就可以了 Nginx命令 调出cmd窗口cd到安装路径 输入&#xff1a;nginx -v 查看版本 nginx -h&#xff…...

C++: glibc: pthread: pthread_cond_destroy,程序hang一例

今天碰到一个程序hang的情况。程序在退出的时候,调用到了pthread_cond_destroy,但是另一个线程还在pthread_cond_timedwait。应该是死锁的一个例子。应该查看libpthread.so的二进制文件,查看具体是在等什么。 Thread 1 (Thread 0x7f7028037580 (LWP 38)): #0 0x00007f7022e…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...

python基础语法Ⅰ

python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器&#xff0c;来进行一些算术…...