数据库课程设计网吧管理系统

合集下载

《数据库应用技术》课程网吧管理系统设计报告

《数据库应用技术》课程网吧管理系统设计报告

《数据库应用技术》网吧管理系统设计文档一、概述互联网快速发展,人们对娱乐需求大大增加,人们愿意在娱乐方面花钱。

网吧提供一种聚在一起玩的氛围,是很多网民会去的公众娱乐场所。

要管理稍大一点的网吧,利用数据库系统管理网吧是最好不过的,既省时又方便操作和修改。

最重要的是可以通过数据分析市场供需,了解大众的需求,从而针对市场需求不断调整。

网吧对用户有更一步的了解,通过上机时间、下机时间和年龄段可以推出相应的活动。

在电脑方面通过型号可以快速定位了解布局不同的电脑装备,合理搭配将运营成本降低到最少。

二、概念模型设计三、逻辑模型设计1.表属性用户表:用户编号,用户姓名,年龄,身份证号码,联系方式,性别账单表:账单流水号,用户编号,电脑编号,上机时间,下机时间,单价,总价,开单员,备注电脑表:电脑编号,电脑品牌,使用状态,电脑情况维修表:维修号,电脑编号,维修时间,维修人员员工表:员工编号,姓名,职位,联系方式2.表结构数据类型表四、系统实现1.创建数据库MariaDB [(none)]> create database InternetCafe-> default character set utf8-> default collate utf8_general_ci;2.创建数据表(1)创建用户表MariaDB [InternetCafe]> create table User-> (-> UserNo char(8) Primary Key, //用户编号-> Name varchar(20) NOT NULL, //用户姓名-> Age smallint unsigned, //用户年龄-> IDCardNo char(18) UNIQUE, //用户身份证-> Sex ENUM('M','F') NOT NULL, //M代表男,F代表女-> Tel char(11) NOT NULL //用户联系方式-> );(2)创建员工表MariaDB [InternetCafe]> create table Worker-> (-> WorkerNo char(8) Primary Key, //员工编号-> WorkerName varchar(20) NOT NULL, //员工姓名-> Position varchar(10) NOT NULL, //职位-> Tel char(11) NOT NULL //员工联系方式-> );(3)创建电脑表MariaDB [internetcafe]> create table Computer-> (-> ComputerNo char(6) Primary Key, //电脑编号-> CType varchar(20) NOT NULL, //电脑类型-> CUsage ENUM('F','B') NOT NULL, //F代表闲,B代表忙-> CStatus ENUM('0','1') NOT NULL //0代表维修中,1代表正常-> );(4)创建维修表MariaDB [internetcafe]> create table Fix-> (-> FixNo char(8) Primary Key, //维修单号-> FCNo char(6) NOT NULL, //维修的电脑编号-> FixTime date, //维修时间-> FixWorker char(8) NOT NULL //维修员工编号-> );(5)创建账单表MariaDB [internetcafe]> create table Pay-> (-> PayNo char(14) Primary Key, //账单流水号-> Userid char(8) NOT NULL, //用户编号-> Computerid char(6) NOT NULL, //使用的电脑编号-> Begin datetime NOT NULL, //上机时间-> End datetime NOT NULL, //下机时间-> Unit decimal(2,1) NOT NULL, //单价-> Total decimal(4,1) NOT NULL, //总金额-> Workid char(8) NOT NULL, //开单员(员工编号)-> Remark varchar(50) //备注-> );3.向账单表,维修表添加外键MariaDB [internetcafe]> alter table Fix add constraint fk_FCNo -> FOREIGN KEY(FCNo) references Computer(ComputerNo); MariaDB [internetcafe]> alter table Fix add constraint fk_FixWorker -> FOREIGN KEY(FixWorker) references Worker(WorkerNo); MariaDB [internetcafe]> alter table Pay add constraint fk_Userid -> FOREIGN KEY(Userid) references User(UserNo);MariaDB [internetcafe]> alter table Pay add constraint fk_Computerid -> FOREIGN KEY(Computerid) references Computer(ComputerNo); MariaDB [internetcafe]> alter table Pay add constraint fk_Workid -> FOREIGN KEY(Workid) references Worker(WorkerNo);4.实现功能(1) 查询消费总金额最多的用户的名字及金额select Name,sum(Total) from user inner join Pay on erNo=erid group by order by sum(Total) desc limit 0,1;(2) 查询并统计各电脑品牌故障的次数select Ctype,count(Ctype) from Fix inner join Computer on Fix.FCNo=puterNo group by Computer.Ctype;(3) 查询年龄在30岁以上用户的消费记录(只输出上机时间,下机时间,单价,总价,年龄)select Begin,End,Unit,Total,Age from Pay inner join User on erNo=erid where Age>30;(4) 查询并输出网管开单的次数及总金额select WorkerName,count(PayNo),sum(Total) from Pay inner join Worker on Pay.Workid=Worker.WorkerNo group by WorkerName;(5) 查询男用户与女用户的消费总金额select Sex as '性别',sum(Total) as '总计' from Pay inner join User on erid=erNo group by Sex;(6) 将“unit”(单价)和“total”(总价)字段的数据类型分别修改整数部分可显示两位和三位,小数点继续保留一位。

网吧的电脑的数据库设计示例

网吧的电脑的数据库设计示例

实验八:数据库课程设计实验目的:综合运用各章的知识,完成小型数据库系统底层的全面设计,初步掌握数据库系统开发的基本方法。

实验内容:1、需求分析,画出E-R图(实验前完成)。

2、将ER图转换为关系(实验前完成)。

3、建立数据库表,设置实体完整性、域完整性和参照完整性。

4、建立视图。

小组实验人员名单:实验步骤:课程设计题目: 网吧电脑管理系统内容:建立某中小型网吧系统的数据库。

1. 基本需求分析1)组织结构对组织结构的分析有助于分析业务范围与业务流程。

