网吧计费管理系统毕业论文.doc

上传人:laozhun 文档编号:3991421 上传时间:2023-03-30 格式:DOC 页数:27 大小:263.50KB
返回 下载 相关 举报
网吧计费管理系统毕业论文.doc_第1页
第1页 / 共27页
网吧计费管理系统毕业论文.doc_第2页
第2页 / 共27页
网吧计费管理系统毕业论文.doc_第3页
第3页 / 共27页
网吧计费管理系统毕业论文.doc_第4页
第4页 / 共27页
网吧计费管理系统毕业论文.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《网吧计费管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《网吧计费管理系统毕业论文.doc(27页珍藏版)》请在三一办公上搜索。

1、华夏计算机 软件学院专 科 生 毕 业 实 践 报 告题 目: 网吧计费管理系统 专 业: 软件技术 年 (班)级: 0716A 学 号: 1021429 姓 名: 指导教师: 完成日期: 20013-4-10 目 录摘要 第一章 绪论 11.1 系统开发背景 11.2 可行性分析 1第二章系统设计22.1 系统功能分析22.2 操作流程图3 2.3 操作员管理功能模块32.4 用户管理功能模块62.5 计算机管理功能模块72.6 系统设计与实现7第三章 数据库设计93.1 数据库的需求分析 93.2 数据库逻辑结构设计 93.3 数据库的创建 11第四章 代码设计 124.1登录窗体功能的实

2、现 124.2模块功能实现的代码 154.3系统管理模块界面的设计 184.4系统管理界面功能实现的相关代码 184.5模块功能实现 21第五章 总结265.1 网吧计费系统的开发技术特点 265.2 系统的不足 26参考文献 27致 谢 27网吧计费管理系统 摘 要计算机已经得到了相当一部分城市化的普及,但也只是与信息时代接轨的最基础工具,还要配上网络才可以完全联系上数字化、网络化的概念。至于网络的问题就不得不说宽带这个概念,小区宽带、ADSL都是为了实现网络化而产生的宽带形势。但是他们的普及率并不高,依然不能达到每一个又计算机的人就可以利用计算机进行上网,不能发挥这块敲门砖的作用。于是,为

3、了解决这个问题,让大多数人可以提前适应这个年代的步伐,在学校、公司、以及外围的商业(网吧就是其一)设施都开市派生出一个拥有几十台、上百台的计算机机房。为了解决大型机房的管理问题,这款机房多功能管理系统诞生了,它可以方便对大型机房的管理,方便这些档案的记录和往后的查询,还可以随时随地进行备份,保证查询历史纪录时,导入备份文件。还可以为客户提供经济方便的会员服务,以满足那些长时间上机用户的需求。该系统采用Microsoft Visual Basic 6.0 、Microsoft Access 完成。下面就让大家具体看看这款多功能机房系统的内容吧!关键词: 计算机;ADSL;效率;上机;Micros

4、oftVisual Basic 6.0;Microsoft Access第一章 绪论1.1 系统开发背景计费管理(Accounting Management)是网络管理的重要组成部分,通过测度网络资源的利用情况,产生详尽的信息统计报告及流量对比,为管理者提供决策依据。计费管理和OSI模型中的配置管理、性能管理、故障管理及安全管理息息相关。 一套完整的计费系统包括准确而高效的计费数据采集、数据的管理和维护、费用计算、计费数据查询以及各种统计分析以及日志管理等功能。在互联网普及的今天,能将计费查询、统计和分析及计费对象的管理集成到一套基于Web的可视化网络计费管理系统中,对于运营商而言更为重要。1

