基于CS的JAVA多线程队列牌号系统的毕业设计与实现_第1页
基于CS的JAVA多线程队列牌号系统的毕业设计与实现_第2页
基于CS的JAVA多线程队列牌号系统的毕业设计与实现_第3页
基于CS的JAVA多线程队列牌号系统的毕业设计与实现_第4页
基于CS的JAVA多线程队列牌号系统的毕业设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、基于cs的java多线程队列牌号系统的毕业设计与实现 基于c/s的java多线程队列牌号系统的设计与实现姓 名 系 别、专 业 导 师 姓 名、职 称 完 成 时 间 目 录摘 要iabstractii1概述11.1 牌号系统的介绍11.2 选题背景及意义11.3 国内外研究现状分析11.4 本文的组织结构22系统开发环境及相关技术理论介绍32.1系统开发环境32.2 系统相关技术介绍3 c/s的简介3 socket的简介4 java多线程技术43 系统分析53.1 功能需求分析53.2 可行性分析5 经济可行性5 操作可行性5 技术可行性54 系统总体设计64.1 系统功能结构64.2 系统

2、各子功能模块设计64.3 系统总体及各实体用例图设计7 系统体系结构设计7 系统逻辑模型7 业务员用例图7 客户用例图85 系统详细设计95.1 各实体及其属性95.2系统e-r图105.3数据库物理结构设计105.4系统安全性设计116系统实现126.1系统结构流程图12 服务端12 客户端126.2 各功能模块的实现13 系统主界面的实现13 服务器端取号的实现14结 论20参考文献21致 谢22附 录23摘 要本论文所设计的牌号系统是为解决一些服务业营业大厅排队问题而设计的,它能有效地提高工作人员的工作效率,也能使顾客合理的安排等待时间,让顾客感到服务的公平公正。论文首先介绍了牌号系统的

3、背景、意义、应用现状以及研究与开发现状。其次对c/s架构、socket网络编程技术、java线程编程等相关技术理论做了简单的论述。接着结合工程项目,具体论述了牌号系统的需求分析、整体设计以及系统数据库的设计,其中包括业务流程图、系统用例图、功能结构图、数据流程图、以及系统数据库的e-r图的分析和描述。然后,着重描述了c/s架构的牌号系统的设计和实现,其中系统的实现主要是描述了各个模块的实现方法。最后,总结了本论文的主要工作特色及所存在的不足,并提出了今后的研究方向。关键词:客户端/服务端架构;多线程;牌号系统;网络编程;开发abstractgrade system in this paper

4、is designed to solve problems of queuing in hall of bussiness services. it can effectively improve the staffs 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

5、grades system were introduced in this paper. secondly, the c/s structure, socket network programming technology, java-thread programming, and other related technologies were also simply dissertated. then combined with the project, specifically discusses the grade system of needs analysis, the overal

6、l design and system design of the database, which baokuo business flow chart, system use case diagram, functional structure diagram, shu ju flowcharts, and the system database er diagram of the analysis and miaoshu . then, focus on describing the c / s structure of the grade system design and implem

7、entation, including system, which describes the realization method of each module. finally, this paper summarizes the main features and the shortcomings, and propose future research directions.keywords: client/server structure; multi-threaded; grade system; network programming; development1概述随着科技的不断

8、发展,人们要求办事的效率越来越高,牌号系统在这种情况下应运而生。1.1 牌号系统的介绍牌号系统在现今的服务行业还是个比较新鲜的名词,利用这种先进的牌号系统管理模式将网络技术、通信技术相结合,采用tcp/ip通信连接,使企业的服务机构通过网络与顾客通信,完成对顾客的管理。牌号系统实现每个客户端可以迅速建立与服务器端的实时通信连接,并且操作互动的业务。顾客不仅可以进行取号业务,还可以进行一些其它操作,业务员除了进行业务处理还可以对数据库进行一些增删改查等操作。随着网络编程技术研究的不断深入和完善,国内外越来越多的企业己经开始使用牌号系统,如中国建设银行和上海长海医院等相关部门已开始使用,并且取得了

