网吧计费系统软件

网吧计费系统软件[java毕业论文下载]

目   录

 

       I

第一章    绪论 1

1.1  选题的背景和意义 1

1.2  研究内容 1

1.2.1  服务端 1

1.2.2  客户端 1

1.3  系统开发技术 2

1.3.1  VB.NET 2

1.3.2  Access 2003数据库 2

第二章 系统设计 3

2.1  系统需求分析 3

2.1.1  系统需求分析 3

2.1.2  传统网吧管理 3

2.1.3  系统优点 3

2.1.4  功能需求 3

2.2  系统的设计原则 3

2.3  系统设计的思想 4

2.4  系统功能描述 4

2.4.1  操作员管理功能模块 5

2.4.2  用户管理功能模块 6

2.4.3  计算机管理功能模块 7

2.5  系统设计的类结构 8

第三章  数据库设计 10

3.1  数据库的需求分析 10

第四章 通信过程与VB.NET中的通信类 14

4.1  通信过程 14

4.2  VB.NET 中的通信类 15

4.2.1  TcpListener 16

4.2.2  TcpClient 16

4.2.3  NetworkStream 17

4.2.4  StreamReader 17

4.2.5  StreamWriter 18

第五章 系统的实现 19

5.1  公共模块 19

5.2  服务器端的实现 19

5.2.1  服务器端登录 19

5.2.2  添加操作员 21

5.2.3  编辑操作员 23

5.2.4  删除操作员 24

5.2.5  修改密码 25

5.2.6  设置上机费率 26

5.2.7  锁定屏幕 27

5.2.8  用户充值 28

5.2.9  查询费用 29

5.2.10  添加用户信息 30

5.2.11  修改用户信息、删除用户信息 31

5.2.12  添加计算机信息 33

5.2.13  修改/删除计算机信息 33

5.3  客户端登录 35

5.3.1  登录 35

5.3.2  下机 36

5.3.3  设置 37

5.3.4  退出 37

第六章:总结 38

6.1  网吧计费系统的开发技术特点 38

6.2  系统的不足与前景 38

参考文献 39

    40

 

 

 

 

 

 

 

 

机 房 计 费 系 统 软 件

 

摘      要

 

本课题研究的网吧计费系统是一款基于C/S结构,采用Access 2003 数据库,利用Visual Basic.net设计开发的网吧计费系统。文中主要介绍了系统的基本功能和系统结构组成情况,内容包括系统需求分析、系统设计原则、系统设计思想、系统功能模块描述、数据库设计、系统通信过程、通信协议等,同时还对开发环境Visual Basic.net、Access 2003数据库、Visual Basic.net技术的使用进行简单介绍,并列出了一些程序代码以说明该系统应用程序设计的实现过程。

 

关键字  C/S 结构 Access 2003  Visual Basic.net 通信协议

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ACCOUNTING SYSTEM SOFTWARE ON COMPUTER LAB

 

Abstract     

This thesis focus the study on computer lab accounting system which is based on C/S structure, designed and developed by Access 2003 databases and Visual Basic.net. In the article, author mainly analyzes some basic functions and composition of this system, which including system demanding analysis, system design principle, system design idea, description of functional module, Database design, processes of system communication and agreements of communication. In addition, this thesis introduces briefly on use of Visual Basic.net, Access 2003 database, and Visual Basic.Net, meanwhile, lists some programming codes to explain the realization process of this system applying the programs.

 

 

Key words C/S structure, Access 2003, Visual Basic.net, communication agreement

 

 

 

 

 

第一章    绪论

1.1 选题的背景和意义

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

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

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

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

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

1.2  研究内容

利用VB.NET、Access2003 等开发工具开发一套基于c/s框架结构的网吧计费系统软件, 该系统要求由服务端、客户端2个模块组成。各模块主要实现以下功能:

1.2.1  服务端

(1). 操作员管理

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

(2). 用户信息管理

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

(3). 计算机信息管理

主要包括团体添加计算机信息、修改计算机信息、删除计算机信息3个模块。这里要记录计算机本身的配置信息以及使用情况。

(4). 上机计费