5、.2 可行性分析随着网吧与广大企事业单位内部网络的广泛建立,在通用信息平台上构筑高效实用的协同工作和自动化办公应用系统,有效实现内部知识管理,已成为众多用户的共同需求。网吧计费管理系统,采用大型数据库软件SQLServer,其固有的安全性能,保障收费系统有一个稳定的运行环境。系统通过预六的借口,可以让不同机子系统有机的结合,从而实现一卡通项目的无缝衔接。第二章 系统设计 21系统功能分析 网吧计费系统开发的目的是能够实现对不同型号的程控交换机对计费中心定时或即时传下来的原始话单信息进行及时准确的分类、查询、浏览、修改、删除、统计、话单信息的打印等。能够及时查询客户的通话数据,避免引起费用争议,

6、提高客户的满意度。使管理更科学、更方便、更合理。同时,也能够帮助网吧计费有关人员提高工作效率和服务质量。为网吧减少不必要的损失。从而有效的提高网吧经济的效益。通过对网吧计费中心日常工作的分析,可将终端计费系统的功能概括成如下方面。(1) 号码管理:包括会员号码和普通上机人员基本信息的录入、修改、删除、查找、添加、查询等管理。(2) 字冠管理:包括会员号码和普通上机人员基本字冠的录入、修改、删除、查找、添加、查询等管理。(3) 原始费用管理:包话对程控交换传下来的原始话单信息的导入、浏览、删除等管理。(4) 费率管理:包括会员号码和普通上机人员基本费率的录入、修改、删除、查找、添加、查询等管理。

7、(5) 关于系统:对有关系统的简介和对用户的管理(包括用户注册、用户删除、用户修改)。(6) 计费统计管理:即时计费、定时周期计费、对已统计的计费表的浏览(包括对统计表的删除、删除统计表的字段、对最近操作进行恢复、查看统计表)等管理。考虑系统的安全性,需要对用户进行安全认证,因此还需要实现以下系统用户的管理功能。(1) 用户登录认证。(2) 用户管理,包括用户注册、删除用户、修改用户信息等(只有高级管理员才有此权限)。(3) 登录日志的记录和删除日志(只有高级管理员才有此权限,普通用户只能对数据进行浏览)。22操作流程图根据系统功能模块的划分和计费管理系统的实际工作流程,画出如图1-2所示的计

8、费管理系统操作流程图。 启动系统登录认证 字冠管理初始费用会员管理费率管理费用库即时、定期计费费用统计费用库浏览添加修改删除查找导入字冠表费率表会员表普通用户表费用库计费系统库普通用户图2-2 计费系统操作流程图2.3 操作员管理功能模块 1、添加计算机:安装完毕后,双击网吧计费管理系统图标,随后将出现本软件的主窗体,点击选中主窗体菜单的系统,在弹出的下拉式菜单中选择计算机设置,这时,在屏幕上将出现一个新的窗体,点击新窗体中的添加按纽,系统将提示您是否要添加一台计算机,选择是的话,将添加一个新的计算机,如果是添加第一台计算机则将提示您这台微机的收费标准,默认值为3.00元。如果您想添加的计算机

9、不是本系统中的第一台,则这台微机的收费标准以添加前最后一台计算机的收费标准为标准。添加完毕后,点击关闭按纽,结束操作。如图1-1:图1-1 添加计算机2、删除计算机:在本软件的主窗体,点击选中主窗体菜单的系统,在弹出的下拉式菜单中选择计算机设置,这时,在屏幕上将出现一个新的窗体,点击新窗体中的删除按纽,系统将提示您是否要删除一台计算机,选择是的话,将删除最后一次添加的计算机。删除完毕后,点击下方的关闭按纽,完成操作。如图1-2: 图1-2 删除计算机3、更改计算机名称:在本软件的主窗体,点击选中主窗体菜单的系统,在弹出的下拉式菜单中选择计算机设置,这时,在屏幕上将出现一个新的窗体,选择您想要更