9、相当的业绩和成果。1.2 选题背景及意义时间等于金钱,这句话是这个飞速发展时代的真实写照,随着科技的不断发展,人们越来越要求办事的效率,讨厌把宝贵的时间花在一些排队的事情上。我国是一个人口众多的国家,各大银行,邮局,医院等营业大厅常常人满为患,排着长队等着办理业务,这种局面常常使人们怨声载道。随着社会的发展,特别是信息技术的发展,计算机已经在社会的各个方面凸显出来。原始呆板固化的排队等候方式转变为基于计算机管理与控制的舒适、休闲的等候方式。由于原始的排队等候方式存在不方便、不安全等缺点,而基于计算机管理与控制的舒适、休闲的等候方式完全可以解决这些弊端,人们不仅可以自由安排等待时间,而且可以轻松

10、的享受其他服务,这方式不仅提高了业务员的工作效率,也提高了其业务素质。1.3 国内外研究现状分析随着市场规模的扩大,经过详细的调查,国内外越来越多的企业己经开始使用牌号系统。目前国际上已有许多人员致力于这方面的研究与开发,而这方面的方法与文献也是层出不穷。随着技术的越来越先进,各研究人员研究开发牌号系统所采用的技术也各不相同:如基于c/s架构的java多线程技术、基于arm技术的等等。在国外,牌号系统早已普及应用到各个服务领域,他们所应用的也是先进的如智能型、多媒体式的牌号系统。而在我国,相对来说,在各大银行应用比较广泛,而在医院,却是最近一两年内才开始使用的。虽然比国外研究应用得晚,但是随着

11、服务行业发展的脚步,牌号系统在我国的应用也会越来越普及。 基于java技术的不断发展,牌号系统涉及的领域越来越广,它的复杂性也会变得越来越高,与此同时随着各种硬件的不断发展以及web技术的发展,牌号系统也会越来越多的应用在不同领域。因此,对于牌号系统仍需要继续研究,下一步应对web服务以及面向对象的方法和技术进行深入研究。鉴于牌号系统的oracle数据库管理系统这方面,没有专门涉及安全性的探讨研究,但这一特性的研究必不可少,特别是在企业管理这一类高敏感的系统中,因而这也是下一步工作的重点问题。1.4 本文的组织结构第2章 系统开发环境及相关技术理论:系统开发的主要平台,c/s简介、soket简

12、介及java多线程技术介绍。第3章 系统分析:从牌号系统的两大功能方面对系统进行了功能需求分析;通过经济、操作和技术三个方面对系统可行性进行了分析。第4章 系统的总体设计:包括系统功能结构、系统各子功能模块的设计和系统总及各实体用例图设计。第5章 系统的详细设计:描述了各实体及其属性,系统e-r图,数据库物理结构设计和系统安全性设计。第6章 系统的实现:根据系统的执行流程分析给出了系统结构流程图,并一一实现了各功能模块。最后是结论,主要写本论文的主要工作内容、创新点及所存在的缺点,和本次论文设计的心得体会。2系统开发环境及相关技术理论介绍2.1系统开发环境 开发平台:myeclipse操作系统