书店的组织结构如图1所示。

其中,一个管理员通过登陆网吧计费系统,首先记录用户信息,当用户下机时收取费用,当顾客办理会员时,收取会员卡费用,当然,还涉及到对计算机的管理。

2)功能分析本系统主要包含以下功能1) 系统管理:主要用来设置本网吧的基本信息,例如:网吧的费率设置,计费时段设置,网吧管理员设置,客户端主机设置,以及附加销售的商品设置等。

2) 会员管理:包括新会员添加、会员资料修改、会员帐户充值、会员帐户删除等功能。

3) 查询管理:包括会员对上机帐单查询、账号余额查询、充值明细查询,管理员对计算机使用状态、区域查询和故障情况查询、对登陆用户情况的查询,对商品进售情况查询等3)处理的数据上面的分析将本系统的功能归纳为3项。

在功能分析的基础上,应该画出系统的数据流图。

整个系统的分层数据流图将揭示一个系统内全部的数据项、数据结构、数据存储以及对数据的加工处理功能。

在此基础上就可以建立系统的数据字典。

本实验不讨论数据流图和完整的数据字典规范等内容,仅对最后建立数据库所需要的数据进行分析说明。

在上述3项功能中涉及到的数据包括:会员数据、上机数据、下机数据、收费数据等。

因此,将所有数据进行归类分析,网吧电脑管理系统要处理的数据应该包括:会员信息(会员编号,会员密码,姓名,身份证号,账户余额);上机记录信息(用户编号,用户类型,计算机编号,上机时间,已上网时间,消费金额,账户余额,时段价格,管理员编号);计算机信息(计算机编号,使用状态,登陆用户,管理员编号,登陆时间,每小时费用);管理员信息(管理员编号,管理员密码,姓名,身份证号,联系方式,工作时间,所管理计算机);充值信息(管理员,会员编号,充值金额,充值时间,优惠);商品信息(管理员,商品名,进价,进货日期,数量,进货总额,售出数量,售价,剩余数量,销售总额);计费信息(时间段,计算机类型,费率);故障处理信息:(计算机编号,故障类型,故障时间,管理员编号,维修价格);这些就是网吧电脑管理系统要处理的各种对象,每一种对象由括号内的属性组合在一起来描述。

网吧管理系统c课程设计

网吧管理系统c课程设计

网吧管理系统c 课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握网吧管理系统的相关概念、原理和操作方法;技能目标要求学生能够运用C语言进行简单的系统设计和编程;情感态度价值观目标要求学生树立正确的网络道德观念,认识到网络管理的重要性。

通过本课程的学习,学生应该能够:1.描述网吧管理系统的功能和结构;2.解释C语言在网吧管理系统中的应用;3.使用C语言编写简单的网吧管理系统程序;4.分析网络管理的重要性和网络道德观念。

二、教学内容本课程的教学内容主要包括网吧管理系统的概念、C语言的基础知识、系统设计与编程方法。

1.网吧管理系统的概念:介绍网吧管理系统的功能、结构和组成;2.C语言的基础知识:讲解C语言的基本语法、数据类型、运算符、控制结构等;3.系统设计与编程方法:讲解如何使用C语言进行系统设计和编程,包括模块化设计、函数调用等。

三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解和演示,向学生传授网吧管理系统和C语言的基础知识;2.讨论法:学生进行小组讨论,促进学生对问题的深入思考和理解;3.案例分析法:分析真实的网吧管理系统案例,让学生了解实际应用场景;4.实验法:安排实验室实践环节,让学生亲自动手编写程序,加深对知识的理解和运用。

四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选择合适的教材,为学生提供系统性的学习材料;2.参考书:提供相关的参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、视频等多媒体资料,提高学生的学习兴趣;4.实验设备:提供计算机实验室,让学生进行实际操作和编程练习。

五、教学评估本课程的评估方式包括平时表现、作业和考试等,以客观、公正的方式全面反映学生的学习成果。

1.平时表现:通过观察学生在课堂上的参与程度、提问和回答问题的表现来评估;2.作业:布置适量的作业,要求学生按时完成,并进行批改和反馈;3.考试:安排期中考试和期末考试,测试学生对知识的掌握程度和运用能力。

网吧数据库课程设计

网吧数据库课程设计

网吧数据库课程设计一、教学目标本课程旨在通过学习网吧数据库的相关知识,让学生掌握数据库的基本概念、设计和应用。

具体目标如下:1.知识目标:学生能理解数据库的基本概念,如数据、数据库、表、查询等;了解数据库的设计原则和方法;掌握数据库的基本操作和应用。

2.技能目标:学生能使用数据库管理系统进行数据库的设计、创建、操作和维护;能编写简单的SQL查询语句,进行数据的增、删、改、查等操作。

3.情感态度价值观目标:培养学生对数据库技术的兴趣和好奇心,提高学生运用数据库技术解决实际问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数据库的基本概念:数据、数据库、表、查询等。

2.数据库的设计:设计原则、设计方法、实体-关系模型等。

3.数据库的操作:创建、修改、删除数据库和表;数据的增、删、改、查等操作。

4.SQL查询语句:SELECT、INSERT、UPDATE、DELETE等语句的编写和应用。

5.数据库的应用:数据库在实际项目中的应用和案例分析。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解和演示,使学生掌握数据库的基本概念和操作方法。

2.案例分析法:通过分析实际案例,使学生了解数据库在实际项目中的应用。

3.实验法:通过上机实验,让学生亲手操作数据库,加深对数据库的理解和掌握。

4.小组讨论法:通过小组讨论,培养学生的团队合作意识和创新精神。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《数据库原理与应用》。

