您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页网吧管理系统论文

网吧管理系统论文

来源:测品娱乐
江苏科技大学

目录

第一章 系统概述 ................................................... 错误!未定义书签。

1.1 系统开发的背景和意义 ........................................................ I 1.2 系统开发技术................................................................ 3

1.2.1 JAVA概述 ............................................ 错误!未定义书签。 1.2.2 MY SQ数据库 ......................................... 错误!未定义书签。

第二章 可行性分析 .................................................................. 4

2.1 可行性概述 ................................................................. 4 2.2 可行性研究 ................................................................. 5 第三章 系统需求分析 ................................................................ 6

3.1 传统网吧管理................................................................ 6 3.2 系统优点 ................................................................... 6 3.3 系统功能需求................................................................ 6

3.3.1 系统逻辑模型 .......................................................... 7 3.3.2 服务端................................................................ 7 3.3.3 客户端................................................................ 8 3.4 系统的设计原则.............................................................. 8 3.5 系统设计的思想.............................................................. 8

3.5.1 系统设计结构 .......................................................... 8 3.5.2 系统实现技术 .......................................................... 9

第四章 系统的总体设计 .............................................................. 9

4.1 系统功能设计................................................................ 9 4.2 系统功能模块简介 ........................................................... 10

4.2.1 客户端功能模块 ....................................................... 10 4.2.2 服务端功能模块 ....................................................... 11 4.2.3 数据库设计 ........................................................... 11

第五章 详细设计 ................................................................... 13

5.1 关键模块设计............................................................... 13

I

江苏科技大学

5.1.1 登陆模块............................................................. 14 5.1.2 客户端模块 ........................................................... 14 5.1.3 服务端模块 ........................................................... 15 5.2 系统界面设计............................................................... 16

5.2.1 登录界面............................................................. 16 5.2.2 客户端界面 ........................................................... 16 5.2.3 服务端界面 ........................................................... 17

第六章 编码实现 ................................................................... 18

6.1 系统功能实现............................................................... 18 6.2 登陆模块编码............................................................... 19 6.3 客户端模块编码............................................. 错误!未定义书签。 6.4 服务端模块编码............................................................. 28 第七章 系统测试 ................................................................... 37

7.1 系统测试目标............................................................... 37 7.2 系统测试方案............................................... 错误!未定义书签。 7.3 具体测试 .................................................................. 37

7.3.1 登录模块测试 ......................................................... 37 7.3.2 客户端测试 ........................................................... 38 7.3.3 服务端测试 ........................................... 错误!未定义书签。

结束语 ............................................................ 错误!未定义书签。 参考文献 .......................................................... 错误!未定义书签。

II

江苏科技大学

1.1 系统开发的背景和意义

随着计算机技术的日月更新,越来越多的人们注重加强对计算机知识的学习,为了满足学校学生或者社会学员的需求,许多网吧都纷纷对外开放,实行计时收费。但随着上机人数的增多,网吧的管理成了一个非常困难的问题。首先,人工计时收费是非常繁琐的一项工作,耗费人力物力,而且极容易出错;最后的统计工作更是一项费时费力的苦差事,甚至不能统计。其次,上机过程中,每个网吧都需要值班人员值班,耗费了管理人员的很多时间。随着计算机各种外围设备技术的发展,以上工作通过计算机就可以很方便地实现。

为了适应当前网吧管理无人化的需求,本人试图利用自己大学所学专业知识并结合教学管理中的实际情况和其它类似计费软件的优点,开发了一套网吧收费系统软件。本系统可以解决网吧管理中存在的几个实际问题:

1 减少值班人员、维护人员,降低管理人员费用,甚至可以做到网吧无需人员值守管理。

2 增加网吧的开放时间,提高设备的利用率。

3 解决目前网吧管理中的人情免费上机、脱逃费问题。

1.2 系统开发技术

Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

Java的特点

1.平台无关性 平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2.安全性 Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安

3

江苏科技大学

全管理器,防止程序的非法访问。

3.面向对象 Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

4.分布式 Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5.健壮性 Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。 MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。 SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。 MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。 MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。

第二章 可行性分析

2.1 可行性概述

可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的房买你进行分

4

江苏科技大学

析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

2.2 可行性研究

数据库是指自描述的完整记录的集合。数据库技术在20世纪60年代中期产生,它的出现使信息系统的研制从加工数据的程序为中心转变为共享数据库为中心来进行。数据库开始时在大公司或机构中进行大规模数据处理后来随着计算机的逐渐普及,数据库才应用到计算机上。数据库发展到今天,已经是相当成熟的阶段,它对大量处理能力的不断提高,发展和完善。

本系统的开发利用ECLIPSE作为开发工具。Eclipse平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。Eclipse采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。工作台插件是Eclipse 提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级的API(JFace)构建的。SWT是Java的Swing/AWT的非标准替代者,JFace则以SWT为基础,但更易于使用。团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制系统交互。帮助插件允许以HTML文件形式添加文档,并提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。

系统采用MY SQL作为开发数据库。MY SQL 是一种客户机/服务器结构的关系

数据库管理系统 MY SQL提供了许多易于使用的图形化工具和向导,其中最常用的是服务管理器、企业管理器和查询分析器。它们为创建和管理数据库带来了很大的方便。

5

江苏科技大学

第三章 系统需求分析

3.1 传统网吧管理