10、改名字的计算机,并在计算机名称一栏中填写您想要为这台计算机重新确定的名字,填写完毕后,点击下方的关闭按纽,完成操作。图1-3 更改计算机4、更改某台计算机的收费标准:在本软件的主窗体,点击选中主窗体菜单的系统,在弹出的下拉式菜单中选择计算机设置,这时,在屏幕上将出现一个新的窗体,选择您想要更改收费标准的计算机,并在每小时价格一栏中填写您想要为这台计算机重新确定的收费标准,填写完毕后,点击下方的关闭按纽,完成操作。如图1-4系统设置:图1-4 更改收费标准2.4 用户管理功能模块1、添加用户:在主界面出现以后,您点击菜单系统-用户设置将出现用户设置的窗体,您点击一下添加用户,将出现添加用户窗口,

11、这时您要输入用户名称,输入新密码,并确认新密码,如果这一切都是正确的话,您点一下确定即完成的新用户的添加,这时回到了用户设置窗口,您可以看到这个用户已经在用户列表中列了出来。以后您就可以用这个用户登陆了。不过请您注意,不要忘记您的密码。 2、删除用户:在主界面出现以后,您点击菜单系统-用户设置将出现用户设置的窗体,您选要在用户列表中选中要删除的用户,然后点击删除用户则出现删除用户窗体,您须要输入这个用户的密码,才能删除这个用户。删除完毕后,用户列表中将没有了这个用户。 3、更改密码:在主界面出现以后,您点击菜单系统-用户设置将出现用户设置的窗体。您选要在用户列表中选中要更改密码的用户,然后点击

12、更改密码则出现更改用户密码窗体,您须要输入原密码,和新密码,并要确认新密码。才能更改成功。4、更改用户名称:在主界面出现以后,您点击菜单系统-用户设置将出现用户设置的窗体。您选要在用户列表中选中要更改名称的用户,然后点击更改名称则出现更改用户密码窗体。如果要更改用户名称,您须要输入正确的密码,才能修改成功。2.5 计算机管理功能模块 计算机管理功能模块如图1-5:图1-5 计算机管理员功能模块2.6 系统设计与实现该系统具有记录用户消费、收费、设置与管理会员、备份历史数据的功能。一个管理员通过登陆该系统,来直接设置机器和用户,将每时的当前数据进行记录,对于网吧一类的商业场所,可以用“商品资料管

13、理”来进行其他周边的记录,做到节约人力来管理一个机房的目的。具体功能如下: 管理登陆 管理员通过自己的用户名和密码登陆该系统,同时在管理员离开本机的时候,为了安全还可以将桌面锁定,达到其他人不可以进行操作的目的。管理员共分为四种,如上所述。 用户的注册与开通 用户来访问上机的时候,要通过管理员进行注册,把本用户的相关资料进行输入,然后开通一个该用户的账户(会员卡),进行冲金额。当然了,用户的资料也是可以备份和修改的,不过要看登陆管理员的权限。 收费与退款 对于已注册开通的用户,可以通过管理员在该系统处进行交费,把余额储存在该系统中,每次消费后在管理员处进行清算。如果中途要退款,只要在管理员处进

14、行“储金卡管理”进行修改金额取汇款额。 使用与周边记录 在用户通过管理员登陆该系统进行上机后,系统会根据用户的需要设置时间限制或者金额的限制,当到达时间后会直接通知管理员。在上机过程中如需要其他商品需求,只要在该系统处进行记录会一并算入用户的消费中。 更改机器 在使用过程中,如果用户需要更改机器,首先要通知管理员,然后管理员直接在该系统中使用“调换计算机”即可实现。 添加机器 在使用中如果要添加机器或是删除机器一样也可以立即实现。文件中计算机设置的首选项添加计算机,然后设置该机器的IP即可。 备份与还原数据 长时间的使用,对于账目与用户管理势必会出现一些问题,当历史帐目或者当前账目资料发生疑问