13、:windowsxp数据库服务器:oracle9i/10g使用技术:java gui、jdbc、socket、xml2.2 系统相关技术介绍 c/s的简介传统的应用体系结构模式主要有两种:c/s client/server 结构模式b/s browser/ server 结构模式。c/s(client/server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到client端和server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是c/s形式的两层结构,由于现在的软件应用系统正在向分布式的web应用发展,web和

14、client/server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。c/s体系结构的优点: (1) 应用服务器运行数据负荷较轻。 最简单的c/s体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任

15、何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。 (2) 数据的储存管理功能较为透明。 在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦

16、的事情都交给了服务器和网络11 。 socket的简介socket 是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。在java中创建一个socket,用它建立与其他机器的连接。从socket得到的结果是一个inputstream以及outputstream或reader和writer,以便将连接作为一个i/o流对象对待。这有两个基于数据流的套接字类:一个是serversocket,服务器用它“侦听”进入的连接;另一个是socket,客户用他初始化一次连接。一旦客户(程序)申请建立一个套接字连接,serversocket就会返回(通过accept 方法)一个对应的服务器端套接字,以便

17、进行直接通信。可以利用getinputstream 以及getoutputstream 每个套接字产生对应的inputstream和outputstream对象。这些数据流必须封装到缓冲区内。在牌号系统中采用了tcp/ip协议,这样实现了点对点通信等功能6。 java多线程技术(1)多线程多线程编程技术是java语言的重要特点。多线程编程的含义是将程序任务分成几个并行的子任务。特别是在网络编程中,多功能是可以并发执行的。比如网络传输速度较慢、用户输入速度较慢,可以用两个独立的线程去完成这两个功能,而不影响正常的显示或其它功能。多线程是与单线程比较而言的,普通的windows采用单线程程序结构,

18、其工作原理是:主程序有一个消息循环,不断从消息队列中读入消息来决定下一步所要干的事情,一般是针对一个函数,只有等这个函数执行完之后,主程序才能接收另外的消息来执行。比如子函数功能是在读一个网络数据,或读一个文件。只有等读完这个数据或文件才能接收下一个消息。在执行这个子函数过程中你什么也不能干。但往往读网络数据和等待用户输入有很多时间处于等待状态,多线程可以解决这个问题。线程创建的方法从一个自定义的类中创建一对象,这个类扩展了thread类。使用接口。在java中,用于创建线程的接口是runable。(3) 多线程在牌号系统中的应用为了实现多用户同时在线服务采用了多线程机制,在实际应用中启动一个

19、业务端产生一个线程。业务端分布在不同的机器上,同时进行业务处理。多线程解决了并发执行造成的死锁问题。并实现了多用户同时在线处理。牌号系统从界面上看主要实现两个方面的功能:(1)取号 客户按键反馈给服务器,然后服务器从数据库获得一个号反馈给顾客,这就完成了取号的过程,在顾客取号的可视化界面上顾客可以查询当前取号总人数,也可查询到已处理的人数,在顾客想放弃当前的号票时也可以对号票进行删除,顾客还可以在可视化界面看到自己的取票信息和需要等待的人数。(2)叫号 业务员按键反馈给服务器,服务器拿到取号时存储在数据库中的数据,进行业务处理,在这个过程中业务员可以进行对顾客人数的查询,还可以对不需要进行处理

20、的票号进行删除,也可以充当管理员的角色对数据库进行删除。业务员还可以查看顾客的取票情况,以及票号的业务的处理情况。3.2 可行性分析 经济可行性该系统对操作环境没有太多要求,系统的开发不需要很强的经济支持,就其功能和给企事业单位带来的方便来说,是完全可行的。 操作可行性目前计算机已经普及到所有的单位及大部分家庭,不仅在企事业单位,即使足不出户也能通过网络对单位和人员进行统一管理。本系统的使用者有三类人,第一是客户;第二是银行柜员;第三是银行管理人员,对于这三类人员使用本系统都是可行的。本系统操作非常简单,不需要进行培训只需阅读说明书就可以进行操作。 技术可行性本系统采用java语言编写,它是一

21、种简单的,面向对象的编程语言,具有多线程,分布式,跨平台等特性。它有自己的安全机制,并且移植性很好。在数据库方面采用了oracle 10g,其灵活性,安全性和易用性为数据库编程提供了良好的条件。在数据持久化层,选用了jdbc,开发者掌握这些技术就可以具备开发此系统的能力,另外,此系统对开发环境的要求,都是大部分java程序员进行软件开发使用的开发环境,所以,技术方面也是可行的。4 系统总体设计4.1 系统功能结构根据以上章节所做需求分析对系统进行功能设计,得如图4-1所示的功能模块图。图4-1 系统功能模块图4.2 系统各子功能模块设计该系统功能从服务器端和客户端角度来说可分以下两大模块,具体

22、每一个模块又分为几个小模块:(1) 服务器端1)取号功能:打开服务器与终端进行通信。由于把服务器设置到了用户的一端,所以在服务器端进行取号,然后把号存到数据库中。统计功能:数据访问层从数据库中查出所有取票人数和等待人数在服务器端界面显示。功能:当前取票顾客的牌号。查询功能:顾客可以从此处了解到所有顾客的取票情况及被处理状况。通知功能:从服务器端获得,通过服务器端通知*用户到*工作台办理业务。客户端同一时刻允许多个工作台办理业务。用户通过在服务器端的通知功能知道去哪个工作台办理业务,工作台显示正在为哪个号码的用户办理业务。1)登录功能:业务员从此处登录,业务员的姓名,密码是事先录入数据库的。2)