网吧是随人们生活中对计算机越来越需要而建立的,这类网吧大多存在于学校,公司,图书馆等大型公共场所,在网吧建立之初,没有网吧计费系统的情况下,网吧的管理完全人工化。逃费,人情上机,计费错误等情况不可避免地出现。也可以说是网吧现象中的一部分,这类情况给管理人员带来很大的麻烦,逃费和计费错误会给网吧管人员在财力带来损失或误会,人情上机会给管理人员带来生活中尴尬的烦恼。这类情况一再发生,就会在管理人员精神上带来越来越大的压力。上机用户有时也会因管理人员的失误带来不必要的麻烦。渐渐大家对网吧就会有一种厌恶感和恐惧感。同时,在人工长期使用,会形成大量的数据,这些数也会使得数据管理上的混乱。

3.2 系统优点

人工管理网吧实在存在很大的问题,而且浪费太多的人力,物力。计算机一点一丁的入侵人类的生活,计算机管理代替人工管理是不可避免的,像网吧管理这类不要求在管理上创新,机械般管理更加完美的前提下,我选择设计开发网吧计费系统,希望能改善网吧管理上的混乱情况,也避免了管理人员的工作麻烦。使用网吧计费系统优于人工管理在于:

1 管理人员的工作量。 2 计费准确无误。 3 避免人情上机的尴尬。 4 工作迅速快捷。

3.3 系统功能需求

网吧管理系统的主要功能有:

1 服务端(包括管理员管理,用户信息管理)

6

江苏科技大学

2 客户端(用户使用计算机的所有情况) 3 系统数据的初始化,查询,修改,删除。 3.3.1 系统逻辑模型

为了实现管理信息系统的计算机化,仅仅用文字来描述信息的流动和存储还远远不够,还要进一步调查分析舍去物质流,抽象出信息流,绘制出数据流程图,并对各种数据的属性和各项处理功能进行详细分析。系统分析的主要成果是系统的逻辑模型。本系统主要是以数据流程图、E-R图和系统功能模块图为主要描述工具来勾画系统的概貌。对系统的功能进行分析,综合本系统设计的服务器端与客户端,总结整个系统功能模块。

管理员 用户信息 更新用户消费信息 用户信息 用户 登陆 上机 用户信息 下机 图3.1顶层数据流图

3.3.2 服务端

1 管理员管理

主要包括:操作用户管理、操作员登录、修改密码、设置上机费用。这其中大部分是标准数据的维护,包括新增、修改、删除等;

2 用户信息管理

主要包括:用户充值、查询用户费用、删除用户信息、添加用户信息、修改用户信息。这里区分不同的用户类型,按照不同用户类型设置上机费用等;

7

江苏科技大学

3 上机记录

主要负责接收客户端程序发送来的上、下机信息,进行上、下机的处理,在处理上机登录时要进行用户的合法性检测。检测通过后产生一条用户上机记录,记录下计算机代码、账号、登录开始时间等信息。处理下机信息时,要记录下此用户下机的详细时间。计费时要将当前使用费用记录在上机记录中,并在用户的档案记录的余额字段中扣减。 3.3.3 客户端

首先要求将客户端的桌面、任务管理器、系统状态栏等系统功能锁定,桌面上只有客户登录程序界面,要求用户输入用户代码和密码进行登录。登录信息要求数据库中的信息来判断其合法性,并反馈一个信息给客户端,如果一切合法的话,再将桌面、任务管理器等功能解锁,让用户正常使用。客户端程序要求正常停靠在系统托盘中,用户下机时要求点击此图标进行下机,客户端将下机信息发送到数据库,系统关机。

3.4 系统的设计原则

根据系统的需求分析,计费系统属于网络,计算机使用费用,作息管理及数据库于一体的综合性系统,因而,网吧计费系统在总体设计时应遵循以下原则上:

1 系统的功能设计完善性,满足多方的使用需求。

2 系统应具有良好的稳定性,实用性,安全性。设计理念应是客户容易使用。 3 数据库结构设计合理,各类属性符合要求。

3.5 系统设计的思想

3.5.1 系统设计结构

基于网吧计费系统的综合性,而且为了满足多方使用的需求,本系统以c/s的框架结构为基本结构模式:(如图3.2所示)

8

江苏科技大学

图3.2 系统结构图

数据库 服务器 服务端 客户端 3.5.2 系统实现技术

系统实现所需开发环境JDK.JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。

第四章 系统的总体设计

4.1 系统功能设计

本系统包含两个子系统,其中网吧的客户用的是客户端子系统,而网管所使用的则是服务端子系统。每个子系统包换了若干子功能模块,每个子功能模块完成相应的处理操作功能。

9

江苏科技大学

网吧管理系统 客户端 管理端 用户登录 用户计费 管理员登陆 用户信息管理 管理员表管理 消费记录管理 图 4.1 系统总功能框图

客户端负责用户信息验证和记录用户的上机信息。 管理端是直接操作数据库信息,实现对整个系统的管理。

4.2 系统功能模块简介

4.2.1 客户端功能模块

1 客户登陆

输入用户名与密码登录

系统通过对比用户名与密码确定用户是否合法 2 计费模块

获取登陆时间并保存到数据库 获取下机时间并保存到数据库 计算花费并保存到数据库 计算余额并保存到数据库

10

江苏科技大学

4.2.2 服务端功能模块

1 管理员的登陆 输入用户名与密码登陆