2.参考书:《SQL Server数据库管理与应用》、《Oracle数据库管理与应用》等。

3.多媒体资料:教学PPT、视频教程、在线案例等。

4.实验设备:计算机、数据库管理系统软件、网络设备等。

5.在线资源:课程、论坛、在线问答等。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。

UML 网吧管理系统(两篇)2024

UML 网吧管理系统(两篇)2024

引言概述:UML网吧管理系统是一种基于UML(统一建模语言)的管理系统,旨在提供有效管理和监测网吧运营过程的解决方案。

本文将深入探讨该系统的正文内容。

该管理系统被设计用于管理网吧内的计算机和用户,并提供监测和统计功能来优化运营过程。

正文内容:1.用户管理1.1用户注册详细描述用户注册的流程,包括收集用户信息、验证和存储用户数据等步骤。

1.2用户登录解释用户登录的过程,包括认证登录凭证、验证用户权限和接受用户请求的步骤。

1.3用户权限管理讨论如何为不同类型的用户分配和管理权限,以确保系统安全和数据保护。

2.计算机管理2.1计算机信息管理详细说明如何收集和存储计算机的相关信息,包括IP地质、操作系统、硬件配置等。

2.2计算机状态监测分析如何监测计算机的运行状态,包括在线/离线、是否空闲、是否有故障等。

2.3计算机维护和远程控制讨论如何通过管理系统进行计算机的远程维护和控制,包括软件更新、远程重启等。

3.费用管理3.1用户收费规则说明系统中的收费规则,例如上网时间、流量使用等,并解释如何根据规则计算费用。

3.2财务管理分析如何管理网吧的财务,包括收入和支出的记录、交易的追踪等。

3.3费用统计与报表解释如何通过管理系统费用报表,包括收入、支出、盈利等方面的统计。

4.上网监测4.1上网时长监测讨论如何监测用户的上网时长,包括统计总时长、计算费用等。

4.2流量监测解释如何监测用户的流量使用情况,包括统计总流量、限制流量等。

4.3上网记录和日志详细描述如何记录用户的上网活动,并解释如何存储和分析这些记录。

5.系统安全与备份5.1用户隐私保护解释如何保护用户的隐私信息,包括用户数据的加密、访问控制等。

5.2系统备份与恢复讨论如何进行系统数据的定期备份,并介绍如何在系统故障时进行数据恢复。

5.3安全漏洞管理分析如何识别和修复系统中的安全漏洞,以确保系统的安全性。

总结:本文详细阐述了UML网吧管理系统的各个方面,并提供了深入的技术解释和实施方案。

数据库课程设计网吧管理系统

数据库课程设计网吧管理系统

设计题目网吧管理系统设计技术参数1.题目要达到的目标:完成系统的登陆、数据的插入删除修改统计等基本操作。

2.数据库:采用关系数据库ACCESS2003/SQLSERVER2000。

3.所使用的语言、工具:VB6.0+ACCESS2003+WINDOWSXP。

4.所采用的技术、系统结构:ADO数据库联接技术,系统结构为C/S结构。

设计要求1.上机前预先把所有的源程序编写好。

2.上机时不得迟到,不得缺席,爱护设备,认真调试程序。

3.仔细查阅相关资料,认真完成思考题。

4.按要求书写设计任务书,并按要求按版打印,不得雷同。

工作量一周工作计划周一听取教师布置设计的任务及要求。

周二学生查阅相关资料,进行数据库设计。

周三至周五:详细设计与界面设计。

周一至周四程序设计与上机,调试源程序。

周五书写课程设计任务书。

参考资料《数据库系统概论》《数据库系统概论实验指导书》自编《数据库系统概论课程设计大纲》等自编指导教师评语该生在数据库系统概论课程设计期间:上机时不迟到,不缺席,爱护设备,认真调试程序。

仔细查阅相关资料,认真完成作业。

听从指导教师安排。

在设计与实现过程中,能使设计的系统达到预期设计要求,功能合理,流程清楚,语句条理通顺。

按要求书写设计任务书,其论文格式规范,图表清晰合理,资料详实。

系统界面友好,程序运行基本正常,功能完备。

说明:此表一式四份,学生、指导教师、教研室、系部各一份。

可加附页。

2008年 7 月 4目录第一章概述 (2)第二章问题定义 (2)第三章需求分析 (4)第四章数据库设计 (7)第五章界面设计 (9)第六章代码 (11)第一章概述随着上个世纪九十年代计算机网络的高速发展,人类进入到了网络化、信息化的时代。

而网络的发展带动了一种新兴产业——网吧行业。

从上世纪九十年代至今,网吧经历了前所未有的发展。

从小规模到大规模,从单一经营到连锁经营,从简单提供上网服务演变到休息、娱乐场所。

这就带来了新的问题——网吧管理。

数据库课程设计网吧管理系统教案资料

数据库课程设计网吧管理系统教案资料

数据库课程设计网吧收费管理系统学号: 512300213116姓名:曾鹏飞班级: 5123002131专业:计算机应用技术、需求分析随着信息产业的飞速发展,信息化管理已经引入并应用到各行业管理领域,高速的网络信息不断改变、影响着人们的价值观念和生活方式。

对于一个企业来说,争取最大的利益才是最大的任务,这就需要提高企业的管理水平,设计一个适合于本企业的管理系统十分有必要。

我们设计的这个网吧管理系统,是针对于网吧的的管理体系,对于网吧的管理层面有较为全面的考虑,对于提高网吧的管理有很大帮助,有助于其加快管理步伐,提高竞争能力,争取更大的经济利益。

模块功能分析:1服务端(包括管理员管理,用户信息管理)2客户端(用户使用计算机的所有情况)二、概念结构设计概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。

概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。