23、 叫号功能:业务员点击处理按钮触发事件发送信息给服务器,服务器从数据库拿到号票,返回给业务员进行业务处理。3) 统计功能:数据访问层从数据库查询总取票人数和查询未处理人数在业务端显示。4)移除功能:业务员可以移除数据库中所有的记录,也可以选择移除某条记录。5)查询功能:业务员可以查询所有顾客的取票情况及业务员对票号的处理情况,这块主要为了能够及时掌握顾客取票信息及业务员处理情况。4.3 系统总体及各实体用例图设计 系统体系结构设计图4-2 系统体系结构 系统逻辑模型图4-3 系统逻辑模型 业务员用例图图4-4 业务员用例图 客户用例图图4-5 客户用列图5 系统详细设计5.1 各实体及其属性这

24、一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有顾客信息实体、业务端信息实体、业务员信息实体、自动出号信息实体。各个实体及其关系描述如下:图5-1 业务端信息实体及其属性图图5-2 业务员信息实体图图5-3 顾客信息实体图图5-4 自动出号信息实体图5.2系统e-r图图5-5 实体之间关系e-r图5.3数据库物理结构设计在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。牌号系统数据库中的各个表的设计结果如下表所示(每个表格表示数据库中的一个表)。(1) 顾客信息表customer_tbl

25、表customer_tbl用来保存顾客取票信息,结构如表5-1所示。表5-1 customer_tbl的结构字段名字段类型中文描述备注非空主键idnumber唯一标识nextidnumber顾客牌号uniquetakedatedate取票日期typenumber服务类型1:vip 2:普通flagnumber处理标记unique(2) 业务端信息表work_tbl表work_tbl用来保存业务端信息,结构如表5-2所示。表5-2 work_tbl的结构字段名字段类型中文描述备注非空主键idnumber唯一标识processdatedate处理日期workidnumber服务台编号typenum

26、ber服务类型1:vip 2:普通nextidnumber顾客牌号unique(3) 业务员信息表workmen_tbl表workmen_tbl用来表示业务员信息,结构如表5-3所示。表5-3 workmen_tbl的结构字段名字段类型中文描述备注非空主键idnumber唯一标识namevarchar2 20 用户名passwordvarchar2 20 密码(4) 自动出号信息srt_tbl表srt_tbl用来产生唯一的号票信息,表结构如表5-4所示表5-4 srt_tbl的结构字段名字段类型中文描述备注非空主键nextidnumber 20 顾客牌号tyepnumber 7 服务类型uni

27、que5.4系统安全性设计(1)数据因素:系统数据库中包含多个表信息,所以在系统与数据库的连接上,直接封装到代码中,由于java的安全机制比较好,所以数据信息在存储和传递过程中不可见。(2)硬件及物理因素:系统硬件及安全环境安全可靠,包括机房设施、计算机主体、存储系统、数据通信设备设施等方面是安全的。(3)存储安全:通过oracle的数据库安全设置,连接数据库需要用户名和密码,保证了数据库的安全性3。6系统实现6.1系统结构流程图 服务端根据系统的执行流程分析,可得服务器系统结构流程如图6-1所示。图6-1 服务器系统结构流程图 客户端根据系统的执行流程分析,可得客户端系统结构流程如图6-2所