系统通过对比用户名与密码确定用户是否合法 2 用户信息管理 添加用户 修改用户 删除用户 3 消费记录管理 查看消费记录 4.2.3 数据库设计

该系统数据库使用的是SQLserver ,美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。

1 概念结构设计

概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。

概念模型具有以下的特点:

(1) 概念模型是对现实世界的抽象和概括,它真实、充分地反映了现实世界中事物和事物之间的联系,能满足用户对数据的处理要求。

(2) 由于概念模型简洁、明晰、于计算机,很容易理解,因此可以用概念模型和不熟悉计算机的用户交换意见,使用户能积极参与数据库的设计工作,保证设计工作顺利进行。

(3) 概念模型易于更新,当应用环境和应用要求改变时,容易对概念模型修改和扩充。

11

江苏科技大学

(4) 概念模型很容易向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R图。E-R模型是一个面向问题的概念模型,即用简单的图形方式(E-R图)描述现实世界中的数据。这种描述不涉及数据在数据库中表示和存取方法,非常接近人的思维方式。后来又提出了扩展实体联系模型(Extend Entity-Relationship Model),简称为“EER模型”。EER模型目前已经成为一种使用广泛的概念模型,为面向对象的数据库设计提供了有效的工具。

2 逻辑结构设计

概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R图转换为关系模型;然后对关系模型进行优化。

在网吧计费系统当中包括了以上几个ER模型向关系模型的转换: 用户表(帐号,密码,余额,上机费用,注册日期) 管理员表(帐号,密码,姓名)

消费表(登陆帐号,登陆时间,下机时间,计算机名,花费) 3 物理结构设计

在表当中,关键字(即编号)都采用自动编号的数据类型;日期都采用日期型的数据类型;凡是关于数据量的都采用数据型的数据类型;其他数据均采用文本型的数据类型。当表之间有关系时通过添加外键来处理。当表与其他表有关系时,便给该表建立一张视图,通过外键将两张表联系起来,通过数据筛选,把自己想要的信息提取出来,形成一张新的表。其数据库中表的设计具体如下:

表4-1 用户表

列名 帐号 密码 余额 数据类型 Char(10) Char(10) Money 允许空 否 否 是 字段说明 主键 登录密码 用户余额 12

江苏科技大学

上机费用 注册日期 Money Datetime 否 是 每分钟费用 注册日期 表4-2 管理员表

列名 帐号 密码 姓名 数据类型 Char(10) Char(10) Varchar(50) 允许空 否 是 是 字段说明 主键 登陆密码 管理员姓名 表4-3 消费表

列名 登陆帐号 登陆时间 下机时间 计算机名 花费

数据类型 Char(10) Datetime Datetime Varchar(50) money 允许空 否 是 是 是 是 字段说明 主键 登陆时间 下机时间 计算机名 花费 第五章 详细设计

5.1 关键模块设计

此次设计的网吧计费系统主要包括三大模块:系统登录模块、客户端系统模块、服务端系统模块。系统登录模块由登录界面组成;用户的本次登陆信息显示及操作功能模块组成本系统的客户端系统;用户信息管理、管理员信息管理、消费信息记录组成本系统的服务端系统。客户端系统主要是为普通用户使用而设计的;而服务端系统是维护系统的数据、客户端的数据内容的显示以及用户信息的管理等,是为后台管理员使用设计的。

13

江苏科技大学

5.1.1 登陆模块

本系统在客户端有一个用户的登陆界面,在服务端有一个管理员的登陆界面,客户端的登陆是用户开始使用此计算机并开始计费,而服务器端的登陆界面是为了获得管理整个系统的权利。

实现功能:验证帐号和密码的正确性。

实现方法:添加数据库连接,建立LINQ to SQL 类,使用LINQ语言调用数据库信息,完成帐号和密码的验证,进入系统。

实现方案:建立一个窗口,在窗口中添加两个文本框,用来存放帐号和密码,添加一个确定按钮,用来触发登陆事件。添加LINQ to SQL类,建立数据对象,通过LINQ语言查询数据库中是否存在登陆的帐号和密码并匹配。如果存在则进入系统,显示主窗口,关闭登陆窗口(如图5.1)。 5.1.2 客户端模块

实现功能:记录用户的登陆信息,计算用户产生的费用,并发送给数据库。 实现方法:建立一个显示窗口以显示此次登陆的有效信息,获取登陆时间和下机时间,计算此次花费和帐户余额,并将这些信息返回数据库。

具体方案:建立一个窗口,分别添加Label控件显示登陆时间,已上机时间,本次花费。建立LINQ to SQL 类,添加数据库服务器,调用系统时间函数获取登陆时间和下机时间,调用数据库中的用户上机费用等信息,进行计算此次所花的费用。添加Timer控件持续更新当前时间,计算并显示已上机时间(如图5.2)。

14

江苏科技大学

开始 输入帐户、密码 N

是否存在 Y 进入 主界面 客户端 获取登陆时间 获取当前时间 计算 费用 修改数据库 5.1.3 服务端模块

实现功能:添加修改删除用户信息,添加修改删除管理员信息,查看用户的消费记录。

15

江苏科技大学

服务端 主窗口 用户信息窗口 消费记录窗口 管理员信息窗口 添加 修改 删除 查看 添加 修改 删除 修改数据库

图 5.3 服务端窗口设计

5.2 系统界面设计

网吧计费系统主要涉及到三个用户界面:这些界面基本包括了系统功能规定的所有功能。以下是关于这几个用户界面当中一些主要的功能界面的简单介绍。 5.2.1 登录界面