主要负责接收客户端程序发送来的上、下机信息,进行上、下机的处理,在处理上机登录时要进行用户的合法性检测。检测通过后产生一条用户上机记录,记录下计算机代码、卡号、登录开始时间等信息。处理下机信息时,要记录下此用户下机的详细时间。

计费时要将当前使用费用记录在上机记录中,并在用户的档案记录的余额字段中扣减,还要判断用户的余额情况,如果余额不足,要及时发送一个网络消息给用户。

1.2.2  客户端

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

1.3  系统开发技术

1.3.1  VB.NET

VB.net是微软最新平台技术,是.net   framework   SDK的一种语言。编译以后生成的可执行文件被称为Assembly,即程序集。 

VB.net的版本号是Visual  Basic  7.0,它的运行是建立在CLR(Common   Language   Runtime)和MSIL(Microsoft   Intermediate   Language)虚拟器上的。其实,它的机制和Java差不多。   

VB.net的语言特点有下:

(1). 代码托管。被托管的代码享受.net   framework提供的安全保障和垃圾回收机制,但是这也同时表明,程序被框在Framework里面了。API变得不太方便。

(2). 强大的面向对象特性。现在VB7已经是一个完全的面向对象程序。它已经支持类的各种特性:继承,函数的覆盖,重载,虚拟,隐藏…… 

(3). 功能强大,程序界面更标准。

(4). 程序代码结构化更强,开发环境舒适体贴。

1.3.2  Access 2003数据库

Access是Microsoft 公司推出的一款优秀的数据库管理软件,最适合用来作为中、小规模数据量应用软件的底层数据库。因为其功能强大、可靠、高效的管理方式,支持网络和多媒体技术,简单易学,便于开发等主要特点,目前已经获得相当广泛的应用。Access本身就是一个采用面向对象技术开发的数据库系统软件,它能很好地支持面向对象技术。Access的数据库对象都具有属性和方法等面向对象技术的基本特征。

在Access 2003版本中,Access使用了表格来实现数据的采集、维护、分析和传播等功能,此外,它还提供了关系型数据库所要求的相当丰富的数据运算和数据汇总能力。

其主要特点如下:

(1). 完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。

(2). 强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器 (Client/Server) 结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。

(3). 可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。

(4). 作为Office套件的一部分,可以与Office集成,实现无缝连接。

(5). 能够利用Web检索和发布数据,实现与Internet的连接。

    Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。

 

第二章 系统设计

2.1  系统需求分析

2.1.1  系统需求分析

(1). 需求分析的定义:需求分析是对用户需求的真正明确,是对要解决的问题的彻底理解,是一个软件开发的最重要阶段,需要了解和澄清用户的需求 ,严格的制定被开发的软件系统的需求规格说明书。

(2). 需求分析的任务:

开发软件系统最为困难的部分是准确说明开发什么,最为困难的概念性工作便是编写出详细的技术需求,这包括所有面向用户,面向机器和其他软件系统的接口,同时这也是一旦出错,将最终会给系统带来极大损害的部分,并且以后再对它修改也极为困难的。这些定义强调的是:产品是怎样的,而并非产品是怎样设计构造的。

之说所说到需求分析是最重要,就因为它具有决策性、方向性、策略性的作用。因而对于任何一款软件来说,做好它的根本在于它的需求分析。

2.1.2  传统网吧管理

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

2.1.3  系统优点

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

(1).管理人员的工作量。

(2).计费准确无误。

(3).避免人情上机的尴尬。

(4).工作迅速快捷。

2.1.4  功能需求

    网吧计费系统的主要功能有:

(1). 服务端(包括操作员管理,用户信息管理,计算机信息管理)

(2). 客户端(用户使用计算机的所有情况)

(3). 系统数据的初始化,查询,修改,删除。

2.2  系统的设计原则

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

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

(2). 系统应具有良好的稳定性,实用性,安全性。设计理念应是客户容易使用。

(3). 数据库结构设计合理,各类属性符合要求。

2.3  系统设计的思想

(1). 系统设计结构

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

 

 

                           图2.1   系统结构图

(2). 系统实现技术