28、示。图6-2 客户端系统结构流程图6.2 各功能模块的实现 系统主界面的实现(1)服务器主界面的实现用户在取号的时候必须先启动服务器,才能进行取号。服务器端主界面如图 6-3所示。图6-3 服务器端主界面服务器端主界面采用菜单式风格,用户可以根据需求进行取号,查询,删除等功能。界面主要采用了grid layout,flow layout,borderlayout等布局管理器来对界面进行布局的。(2)客户端界面的实现客户端是为业务员设计的以下是客户端登录界面如图6-4所示。图6-4 业务员登录界面客户端业务处理界面如图6-5所示。图 6-5 业务处理界面客户端业务处理界面也采用了菜单式风格,采用

29、了布局管理器对界面进行布局管理,其中在显示这一项里采用了jtable设计的设计界面如下图6-6所示。图6-6 员工处理情况界面部分实现代码如下:界面信息的显示的实现,在这里调用了dao层的方法获得需要的信息string colheads 服务台编号, 服务类型, 处理时间, 顾客票号 ;iworkdao dao iworkdao beanfactory.getpojo workdao ;list list dao.loadallwork ;object data new objectlist.size 4;for int i 0; i list.size ; i+ datai0 list.ge

30、t i .getworkid ;datai1 list.get i .gettype ;if list.get i .gettype 1 datai1 vip用户; else datai1 普通用户; datai2 list.get i .getprocessdate ;datai3 list.get i .getnextid ; jtable table new jtable data, colheads ; 服务器端取号的实现在整个系统中取号是一个至关重要的环节,也是设计它的目的所在。它的实现与其他模块紧密相连,它在server端实现的,取号分为两个服务类型:vip业务和普通业务。首先在数

31、据库里建立srt_tbl这张表,它用来存储自动生成的客户牌号。它里面设置两个字段,一个是nextid,一个是type类型。nextid是用来标识顾客的牌号的,而type则是用来表示顾客所要选取的服务类型,vip业务和普通业务。当点击其中的一个业务时它就会产生一个牌号,这个牌号是通过在dao层的一个方法实现的,dao层通过jdbc连接数据库实现数据的持久化。在取完号的同时调用dao层的saveid 方法把这个信息保存在cuntomer_tbl表中。vip会员取号如图6-7所示。 图6-7 vip用户取号界面实现代码如下:1) 产生号票num dao.nextid 1 ;customer cust

32、omer new customer num, 1 ;2) 把顾客取到的号票存储到数据库中,调用finduprocess 方法查找没有被处理的号票并在界面上显示。dao.saveid customer ;dao.findcustomer num, 1 ;list list dao.finduprocess 1 ;int num1 list.size - 1; ;普通会员取号如图6-8所示。图6-8普通用户取号界面普通会员的取号的实现跟vip会员一样这里就不详细标注说明。 客户端业务处理的实现这个模块的实现主要是在不同的业务员登录后选择了服务台以后才开始业务处理,业务处理的实现首先是server端

33、调用socketthread这个多线程类,在这个类的run方法里调用了service层的unprocess int type 方法从数据库中拿到nextid 牌号),client端从server端的输出流里获得牌号,进行处理。处理的时候会显示提示信息。因为各个单位所有的服务台是不确定的,所以在这里采用了多线程,可以按需求增加服务台数量。每增加一个服务台就启动一个线程,实现了多用户同时在线服务。由于采用了tcp协议,也实现了点对点通信。在服务台界面设计时,把id 1设为vip服务台,id 1的设为普通服务台。当取vip业务的牌号大于2时候,普通服务台优先处理vip业务,当处理的低于2的时候就处理

34、普通业务,如没有需要处理的普通的业务就停止业务处理。以下是实现界面和实现代码:(1)当vip人数大于2时图6-9业务处理界面(2)当vip人数小于2时图6-10 业务处理界面主要实现代码如下:1) 如果输入的服务台编号为1,服务台专门处理vip业务。并且客户端通过流输入把信息传到服务器端获得相应的信息再返回给客户端if id 1 pw.println vip + id ;icustomerdao dao icustomerdao beanfactory.getpojo customerdao ;iworkdao workdao iworkdao beanfactory.getpojo work