用户登录界面主要是作为系统入口进入系统使用的,使用人员启动系统之后便会出现登录界面,用户登录进入到系统的主界面(如图5.4)。 5.2.2 客户端界面

客户端界面主要是用来显示用户有关信息的。显示客户端的主界面(如图5.5)。

16

江苏科技大学

图5.4 用户登陆窗口

图5.5 客户端界面

5.2.3 服务端界面

服务端界面主要是管理员操作系统信息使用的,系统使用人员登录之后便出现功能界面。在此界面下,用户可以操作规定权限下的功能操作。

主界面(如图5.6)调用以下功能模块 1 卡号信息管理功能

调用用户信息管理窗口,可以进行添加,修改,删除用户信息操作。(如图5.7 )

2 客户端管理功能

可以添加客户端和对客户端进行调整。(如图5.8)

17

江苏科技大学

3系统管理功能

可以对机器的区域进行调整。(如图5.9)

图5.6 主界面

图5.7 卡号管理界面

图5.8 客户端管理界面

图5.9 系统管理界面

第六章 编码实现

6.1 系统功能实现

网吧计费管理功能主要有两个方面:客户端和服务端。在服务端,管理员能

够增加,删除及更新用户信息;客户端在普通用户登陆后,会自动计时计费。系统功能实现主要通过客户端对登陆用户信息进行收集和更新。

18

江苏科技大学

6.2 登陆模块编码

package com.dinxinsky.netbar.server;

import java.awt.Dimension; import java.awt.Rectangle;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent;

import javax.swing.Icon;

import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel;

import javax.swing.JOptionPane; import javax.swing.JPanel;

import javax.swing.JPasswordField; import javax.swing.JTextField;

import com.dinxinsky.netbar.dbam.CardDBAM; import com.dinxinsky.netbar.entity.Card;

public class FrmServer extends JFrame { JPanel contentPane; JTextField textUserName = new JTextField(); JPasswordField passwordField = new JPasswordField(); JLabel lblUserName = new JLabel(); JLabel lblPassword = new JLabel(); JButton btnClose = new JButton();

19

江苏科技大学

JButton btnOK = new JButton();

Icon logoIcon = new ImageIcon(\"image\\\\LandingBackground.gif\"); JPanel imagePanel = new JPanel(); JLabel lblimage = new JLabel();

public FrmServer() { try { setDefaultCloseOperation(DISPOSE_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } }

private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); this.setSize(new Dimension(270, 200));// 设置窗体大小 this.setBounds(new Rectangle(403, 307, 300, 230));// 设置窗体大小 位置218, 153 this.setIconImage(null); this.setResizable(false);// 设置窗体是否可调大小 this.setTitle(\"服务端登陆\");// 设置标题栏信息 textUserName.setBounds(new Rectangle(124, 71, 120, 22)); passwordField.setBounds(new Rectangle(124, 107, 120, 22)); lblUserName.setText(\"用户名:\"); lblUserName.setBounds(new Rectangle(58, 73, 54, 15)); lblPassword.setText(\"密 码:\"); lblPassword.setBounds(new Rectangle(58, 110, 54, 15)); btnClose.setBounds(new Rectangle(160, 148, 70, 22)); btnClose.setText(\"取 消\"); btnClose.addActionListener(new FrmServer_btnClose_actionAdapter(this)); contentPane.setLayout(null); btnOK.setBounds(new Rectangle(63, 148, 70, 22)); btnOK.setText(\"确 定\"); btnOK.addActionListener(new FrmServer_btnOK_actionAdapter(this)); imagePanel.setBounds(new Rectangle(0, 0, 300, 230)); imagePanel.setLayout(null); lblimage.setBounds(new Rectangle(0, 0, 300, 230)); contentPane.add(btnOK); contentPane.add(textUserName); contentPane.add(passwordField); contentPane.add(lblUserName); contentPane.add(lblPassword); contentPane.add(btnClose); contentPane.add(imagePanel);

20

江苏科技大学 imagePanel.add(lblimage); lblimage.setIcon(logoIcon);

passwordField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { btnOK.doClick(); } } });

}