15、时,就可以通过已经备份数据还原,来进行对比和查询,做到账目与资料的准确无误。 第三章 数据库设计3.1 数据库的需求分析 在前面的1.1节里已经对计费系统操作流程进行了分析,在它的基础上,我们可以列出以下计费管理系统所需的数据项和数据结构。(1) 普通用户表:证件、姓名、基本费用等。(2) 会员表:证件、姓名、基本费用等。(3) 字冠表:姓名、类型、本地字冠号(4) 费率表:一般类型、普通类型、会员类型、费率、首次三分钟等。(5) 登录日志:帐号、登录日期等(6) 用户注册:帐号、密码、密码验证等。32 数据库逻辑结构设计 从图计费系统操作流程图,可以看得出要建立六个基本的数据表来存储系统所必

16、备的信息。这六个表分别为普通用户表、会员表、字冠表、费率表、登录日志表、用户注册表。实际上,还要建立统计表。但统计表的建立是在进行计费时通过程序来完成建立过程的。后面的章节会介绍到关于这方面的内容。六个数据表的结构如表所示。 表3-1 普通用户表 字段名称数据类型 ID自动编号 号码数字 证件文本基本费用数字表3-2 会员表 字段名称数据类型 ID自动编号 号码数字 证件文本基本费用数字 表3-3 费率表费率文本日期类型 文本 首次三分钟货币表3-4 计费表 字段名称数据类型 ID自动编号 工号文本登录日期日期时间表3-5 用户注册表 字段名称数据类型 ID自动编号 证件卡号文本 密码文本密码

17、确认文本33 数据表的创建 创建表其实就是创建表的结构,表的结构包括表中每个字段的字段名、字段的数据类型和字段属性,为表中的每个字段设置好字段名、字段的数据类型和字段属性后,表也就创建好了。创建表之前首先需要打开数据库窗口,然后在数据库窗口中通过以下四种方法进行创建:(1) 通过输入数据创建表;(2) 使用表向导创建表;(3) 使用表的设计视图创建表;(4) 通过导入或链接已有的数据创建新表;一般采用“使用表向导创建表”来创建表,本系统所用到的表大部分都采用此方法来创建表。第四章 代码设计4.1登录窗体功能的实现功能实现的代码如下: * init. * throws Exception */