本系统的E-R图如下:用户性别各实体间关系的e-r图如下:三、逻辑结构设计1、基本表表4-1用户表列名 数据类型 允许空 字段说明 帐号 Char(10) 否 主键 密码 Char(10) 否 登录密码 余额 Money 是 用户余额 上机费用 Money 否 每分钟费用 注册日期Datetime是注册日期表4-2管理员表列名 数据类型 允许空 字段说明 帐号 Char(10) 否 主键 密码 Char(10) 是 登陆密码 姓名 Varchar(50) 是 管理员姓名 年龄 Varchar(50) 是 管理员年龄 性别Char(10)是管理员性别表4-3消费表列名数据类型 允许空 字段说明]i+5t 和若t ■机酶用户A *IW陨号码县包*腎3二2.添加记录(1)管理员表- dbo.®Eg^裏親-dM■用户衾為要账号姓名年静性别A242季明男k H3刘丽24女泗£4tn Ml MJS.L(2)用户表表-Mbm用尸表踊要账号密码施上机矍用注冊日期12320.000030.0000V1Z320.000020.0000X皿30.0000ECICWDZ1£430.000015,0000MA140//IW MIZ AW(3)消费表去毗6涪鐵裏橋要登陆昵号登录时间下枫时间计算机名化熨卜13I1H2012-1 10:00:00 加4 丄2012-b2 0; 00:00 /O1MAL/orEO.OOOO40.0000的106123012-1-3 0::00:00 WLL血E30.0000 06132012-r5 0i00:00 AO1!^AL20.0000«142012-1-6 0:QO:00 niULL WIL10.0000 06152012-1 70:00:00MJTL15.0000 06162012-1^0:00:00 I^JLi20.0000聲172012-1-5 0:00:00 /IOZ MJS.L15.0000四、创建视图SELECT 账号,密码,姓名,年龄,性别FROM dbo.管理员表WHERE (姓名='李明')2密码姓名年龄性別卜A242李明21男SELECT 登陆账号,登录时间,下机时间,计算机名,花费FROM dbo.消费表WHERE (花费=40)豊喘账号登录时间下机时洞计宣机名0&11201Z-1-2 0:00:0040.0000SELECT dbo.消费表•登陆账号,dbo.消费表•登录时间,dbo.消费表•计算机名,dbo.用户表.密码,dbo.用户表.余额,dbo.用户表.上机费用FROM dbo.消费表CROSS JOINdbo.用户表WHERE (dbo.消费表.登陆账号='12') AND (dbo.用户表.余额=30)雙录时间计直机名密码余额上机费用12^)12-1-2 0:00:00Al£L12330.00002010001220124-20:00:0012430.000015400五、创建存储USE [网吧收费管理]GODECLARE @return_value intEXEC @return_value=[dbo] . [aabb]SELECT 'Return Value'=@return_valueGO姓名年•••性别1I皋两“21男六创建触发器set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER TRIGGER [cde]ON [dbo] . [ 管理员表]AFTER INSERTASBEGINSET NOCOUNT ON;PRINT ' 姓名, 年龄, 性别'END七小结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。

网吧管理系统课程设计

网吧管理系统课程设计

网吧管理系统课程设计一、课程目标知识目标:1. 让学生理解网吧管理系统的基本概念、功能模块及其运行原理;2. 掌握网吧管理系统的数据库设计、业务流程及关键算法;3. 了解网吧管理系统在现实生活中的应用,以及与所学课程的关联。

技能目标:1. 培养学生运用所学知识,设计并实现一个简单的网吧管理系统;2. 提高学生分析问题、解决问题的能力,使其能够根据实际需求,对网吧管理系统进行优化和改进;3. 培养学生团队协作、沟通表达的能力,通过项目实践,掌握软件开发的基本流程。

情感态度价值观目标:1. 培养学生对计算机科学技术的兴趣,激发其探索精神;2. 增强学生的社会责任感,使其认识到网吧管理系统在规范市场、保障消费者权益等方面的重要性;3. 引导学生树立正确的价值观,认识到技术应用于社会的重要性,遵循法律法规,拒绝不良信息。

课程性质:本课程为信息技术与课程整合的实践性课程,旨在培养学生运用所学知识解决实际问题的能力。

学生特点:高年级学生,已具备一定的编程基础和数据库知识,具备较强的自学能力和团队协作意识。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调项目实践,提高学生的动手能力和创新能力。

在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能在课程中取得实际的学习成果。

通过课程学习,使学生能够将所学知识应用于实际项目中,为未来的职业发展打下坚实基础。

二、教学内容1. 网吧管理系统的基本概念与功能模块- 系统概述:介绍网吧管理系统的定义、作用及其在现实生活中的应用;- 功能模块:分析网吧管理系统的常见功能模块,如用户管理、计费管理、机器管理、库存管理等。

2. 网吧管理系统的数据库设计- 数据库原理:回顾数据库的基本概念、设计方法及SQL语言;- 实践操作:指导学生设计网吧管理系统的数据库结构,包括表结构设计、字段定义等。

3. 网吧管理系统的业务流程与关键算法- 业务流程:介绍网吧管理系统的核心业务流程,如用户登录、计费、机器分配等;- 关键算法:分析并讲解实现业务流程的关键算法,如计时计费算法、机器状态检测等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明:此表一式四份,学生、指导教师、教研室、系部各一份。

可加附页。

2008年 7 月 4目录第一章概述 (3)随着上个世纪九十年代计算机网络的高速发展,人类进入到了网络化、信息化的时代。

而网络的发展带动了一种新兴产业——网吧行业。

从上世纪九十年代至今,网吧经历了前所未有的发展。

从小规模到大规模,从单一经营到连锁经营,从简单提供上网服务演变到休息、娱乐场所。

这就带来了新的问题——网吧管理。