public void btnClose_actionPerformed(ActionEvent e) { this.dispose();// 取消登陆 }

public void btnOK_actionPerformed(ActionEvent e) { String userName = \"\"; String password = \"\"; userName = textUserName.getText();// 获取输入的帐户 // 获取输入的密码 for (int i = 0; i < passwordField.getPassword().length; i++) { password += passwordField.getPassword()[i]; } if (userName == \"\" || userName.length() == 0) { JOptionPane.showMessageDialog(this, \"请输入卡号!\警告\ JOptionPane.WARNING_MESSAGE); return; }

if (password == null || password.length() == 0) { JOptionPane.showMessageDialog(this, \"请输入密码!\警告\ JOptionPane.WARNING_MESSAGE); return; }

Card card = new Card(); card.setId(userName);

card.setPassword(password);

try { boolean isValidate = CardDBAM.validateCardIdAndPassword(card); if (isValidate == false) {

JOptionPane.showMessageDialog(this, \"卡号不存在或密码错误!\\n 21

江苏科技大学

重新输入!\ \"错误\ return; } Card objCard = CardDBAM.getCardData(userName); String type = objCard.getStyle();// 获得卡号类型 if (type.equals(\"1\") == false && type.equals(\"2\") == false) { JOptionPane.showMessageDialog(this, \"非管理员帐户不能登陆服务端\\"警告\ JOptionPane.WARNING_MESSAGE); return; } // 帐户,密码验正通过,即可登陆服务端 ServerManageFrm serverManage = new ServerManageFrm(); serverManage.show(); this.hide(); } catch (Exception ex) { JOptionPane.showMessageDialog(this, \"发生错误:\" + ex.getMessage(), \"错误\ this.dispose(); } } }

class FrmServer_btnOK_actionAdapter implements ActionListener { private FrmServer adaptee; FrmServer_btnOK_actionAdapter(FrmServer adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnOK_actionPerformed(e); } }

class FrmServer_btnClose_actionAdapter implements ActionListener { private FrmServer adaptee; FrmServer_btnClose_actionAdapter(FrmServer adaptee) { this.adaptee = adaptee;

22

江苏科技大学 }

}

public void actionPerformed(ActionEvent e) { adaptee.btnClose_actionPerformed(e); }

6.3 客户端模块编码

package com.dinxinsky.netbar.client;

import java.awt.Color; import java.awt.Font;

import java.awt.Rectangle;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Date;

import javax.swing.BorderFactory; import javax.swing.Icon;

import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.UIManager;

import javax.swing.border.TitledBorder;

import com.dinxinsky.netbar.client.set.LogoutComputerPanel; import com.dinxinsky.netbar.client.set.LookConsumePanel; import com.dinxinsky.netbar.client.set.SetPasswordPanel;

23

江苏科技大学

import com.dinxinsky.netbar.client.set.SettleAccountsDialog;

public class LandingOKPanel extends JPanel { private FrmClient mainfrmClient; public LandingOKPanel(FrmClient frmClient) { try { mainfrmClient = frmClient; jbInit(); SimpleDateFormat HMFromat = new SimpleDateFormat(\"MM-dd HH:mm\"); String nowTime = HMFromat.format(new Date()); lblTime.setText(\"现在时间: \" + nowTime); } catch (Exception ex) { ex.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(null); setPanel.setBorder(BorderFactory.createRaisedBevelBorder()); setPanel.setBounds(new Rectangle(184, 9, 119, 178)); setPanel.setLayout(null); btnSetPassword.setBounds(new Rectangle(17, 18, 83, 23)); btnSetPassword.setText(\"修改密码\"); btnSetPassword .addActionListener(new LandingOKPanel_btnSetPassword_actionAdapter(

this)); btnDisplayBalance.setBounds(new Rectangle(17, 58, 83, 23)); btnDisplayBalance.setText(\"查看消费\"); btnDisplayBalance .addActionListener(new LandingOKPanel_btnDisplayBalance_actionAdapter(

this)); btnLogout.setBounds(new Rectangle(17, 98, 83, 23)); btnLogout.setActionCommand(\"注销本机\"); btnLogout.setText(\"注销本机\"); btnLogout.addActionListener(new LandingOKPanel_btnLogout_actionAdapter( this)); btnCheckOut.setBounds(new Rectangle(17, 138, 83, 23)); btnCheckOut.setText(\"自助结账\"); btnCheckOut

24

江苏科技大学

}

.addActionListener(new LandingOKPanel_btnCheckOut_actionAdapter( this));

lblWelcome.setFont(new java.awt.Font(\"新宋体\lblWelcome.setForeground(UIManager.getColor(\"textText\")); lblWelcome.setText(\"欢迎登陆!\");

lblWelcome.setBounds(new Rectangle(48, 96, 96, 28)); lblTime.setForeground(Color.darkGray); lblTime.setToolTipText(\"\");

lblTime.setBounds(new Rectangle(27, 145, 131, 15)); lblAuthor.setForeground(Color.darkGray); lblAuthor.setText(\"Author : DengSheng\");

lblAuthor.setBounds(new Rectangle(37, 57, 109, 15)); jLabel2.setForeground(Color.red);

jLabel2.setText(\"网吧计费管理系统客户端\");

jLabel2.setBounds(new Rectangle(27, 27, 132, 15)); lblCardId.setForeground(UIManager .getColor(\"CheckBoxMenuItem.acceleratorForeground\")); lblCardId.setBorder(BorderFactory.createEtchedBorder()); lblCardId.setText(\"存储卡号\");

lblCardId.setBounds(new Rectangle(95, 233, 54, 15)); lblImage1.setIcon(imageIcon);// 设置背景

lblImage1.setBounds(new Rectangle(0, 0, 320, 230)); lblImage2.setIcon(imageIcon1);// 设置背景

lblImage2.setBounds(new Rectangle(0, 0, 120, 180)); this.add(setPanel);

setPanel.add(btnSetPassword); setPanel.add(btnDisplayBalance); setPanel.add(btnLogout); setPanel.add(btnCheckOut); setPanel.add(lblImage2); this.add(lblCardId); this.add(jLabel2); this.add(lblTime); this.add(lblAuthor); this.add(lblWelcome); this.add(lblImage1);

JPanel setPanel = new JPanel();

TitledBorder titledBorder1 = new TitledBorder(\"\"); JButton btnSetPassword = new JButton(); JButton btnDisplayBalance = new JButton(); JButton btnLogout = new JButton(); JButton btnCheckOut = new JButton();

25

江苏科技大学

TitledBorder titledBorder2 = new TitledBorder(\"\"); JLabel lblWelcome = new JLabel(); JLabel lblTime = new JLabel(); JLabel lblAuthor = new JLabel(); JLabel jLabel2 = new JLabel(); public JLabel lblCardId = new JLabel();// 存储当前登陆的卡号 Icon imageIcon = new ImageIcon(\"image\\\\ClientBackground.gif\");// 背景对象 Icon imageIcon1 = new ImageIcon(\"image\\\\setPanelBackground.gif\");// 背景对象 JLabel lblImage1 = new JLabel(); JLabel lblImage2 = new JLabel(); public void btnSetPassword_actionPerformed(ActionEvent e) { SetPasswordPanel setPasswordPanel = new SetPasswordPanel(mainfrmClient); mainfrmClient.remove(mainfrmClient.getContentPane()); mainfrmClient.getContentPane().add(setPasswordPanel); mainfrmClient.setContentPane(setPasswordPanel); setPasswordPanel.lblCardId.setText(lblCardId.getText());// 传递卡号 mainfrmClient.show(); } public void btnDisplayBalance_actionPerformed(ActionEvent e) { LookConsumePanel lookConsumePanel = new LookConsumePanel(mainfrmClient,

lblCardId.getText()); mainfrmClient.remove(mainfrmClient.getContentPane()); mainfrmClient.getContentPane().add(lookConsumePanel); mainfrmClient.setContentPane(lookConsumePanel); lookConsumePanel.lblCardId.setText(lblCardId.getText());// 传递卡号 mainfrmClient.show(); }

public void btnLogout_actionPerformed(ActionEvent e) { LogoutComputerPanel logoutComputerPanel = new LogoutComputerPanel( mainfrmClient); mainfrmClient.remove(mainfrmClient.getContentPane()); mainfrmClient.getContentPane().add(logoutComputerPanel); mainfrmClient.setContentPane(logoutComputerPanel); logoutComputerPanel.lblCardId.setText(lblCardId.getText());// 传递卡号 mainfrmClient.show(); } public void btnCheckOut_actionPerformed(ActionEvent e) {

26

江苏科技大学

SettleAccountsDialog sad = new SettleAccountsDialog(mainfrmClient, lblCardId.getText()); sad.lblCardId.setText(lblCardId.getText());// 传递卡号 sad.show(true); } }

class LandingOKPanel_btnDisplayBalance_actionAdapter implements ActionListener { private LandingOKPanel adaptee; LandingOKPanel_btnDisplayBalance_actionAdapter(LandingOKPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnDisplayBalance_actionPerformed(e); } }

class LandingOKPanel_btnSetPassword_actionAdapter implements ActionListener { private LandingOKPanel adaptee; LandingOKPanel_btnSetPassword_actionAdapter(LandingOKPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnSetPassword_actionPerformed(e); } }

class LandingOKPanel_btnLogout_actionAdapter implements ActionListener { private LandingOKPanel adaptee; LandingOKPanel_btnLogout_actionAdapter(LandingOKPanel adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btnLogout_actionPerformed(e); } }

class LandingOKPanel_btnCheckOut_actionAdapter implements ActionListener {

27

江苏科技大学

}

private LandingOKPanel adaptee;

LandingOKPanel_btnCheckOut_actionAdapter(LandingOKPanel adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.btnCheckOut_actionPerformed(e); }

6.4 服务端模块编码

package com.dinxinsky.netbar.server;

import java.awt.Rectangle;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.Icon;

import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem;

import com.dinxinsky.netbar.server.manage.AddMoney; import com.dinxinsky.netbar.server.manage.DeleteCard; import com.dinxinsky.netbar.server.manage.NewCard;

import com.dinxinsky.netbar.server.manage.NewComputer; import com.dinxinsky.netbar.server.manage.SetComputerArea; import com.dinxinsky.netbar.server.manage.SetUnitPrice;

import com.dinxinsky.netbar.server.manage.UpAndDelComputer; import com.dinxinsky.netbar.server.manage.UpdateCard; public class ServerManageFrm extends JFrame { public ServerManageFrm() { try { pack(); jbInit();

28

江苏科技大学

CardManagePane cardManage = new CardManagePane(); this.setContentPane(cardManage); this.show(); } catch (Exception ex) { } }

private void jbInit() throws Exception { this.setJMenuBar(menuBar); this.setResizable(false); // this.setSize(new Dimension(700, 500)); //设置大小 this.setBounds(new Rectangle(90, 80, 850, 590)); // 设置大小 位置 this.getContentPane().setLayout(null); this.setTitle(\"服务端管理\"); userMenu.setMnemonic('U'); userMenu.setText(\"卡号管理(U)\"); computerMenu.setMnemonic('C'); computerMenu.setText(\"客户端管理(C)\"); systemMenu.setMnemonic('S'); systemMenu.setText(\"系统管理(S)\"); helpMenu.setMnemonic('H'); helpMenu.setText(\"帮 助(H)\"); exitMenu.setMnemonic('E'); exitMenu.setText(\"退 出(E)\"); systemMenu_areaSet.setMnemonic('A'); systemMenu_areaSet.setText(\"区域调整A)\"); systemMenu_areaSet .addActionListener(new

ServerManageFrm_systemMenu_areaSet_actionAdapter(

this)); systemMenu_chargeSet.setMnemonic('C'); systemMenu_chargeSet.setText(\"费率调整(C)\"); systemMenu_chargeSet .addActionListener(new

ServerManageFrm_systemMenu_chargeSet_actionAdapter(

this)); computerMenu_addComputer.setMnemonic('A'); computerMenu_addComputer.setText(\"添加客户端(A)\"); computerMenu_addComputer .addActionListener(new

ServerManageFrm_computerMenu_addComputer_actionAdapter(

this)); computerMenu_adjust.setMnemonic('S');

29

江苏科技大学

computerMenu_adjust.setText(\"客户端调整(S)\"); computerMenu_adjust .addActionListener(new

ServerManageFrm_computerMenu_adjust_actionAdapter(

this)); userMenu_newCard.setMnemonic('N'); userMenu_newCard.setText(\"新卡注册(N)\"); userMenu_newCard .addActionListener(new

ServerManageFrm_userMenu_newCard_actionAdapter(

this)); userMenu_deleteCard.setMnemonic('D'); userMenu_deleteCard.setText(\"删除卡号(D)\"); userMenu_deleteCard .addActionListener(new

ServerManageFrm_userMenu_deleteCard_actionAdapter(

this)); exitMenu_logon.setMnemonic('L'); exitMenu_logon.setText(\"注销(L)\"); exitMenu_logon .addActionListener(new

ServerManageFrm_exitMenu_logon_actionAdapter(

this)); exitMenu_exitManage.setMnemonic('E'); exitMenu_exitManage.setText(\"退出系统(E)\"); exitMenu_exitManage .addActionListener(new

ServerManageFrm_exitMenu_exitManage_actionAdapter(

this)); helpMenu_help.setText(\"帮助主题(H)\"); helpMenu_help .addActionListener(new

ServerManageFrm_helpMenu_help_actionAdapter(

this)); helpMenu_aboutAuthor.setMnemonic('A'); helpMenu_aboutAuthor.setText(\"关于 Copyright(A)\"); helpMenu_aboutAuthor .addActionListener(new

ServerManageFrm_helpMenu_aboutAuthor_actionAdapter(

this)); menuBar.setToolTipText(\"\"); userMenu_AddMoney.setIcon(null); userMenu_AddMoney.setMnemonic('A'); userMenu_AddMoney.setText(\"充 值(A)\");

30

江苏科技大学

userMenu_AddMoney .addActionListener(new

ServerManageFrm_userMenu_AddMoney_actionAdapter(

this)); userMenu_updateCard.setMnemonic('U'); userMenu_updateCard.setText(\"修改卡号资料(U)\"); userMenu_updateCard .addActionListener(new

ServerManageFrm_userMenu_updateCard_actionAdapter(

this)); menuBar.add(userMenu); menuBar.add(computerMenu); menuBar.add(systemMenu); menuBar.add(helpMenu); menuBar.add(exitMenu); systemMenu.add(systemMenu_areaSet); systemMenu.addSeparator(); systemMenu.add(systemMenu_chargeSet); computerMenu.add(computerMenu_addComputer); computerMenu.addSeparator(); computerMenu.add(computerMenu_adjust); userMenu.add(userMenu_newCard); userMenu.add(userMenu_deleteCard); userMenu.addSeparator(); userMenu.add(userMenu_AddMoney); userMenu.add(userMenu_updateCard); exitMenu.addSeparator(); exitMenu.add(exitMenu_logon); exitMenu.addSeparator(); exitMenu.add(exitMenu_exitManage); helpMenu.add(helpMenu_help); helpMenu.addSeparator(); helpMenu.add(helpMenu_aboutAuthor); }

JMenuBar menuBar = new JMenuBar(); JMenu computerMenu = new JMenu(); JMenu systemMenu = new JMenu(); JMenu userMenu = new JMenu(); JMenu helpMenu = new JMenu(); JMenu exitMenu = new JMenu();

JMenuItem systemMenu_areaSet = new JMenuItem(); JMenuItem systemMenu_chargeSet = new JMenuItem();

JMenuItem computerMenu_addComputer = new JMenuItem();

31

江苏科技大学

JMenuItem computerMenu_adjust = new JMenuItem(); JMenuItem userMenu_newCard = new JMenuItem(); JMenuItem userMenu_deleteCard = new JMenuItem(); JMenuItem exitMenu_logon = new JMenuItem();

JMenuItem exitMenu_exitManage = new JMenuItem(); JMenuItem helpMenu_help = new JMenuItem();

JMenuItem helpMenu_aboutAuthor = new JMenuItem();

Icon logoIcon = new ImageIcon(\"WindowBackground.gif\");// 背景对象 JMenuItem userMenu_AddMoney = new JMenuItem(); JMenuItem userMenu_updateCard = new JMenuItem();

public void exitMenu_logon_actionPerformed(ActionEvent e) { FrmServer frmServer = new FrmServer(); frmServer.show(); this.hide(); }

public void exitMenu_exitManage_actionPerformed(ActionEvent e) { System.exit(0); }

public void userMenu_newCard_actionPerformed(ActionEvent e) { NewCard newCard = new NewCard(); newCard.show(); }

public void userMenu_deleteCard_actionPerformed(ActionEvent e) { DeleteCard delectCard = new DeleteCard(); delectCard.show(); }

public void userMenu_AddMoney_actionPerformed(ActionEvent actionEvent) {

AddMoney addMoney = new AddMoney(); addMoney.show(); }

public void computerMenu_addComputer_actionPerformed(ActionEvent e) {

NewComputer newComputer = new NewComputer(); newComputer.show(); }

public void helpMenu_aboutAuthor_actionPerformed(ActionEvent e) {

32

江苏科技大学

CopyrightDialog copyright = new CopyrightDialog(); copyright.show(); }

public void userMenu_updateCard_actionPerformed(ActionEvent e) { UpdateCard updateCard = new UpdateCard(); updateCard.show(); }

public void helpMenu_help_actionPerformed(ActionEvent e) { }

public void computerMenu_adjust_actionPerformed(ActionEvent e) { UpAndDelComputer upAndDelCmp = new UpAndDelComputer(); upAndDelCmp.show(); }

public void systemMenu_chargeSet_actionPerformed(ActionEvent e) { SetUnitPrice setPrice = new SetUnitPrice(); setPrice.show(); }

public void systemMenu_areaSet_actionPerformed(ActionEvent e) { SetComputerArea setArea = new SetComputerArea(); setArea.show(); } }

class ServerManageFrm_systemMenu_areaSet_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_systemMenu_areaSet_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.systemMenu_areaSet_actionPerformed(e); } }

class ServerManageFrm_systemMenu_chargeSet_actionAdapter implements

33

江苏科技大学

ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_systemMenu_chargeSet_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.systemMenu_chargeSet_actionPerformed(e); } } class ServerManageFrm_helpMenu_help_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_helpMenu_help_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.helpMenu_help_actionPerformed(e); } }

class ServerManageFrm_computerMenu_adjust_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_computerMenu_adjust_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.computerMenu_adjust_actionPerformed(e); } }

class ServerManageFrm_userMenu_updateCard_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

34

江苏科技大学

ServerManageFrm_userMenu_updateCard_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.userMenu_updateCard_actionPerformed(e); } }

class ServerManageFrm_helpMenu_aboutAuthor_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_helpMenu_aboutAuthor_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.helpMenu_aboutAuthor_actionPerformed(e); } } class ServerManageFrm_computerMenu_addComputer_actionAdapter implements

ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_computerMenu_addComputer_actionAdapter( ServerManageFrm adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.computerMenu_addComputer_actionPerformed(e); } }

class ServerManageFrm_userMenu_AddMoney_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

35

江苏科技大学

ServerManageFrm_userMenu_AddMoney_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent actionEvent) { adaptee.userMenu_AddMoney_actionPerformed(actionEvent); } }

class ServerManageFrm_userMenu_deleteCard_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_userMenu_deleteCard_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.userMenu_deleteCard_actionPerformed(e); } } class ServerManageFrm_exitMenu_logon_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_exitMenu_logon_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent actionEvent) { adaptee.exitMenu_logon_actionPerformed(actionEvent); } }