18、void jbInit() throws Exception this.setLayout(null); computerIdDescLabel.setFont(new java.awt.Font(Serif, 0, 13); computerIdDescLabel.setHorizontalAlignment(SwingConstants.CENTER); computerIdDescLabel.setText(机器号码:); computerIdDescLabel.setBounds(new Rectangle(95, 30, 70, 25); computerIdCombox.setBo

19、unds(new Rectangle(175, 30, 110, 25); cardIdDescLabel.setFont(new java.awt.Font(Serif, 0, 13); cardIdDescLabel.setHorizontalAlignment(SwingConstants.CENTER); cardIdDescLabel.setText(卡号:); cardIdDescLabel.setBounds(new Rectangle(95, 75, 70, 25); cardIdTextField.setText(); cardIdTextField.setBounds(ne

20、w Rectangle(175, 75, 110, 25); pwdDescLabel.setFont(new java.awt.Font(Serif, 0, 13); pwdDescLabel.setHorizontalAlignment(SwingConstants.CENTER); pwdDescLabel.setText(密码:); pwdDescLabel.setBounds(new Rectangle(95, 120, 70, 25); passwordFiled.setText(); passwordFiled.setBounds(new Rectangle(175, 120,

21、110, 25); dispalyNowTimeDescLabel.setFont(new java.awt.Font(Serif, 0, 13); dispalyNowTimeDescLabel.setHorizontalAlignment(SwingConstants.CENTER); dispalyNowTimeDescLabel.setText(开始时间:); dispalyNowTimeDescLabel.setBounds(new Rectangle(95, 165, 70, 25); nowTime = new java.util.Date(); SimpleDateFormat

22、 HMFromat = new SimpleDateFormat(yyyy-MM-dd HH:mm); String dispalyNowTime = HMFromat.format(nowTime); dispalyNowTimeTextField.setText(dispalyNowTime); dispalyNowTimeTextField.setBounds(new Rectangle(175, 165, 110, 25); dispalyNowTimeTextField.setEnabled(false); confirmButton.setBounds(new Rectangle(

23、115, 215, 65, 25); confirmButton.setText(确认); confirmButton.addActionListener(new UseInPanel_confirmButton_actionAdapter(this); resetButton.setBounds(new Rectangle(200, 215, 65, 25); resetButton.setText(重置); resetButton.addActionListener(new UseInPanel_resetButton_actionAdapter(this); computerId = c

24、omputerIdCombox.getSelectedItem().toString(); if(computerId=null | computerId.trim().length()=0) JOptionPane.showMessageDialog(this,请选择机器号!,警告, JOptionPane.WARNING_MESSAGE ,null ); return ; if(cardId=null | cardId.length()=0) JOptionPane.showMessageDialog(this,请输入卡号!,警告, JOptionPane.WARNING_MESSAGE

25、,null ); return ; if(passwordtemp=null | passwordtemp.length()=0) JOptionPane.showMessageDialog(this,请输入密码!,警告, JOptionPane.WARNING_MESSAGE ,null ); return ; String dispalyNowTime = dispalyNowTimeTextField.getText() + :00; Card card = new Card(); card.setId(cardId); card.setPassword(passwordtemp); R

26、ecord record = new Record(); record.setCardId(cardId); record.setComputerId(computerId); record.setBeginTime(dispalyNowTime); Computer computer = new Computer(); computer.setId(computerId); if(BusinessAction.cardIsValid(card) if(BusinessAction.cardHaveBalance(card) BusinessAction.doStartUseComputerB

27、usiness(record,computer); else JOptionPane.showMessageDialog(this,卡余额不足,请充值!,警告, JOptionPane.WARNING_MESSAGE ,null ); return ; else JOptionPane.showMessageDialog(this,卡号或者密码不对!,警告, JOptionPane.WARNING_MESSAGE ,null ); System.out.println(卡号或者密码不对); return; 动态变量i是用来记录用户登录失败的次数,如里连续4次登验证失败,则退出整个系统。而动态变

28、量b是用来记录试用本软件的次数,如果试用已经超过4次则不能再继续试用。要继续使用必须输入本软件提供的系列号。否则,将无法登录到主界面。4.2模块功能实现的代码private void jbInit() throws Exception this.getContentPane().setLayout(borderLayout1);panel1.setPreferredSize(new Dimension(300, 200);panel1.setLayout(null);computerIdLabel.setFont(new java.awt.Font(Serif, 0, 16);computer

29、IdLabel.setText(机器号:);computerIdLabel.setBounds(new Rectangle(50, 30, 80, 25);computerIdCombox.setBounds(new Rectangle(130, 30, 100, 25);checkOutTimeLabel.setFont(new java.awt.Font(Serif, 0, 16);checkOutTimeLabel.setText(结束时间:);checkOutTimeLabel.setBounds(new Rectangle(50, 100, 80, 25);nowTime = new

30、 java.util.Date();SimpleDateFormat HMFromat = new SimpleDateFormat(yyyy-MM-dd HH:mm);String strNowTime = HMFromat.format(nowTime);checkOutTimeTextField.setText(strNowTime);checkOutTimeTextField.setBounds(new Rectangle(130, 100, 100, 25);checkOutTimeTextField.setEditable(false);confirmButton.setBound

31、s(new Rectangle(60, 150, 70, 25);confirmButton.setText(确定);confirmButton.addActionListener(new CheckOutDialog_ConfirmButton_ActionAdapter(this);resetButton.setBounds(new Rectangle(150, 150, 70, 25);resetButton.setText(重置);resetButton.addActionListener(new CheckOutDialog_ResetButton_ActionAdapter(thi

32、s);panel1.add(computerIdLabel, null);panel1.add(checkOutTimeLabel, null);panel1.add(checkOutTimeTextField, null);panel1.add(confirmButton, null);panel1.add(resetButton, null);panel1.add(computerIdCombox, null);this.getContentPane().add(panel1, BorderLayout.CENTER);ArrayList list = BusinessAction.get

33、NotStopComputer();for (int i = 0; i list.size(); i+) Record computer = (Record) list.get(i);computerIdCombox.addItem(computer.getComputerId();以上代码完成了系统主界面所需要的各种功能的实现。可以任意在主界面上选择其功能,从而进入系统其它下一级界面执行相应的操作。除此之外,还可以判断是否已经到结算日期,是否已经结算过等功能。系统管理管理模块实现对系统安全的管理,包括了关于系统说明、登录日志的记录、登录日志的删除、用户管理。而用户管理又包括了用户的注册、用户

34、修改、用户的删除。用户管理包括的功能只有高级管理员才有权限对此进行操作,其它普通管理员无权对此做任何操作。 关于系统功能和登录日志功能在同一个界面上交叉显示,单击关于系统则在界面上显示关于系统的说明;单击登录日志在界面上则显示登录日志的内容(工号和登录日期)。而单击用户管理时则启动用户管理界面。在用户管理界面上又可以根据其功能进行相应的操作。4.3系统管理模块界面的设计在窗体上添加控件,Label1、Data1、DBGrid1、Frame1、Command1Command4。Label1用来写存放关于系统的一些说明,Data1用来访问数据库,DBGrid1用来绑定登录日志表的字段并显示相关信息

35、。Frame1用来对外观起到美化作用。Command1 Command4作为命令按钮用。主要控件的属性设置如下表所示。表4-1 主要控件属性 控件属性属性值说明Label1 caption关于系统内容文本框Command1caption关天系统Command2caption登录日志Command3caption删除日志命令按钮Command4caption用户管理datasourceData1DBGrid1caption计费系统数据网格控件DBGrid1Label1visible flase 隐藏不可见4.4系统管理界面功能实现的相关代码在窗体个添加以下控件:Command1(0)Comman

36、d1(5)、Command2、Text1Text3、Data1、DBGrid1、Label1Label3。并将它们的属性设置为如表所示。本模块的窗体布局如表2。Data1用来访问数据库里的字冠表,DBGrid1与数据库里的字冠表各字段进行绑定,然后在表格里显示相应的字段值。 表4-2 模块窗体布局 控件属性属性值说明Command1(0)第一条记录Command1(1) 上一条记录Command1(2) 下一条记录 Command1(3)最后一条记录命令按钮Command1(4)caption添加记录Command1(5)修改记录Command1(6)查找记录Command1(7)删除记录Co

37、mmand2编辑Command1enabledfalsedatasourceData1 DBGrid1caption固话表 数据网格控件Label1号码Label2caption地名文本框Label3 基本费用computerIdDescLabel.setText(机器号:);computerIdDescLabel.setBounds(new Rectangle(120, 30, 80, 18);computerIdLabel.setText(this.consumeDisplayData.getRecord().getComputerId();computerIdLabel.setBound

38、s(new Rectangle(200, 30, 100, 18);cardIdDescLabel.setFont(font);cardIdDescLabel.setText(卡 号:);cardIdDescLabel.setBounds(new Rectangle(120, 60, 80, 18);cardIdLabel.setText(this.consumeDisplayData.getRecord().getCardId();cardIdLabel.setBounds(new Rectangle(200, 60, 100, 18);beginTimeDescLabel.setFont(

39、font);beginTimeDescLabel.setText(上机时间:);beginTimeDescLabel.setBounds(new Rectangle(120, 90, 100, 18);beginTimeLabel.setText(this.consumeDisplayData.getRecord().getBeginTime();beginTimeLabel.setBounds(new Rectangle(200, 90, 120, 18);endTimeDescLabel.setFont(font);endTimeDescLabel.setText(结束时间:);endTimeDescLabel.setBounds(new Rectangle(120, 120, 80, 18);endTimeLabel.setText(this.consumeDisplayData.getRecord().getEndTime();endTimeLabel.setBounds(new Rectangle(200, 120, 120, 18);consumerFeeDescLabel.setFo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号