系统实现所需开发环境Visual Basic.NET,它是下一代的Visual Basic。而并不是简单的在Visual Basic 6.0上在添加一些新特性而已,微软重新设计了产品以便使开发者能够更加容易的开发分布式应用,例如基于WEB的程序以及多层系统。Visual Basic.NET中有两种窗体包,Windows窗体以及Web窗体;一个新版的ADO用于接受离线数据源;新的语言,移走了原来的关键字,提高Type数据的安全性以及提供低级别结构以满足高级别开发者的需求。这些新的特性为Visual Basic开发者提供了新的开发窗口:通过Web窗体以及ADO.NET,你可以快速开发可扩展的Web站点;通过继承,该语言实现了真正的支持面向对象编程(object-oriented programming);Windows窗体本身支持可视继承;现在展开程序就像拷贝可执行文件和控件到另一个目录那样简单。 Visual Basic.NET现在完全集成在其它的Microsoft Visual Studio .NET语言中,不仅可以通过不同的语言开发组件,而且通过交叉语言继承,可以从用一种语言编写的类中派生用另一种语言编写的类。

(3). 系统的安全性

    为了使系统能够在使用的过程中,用户利益得到保障。在系统中应设计管理模块,根据不同的客户设定不同的权限,体现了追求系统人工智能化,保证了只有管理员才能对整个系统的完全控制。

2.4  系统功能描述 

对系统的功能进行分析,综合本系统设计的服务器端与客户端,总结整个系统功能模块,如图2.2所示

                          图2.2  系统功能模块图

     本系统要求对用户使用网吧计算机资源的整个过程进行有效的管理。客户端保证用户在登录系统前无法使用计算机。服务器端实现系统的各种功能,包括系统管理、用户、计算机信息的管理功能。服务器端的功能需求具体表述有:

2.4.1  操作员管理功能模块

该模块主要提供操作员登录、操作员管理、修改密码和设置上机费用的功能。操作员管理具体包括添加、编辑和删除操作员,能够按模块的方式设置操作员不同的权限。(如图2.3所示)

  

 

图2.3 操作员管理模块图

 

2.4.2 用户管理功能模块

该模块主要提供用户充值、添加、查询、修改和删除用户信息的功能。这里要区分不同的用户类型,按不同的用户类型设置上机费用。(如图2.4所示)

 

 

        

图2.4  用户信息管理模块图

 

2.4.3  计算机管理功能模块

该模块主要提供添加、修改和删除计算机信息功能。这里不仅需要记录计算机本身的配置信息,还需要记录计算机的连接和使用情况。(如图2.5所示)

 

 

图2.5  计算机信息管理模块图

 

2.5 系统设计的类结构

本系统代码结构分为前端界面和底层的类代码。

前端界面包括服务器端的前界端面和客户端的前端界面,服务器端的前端界面面向操作员,客户端的前端界面面向计算机用户。底层代码包括ClsSuperUser类、ClsUser类、ClsComputer 类、ClsFeeRules类、ClsDBOperation类、ClsServer 类和ClsClient类。其中ClsDBOperation类负责对数据库进行一些基本的操作;ClsSuperUser类、ClsUser类、ClsComputer 类分别负责数据库中管理员,用户和计算机信息的操作;ClsServer 类和ClsClient类分别负责服务器和客户端的通信。如图2.6所示

 

 

                       图2.6   系统代码结构设计图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第三章  数据库设计

 

数据库设计是信息管理系统中的一个基础工作,在整个开发工作中占有相发重要的份量。数据库的设计目的在于提供高的数据库存储效率,保证数据库的完整性和一致性。设计数据库系统时应先了解用户的各方面需求,包括现有系统的需求及将有可能增加的需求。

3.1  数据库的需求分析

   用户的需求具体体现在各种信息的提供、保存、更新、和查询,这就要求数据库存结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,是系统设计的根本。

   基于计费系统的需求,通过业务流程和数据流程的分析,需设计以下数据表和数据字段。

1. 操作员信息表

包括的数据字段有:操作员账号、密码、操作员真实姓名、用户模块、计算机模块、备注。其中关键字段是操作员的账号。如表3.1所示

字段名

意义

字段类型

字段大小

关键字

UserName

操作员账号

文本

6

Password

密码

文本

10

 

RealName

操作员真实姓名

文本

10

 

ModUser

用户模块

文本

3

 

ModComputer

计算机模块

文本

3

 

Memo

备注

备注

 

 