class ServerManageFrm_exitMenu_exitManage_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_exitMenu_exitManage_actionAdapter(ServerManageFrm adaptee) {

36

江苏科技大学

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent actionEvent) { adaptee.exitMenu_exitManage_actionPerformed(actionEvent); } } class ServerManageFrm_userMenu_newCard_actionAdapter implements ActionListener {

private ServerManageFrm adaptee;

ServerManageFrm_userMenu_newCard_actionAdapter(ServerManageFrm adaptee) {

this.adaptee = adaptee; }

public void actionPerformed(ActionEvent actionEvent) { adaptee.userMenu_newCard_actionPerformed(actionEvent); } }

第七章 系统测试

7.1 系统测试目标

系统测试的目标是想以最少的时间和人力发现系统中潜在的各种错误和缺陷。如果成功的实现了测试,就能够发现系统中的错误,并及时的更改过来。测试的另一个收获是它能够证明此次设计的系统功能和性能与需求说明相符。

7.2 具体测试

7.2.1 登录模块测试

1、用户登录,弹出的窗体如下所示: 2、

37

江苏科技大学

图7.1

如果输入不正确的信息就会弹出出错框,如图7.2所示。

图7.2

7.2.2 客户端测试

用户登陆后,经过一段时间,客户端会按照服务端设置的上机费用,计算出这段时间的花费,发送到数据库,更新余额。用户登陆后显示(如图7.3),点击确定后出现客户端界面(如图7.4),在服务端数据会相应更新(如图7.5)。