目前,网吧的人工管理已经不能适应网吧的高速发展,成为阻碍网吧发展的桎梏。

因此开发一套完善的网吧管理系统成为网吧发展的首要任务。

本系统主要负责服务器子系统的设计。

采用功能强大的Visual Basic6.0作为开发工具,Microsoft Access作为数据库平台。

本系统采用C/S结构。

它将一个应用系统分成两大部分,由多台计算机分别执行,协同完成整个系统的应用,从而达到系统中软、硬件资源最大限度的利用。

因此,对于一个相对专用、独立的系统,它是—个较好的系统建立方法。

因此,本设计采用这一模式。

本系统从操作简便、界面友好、灵活、实用、安全的要求出发,实现较为简单。

本系统设计功能较为齐全,适合于中小型网吧的管理。

(3)第二章问题定义 (4)第三章需求分析 (5)第四章数据库设计 (8)第五章界面设计 (10)第六章代码与注释 (12)第一章概述随着上个世纪九十年代计算机网络的高速发展,人类进入到了网络化、信息化的时代。

而网络的发展带动了一种新兴产业——网吧行业。

从上世纪九十年代至今,网吧经历了前所未有的发展。

从小规模到大规模,从单一经营到连锁经营,从简单提供上网服务演变到休息、娱乐场所。

这就带来了新的问题——网吧管理。

目前,网吧的人工管理已经不能适应网吧的高速发展,成为阻碍网吧发展的桎梏。

因此开发一套完善的网吧管理系统成为网吧发展的首要任务。

本系统主要负责服务器子系统的设计。

采用功能强大的Visual Basic6.0作为开发工具,Microsoft Access作为数据库平台。

本系统采用C/S结构。

它将一个应用系统分成两大部分,由多台计算机分别执行,协同完成整个系统的应用,从而达到系统中软、硬件资源最大限度的利用。

因此,对于一个相对专用、独立的系统,它是—个较好的系统建立方法。

因此,本设计采用这一模式。

本系统从操作简便、界面友好、灵活、实用、安全的要求出发,实现较为简单。

本系统设计功能较为齐全,适合于中小型网吧的管理。

第二章问题定义网吧管理人员:系统的录入人员,主要指管理各种档案的工作人员,需要通过密码才能进入。

他们拥有对系统数据的录入、修改、查询、删除等操作权限。

但不可以更改系统密码。

上机人员:权限最低的登入人员,当上网时间到了之后就会被提示。

第三章需求分析一、主要功能:完成网吧管理人员对上机人员的调整,对机器的分配,以及纪录用户的上机时间,并对整个网吧的系统进行管理。

因此,本系统应该主要完成和实现如下功能:初始化系统数据;录入登陆人员的基本信息数据;上机时间,下机时间的基本设定;查询机器的剩余时间;计算上机的费用;人员信息:在该项内容中将包括的数据库项有用户名,用户密码,密码确认,开户时间,开户金额,开户总机时,剩余时间,上机次数,备注。

会员信息:用户名,用户密码,密码确认,开户时间,开户金额,折扣,总时间,上机次数,备注。

机器编号:ID,IP。

二、数据流图(DFD):三、数据字典(DD):ClientIP=ID+IPHistory=ID+用户名+机器号+开始时间+结束时间+应付费Member=用户名+用户密码+密码确认+开户时间+开户金额+折扣+总时间+上机次数+备注四、程序流程图:五、功能结构图:网吧管理系统模块时间设定模块第四章数据库设计二、逻辑设计:下面列出几个主要的数据库表设计:8 Userid 文本9 uprice 货币三、物理设计写索引是如何设计的:写索引是如何设计的:镞索引是行的物理顺序和索引的顺序是一致的。

页级,低层等索引的各个级别上都包含实际的数据页。

一个表只能是有一个镞索引。

由于update,delete 语句要求相对多一些的读操作,因此镞索引常常能加速这样的操作。

在至少有一个索引的表中,你应该有一个镞索引第五章界面设计一、主界面单击主界面上的各个按钮,可以进入相应的界面中。