表3.1 操作员信息表

 

设计完成后,保存信息为“tbSuperUser”,为了在程序中检验数据库存的合理性以及测试程序的效果,应在数据库中输入一些数据。如图3.1所示:

 

图3.1 操作员信息表图

 

2. 用户信息表:

包括的数据字段有:用户名、密码、用户真实姓名、用户类型、账号余额、出生日期、联系电话、有效日期、证件类型、证件号码、住址、邮编、备注。其中用户名有关键字段。如表3.2所示

 

字段名

意义

字段类型

字段大小

关键字

UserName

用户名

文本

6

Password

密码

文本

10

 

RealName

用户真实姓名

文本

10

 

Group

用户类型

文本

3

 

Fee

账号余额

数字

单精度

 

BirthDate

出生日期

日期

 

 

Phone

联系电话

文本

20

 

ValidDate

有效日期

日期

 

 

CreateCarDate

创建日期

日期

 

 

CertificateType

证件类型

文本

10

 

CertificateNo

证件号码

文本

20

 

Address

住址

文本

50

 

PostCode

邮编

文本

6

 

Memo

备注

备注

 

 

表3.2  用户信息表

 

设计完成后,保存信息为“tbUser”,为了检验数据库设计的合理性及测试程序的效果,应先在数据库中输入一些数据,如图3.2所示

 

                           图3.2  用户信息表图

 

3. 计算机信息表:

包括的数据字段有:计算机名称,用户名、是否连接、IP地址、网吧编号、机位编号、配置、备注。其中计算机名称是关键字段。如表3.3所示

字段名

意义

字段类型

字段大小

关键字

ComputerName

计算机名称

文本

17

UserName

用户名

文本

10

 

Connected

是否连接

文本

1

 

IPAddress

IP地址

文本

15

 

RoomNo

网吧编号

文本

2

 

PositionNo

机位编号

文本

3

 

Config

配置

文本

50

 

Memo

备注

备注

 

 

表3.3  计算机信息表

 

设计完成后,保存信息为“tbCompter”,为了检验数据库设计的合理性及测试程序的效果,应先在数据库中输入一些数据,如图3.3所示

 

图3.3  计算机信息表图

 

4. 用户费用信息表:

包括的数据字段有:用户名、登录时间,下机时间、本次上机时间、本次上机费用、计算机的房间编号+机位编号。如表3.4所示

字段名

意义

字段类型

字段大小

关键字

UserName

用户名

文本

10

 

LoginTime

登录时间

日期

10

 

LogoffTime

下机时间

日期

日期

 

TotalHour

本次上机时间

数字

单精度

 

Fee

本次上机费用

数字

单精度

 

Computer

计算机的房间编号+机位编号

文本

10

 

表3.4   用户费用信息表

 

5. 费率信息表:

包括的数据字段有:用户类型和费率。如表3.5所示

字段名

意义

字段类型

字段大小

关键字

Group

用户类型

文本

10

Amount

费率

数字

单精度

 

表3.5   用户费率信息表

 

用户费率可以经操作员定义,根据用户类型的不同,制定不同费率。如图3.4所示

 

 

 

图3.4 用户费率信息表图

 

 

 

第四章 通信过程与VB.NET中的通信类

4.1  通信过程

网吧计费系统有异于其它信息管理系统,它的工作原理如图4.1所示,因此服务器端与客户端机器通信就必然会采用异步通信的方式,在主程序启动后,程序在后台同时启动别一个线程,通过Socket对象开始侦听客户端。当客户端传入一个连接请求时,后台程序将接受该请求,同时实例化一个Socket对象负责与该客户端的Socket对象进行通信。如果程序没有退出,进入下一个侦听循环,则后台程序就实现了一点对多点的通信模式。

 

 

                       图4.1后台程序工作流程图

    

 服务器端与客户端的具体通信过程如图4.2所示。具体工作流程先是客户端发出连接请求,正常情况,服务器端必定接受请求。客户端再发送一个连接信息,该信息包含客户端机器的一些信息,服务器端将接受该信息,并对其进行相应处理,再回发一个确认信息给客户端。这样就表现服务端与客户端已成功连接。此时,客户端发送登录信息,或在登录成功后,间期性发送连接信息,或在下机时发送注销信息,同时服务器端对这些信息进行相应处理,并反馈客户端。这就是一个完整的客户端与服务器端的通信过程。

 

 

 

                  图4.2服务器端与客户端的完整通信过程图

 