35、dao ;2) 从服务器端读入信息int num integer.parseint br.readline ;if num 0 3) 把业务员的信息保存到数据库中work work new work 1, 1, num ;workdao.savework work ;4) 查找未处理的vip业务人数并且在标签里显示list list dao.finduprocess 1 ;int num1 list.size ;lbl.settext 正在为vip业务 + num + 号顾客办理业务! + 有+ num1 + 人等待 5) id不等于1为普通用户同样通过流输入把信息传递给服务器端获得相应的信息

36、if id ! 1 pw.println normals + id ;string temp br.readline ;int index 0;int num 0;6) 判断是否为vip用户,如果是,在普通服务台进行优先业务处理。if index temp.indexof vip ! -1 icustomerdao dao icustomerdao beanfactory.getpojo customerdao ;iworkdao workdao iworkdao beanfactory.getpojo workdao ;num integer.parseint temp.substring

37、index + 3 ;if num 0 work work new work id, 1, num ;workdao.savework work ;7) 查询还有多少vip号票没有处理list list dao.finduprocess 1 ;int num1 list.size ; 8) 判断是否为普通会员else if index temp.indexof normals ! -1 icustomerdao dao icustomerdao beanfactory.getpojo customerdao ;iworkdao workdao iworkdao beanfactory.getp

38、ojo workdao ;num integer.parseint temp.substring index + 7 ; dao层和配置模块的实现dao层是整个系统的关键所在,它是实现与数据库交互的桥梁,在这层里,主要是对一些数据的增删改查,它使用了jdbc作为与数据库连接的桥梁,配合一些pojo类来完成与数据库的交互,使业务逻辑层能够调用它来完成业务逻辑。dao层也是所谓的dao模式,它采用了接口机制,在这一层只完成与数据库的交互,实现了低耦合。在系统里配置模块使用了xml解析技术来完成对xml配置文件的解析。在系统里它的作用是实现其他模块,降低了模块间的耦合度。一些数据库驱动,url,用户

39、名,密码都写到这个配置文件里,以便在一个数据库出问题的时候更换到另一个,这也方便了不同用户的使用。因为修改封装好的java代码不容易,所以就采用了xml配置文件来实现低耦合。在系统里配置模块还使用了资源配置文件,这也是为了一个系统能够在不同的企业运用,只需更改配置文件里的信息就可以。下面是xml文件解析的一些代码:properties pro new properties ;(1)创建dom解析器documentbuilderfactory factory documentbuilderfactory.newinstance ;(2)创建文档构建器documentbuilder builder

40、 factory.newdocumentbuilder ;(3)处理xml文件document doc builder.parse config.xml ;结 论随着软件系统规模的增大和复杂度的提高,整个软件系统的体系结构和规格说明显得越来越重要。在此背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的途径。本系统可解决排队混乱问题。主要包括两大模块,十个小功能。主要是实现取号,叫号功能。在取号的设计中用到了高低值算法,也使用了多线程技术,目的是可以使多个业务员同时在线进行业务处理。系统中还使用了xml解析、资源配置文件,与

41、以前的同类系统相比,它把容易变动的信息写到配置文件中,需要更改的时候只要改动配置文件中的信息就可以,不需要改动已封装好的代码,实现低耦合的特性,并且重用性也很好。使用c/s架构开发的系统也有不足之处:首先,使用swing作为界面开发技术,代码量庞大,实现的界面却较粗糙、不美观。其次,由于在设计中考虑问题有些欠缺,导致系统功能不完善,有些功能不太合乎业务逻辑。比如把用户取号设置在了服务器端,还有在顾客取号端设置了删除功能,不合乎业务逻辑也降低了系统的安全性。随着java技术的不断发展,牌号系统涉及的领域越来越广,它的复杂性也变得越来越高,与此同时随着各种硬件的不断发展以及web技术的发展,牌号系