38

江苏科技大学

图7.3

39

江苏科技大学

结束语

历时两个月的实践,基于MY SQL的JAVA语言网吧管理系统的功能已经基本完成。管理员可以通过本系统进行账号添加、删除、账号充值,客户端机器添加和区域调整。本系统的开发与设计实现了全部的预定功能。但由于时间和经验的,本系统还有许多不甚完善的地方仍需改进,如对用户输入数据的识别方面,不能对其合法性进行了验证。希望今后能够通过对算法的改进,实现本模块的设计优化。

通过本次设计,我对编程语言JAVA、MY SQL 数据库等设计开发工具有了更深程度的理解和运用。同时,在此次毕业设计中,充分锻炼和培养了自己科学、缜密、创新的思维方式以及勤奋、严谨、专注的工作态度。总得来说,这两个多月的生活让我过得非常充实!

致谢辞

本系统的设计开发及论文的创作是在指导老师宋晓宁的悉心指导下完成的。他严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从系统的前期需求分析到项目的最终完成,宋晓宁老师都始终给予我细心的指导和不懈的支持。在此谨向宋老师致以诚挚的谢意和崇高的敬意!

此外还要感谢多年来与我朝夕相处的同学们,感谢你们一直以来给予我的关心与帮助!

在毕业设计即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

40

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务