4.2  VB.NET 中的通信类

 

TCP协议是TCP/IP协议簇中的传输层中的一个协议,也是TCP/IP协议簇最为重要的协议之一。TCP协议是一种面向连接的,并提供可靠的、完整的、安全的数据传送的网络协议。它提供可靠字节服务的协议。在网络中通过TCP协议传送数据之前,发送方和接收方之间必须建立连接,这种连接就是所谓的"握手"。网络中TCP应用,如同日常生活中的打电话,在通话之前,首先要拨号、震铃(犹如发送方向接收方提出TCP连接申请,并等待TCP连接申请通过)。直到对方拿起电话时(发送方和接收方的TCP连接已经建立),就可以通话了(传送数据)。本系统是基于TCP/IP协议网络数据传送的。

在.Net FrameWork SDK中提供了很多用以实现TCP协议或与之相关协议的类库,现介绍在系统设计中用到的5个类,即:TcpListener类、TcpClient类、NetworkStream类、StreamReader类和StreamWriter类。TcpListener主要用以侦听端口号,并接收远程主机的TCP连接申请;TcpClient主要用以提出TCP连接申请; NetworkStream类是实现TCP数据传输的基础数据流;StreamReader类的作用是通过操作NetworkStream,实现从网络接收数据;StreamWriter类的作用是通过操作NetworkStream,实现向网络传输数据。

4.2.1  TcpListener类

在本系统设计中,TcpListener类设计在服务器端,主要作用是从TCP网络客户端侦听连接, TcpListener类基于Socket 类,提供更高理念级别的TCP服务。可以使用TcpListener从TCP客户端侦听连接。像 FTP 和 HTTP 这样的应用层协议是在 TcpListener 类的基础上建立的。TcpListener类常用方法、属性及其说明,如表4.1、表4.2所示:

 

方法

说明

AcceptSocket

接受挂起的连接请求

AcceptTcpClient

接受挂起的连接请求

Pending

确定是否有挂起的连接请求

Start

开始侦听网络请求

Stop

关闭侦听器

表4.1 TcpListener类常用方法及其说明表

 

属性

说明

LocalEndpoint

获取当前TcpListener的基础EndPoint

Active

获取一个值,该值指示 TcpListener 是否正主动侦听客户端连接

Server

获取基础网络Socket

表4.2 TcpListener类常用属性及其说明表

4.2.2  TcpClient类

在本系统设计中,TcpClient类设计在客户端,主要为TCP网络服务提供客户端连接。TcpClient是类基于Socket类构建,它以更高的抽象程度提供TCP服务。TcpClient 提供了通过网络连接、发送和接收数据的简单方法。TcpClient类常用方法、属性及其说明,如表4.3、表4.4所示:

 

方法

说明

Close

关闭 TCP 连接

Connect

使用指定的主机名和端口号将客户端连接到 TCP主机

GetStream

返回用于发送和接收数据的流

表4.3 TcpClient类类常用方法及其说明表

属性

描述

LingerState

有关套接字逗留时间的信息

NoDelay

一个值,该值在发送或接收缓冲区未满时启用延迟

ReceiveBufferSize

接收缓冲区的大小

ReceiveTimeout

TcpClient在启动后为接收数据而等待的时间长度

SendBufferSize

发送缓冲区的大小

SendTimeout

在您启动发送操作后TcpClient将为接收确认而等待的时间长度

表4.4 TcpClient类类常用属性及其说明表

4.2.3  NetworkStream类

NetworkStream类主要是提供用于网络访问的基础数据流。它主要是网络数据传输的载体,并提供同步、异步方式来访问网络数据流。在vb.net程序设设计过程中,经常利用NetworkStream作为传送(StreamWriter类)和接收(StreamReader类)数据的载体。NetworkStream类常用方法、属性及其说明,如表4.5、表4.6所示:

 

方法

说明

BeginRead

开始异步读者基础数据流

BeginWrite

开始异步写入基础数据流

Close

关闭流并可选择关闭基础套接字

EndRead