42、统会越来越多的应用在不同领域。因此仍需要继续研究,下一步应对web服务以及面向对象的方法和技术进行深入研究。此外,本课题采用了安全性较好的java技术、oracle数据库管理系统进行研发,没有专门涉及安全性的探讨研究,但这一特性的研究必不可少,特别是在企业管理这一类高敏感的系统中,这是下一步工作的重点问题。参考文献1 耿详义,张跃平. java2实用教程 第三版 m. 清华大学出版社,2006.2苗雪兰,刘瑞新,宋歌. 数据库系统原理及应用教程 第三版 m.机械工业出版社,2007.3 朱辉生数据库系统概论 oracle 9i m高等教育出版社,2006.4 齐治昌,谭庆平,宁洪. 软件工程

43、第二版 m. 高等教育出版社,2004.5 桂浩,陈刚,范昊. xml开发技术教程m. 武汉大学出版社,2008.6 bruce eckel. java编程思想c机械工业出版社,2005.7 刘惠萍,刘亮亮,张力. c/s模式下的三层架构n. 科技信息,2006.8 雍俊海. java程序设计教程m. 清华大学出版社,2007.9 赖万钦java 多线程探讨j福建电脑,2007.10 阎宏java与模式m电子工业出版社,2002. 11 brian goetz.exploiting threadlocal to enhance scalabilitycibm中国附 录部分源代码customer

44、server.javaimport erlayout;/省略导入的包public class customerserver extends jframe private static int i 0;private jframe frame;private jbutton button1;private jmenu filemenu;private jmenuitem menuopen;private jmenuitem menuclose;private jmenu editormenu;private jmenuitem menuservice;private jmenuitem menu

45、first;private jmenu aboutmenu;private jmenuitem menuabout;private jmenu accountmenu;private jmenuitem menuaccount;private jpanel panel1;private jpanel panel2;private jpanel panel3;private jlabel label1;private jlabel label2;private jlabel lvip;private jlabel lcommon;private jlabel lvipleave;private

46、jlabel lcommonleave;private jbutton button2;private static jlabel lblnow;private jtextfield text2;private jtextfield text3;private jpanel panel4;private jpanel panel5;private jpanel panel6;private jpanel panel7;private int id;private jmenu menudrop;private string name;private jtextarea text4;private

47、 jmenu selectmenu;private jmenuitem select;private jcheckboxmenuitem vipmenu;private jcheckboxmenuitem normalmenu;public customerserver throws ioexception properties pro new properties ;fileinputstream fis new fileinputstream perties ;pro.load fis ;name pro.getproperty name ;frame new jfra

48、me name ;frame.setbounds 400, 400, 600, 400 ;setupcomponent ;setuplistener ;frame.setvisible true ;frame.setresizable false ;frame.setdefaultcloseoperation jframe.exit_on_close ; public void setuplistener select.addactionlistener new actionlistener public void actionperformed actionevent e new table

49、demo ; ;/ 菜单关闭文件menuclose.addactionlistener new actionlistener public void actionperformed actionevent e closefile ; private void closefile int option joptionpane.showconfirmdialog null, 是否退出, null,joptionpane.warning_message,joptionpane.ok_cancel_option ;if option joptionpane.ok_option / frame.disp

50、ose ;system.exit 0 ; ;vipmenu.addactionlistener new actionlistener public void actionperformed actionevent e icustomerdao dao icustomerdao beanfactory.getpojo customerdao ;if i! 0 sytln i+* ;if vipmenu.getstate int num dao.base - 1;i-;joptionpane.showmessagedialog null, 是否删除? ;dao.removerecord num ;

51、sytln haah ;vipmenu.setstate false ; else sytln i+* ;joptionpane.showmessagedialog null, 你还没有申请号码 ;vipmenu.setstate false ; ;normalmenu.addactionlistener new actionlistener public void actionperformed actionevent e icustomerdao dao icustomerdao beanfactory.getpojo customerdao ;if i! 0 sytln i+* ;if normalmenu.getstate int num dao.base - 1;i-;joptionpane.showmessagedialog null, 是否删除? ;dao.removerecor

温馨提示

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

评论

0/150

提交评论