二、系统设置对参数进行设置功能介绍,相关控件;三、查询上机时间等信息功能介绍,相关控件;第六章代码与注释一、窗体1代码Option ExplicitPrivate Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdcounter_Click()Dim cn As ADODB.ConnectionDim i As IntegerDim rst As ADODB.RecordsetDim strsql As StringSet cn = New ConnectionSet rst = New ADODB.Recordsetcn.Open concn'Íù history ±íÖÐÌí¼Ó¼Ç¼frmManager.Adodc1.Recordset!endtime = Now()txtmoney.Text = frmManager.Adodc1.Recordset!Time * frmManager.Adodc1.Recordset!uprice'×¢Òâʱ¼ä×ֶεÄÌí¼Ó·½·¨£¬#strsql = "insert into history (pcid,starttime,endtime,pay) values (" & frmManager.Adodc1.Recordset!Mid & ",#" & frmManager.Adodc1.Recordset!stime & "#,#" & frmManager.Adodc1.Recordset!endtime & "#," & txtmoney.Text & ")"Debug.Print strsqlcn.Execute strsql' Êշѳɹ¦£¬Êý¾Ý³õʼ»¯With frmManager.Adodc1.Recordset!mstate = 0.Recordset![stime] = 0.Recordset![jstate] = "묒·Ñ".Recordset![Money] = 0.Recordset![endtime] = 0.Recordset![Time] = 0.Recordset![lTime] = 0.Recordset![userID] = ""On Error GoTo error_proc.Recordset.SaveEnd WithfrmManager.Refresh 'ʹÊý¾Ýͬ²½ÏÔʾMsgBox "Êշѳɹ¦"Unload MeExit Suberror_proc:MsgBox Err.Description, vbCritical, "ÖØÊÔ"Unload MeEnd SubPrivate Sub cmdvipexit_Click()Unload MeEnd SubPrivate Sub cmdvipcounter_Click()Dim Gdiscount As DoubleDim cn As ADODB.ConnectionDim i As IntegerDim rst As ADODB.RecordsetDim strsql As StringDim uprice As DoubleSet cn = New ConnectionSet rst = New ADODB.Recordsetcn.Open concnfrmManager.Adodc1.Recordset!endtime = Now()Gdiscount = frmMember.datPrimaryRS.Recordset![DISCOUNT] '»áÔ±µÄÕË»§ÉϵĽð¶îtxtvipmoney.Text = frmManager.Adodc1.Recordset!Time * frmManager.Adodc1.Recordset![uprice] * Gdiscountstrsql = "insert into history (pcid,starttime,endtime,pay,userid) values (" & frmManager.Adodc1.Recordset![Mid] & ",#" & frmManager.Adodc1.Recordset!stime & "#,#" & frmManager.Adodc1.Recordset!endtime & "#," & txtvipmoney.Text & ",""" & frmManager.Adodc1.Recordset!userID & """)"cn.Execute strsql'¸üÐÂMEMBER±ístrsql = "update member set countNum=countNum+1,TOTALTIME=TOTALTIME+" & frmManager.Adodc1.Recordset!Time & " , balance=balance-" & CSng(txtvipmoney.Text) & " WHERE userid=""" & frmManager.Adodc1.Recordset![userID] & """"cn.Execute strsql'²é³öÓû§Óà¶îstrsql = "select balance from member where userid=""" & frmManager.Adodc1.Recordset![userID] & """"rst.Open strsql, cn, adOpenDynamic, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "System Error5"Exit SubEnd Ifuprice = rst("balance")If uprice < 0 ThenMsgBox "Óû§" & frmManager.Adodc1.Recordset![userID] & "ÒѾ-Ç··Ñ" & (-uprice) & "Ôª"End Ifstrsql = "update pc set mstate=0,stime=0,jstate=""묒·Ñ"",[money]=0,endtime=0,ltime=0,[time]=0,userid="""" where mid=" & frmManager.Adodc1.Recordset![Mid]On Error GoTo error_proccn.Execute strsqlrst.CloseSet rst = Nothingcn.CloseSet cn = NothingfrmManager.Refresh 'ʹÊý¾Ýͬ²½ÏÔʾMsgBox "»áÔ±Êշѳɹ¦"Unload MeExit Suberror_proc:MsgBox Err.Description, vbCritical, "ÖØÊÔ"Unload MeEnd SubPrivate Sub Form_Load()'´ÓÊý¾Ý¿âÖлñÈ¡ÉÏÍøÊ±¼äIf IsNull(frmManager.Adodc1.Recordset![Time]) = False Then'×¢Òâ²»ÄÜÓÃÕâÖÖÐÎʽ¸³Öµtxttime.Text=txtviptime.Text = frmManager.Adodc1.Recordset![Time] & ""'ÏÔʾÉÏÍøÓ¦¸¶½ð¶îIf (frmManager.Adodc1.Recordset![userID] = "") Or (IsNull(frmManager.Adodc1.Recordset![userID])) ThenfrmCounter.SSTab1.Tab = 0txttime.Text = frmManager.Adodc1.Recordset![Time] & ""txtmoney.Text = frmManager.Adodc1.Recordset!Time * frmManager.Adodc1.Recordset!uprice & ""frmCounter.cmdvipcounter.Visible = FalseElsefrmCounter.SSTab1.Tab = 1txtviptime.Text = frmManager.Adodc1.Recordset![Time] & ""txtvipmoney.Text = frmManager.Adodc1.Recordset!Time * frmManager.Adodc1.Recordset!uprice& ""frmCounter.cmdcounter.Visible = FalseEnd IfElseMsgBox "ÉÏÍøÊ±¼äΪÁã"End IfEnd Sub二、窗体2代码Option ExplicitPrivate Sub Form_Load()datPrimaryRS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mechanicID.mdb;Persist Security Info=False"mandType = adCmdTabledatPrimaryRS.RecordSource = "history"datPrimaryRS.RefreshEnd SubPrivate Sub Form_Resize()On Error Resume Next'µ±´°Ìåµ÷Õûʱ»áµ÷ÕûÍø¸ñgrdDataGrid.Height = Me.ScaleHeight - datPrimaryRS.Height - 30 - picButtons.HeightEnd SubPrivate Sub Form_Unload(Cancel As Integer)Screen.MousePointer = vbDefaultEnd SubPrivate Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)'´íÎó´¦Àí³ÌÐò´úÂëÖÃÓÚ´Ë´¦'ÏëÒªºöÂÔ´íÎó£¬×¢Ê͵ôÏÂÒ»ÐÐ'ÏëÒª²¶»ñËüÃÇ£¬ÔÚ´ËÌí¼Ó´úÂëÒÔ´¦ÀíËüÃÇMsgBox "Data error event hit err:" & DescriptionEnd SubPrivate Sub cmdDelete_Click()On Error GoTo DeleteErrWith datPrimaryRS.Recordset.Delete.MoveNextIf .EOF Then .MoveLastEnd WithExit SubDeleteErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdClose_Click()Unload MeEnd Sub三、窗体3代码Option ExplicitPrivate Sub cmdok_Click()If txtHour.Text = "" ThenMsgBox "ÄãµÄʱ¼äÊäÈë²»ÄÜΪ¿Õ,ÇëÖØÊÔ!", vbCriticaltxtHour.Text = ""txtHour.SetFocusElsefrmManager.Adodc1.Recordset!mstate = 1frmManager.Adodc1.Recordset![lTime] = txtHour.TextfrmManager.Adodc1.Recordset![stime] = Now()frmManager.Adodc1.Recordset![jstate] = "¼Æ·ÑÖÐ"frmManager.Adodc1.Recordset.SaveUnload MeEnd IfEnd SubPrivate Sub cmdcancel_Click()Unload MeEnd SubPrivate Sub Form_Load()' Dim cn As ADODB.Connection' Dim rst As ADODB.Recordset' Set cn = New Connection' Set rst = New ADODB.Recordset' cn.Open concnEnd Sub四、窗体4代码Option ExplicitPublic blnReceived As BooleanPublic blnOnlineOK As Boolean 'ÅжÏÊÇ·ñÔÚÏßPublic strData As StringPrivate Sub DataGrid1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)'°´ÏÂÓÒ¼ü£¬µ¯³ö²Ëµ¥If Button = 2 Then PopupMenu mnupopupEnd SubPrivate Sub Form_Activate()'Ò»¼¤»î¾ÍÕ¼ÆÁÄ»µÄÖмädatagrid1.Left = (Me.ScaleWidth - datagrid1.Width) / 2End SubPrivate Sub Form_Load()'Êý¾ÝÁ¬½Ó³õʼ»¯Adodc1.ConnectionString = concnmandType = adCmdTableAdodc1.RecordSource = "pc"Adodc1.RefreshCall DisableX(Me) '½ûÓùرմ°ÌåDim cn As ADODB.ConnectionDim rs As ADODB.RecordsetDim sql As StringSet cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetcn.Open concnsql = "select id,ip from clientip"rs.Open sql, cn, adOpenKeysetrs.MoveNextrs.MoveFirstglngClientNum = rs.RecordCountReDim gstrClientIP(glngClientNum - 1)While Not rs.EOFgstrClientIP(rs("ID") - 1) = rs("IP")rs.MoveNextWendrs.CloseSet rs = Nothingcn.CloseSet cn = NothingWith Winsock1.Protocol = sckUDPProtocol.RemoteHost = gstrClientIP(glngClientNum - 1).RemotePort = 4001.LocalPort = 4002End WithblnReceived = FalseblnOnlineOK = FalseTimer3.Enabled = FalseExit SubLabel1.Caption = "Ç뵽ϵͳÉèÖÃ--¡·Ìí¼ÓÐ޸Ŀͻ§¶Ëip,ÖØÐÂÐ޸ģ¬·Ç·¨µÄ¼ÆËã»ú±àºÅ"Label1.Visible = TrueEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then PopupMenu mnupopupEnd SubPrivate Sub Form_Resize()datagrid1.Left = (Me.ScaleWidth - datagrid1.Width) / 2End SubPrivate Sub Form_Unload(Cancel As Integer)Dim Frm As FormFor Each Frm In FormsUnload FrmSet Frm = NothingNext FrmEnd SubPrivate Sub mnuExit_Click()EndEnd SubPrivate Sub mnuLimittime_Click()frmLimittime.Show 1 'µ÷ÓÃÏÞʱ´°ÌåEnd SubPrivate Sub mnuLock_Click()If MsgBox("ÊÇ·ñÒªÍ˳ö²¢Í£Ö¹¼Æ·Ñ£¿", vbOKCancel) = vbOK ThenfrmCounter.Show 1 'µ÷ÓÃfrmCounter ´°ÌåEnd IfEnd SubPrivate Sub mnusystem_Click()frmSystem.Show vbModalEnd SubPrivate Sub mnuTiming_Click()frmTiming.Show 1 'µ÷ÓüÆÊ±´°ÌåEnd SubPrivate Sub Timer1_Timer()Dim cn As ADODB.ConnectionDim rst As ADODB.RecordsetDim strsql As StringDim i As IntegerDim A As StringA = Adodc1.Recordset![jstate] = "¼Æ·ÑÖÐ"Set cn = New ConnectionSet rst = New ADODB.Recordsetcn.Open concnstrsql = "update pc set [time]=format((DateDiff(""d"",stime,now())*24+(hour(now())-hour(stime)) +(Minute(now())-Minute(stime))/60), ""##,##0.000""),[money]=[time]*uprice where jstate=""¼Æ·ÑÖÐ"""cn.Execute strsqli = Adodc1.Recordset.AbsolutePositionAdodc1.Refreshrst.CursorLocation = adUseClientstrsql = "select * from pc where Time>=lTime and ltime<>0 and jstate=""¼Æ·ÑÖÐ"""rst.Open strsql, cn, adOpenDynamic, adLockOptimisticIf rst.RecordCount > 0 Thenrst.MoveFirstWhile Not rst.EOFrst![jstate] = "묒·Ñ"rst.UpdateMsgBox ("µÚ[" & rst![Mid] & "]ºÅ»úÆ÷ÏÞʱÒѵ½")rst.MoveNextWendEnd IfAdodc1.Recordset.AbsolutePosition = iEnd SubPrivate Sub Timer3_Timer()'½«ËùÓеÄÔÚÏß»úÆ÷µÄ³¬Ê±¼ÆÊý¼ÓÒ»Dim cn As ADODB.ConnectionDim rst As ADODB.RecordsetDim strsql As StringSet cn = New ADODB.ConnectionSet rst = New ADODB.Recordsetcn.Open concnstrsql = "select ClientID from online"rst.Open strsql, cnIf rst.BOF And rst.EOF ThenExit SubEnd IfWhile Not rst.EOFAddTimeOut rst("ClientID")rst.MoveNextWendEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Dim PC_NumberA As IntegerDim cn As ADODB.ConnectionDim i As IntegerDim rst As ADODB.RecordsetSet cn = New ConnectionSet rst = New ADODB.Recordsetcn.Open concnfrmManager.datagrid1.Row = frmManager.datagrid1.RowfrmManager.datagrid1.Col = 0PC_Number1 = frmManager.datagrid1.TextPC_NumberA = CInt(PC_Number1)Select Case Button.KeyCase "cmdNumberID"Case "cmdTiming"frmTiming.ShowCase "cmdLimittime"frmLimittime.ShowCase "cmdLock"ForceScreenLock PC_NumberAPC_NumberA = 0Case "cmdPoweroff"ForceShutDown PC_NumberACase "cmdReboot"ForceReboot PC_NumberACase "cmdReleaseLock"ReleaseLock PC_NumberAPC_NumberA = 0End SelectPC_NumberA = 0End Sub' ÍøÂçÊý¾Ý´¦ÀíPublic Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim Params() As StringIf bytesTotal > 0 ThenOn Error GoTo error_procWinsock1.GetData strData '½ÓÊÕÊý¾ÝServerDealData strData '½ÓÊÕÊý¾Ý´¦ÀíExit SubEnd Iferror_proc:If Err.Number = 10054 Then MsgBox "ÍøÂçûÁ¬½Ó"MsgBox Err.DescriptionEnd Sub五、窗体5代码Private Sub Form_Load()datPrimaryRS.ConnectionString = concnmandType = adCmdTabledatPrimaryRS.RecordSource = "member"datPrimaryRS.RefreshEnd SubPrivate Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)'´íÎó´¦Àí³ÌÐò´úÂëÖÃÓÚ´Ë´¦'ÏëÒªºöÂÔ´íÎó£¬×¢Ê͵ôÏÂÒ»ÐÐ'ÏëÒª²¶»ñËüÃÇ£¬ÔÚ´ËÌí¼Ó´úÂëÒÔ´¦ÀíËüÃÇMsgBox "Data error event hit err:" & DescriptionEnd SubPrivate Sub Form_Resize()On Error Resume Next'µ±´°Ìåµ÷Õûʱ»áµ÷ÕûÍø¸ñgrdDataGrid.Width = Me.ScaleWidthgrdDataGrid.Height = Me.ScaleHeight - grdDataGrid.Top - datPrimaryRS.Height - 30 - picButtons.HeightEnd SubPrivate Sub Form_Unload(Cancel As Integer)Screen.MousePointer = vbDefaultEnd SubPrivate Sub cmdAdd_Click()On Error GoTo AddErrdatPrimaryRS.Recordset.AddNewExit SubAddErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdDelete_Click()On Error GoTo DeleteErrWith datPrimaryRS.Recordset.Delete.MoveNextIf .EOF Then .MoveLastEnd WithMsgBox "ɾ³ý³É¹¦"Exit SubDeleteErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdUpdate_Click()On Error GoTo UpdateErrdatPrimaryRS.Recordset.UpdateBatch adAffectAllMsgBox "¸üгɹ¦"Exit SubUpdateErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdClose_Click()Unload MeEnd Sub四、窗体4代码Private Sub Form_Load()datPrimaryRS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mechanicID.mdb;Persist Security Info=False"mandType = adCmdTabledatPrimaryRS.RecordSource = "admi"datPrimaryRS.RefreshEnd SubPrivate Sub Form_Resize()On Error Resume Next'µ±´°Ìåµ÷Õûʱ»áµ÷ÕûÍø¸ñgrdDataGrid.Width = Me.ScaleWidthgrdDataGrid.Height = Me.ScaleHeight - grdDataGrid.Top - datPrimaryRS.Height - 30 - picButtons.HeightEnd SubPrivate Sub Form_Unload(Cancel As Integer)Screen.MousePointer = vbDefaultEnd SubPrivate Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)'´íÎó´¦Àí³ÌÐò´úÂëÖÃÓÚ´Ë´¦'ÏëÒªºöÂÔ´íÎó£¬×¢Ê͵ôÏÂÒ»ÐÐ'ÏëÒª²¶»ñËüÃÇ£¬ÔÚ´ËÌí¼Ó´úÂëÒÔ´¦ÀíËüÃÇMsgBox "Data error event hit err:" & DescriptionEnd SubPrivate Sub cmdAdd_Click()On Error GoTo AddErrdatPrimaryRS.Recordset.AddNewExit SubAddErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdDelete_Click()On Error GoTo DeleteErrWith datPrimaryRS.Recordset.Delete.MoveNextIf .EOF Then .MoveLastEnd WithExit SubDeleteErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdUpdate_Click()On Error GoTo UpdateErrdatPrimaryRS.Recordset.UpdateBatch adAffectAll Exit SubUpdateErr:MsgBox Err.DescriptionEnd SubPrivate Sub cmdClose_Click()Unload MeEnd Sub六、窗体6代码Private Sub CmdEnter1_Click()frmMember.Show vbModalEnd SubPrivate Sub CmdEnter2_Click()frmSetpwd.Show vbModalEnd SubPrivate Sub CmdOnline_Click()frmOnline.Show vbModalEnd SubPrivate Sub Command1_Click()frmsetprice.Show vbModalEnd SubPrivate Sub Command2_Click()frmHistory.Show vbModalEnd SubPrivate Sub Command3_Click()frmClientIP.Show vbModalEnd Sub七、窗体7代码Option ExplicitPrivate Sub cmdcancel_Click()Unload MeEnd SubPrivate Sub cmdok_Click()'Á¬½ÓÊý¾Ý¿â³õʼ»¯Dim cn As ADODB.ConnectionDim rst As ADODB.RecordsetSet cn = New ConnectionSet rst = New ADODB.Recordsetcn.Open concnfrmManager.Adodc1.Recordset!mstate = 1frmManager.Adodc1.Recordset![stime] = Now()frmManager.Adodc1.Recordset![jstate] = "¼Æ·ÑÖÐ"frmManager.Adodc1.Recordset.SaveUnload MeEnd Sub。

相关文档
最新文档