结束异步读取

EndWrite

结束异步写入

Flush

刷新流中的数据

Read

从流中读取数据

Seek

将流的当前位置设置为给定值

SetLength

设置流的长度

Write

将数据写入流

 

表4.5 NetworkStream类中常用的方法及其说明表

  (注:其中"BeginRead"、"EndRead"和"BeginWrite"、"EndWrite"是二对异步方法,起作用分别相当于"Read"和"Write"方法。)

 

属性

说明

CanRead

获取当前流是否支持读取

CanSeek

获取流是否支持查找。该属性总是返回 false

CanWrite

获取当前流是否支持写入

DataAvailable

获取是否可以在流上读取数据

Length

流上可用数据的长度

Position

获取或设置流中的当前位置

表4.6 NetworkStream类中属性及其说明表

4.2.4  StreamReader类

StreamReader类能够实现对基础数据流的读操作,从而实现对经过基础数据流传送来的数据。StreamReader类常用方法、属性及其说明,如表4.7所示:

方法

说明

Close

关闭StreamReader并释放与阅读器关联的所有系统资源

DiscardBufferedData

允许StreamReader丢弃其当前数据

Peek

返回下一个可用的字符,但不使用它

Read

读取输入流中的下一个字符或下一组字符

ReadBlock

从当前流中读取最大数量的字符并从索引开始将该数据写入缓冲区

ReadLine

从当前流中读取一行字符并将数据作为字符串返回

ReadToEnd

从流的当前位置到末尾读取流

表4.7 StreamReader类中常用的方法及其说明表

 

4.2.5  StreamWriter类

StreamWriter类能够实现对基础数据流的写操作,从而实现提供基础数据流来传送数据。StreamWriter类常用方法及其说明,如表4.8所示:

方法

说明

Close

关闭当前的StreamWriter和基础流

Flush

清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流

Write

写入基础数据流

WriteLine

写入重载参数指定的某些数据,后跟行结束符

表4.8 StreamReader类中常用的方法及其说明表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第五章 系统的实现

 

创建系统数据库,服务器端程序和客户端程序后,就可以实现运行整个系统程序。

5.1  公共模块

首先在服务器端程序的公共模块中添加以下代码,运行系统登录窗口:

Sub Main ( )

     Application.EnableVisualStyles ( )

Application.DoEvents ( )

Application.Run( New FrmLogin)

End Sub

5.2 服务器端的实现

服务器端主界面分为4部分:主菜单、工具栏、广播消息面板和客户端显示板。

主菜单可以对系统的操作员信息,用户信息和计算机信息进行管理;工具栏为用户提供了一些操作的快捷方式;广播消息可以向用户发送文本消息和关机等命令;客户端的连接情况则经显示面板显示。

5.2.1  服务器端登录   

进入系统,首先是登录界面,而登录功能是任何一个数据库信息管理系统不可少的模块,设计如图5.1所示,用户需要输入用户名,密码和附加码。如果该界面判断用户名、密码和附加码都正确有效,系统将会进入到主界面。

 

 

图5.1服务端登录图

设计过程,系统首先需要判断输入附加验证码是否正确。利用附加码的目的是防止非法用户利用机器程序,这些附加码都是随机产生的,大大增加了系统的安全性,比如穷举破解密码方法在这一功能下行不通。工作流程图5.2所示

 

 

 

 

                        图5.2登录流程图  

 

根据以上流程,双击窗体上的“确定”按钮,打开代码编辑器,在按钮的Click事件中添加如下代码:

 

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

        If Label.Text = TxtAttachCode.Text Then

            NewSuperUser = New ClsSuperUser(Trim(UsernameTextBox.Text), PasswordTextBox.Text)

            If NewSuperUser.LoginConfirm Then

                Dim Frmobj As New FrmMain()

                Frmobj.Show() '显示主窗体

                Me.Finalize()

            Else

                MsgBox("输入错误,请重试", MsgBoxStyle.Critical, "信息框")

                Label.Text = ClsSuperUser.AttachCode

                Exit Sub

            End If

        Else

            MsgBox("输入错误,请重试", MsgBoxStyle.Critical, "信息框")

            Label.Text = ClsSuperUser.AttachCode

            Exit Sub

        End If

        Me.Close()

