目录
第一章 系统概述 .................................................................... 1
1.1 系统开发的背景和意义 ........................................................ 1 1.2 系统开发技术................................................................ 1
1.2.1 VB.NET概述 ........................................................... 1 1.2.2 SQL Server数据库 ..................................................... 2
第二章 可行性分析 .................................................................. 3
2.1 可行性概述 ................................................................. 3 2.2 可行性研究 ................................................................. 3 第三章 系统需求分析 ................................................................ 4
3.1 传统网吧管理................................................................ 4 3.2 系统优点 ................................................................... 4 3.3 系统功能需求................................................................ 4
3.3.1 系统逻辑模型 .......................................................... 5 3.3.2 服务端................................................................ 5 3.3.3 客户端................................................................ 6 3.4 系统的设计原则.............................................................. 6 3.5 系统设计的思想.............................................................. 6
3.5.1 系统设计结构 .......................................................... 6 3.5.2 系统实现技术 .......................................................... 7
第四章 系统的总体设计 .............................................................. 8
4.1 系统功能设计................................................................ 8 4.2 系统功能模块简介 ............................................................ 9
4.2.1 客户端功能模块 ........................................................ 9 4.2.2 服务端功能模块 ........................................................ 9 4.2.3 数据库设计 ........................................................... 10
第五章 详细设计 ................................................................... 13
5.1 关键模块设计............................................................... 13
I
软件工程课程设计
5.1.1 登陆模块............................................................. 13 5.1.2 客户端模块 ........................................................... 13 5.1.3 服务端模块 ........................................................... 14 5.2 系统界面设计............................................................... 15
5.2.1 登录界面............................................................. 15 5.2.2 客户端界面 ........................................................... 16 5.2.3 服务端界面 ........................................................... 17
第六章 编码实现 ................................................................... 19
6.1 系统功能实现............................................................... 19 6.2 登陆模块编码............................................................... 19 6.3 客户端模块编码............................................................. 20 6.4 服务端模块编码............................................................. 23 第七章 系统测试 ................................................................... 27
7.1 系统测试目标............................................................... 27 7.2 系统测试方案............................................................... 27 7.3 具体测试 .................................................................. 28
7.3.1 登录模块测试 ......................................................... 28 7.3.2 客户端测试 ........................................................... 28 7.3.3 服务端测试 ........................................................... 30
结束语 ............................................................................ 31 参考文献 .......................................................................... 32
II
软件工程课程设计
第一章 系统概述
1.1 系统开发的背景和意义
随着计算机技术的日月更新,越来越多的人们注重加强对计算机知识的学习,为了满足学校学生或者社会学员的需求,许多网吧都纷纷对外开放,实行计时收费。但随着上机人数的增多,网吧的管理成了一个非常困难的问题。首先,人工计时收费是非常繁琐的一项工作,耗费人力物力,而且极容易出错;最后的统计工作更是一项费时费力的苦差事,甚至不能统计。其次,上机过程中,每个网吧都需要值班人员值班,耗费了管理人员的很多时间。随着计算机各种外围设备技术的发展,以上工作通过计算机就可以很方便地实现。
为了适应当前网吧管理无人化的需求,本人试图利用自己大学所学专业知识并结合教学管理中的实际情况和其它类似计费软件的优点,开发了一套网吧收费系统软件。本系统可以解决网吧管理中存在的几个实际问题:
1 减少值班人员、维护人员,降低管理人员费用,甚至可以做到网吧无需人员值守管理。
2 增加网吧的开放时间,提高设备的利用率。
3 解决目前网吧管理中的人情免费上机、脱逃费问题。
1.2 系统开发技术
1.2.1 VB.NET概述
VB.net是微软最新平台技术,是.net framework SDK的一种语言。编译以后生成的可执行文件被称为Assembly,即程序集。它的运行是建立在CLR(Common Language Runtime)MSIL(Microsoft Intermediate Language)虚拟器上的。其实,它的机制和Java差不多。
VB.net的语言特点有下:
1
软件工程课程设计
1 代码托管。被托管的代码享受.net framework提供的安全保障和垃圾回收机制,但是这也同时表明,程序被框在Framework里面了。API变得不太方便。
2 强大的面向对象特性。现在VB7已经是一个完全的面向对象程序。它已经支持类的各种特性:继承,函数的覆盖,重载,虚拟,隐藏„„。
3 功能强大,程序界面更标准。
4 程序代码结构化更强,开发环境舒适体贴。 1.2.2 SQL Server数据库
美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
其主要特点如下:
1 高性能设计,可充分利用WindowsNT的优势。
2 系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
3 强壮的事务处理功能,采用各种方法保证数据的完整性。
4 支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台
2
软件工程课程设计
第二章 可行性分析
2.1 可行性概述
可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的房买你进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.2 可行性研究
数据库是指自描述的完整记录的集合。数据库技术在20世纪60年代中期产生,它的出现使信息系统的研制从加工数据的程序为中心转变为共享数据库为中心来进行。数据库开始时在大公司或机构中进行大规模数据处理后来随着计算机的逐渐普及,数据库才应用到计算机上。数据库发展到今天,已经是相当成熟的阶段,它对大量处理能力的不断提高,发展和完善。
本系统的开发利用VS2008作为开发工具。VS2008是一个具有完善开发工具的平台。VS2008提供的工具适合各种水平层次无论是初学者还是有经验的团队,并适合各种不同的开发需求。降低了开发的复杂度,其提供给开发者更加简便动态的.Net Framework基础解决方案,其中包括了windows应用程序开发、office嵌入开发、Web应用开发、移动应用程序开发。改进了团队交流方式,VS2008为团队开发提供通道和完整的开发周期工具,从而增加了团队内部的交流与协作的效率。通过学习,熟悉和掌握VB.NET的使用方法,使用VS2008作为开发工具将使整个系统的模块化设计变得更加简便。
系统采用SQL SERVER 2005作为开发数据库。SQL SERVER 2005是一种客户机/服务器结构的关系数据库管理系统。SQL SERVER 2005提供了许多易于使用的图形化工具和向导,其中最常用的是服务管理器、企业管理器和查询分析器。它们为创建和管理数据库带来了很大的方便。
3
软件工程课程设计
第三章 系统需求分析
3.1 传统网吧管理
网吧是随人们生活中对计算机越来越需要而建立的,这类网吧大多存在于学校,公司,图书馆等大型公共场所,在网吧建立之初,没有网吧计费系统的情况下,网吧的管理完全人工化。逃费,人情上机,计费错误等情况不可避免地出现。也可以说是网吧现象中的一部分,这类情况给管理人员带来很大的麻烦,逃费和计费错误会给网吧管人员在财力带来损失或误会,人情上机会给管理人员带来生活中尴尬的烦恼。这类情况一再发生,就会在管理人员精神上带来越来越大的压力。上机用户有时也会因管理人员的失误带来不必要的麻烦。渐渐大家对网吧就会有一种厌恶感和恐惧感。同时,在人工长期使用,会形成大量的数据,这些数也会使得数据管理上的混乱。
3.2 系统优点
人工管理网吧实在存在很大的问题,而且浪费太多的人力,物力。计算机一点一丁的入侵人类的生活,计算机管理代替人工管理是不可避免的,像网吧管理这类不要求在管理上创新,机械般管理更加完美的前提下,我选择设计开发网吧计费系统,希望能改善网吧管理上的混乱情况,也避免了管理人员的工作麻烦。使用网吧计费系统优于人工管理在于:
1 管理人员的工作量。 2 计费准确无误。 3 避免人情上机的尴尬。 4 工作迅速快捷。
3.3 系统功能需求
网吧计费系统的主要功能有:
1 服务端(包括管理员管理,用户信息管理)
4
软件工程课程设计
2 客户端(用户使用计算机的所有情况) 3 系统数据的初始化,查询,修改,删除。 3.3.1 系统逻辑模型
为了实现管理信息系统的计算机化,仅仅用文字来描述信息的流动和存储还远远不够,还要进一步调查分析舍去物质流,抽象出信息流,绘制出数据流程图,并对各种数据的属性和各项处理功能进行详细分析。系统分析的主要成果是系统的逻辑模型。本系统主要是以数据流程图、E-R图和系统功能模块图为主要描述工具来勾画系统的概貌。对系统的功能进行分析,综合本系统设计的服务器端与客户端,总结整个系统功能模块。
管理员 用户信息 更新用户消费信息 用户信息 用户 登陆 上机 用户信息 下机 图3.1顶层数据流图
3.3.2 服务端
1 管理员管理
主要包括:操作用户管理、操作员登录、修改密码、设置上机费用。这其中大部分是标准数据的维护,包括新增、修改、删除等;
2 用户信息管理
主要包括:用户充值、查询用户费用、删除用户信息、添加用户信息、修改用户信息。这里区分不同的用户类型,按照不同用户类型设置上机费用等;
5
软件工程课程设计
3 上机记录
主要负责接收客户端程序发送来的上、下机信息,进行上、下机的处理,在处理上机登录时要进行用户的合法性检测。检测通过后产生一条用户上机记录,记录下计算机代码、账号、登录开始时间等信息。处理下机信息时,要记录下此用户下机的详细时间。计费时要将当前使用费用记录在上机记录中,并在用户的档案记录的余额字段中扣减。 3.3.3 客户端
首先要求将客户端的桌面、任务管理器、系统状态栏等系统功能锁定,桌面上只有客户登录程序界面,要求用户输入用户代码和密码进行登录。登录信息要求数据库中的信息来判断其合法性,并反馈一个信息给客户端,如果一切合法的话,再将桌面、任务管理器等功能解锁,让用户正常使用。客户端程序要求正常停靠在系统托盘中,用户下机时要求点击此图标进行下机,客户端将下机信息发送到数据库,系统关机。
3.4 系统的设计原则
根据系统的需求分析,计费系统属于网络,计算机使用费用,作息管理及数据库于一体的综合性系统,因而,网吧计费系统在总体设计时应遵循以下原则上:
1 系统的功能设计完善性,满足多方的使用需求。
2 系统应具有良好的稳定性,实用性,安全性。设计理念应是客户容易使用。 3 数据库结构设计合理,各类属性符合要求。
3.5 系统设计的思想
3.5.1 系统设计结构
基于网吧计费系统的综合性,而且为了满足多方使用的需求,本系统以c/s的框架结构为基本结构模式:(如图3.2所示)
6
软件工程课程设计
图3.2 系统结构图
数据库 服务器 服务端 客户端 3.5.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语言中,不仅可以通过不同的语言开发组件,而且通过交叉语言继承,可以从用一种语言编写的类中派生用另一种语言编写的类。
7
软件工程课程设计
第四章 系统的总体设计
4.1 系统功能设计
本系统包含两个子系统,其中网吧的客户用的是客户端子系统,而网管所使用的则是服务端子系统。每个子系统包换了若干子功能模块,每个子功能模块完成相应的处理操作功能。
网吧计费系统 客户端 管理端 用户登录 用户计费 管理员登陆 用户信息管理 管理员表管理 消费记录管理
图 4.1 系统总功能框图
客户端负责用户信息验证和记录用户的上机信息。 管理端是直接操作数据库信息,实现对整个系统的管理。
8
软件工程课程设计
4.2 系统功能模块简介
4.2.1 客户端功能模块
1 客户登陆
输入用户名与密码登录
系统通过对比用户名与密码确定用户是否合法 2 计费模块
获取登陆时间并保存到数据库 获取下机时间并保存到数据库 计算花费并保存到数据库 计算余额并保存到数据库 4.2.2 服务端功能模块
1 管理员的登陆 输入用户名与密码登陆
系统通过对比用户名与密码确定用户是否合法 2 用户信息管理 添加用户 修改用户 删除用户
3 管理员信息管理 添加管理员 修改管理员 删除管理员 4 消费记录管理 查看消费记录
9
软件工程课程设计
4.2.3 数据库设计
该系统数据库使用的是SQLserver ,美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
1 概念结构设计
概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。
概念模型具有以下的特点:
(1) 概念模型是对现实世界的抽象和概括,它真实、充分地反映了现实世界中事物和事物之间的联系,能满足用户对数据的处理要求。
(2) 由于概念模型简洁、明晰、独立于计算机,很容易理解,因此可以用概念模型和不熟悉计算机的用户交换意见,使用户能积极参与数据库的设计工作,保证设计工作顺利进行。
(3) 概念模型易于更新,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
(4) 概念模型很容易向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R图。E-R模型是一个面向问题的概念模型,即用简单的图形方式(E-R图)描述现实世界中的数据。这种描述不涉及数据在数据库中表示和存取方法,非常接近人的思维方式。后来又提出了扩展实体联系模型(Extend Entity-Relationship Model),简称为“EER模型”。EER模型目前已经成为一种使用广泛的概念模型,为面向对象的数据库设计提供了有效的工具。
10
软件工程课程设计
账号 密码 年龄 用户 余额 n 上机费用 计算机名 1 使用 1 计算机 n 注册日期 管理 1 1 管理员 管理 密码 账号 年龄 性别 年龄 图4.2 详细E-R图
2 逻辑结构设计
概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R图转换为关系模型;然后对关系模型进行优化。
在网吧计费系统当中包括了以上几个ER模型向关系模型的转换: 用户表(帐号,密码,年龄,余额,上机费用,注册日期) 管理员表(帐号,密码,姓名,年龄,性别)
消费表(登陆帐号,登陆时间,下机时间,计算机名,花费)
11
软件工程课程设计
3 物理结构设计
在表当中,关键字(即编号)都采用自动编号的数据类型;日期都采用日期型的数据类型;凡是关于数据量的都采用数据型的数据类型;其他数据均采用文本型的数据类型。当表之间有关系时通过添加外键来处理。当表与其他表有关系时,便给该表建立一张视图,通过外键将两张表联系起来,通过数据筛选,把自己想要的信息提取出来,形成一张新的表。其数据库中表的设计具体如下:
表4-1 用户表
列名 帐号 密码 余额 上机费用 注册日期 数据类型 Char(10) Char(10) Money Money Datetime 允许空 否 否 是 否 是 字段说明 主键 登录密码 用户余额 每分钟费用 注册日期 表4-2 管理员表
列名 帐号 密码 姓名 年龄 性别 数据类型 Char(10) Char(10) Varchar(50) Varchar(50) Char(10) 允许空 否 是 是 是 是 字段说明 主键 登陆密码 管理员姓名 管理员年龄 管理员性别 表4-3 消费表
列名 登陆帐号 登陆时间 下机时间 计算机名 花费
数据类型 Char(10) Datetime Datetime Varchar(50) money 允许空 否 是 是 是 是 字段说明 主键 登陆时间 下机时间 计算机名 花费 12
软件工程课程设计
第五章 详细设计
5.1 关键模块设计
此次设计的网吧计费系统主要包括三大模块:系统登录模块、客户端系统模块、服务端系统模块。系统登录模块由登录界面组成;用户的本次登陆信息显示及操作功能模块组成本系统的客户端系统;用户信息管理、管理员信息管理、消费信息记录组成本系统的服务端系统。客户端系统主要是为普通用户使用而设计的;而服务端系统是维护系统的数据、客户端的数据内容的显示以及用户信息的管理等,是为后台管理员使用设计的。
5.1.1 登陆模块
本系统在客户端有一个用户的登陆界面,在服务端有一个管理员的登陆界面,客户端的登陆是用户开始使用此计算机并开始计费,而服务器端的登陆界面是为了获得管理整个系统的权利。
实现功能:验证帐号和密码的正确性。
实现方法:添加数据库连接,建立LINQ to SQL 类,使用LINQ语言调用数据库信息,完成帐号和密码的验证,进入系统。
实现方案:建立一个窗口,在窗口中添加两个文本框,用来存放帐号和密码,添加一个确定按钮,用来触发登陆事件。添加LINQ to SQL类,建立数据对象,通过LINQ语言查询数据库中是否存在登陆的帐号和密码并匹配。如果存在则进入系统,显示主窗口,关闭登陆窗口(如图5.1)。 5.1.2 客户端模块
实现功能:记录用户的登陆信息,计算用户产生的费用,并发送给数据库。 实现方法:建立一个显示窗口以显示此次登陆的有效信息,获取登陆时间和下机时间,计算此次花费和帐户余额,并将这些信息返回数据库。
具体方案:建立一个窗口,分别添加Label控件显示登陆时间,已上机时间,本次
13
软件工程课程设计
花费。建立LINQ to SQL 类,添加数据库服务器,调用系统时间函数获取登陆时间和下机时间,调用数据库中的用户上机费用等信息,进行计算此次所花的费用。添加Timer控件持续更新当前时间,计算并显示已上机时间(如图5.2)。
开始 输入帐户、密码 N
是否存在 Y 进入 主界面
图 5.1 系统登陆流程图
客户端 获取登陆时间 获取当前时间 计算 费用 修改数据库
图5.2 客户端窗口设计
5.1.3 服务端模块
实现功能:添加修改删除用户信息,添加修改删除管理员信息,查看用户的消费记
14
软件工程课程设计
录。
实现方法:建立各个功能窗口,通过主窗口调用各子功能窗口,在子功能窗口中通过vb.net中的DataGridView控件直接操作数据库中的信息。
具体方案:建立四个窗口,一个作为主窗口,另外三个作为子窗口,建立LINQ to SQL 类,添加数据库服务器,在三个子窗口分别添加DataGridView控件,配置DataGridView控件显示不同的数据表的内容,并相应实现添加删除的功能(如图5.3)。
服务端 主窗口 用户信息窗口 消费记录窗口 管理员信息窗口 添加 修改 删除 查看 添加 修改 删除 修改数据库
图 5.3 服务端窗口设计
5.2 系统界面设计
网吧计费系统主要涉及到三个用户界面:这些界面基本包括了系统功能规定的所有功能。以下是关于这几个用户界面当中一些主要的功能界面的简单介绍。 5.2.1 登录界面
用户登录界面主要是作为系统入口进入系统使用的,使用人员启动系统之后便会出
15
软件工程课程设计
现登录界面,用户登录进入到系统的主界面(如图5.4)。 5.2.2 客户端界面
客户端界面主要是用来显示用户有关信息的。根据网吧用户的习惯设置了一个隐藏按钮,可以放在系统托盘图标中,当双击次图标时,显示客户端的主界面(如图5.5和图5.6)。
图 5.4 用户登陆窗口
图5.5 客户端系统托盘图标
16
软件工程课程设计
图5.6 客户端界面
5.2.3 服务端界面
服务端界面主要是管理员操作系统信息使用的,系统使用人员登录之后便出现功能界面。在此界面下,用户可以操作规定权限下的功能操作。
主界面(如图5.7)调用以下功能模块 1 用户信息管理功能
调用用户信息管理窗口,可以进行添加,修改,删除用户信息操作。(如图5.8 ) 2 管理员信息管理功能
调用管理员信息管理窗口,可以进行添加,修改,删除管理员信息操作。(如图5.9 ) 3 消费记录管理功能
察看用户的消费记录。(如图5.10 )
图 5.7 主界面
17
软件工程课程设计
图 5.8 用户信息管理界面
图5.9 管理员信息管理界面
图 5.10 消费记录管理界面
18
软件工程课程设计
第六章 编码实现
6.1 系统功能实现
网吧计费管理功能主要有两个方面:客户端和服务端。在服务端,管理员能够增加,
删除及更新用户信息;客户端在普通用户登陆后,会自动计时计费。系统功能实现主要通过客户端对登陆用户信息进行收集和更新。
6.2 登陆模块编码
图 6.1 登陆窗口
Dim db As New 网吧计费管理DataContext Try
Dim username = (From admin In db.Table_2 _
Where admin.帐号 = UsernameTextBox.Text _ Select admin.帐号).Single() Dim userpassword = (From admin In db.Table_2 _
Where admin.密码 = PasswordTextBox.Text _ Select admin.密码).Single() UsernameTextBox.Text = \"\" PasswordTextBox.Text = \"\" Form1.Show() Me.Close()
Catch ex As Exception
MessageBox.Show(\"用户名或密码错误, 请重新输入!\") UsernameTextBox.Text = \"\"
19
软件工程课程设计
PasswordTextBox.Text = \"\" End Try
6.3 客户端模块编码
图 6.2 客户端窗口
Dim db As New 网吧计费管理DataContext Dim mydatetime As DateTime
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Hide()
LoginForm1.ShowDialog() Try
Dim username = From admin In db.Table_3 _
Where admin.登陆账号 = Label7.Text _ Select admin mydatetime = DateTime.Now
Label4.Text = mydatetime.ToString For Each Table_3 In username
Table_3.登陆时间 = mydatetime
Table_3.计算机名 = System.Net.Dns.GetHostName Next
db.SubmitChanges() Catch ex As Exception
Dim newTable_3 As New Table_3 With { _ .登陆账号 = Label7.Text, _ .登陆时间 = Label4.Text, _
20
软件工程课程设计
.计算机名 = System.Net.Dns.GetHostName} db.Table_3.InsertOnSubmit(newTable_3) db.SubmitChanges() End Try End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If (Label7.Text = \"\") Then Else
Dim nowdatetime As DateTime = DateTime.Now Dim ds As TimeSpan
ds = nowdatetime.Subtract(mydatetime) Label5.Text = ds.ToString
Dim huafei = From user In db.Table_3 _
Where user.登陆账号 = Label7.Text _ Select user
Dim cost = (From user In db.Table_1 _
Where user.帐号 = Label7.Text _ Select user.上机费用).Single Dim hua = (ds.Minutes + ds.Hours * 60) * cost For Each Table_3 In huafei Table_3.花费 = hua Next
db.SubmitChanges() Label6.Text = hua End If End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim closetime As DateTime = DateTime.Now Dim ds As TimeSpan
ds = closetime.Subtract(mydatetime) Dim yu = (From user In db.Table_1 _
Where user.帐号 = Label7.Text _ Select user) Dim cost = (From user In db.Table_1 _
Where user.帐号 = Label7.Text _ Select user.上机费用).Single For Each Table_1 In yu
Table_1.余额 = Table_1.余额 - (ds.Minutes + ds.Hours * 60) * cost Next
db.SubmitChanges()
21
软件工程课程设计
Me.Close() End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
If Me.WindowState = FormWindowState.Minimized Then Me.Hide() End If End Sub
Private Sub 显示详细信息ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 显示详细信息ToolStripMenuItem.Click Me.Visible = True
Me.WindowState = FormWindowState.Normal End Sub
Private Sub 下机ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 下机ToolStripMenuItem.Click Dim closetime As DateTime = DateTime.Now Dim ds As TimeSpan
ds = closetime.Subtract(mydatetime) Dim yu = (From user In db.Table_1 _
Where user.帐号 = Label7.Text _ Select user) Dim cost = (From user In db.Table_1 _
Where user.帐号 = Label7.Text _ Select user.上机费用).Single For Each Table_1 In yu
Table_1.余额 = Table_1.余额 - (ds.Minutes + ds.Hours * 60) * cost Next
db.SubmitChanges() Me.Close() End Sub
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick Me.ShowInTaskbar = True Me.Show()
Me.WindowState = FormWindowState.Normal End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Hide() End Sub
22
软件工程课程设计
6.4 服务端模块编码
图 6.3 服务端主窗口
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Hide()
LoginForm1.ShowDialog() End Sub
Private Sub 用户管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 用户管理ToolStripMenuItem.Click Form2.MdiParent = Me Form2.Show()
Form2.WindowState = FormWindowState.Maximized Form3.Hide() Form4.Hide() End Sub
Private Sub 管理员管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 管理员管理ToolStripMenuItem.Click Form3.MdiParent = Me Form3.Show()
Form3.WindowState = FormWindowState.Maximized Form2.Hide() Form4.Hide() End Sub
Private Sub 消费记录ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 消费记录ToolStripMenuItem.Click Form4.MdiParent = Me Form4.Show()
Form4.WindowState = FormWindowState.Maximized Form2.Hide() Form3.Hide()
End Sub
23
软件工程课程设计
图 6.4 服务端用户信息子窗口
Private Sub Table_1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Table_1BindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Table_1BindingNavigatorSaveItem_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Table_1BindingNavigatorSaveItem_Click_3(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Table_1BindingNavigatorSaveItem_Click_4(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Table_1BindingNavigatorSaveItem.Click Me.Validate()
24
软件工程课程设计
Me.Table_1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“网吧计费管理DataSet.Table_1”中。您可以根据需要移动或移除它。
Me.Table_1TableAdapter.Fill(Me.网吧计费管理DataSet.Table_1)
End Sub
图 6.5 服务端管理员信息子窗口
Private Sub Table_2BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_2BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Table_2BindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Table_2BindingNavigatorSaveItem.Click Me.Validate()
Me.Table_2BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“网吧计费管理DataSet.Table_2”中。您可以根据需要移动或移除它。
Me.Table_2TableAdapter.Fill(Me.网吧计费管理DataSet.Table_2)
End Sub
25
软件工程课程设计
图 6.6 服务端用户消费记录子窗口
Private Sub Table_3BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate()
Me.Table_3BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.网吧计费管理DataSet) End Sub
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“网吧计费管理DataSet.Table_3”中。您可以根据需要移动或移除它。
Me.Table_3TableAdapter.Fill(Me.网吧计费管理DataSet.Table_3)
End Sub
26
软件工程课程设计
第七章 系统测试
7.1 系统测试目标
系统测试的目标是想以最少的时间和人力发现系统中潜在的各种错误和缺陷。如果成功的实现了测试,就能够发现系统中的错误,并及时的更改过来。测试的另一个收获是它能够证明此次设计的系统功能和性能与需求说明相符。
7.2 系统测试方案
在软件测试活动的生命周期中,测试设计实际上是对前面所做测试计划进行进一步细化、具体化从而形成针对特定项目的测试策略、测试方案及测试用例的过程。
表 7.1 测试用例设计
项目与类别 共同点 黑盒测试(功能性) 白盒测试(结构性) 其他 参考单元接口和功能参考详细设计规格文档,强调个人经描述规格文档,不需了对照代码,测试被测单元验,采用猜测解被测单元的内部结内部如何工作的 构 或选择特殊值的方法 路径测试 控制结构测试 逻辑覆盖 程序插装 „„ 错误猜测 特殊值测试 具体类别 软件设计导出的测试 等价类划分 边界值分析 判定表驱动测试 因果图 基于状态的测试 „„ 其中,黑盒测试中常用的等价类划分方法是先把程序的输入域划分成若干区间,然后从每个区间中选取少数代表性数据当作测试用例(由于数量太大,穷举测试一般情况下不可能实现)。在使用等价类划分方法时,通常会涉及到两种等价类:有效等价类和无效等价类。顾名思义,有效等价类就是对程序的规格说明是有意义的合理的输入数据
27
软件工程课程设计
集; 无效等价类就是对程序规格说明书不合理或无效的输入数据集。
7.3 具体测试
7.3.1 登录模块测试
1、用户登录,弹出的窗体如下所示:
图 7.1 登陆窗口
如果输入不正确的信息就会弹出出错框,如图7.2所示。
图 7.2 出错框
7.3.2 客户端测试
用户登陆后,经过一段时间,客户端会按照服务端设置的上机费用,计算出这段时间的花费,发送到数据库,更新余额。用户登陆后显示(如图7.3),在服务端数据会相应更新(如图7.4,如图7.5,如图7.6)。
28
软件工程课程设计
图7.3 客户端显示余额
图 7.4 服务端用户原余额
图 7.5 服务端用户现余额
图 7.6 服务端用户消费记录
29
软件工程课程设计
7.3.3 服务端测试
登陆服务端后,添加用户如表7-1所示,添加后的效果如图7.7所示。然后进行删除用户和更改余额管理,结果如图7.8和7.9所示。
表 7-1 添加用户表
帐号 1001
密码 123456 年龄 23 余额 50.0000 上机费用 0.5000 注册日期 2009/12/8
图 7.7 添加用户1001
图 7.8 删除用户1001
图 7.9 更改1000用户余额
30
软件工程课程设计
结束语
在课程设计当中认我认识到开发一项好的软件不是某一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的就好办法。所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。
其次呢,在课程设计中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。例如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和责任的书面记录。只有实现了这两个目标,软件文档才真正提供了有意义的信息。软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。
31
软件工程课程设计
参考文献
[1] 张海藩.软件工程导论.北京:清华大学出版社,2008年
[2] 王珊,萨师煊.数据库系统概论(第四版).北京:高等教育出版社,2008年 [3] 龚赤兵等.visual studio 2008 中的LINQ 开发技术.北京:机械工业出版社,2008年
[4] Julia Case Bradley,Anuta C.Millspaugh .Visual Basic 2008 程序设计(第七版).北京:清华大学出版社,2008年
[5] 章立民等.Visual Basic 2003 – 2005 开发秘诀与范例大全.北京:电子工业出版社,2005年
[6] 胡百敬 姚巧玫. SQL Server 2005数据库开发详解.北京:电子工业出版社,2006年
[7] 童爱红 刘凯 刘雪梅.VB.NET程序设计实用教程.北京:清华大学出版社,2008年
32
因篇幅问题不能全部显示,请点此查看更多更全内容