End Sub

 

5.2.2 添加操作员

添加操作员信息功能是超级用户具有的功能,通过此界面设置所添加操作员的相关信息和权限设置。所添加操作员对用户/计算机信息模块的权限分为3种:无权限、可读和可读写。添加操作员设计图如图5.3所示。

 

 

                    

图5.3添加操作员图

 

添加操作员功能只能由超级用户添加,这个设计就能使系统管理不混乱,保障系统安全性,判断“添加操作员”操作权限工作流程如图5.4所示。

 

 

                 图 5.4  判断“添加操作员”操作权限流程图

 

双击“确定”按钮,编写代码如下:

 

    Private Sub BtOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtOK.Click

        If Trim(TxtName.Text) = "" Then

            MsgBox("输入的用户名不能为空!", MsgBoxStyle.Exclamation, "信息框")

            Exit Sub

        End If

        If Trim(TxtRealName.Text) = "" Then

            MsgBox("输入的用户真实姓名不能为空!", MsgBoxStyle.Exclamation, "信息框")

            Exit Sub

        End If

        If Trim(TxtPassword.Text) = "" Then

            MsgBox("输入的密码不能为空!", MsgBoxStyle.Exclamation, "信息框")

            Exit Sub

        End If

        Dim TempUser As New ClsSuperUser(Trim(TxtName.Text), TxtPassword.Text)

        TempUser.RealName = Trim(TxtRealName.Text)

        TempUser.ModUser = Trim(ComboModUser.Text)

        TempUser.ModComputer = Trim(ComboModComputer.Text)

        TempUser.Memo = Trim(TxtMemo.Text)

        NewSuperUser.AddUser(TempUser)

        Me.Close()

    End Sub

 

5.2.3  编辑操作员

编辑操作员信息功能是超级用户具有的功能,通过此界面设置所要修改操作员的相关信息和权限设置。所编辑操作员对用户/计算机信息模块的权限分为3种:无权限、可读和可读写。编辑操作员设计图如图5.5所示。

 

 

                  

图 5.5  修改操作员信息图

 

这里需要判断用户的真实姓名和密码不能为空,对用户输入的信息合法性验证通过以后,需要对信息进行处理。处理的方法有:a.直接更新。b.先删除该用户信息,然后再添加该用户的信息。根据用户选中的用户名,构造用户信息表中查询相应用户的信息,将这些信息显示在界面上。

 

双击“保存”按钮的Click事件,编写代码如下:

 

   Private Sub BtOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtOK.Click

        If Trim(TxtRealName.Text) = "" Then

            MsgBox("输入的用户真实姓名不能为空!", MsgBoxStyle.Exclamation, "信息框")

            Exit Sub

        End If

        If Trim(TxtPassword.Text) = "" Then

            MsgBox("输入的密码不能为空!", MsgBoxStyle.Exclamation, "信息框")

            Exit Sub

        End If

        NewSuperUser.DelUser(LBUserName.SelectedItem)

        Dim TempUser As New ClsSuperUser(LBUserName.SelectedItem, TxtPassword.Text)

        TempUser.RealName = Trim(TxtRealName.Text)

        TempUser.ModUser = Trim(ComboModUser.Text)

        TempUser.ModComputer = Trim(ComboModComputer.Text)

        TempUser.Memo = Trim(TxtMemo.Text)

        NewSuperUser.AddUser(TempUser)

    End Sub

 

5.2.4  删除操作员

只有超级用户才具有的删除功能。首先要判断用户类型是否为超级用户,然后再判断所选中删除的是否是超级用户(超级用户是不能被删除的),最后更新界面的用户信息列表。工作流程如图5.6所示。

 

 

图5.6删除操作员工作流程图

 

具体工作过程:“操作员管理”→ “操作员管理”→“删除操作员”命令,在弹出的窗口中对操作员进行删除并保存。如图5.7所示

 

 

 

图5.7  删除操作员信息图

 

5.2.5  修改密码

修改用户密码是所用操作员都具有的功能,操作员在输入旧密码,以及重复输入新密码,就可能修改操作员密码。图5.8 所示为修改密码界面。

 

 

 

图5.8 修改密码界面图

网吧计费系统软件[点击下载]

评论