您的当前位置:首页正文

软件工程设计报告音像租凭管理系统

来源:爱站旅游
导读软件工程设计报告音像租凭管理系统


滨江学院

软件工程课程设计报告

( 2007 -- 2008 年度第 二 学期)

课程名称: 软件工程课程设计

题 目:音像租凭管理系统的开发与实现 院 系: 计算机软件工程 班 级: 软件工程2班 学 号: *********** * 名: *** 指导教师: *** 设计周数: 17周

日期:2013 年 6月 13日

软件工程课程设计报告

摘要:

随着科学技术的飞速发展,计算机科学日臻成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。音像租借管理系统是市场经济条件下,一些大众传播媒介和商家不可缺少的部分,它的内容不论对于媒介和商家的管理者还是对于用户来说都至关重要。

为此,本文设计并实现了一个音像店租赁管理系统,文中研究了与系统相关的技术;分析了系统功能、性能和数据的需求,设计了系统架构、系统功能和数据库,运用MyEclipse为开发工具,采用C/S结构,后台使用Sql2005进行数据库的连接和管理。完成了音像租借管理中包括音像制品信息、顾客信息的新增,租借、归还处理的记录以及相关数据的统计、查询、修改等音像租借管理的功能。基本解决了管理上的手工复杂工作流程,提高了系统信息的安全性

关键字:音像租借,音像店系统,MyEclipse8.5

一、课程设计的目的与要求

通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

具体如下:

1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编

码和测试方面的知识; 2. 熟悉开发软件的运用过程

3. 进一步加强和提高软件工程文档的编写能力; 4. 培养协作能力和团队精神。

二、设计正文

目 录

1 开发介绍与分析

1.1 开发背景及意义 ........................................................ 2 1.2音像店租赁管理系统的应用现状 .......................................... 3 2 技术与工具介绍 ............................................ 错误!未定义书签。 2.1 应用的相关技术........................................ 错误!未定义书签。 2.1.1 C/S模式...........................................................错误!未定义书签。

2.1.2 JAVA编程语言 ...................................... 错误!未定义书签。 2.2 开发工具介绍.......................................... 错误!未定义书签。 2.2.1 MYECLIPSE 简介 ..................................... 错误!未定义书签。 2.2.2 SQLSERVER2005简介 ................................. 错误!未定义书签。 2.3 小结.................................................. 错误!未定义书签。 3 需求分析 .................................................. 错误!未定义书签。 3.1 系统用例图和用例描述.................................. 错误!未定义书签。 3.2 功能需求.............................................................. 5 3.3 数据需求.............................................................. 6 3.4 小结.................................................................. 7 4 概要设计 .................................................................. 8 4.1 系统设计思想.......................................................... 8

1

软件工程课程设计报告

4.2 系统功能设计.......................................................... 9 4.3 系统功能模块划分...................................................... 9 4.4 数据库设计........................................................... 10 4.5 小结................................................................. 12 5 详细设计与实现 ........................................................... 13 5.1 登录模块............................................................. 13 5.1.1登录模块概述 ..................................................... 13 5.1.2登录模块流程和分析 ............................................... 13 5.1.3登录模块实现 ..................................................... 13 5.2 主界面............................................................... 13 5.2.1主界面模块概述 ................................................... 13 5.2.2主界面模块分析 ................................................... 14 5.2.3主界面模块实现 ................................................... 14 5.3 基础数据维护......................................................... 15 5.3.1 顾客信息管理..................................................... 15 5.3.2 音像类别管理..................................................... 17 5.3.3 音像制品信息管理................................................. 20 5.4 音像制品订购管理..................................................... 22 5.4.1 音像订购管理..................................................... 22 5.4.2 音像验收管理..................................................... 22 5.5 租赁及查询管理....................................................... 24 5.5.1 音像制品租借..................................................... 24 5.5.2 音像制品归还..................................................... 26 5.5.3 音像制品查询..................................................... 27 5.6 系统维护............................................................. 28 5.6.1 更改密码......................................................... 28 5.6.2 用户信息管理..................................................... 28 5.7 快捷工具栏........................................................... 30 6 系统测试 ................................................................. 31 6.1 测试方法............................................................. 31 6.2 测试环境............................................................. 31 6.3 功能测试............................................................. 32 6.4 小结................................................................. 33 7 结束语 ................................................................... 34 7.1 总结................................................................. 34 7.2 展望................................................................. 34 附 录 ..................................................................... 34 参考文献 ................................................................... 38 致 谢 ....................................................... 错误!未定义书签。

1.1 开发背景及意义

管理信息系统MIS(Management Information System)指的是进行日常事物操作的系统,

2

软件工程课程设计报告

主要用于管理需要的记录,并对记录数据进行相关的处理。MIS系统通常用于系统决策,如何以利用MIS系统找出目前迫切需要解决的问题,并将信息及时的反馈给系统管理人员,使他们了解当前工作发展的进展或不足。基于Web的MIS系统是对传统MIS系统概念上的扩展,它不仅可以用于决策,而且可以用于进行普通的管理。通过用户的登录可以实现对系统信息的浏览、查询、和更新。

管理信息系统MIS是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业和单位的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。随着我国与世界信息高速公路的接轨,企业通过计算机网络获得信息必将为企业带来巨大的经济效益和社会效益,企业的办公及管理都将朝着高效、快速、无纸化的方向发展。而MIS系统通常用于系统决策,例如,可以利用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或不足。

并且经过具体实地调查发现,音像租赁行业的自动化水平还比较落后,大多数音像租赁店还处于人工管理阶段,即还是使用纸和笔来对租赁信息进行记录。当同时来办理租赁业务的顾客比较少时,人工管理还应付的过来;但当同时来的顾客比较多时,人工管理的冗繁性、低效性就暴露了出来,同时还面临着出错的可能性。

这一缺乏系统、规范的管理手段,严重阻碍了该行业的快速发展。而大多数其他行业如零售、金融等行业早已具备了相关的、较为成熟的管理系统。因此专门为租赁行业开发一个管理系统是很必要的。

1.2音像店租赁管理系统的应用现状

目前许多中小型音像店还没有实现信息化、网络化。数据传递、信息发布等多为

手工模信息、维护选修课程,还有公用的修改密码等功能。

1.3 系统的开发环境及运行环境:

操作系统: Windows XP Pro SP2 建模工具: Rational Rose 2003 数据库系统:SQL Server2000 开发工具: Visual Studio 2005 Web服务器:IIS+ASP.NET 2.0平台

1. 系统需求分析

需求分析是软件开发的基础,需求分析得出的结论是软件开发后续阶段的工作依据,直接决定着最终软件能否满足用户的需求,决定着软件开发的成功与否。

开发音像店租赁管理系统的需求分析是通过对音像店管理模式的了解,通过与音像店工

3

软件工程课程设计报告

作人员的交流,获取音像店管理人员对系统的需求,以及对开发系统各方面的建议而得到的。对其建议进行筛选、归纳和总结,最终确定了用户对该系统的需求。

2.1.系统用例图

音像店租赁管理系统s>>esu<<基础数据<>维护<>顾客信息音像制品信息音像类别信息<>顾客信息管理1<>音像制品管理<>音像类别管理>>tendsxe<<音像订购管理<>音像制品订购音像制品验收音像制品租借音像制品归还用户信息管理更改口令顾客订购信息<>管理员音像租赁管理<>>nds>etxe<<租借信息<><>系统维护<>用户信息<>

用例图说明:

2.用例描述

基础数据维护用例描述如表3-1所示。

表3-1 基础数据维护用例描述

用例名称:基础数据维护 用例标识号:101

续表3-1

参与者:管理员 简要说明:

在音像店租赁行业中,众多的顾客信息、音像制品信息和音像类别信息给管理带来了不便,本系统通过对这些数据集中管理和维护来减轻管理人员的工作。基础数据维护

4

软件工程课程设计报告

包括顾客信息管理、音像制品信息管理和音像类别信息管理,其中顾客信息管理主要完成对顾客信息的添加、修改和删除功能。音像制品信息管理主要完成对音像制品信息的添加和修改功能。音像类别信息管理主要完成对音像类别信息的添加和修改功能。基础数据维护的好坏直接决定系统数据存储的安全性和稳定性,通过对基础数据的维护,为音像制品订购和租赁管理铺平了道路。

其中音像订购用例描述如表3-2所示。

表3-2 音像订购用例描述

用例名称:音像订购管理 用例标识号:102 参与者:管理员 简要说明:

随着科技的不断进步,音像店租赁行业也随着飞速发展,新的音像制品层出不穷,为了实现音像店租赁系统的数据更新,管理员需要对音像制品进行订购,其中,出于对系统安全性考虑,市面上新的音像制品发行后,管理员要想订购这些音像制品,首先会在基础数据维护的音像制品信息管理中把这些音像制品信息添加进来,然后才能进行订购操作,如果在音像制品信息管理中没有这些音像制品信息,则订购不成功。音像制品订购成功后,在数据库中是不存在的,只有管理员对新订购的音像制品完成验收才能在数据库更新中有所体现。

音像制品租赁管理用例描述如表3-3所示。

表3-3 音像制品租赁管理用例描述

用例名称:音像制品租赁管理 用例标识号:103

参与者:操作员,顾客 简要说明:

音像店租赁行业中最主要的业务就是音像制品的租借和归还,本系统的音像制品租赁管理主要完成的是对顾客租借和归还音像制品信息的管理,其中可以准确无误的记录下顾客租借和归还的时间以及当时的操作员。在音像制品租赁管理中可以通过系统的模糊查询功能完成对音像制品信息的查看功能,模糊查询包括按音像制品名和主演姓名来查询。当顾客来租借音像制品时,管理员可以通过先查看是否有这种音像制品,如果有顾客需要租借的音像制品再进行租借操作,由此可知,查询是为租借服务的。

系统维护用例描述如表3-4所示。

表3-4 系统维护用例描述

用例名称:系统维护 用例标识号:104 参与者:管理员 简要说明:

由于经济的迅速发展,任何企事业单位的系统都需要对系统进行维护,以此来提供系统的性能和安全稳定性。本系统的系统维护主要实现的是对以后系统更新维护做准备,其中包括对操作员密码的修改和对用户信息的添加、修改和删除。

5

软件工程课程设计报告

3.2 功能需求

功能需求说明了系统的功能,即系统是如何记录、计算、转换和传输数据的。每个接口都有它自己的功能,通常,用户界面是最重要的接口。本文完成的音像店租赁管理系统的用户功能需求主要包括以下几个方面:

1.用户登录和修改密码

音像店租赁管理系统的用户正确输入用户名和密码后,才能进入本系统进行相关操作,当然,用户可以修改自己的信息,权限除外。

2.音像制品信息管理

随着科技的高速发展,音像制品行业也越发蓬勃,音像制品信息业越发繁多,手工对音像制品信息进行管理已经满足不了音像制品行业的现状,计算机的到来解决了音像制品信息的添加、修改和删除,可以更加完美的保存好音像制品信息。

3.音像类别管理

音像制品行业中,音像类别随着科技的进步也有新类别,类别不同,租借的价格也有所不同,系统需要完成对不同类别音像制品信息的添加和修改。

4.顾客信息管理

系统需要录入大量顾客信息,对顾客信息进行管理。 5.音像制品的订购和验收管理

为了更好地满足顾客的需求,系统需要不定时的对新出版的音像制品进行订购,经过用户的验收后,录入数据库,实现数据库信息的更新。

6.音像制品租借和归还管理

系统要求能够实现音像制品的租借和归还功能,准确记录下租借时间和归还时间,对超过期限给以一定量的罚款,不同类别的音像制品,其罚款金额也同。

7.系统维护

系统管理员可以添加新用户来对系统进行维护,也能对新用户信息进行管理,由于该系统基于中小型音像店,当系统用户需要更新时可以通过修改相应的权限来完成。

3.3 数据需求

数据需求[3]是需求的重要组成部分,用于说明系统的输入、输出数据以及系统内部存储的数据。音像店租赁管理系统中,数据库的内容是系统的最重要部分,系统功能的实现主要用于数据维护和数据的各种显示,其中数据模型则说明了系统所要存储的数据以及数据之间的关系。下面给出实体型图和ER图。

1. 实体型图

系统存储数据的各个实体型图如表3-5所示。

6

软件工程课程设计报告

表3-5 系统存储数据实体型图

歌手类别编号名称音像制品导演出品时间出版社价格音像制品实体型图: 顾客卡号姓名职业年龄性别押金租借量顾客实体型图: 证件号码序号密码权限名字操作员实体型图:2.ER图

p顾客m租赁nq音像制品管理服务操作员 1操作员1 图3-2 系统E-R图

3.4 小结

本章对系统进行了需求分析,首先给出了系统的流程图,接着通过对系统功能需求的分析了解了系统应该完成的功能。最后对系统的数据进行了需求分析,以便于保证系统长期、安全、高效的运行。

7

软件工程课程设计报告

I、

4 概要设计

系统概要设计是软件系统中的核心元素,是系统中最难改变的部分,也是构建软件系统

中其他部分所依赖的基础,系统概要设计指的是系统各个组成部分协同工作的方式。系统的各个组成部分正是通过架构所描绘的方式进行协同工作,共同完成系统的功能,最终向外界表现出一个完整的系统。因此,系统概要设计的好坏会从根本上决定所构建的软件系统的质量。总的来说,系统概要设计一直是软件开发过程中的一项重要工作。

4.1 系统设计思想

常见的设计思想有两种:结构化和面向对象化。

传统的结构化开发过程包括软件目标的功能分解,以及使用正确的参数和返回值来创建函数。首先分析需求,确定功能,然后以函数的形式进行建模。在一个应用系统中很可能有很多函数,这些函数能够不受限制的互相调用,因此在访问某个变量时,很难保证它不是正在被其他的函数访问或者修改。这些代码也许能够满足功能上的需要,却不能达到非功能性的要求。

在结构化开发方法面临问题的时候,使用面向对象的方法进行分析、设计和开发就可以解决一部分问题。面向对象的分析和设计方法源于现实生活中的模块化的思想。对象是提供一组相关功能的实体,对象之间互相作用从而完成一定的任务。开发方法包括对目标的模块化,以及用类的形式对数据和函数进行封装。面向对象(简称OOP)方法[2]的主要特征是抽象和数据封装、派生和继承、多态性。

1.抽象性

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.封装性

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

3.继承性

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的

8

软件工程课程设计报告

需要。

4.多态性

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

OOP方法解决问题的过程从总体上来说是采用自底向上方法,先将问题空间划分为一系列对象的集合,再将对象集合进行分类抽象,一些具有相同属性行为的对象被抽象为一个类,类还可抽象分为子类、超类。其间采用继承来建立这些类之间的联系,形成结构层次。同时对于每个具体类的内部结构,又可采用自顶向下逐步细化的方法由粗到细精化之。调试运行时通过向类对象发消息来完成,对象执行相应操作并返回结果,使对象集的初始状态变成了终态。故00P总体来说主要是不断设计新的类和创建对象的过程。

由于面向对象设计自身的优点,本系统使用了面向对象的程序设计思想。

4.2 系统功能设计

对于音像店租赁管理系统,主要负责的功能是指对音像店所出租的音像制品入库、租赁,以及订购管理,另外还包括对系统的用户进行管理。

本系统的具体功能如下:

1.音像店管理员通过登陆界面进入系统,浏览系统中的各种信息。

2.当有顾客来办理租赁业务时,管理员通过与顾客的交流获得顾客的基本信息,并根据顾客的意愿为其选择顾客类型,并将基本信息录入系统中,即对顾客信息的添加。同时管理员还可以对顾客信息进行修改和删除等操作。

3.当店里来了新货,管理员应当在第一时间进行验收并将光盘信息录入系统中,以便对音像信息的及时更新,此外当需要淘汰一部分音像制品或有些音像制品的信息有所变动时,就需要管理员对其进行删除和修改的操作。

4.该系统还对用户信息进行管理,主要是实现对其信息的查找,添加、修改及删除等功能。

5.该系统的核心功能是实现对租赁信息的有效管理,准确无误的记录下顾客对光盘的租赁时间、被租音像的基本信息和顾客归还光盘的日期,并快速精确地计算出顾客应付的租赁费用。

该系统可以帮助管理员合理对各种信息进行高效管理,缩短工作时间,使工作流程实现高效化,为音像店在管理这方面解决了工作繁杂等一系列的问题。

4.3 系统功能模块划分

根据第3章中系统的需求分析,将音像店租赁管理系统分为四部分:基础数据维护、新

9

软件工程课程设计报告

碟订购及验收、音像租借与归还管理和系统维护,其功能结构如图4-1所示。

音像店租赁管理系统基础数据维护音像订购管理租赁管理系统维护音像制品信息管理音像类别信息管理顾客信息管理音像制品订购音像制品验收音像制品租借音像制品归还音像制品查询更改密码用户管理退出系统图4-1 音像店租赁管理系统功能模块图 4.4 数据库设计

1.基于不同角色的用户拥有不同的权限,现设计tb_operator表来保存系统的所有用户信息,包括管理员和一般用户。其结构如表4-1所示。

表4-1 存放操作员信息

列名 Id Name Sex Age identityCard Workdate Tel State Password 数据类型 int varchar(50) varchar(2) int varchar(50) datetime varchar(50) bit varchar(50) 说明 编号(主键) 姓名 性别 年龄 押金 办证日期 电话 权限 密码 2.在音像店租赁管理系统中,对于音像制品的管理是系统的重要组成部分。本文中,设计表tb_ videoInfo来保存系统的所有音像制品信息。其结构如表4-2所示。

表4-2 存放系统中的音像制品信息 列名 数据类型 10

说明 软件工程课程设计报告

ISBN typeId videoName zhuYan Publisher Date Price varchar(13) int varchar(50) varchar(50) varchar(50) smalldatetime money 音像编号(主键) 类型编号 音像名称 主演 出版社 出品日期 单价 3.在音像店租赁管理系统中,对于音像制品的管理是系统的重要组成部分。本文中,设计表tb_ videoType来保存系统中音像制品的类别。其结构如表4-3所示。

表4-3存放系统中的音像制品的类别

列名 Id typeName Days Fk 数据类型 int varchar(50) int float 说明 类别号(主键) 类别名 可借天数 罚金 4.在音像店租赁管理系统中,对于顾客的管理是系统的重要组成部分。本文中,设计表tb_ gukeMessage来保存顾客信息。其结构如表4-4所示。

表4-4 存放顾客信息 列名 ISBN Name Sex Age identityCard Date maxNum Tel keepMoney Zj 数据类型 varchar(13) varchar(10) varchar(2) int varchar(50) datetime int varchar(50) money int 说明 顾客编号(主键) 姓名 性别 年龄 证件号码 过期日期 最大租借量 电话 押金 证件 11

软件工程课程设计报告

Zy 续表4-4 Bztime varchar(50) 职业 datetime 办证时间 5.在音像店租赁管理系统中,对于音像制品的租借和归还管理也是系统的重要组成部分。本文中,设计表tb_ borrow来保存租借信息。其结构如表4-5所示。

表4-5 存放音像制品的租借信息

列名 Id videoISBN operatorId gukeISBN Isback borrowDate backdate 数据类型 int varchar(50) int varchar(50) int datetime datetime 说明 编号(主键) 音像编号 操作员编号 顾客编号 是否归还 租借日期 归还日期 6.在音像店租赁管理系统中,对于音像制品的订购和验收管理也是系统的重要组成部分。本文中,设计表tb_order来保存订购和验收信息。其结构如表4-6所示。

表4-6 存放音像制品的订购和验收信息

列名 ISBN Date Number Operator checkAndAccept Zk 数据类型 varchar(13) datetime int varchar(50) int float 说明 音像编号(主键) 订购日期 订购数量 操作员 是否验收 折扣 4.5 小结

本章介绍了系统的概要设计,首先分析了系统设计思想,接着按照用户的需求对系统的功能进行了设计,然后给出了系统的功能模块图,最后,分析了数据库的整体设计,为系统的开发做好了的准备。

12

软件工程课程设计报告

II、 5 详细设计与实现

第4章对音像店租赁管理系统进行了概要设计,本章对该对系统进行详细设计,并给出主要功能模块的具体实现。在主要功能模块中,首先对功能模块进行概述,接着给出功能模块流程图和分析,最后给出模块的具体实现。

5.1 登录模块

5.1.1登录模块概述

每一个系统都有一个自己的登录模块,它是用户进入系统操作的入口,登录模块保证着系统的安全。用户输入用户名和密码,如果用户名和密码正确,就会进入主页面(音像店租赁管理系统),但是若用户名和密码不正确,就会弹出一个小窗口,提醒用户用户名或密码错误,点击重置按钮重新登录。

5.1.2登录模块流程和分析

该模块主要实现用户的登录功能。流程图如图5-1所示。在此模块中主要是SQL语句的灵活运用,通过select语句来查找登录的用户信息是否在operator表中存在,且admin为1。

5.1.3登录模块实现

运用具有双缓冲和流布局[7]的轻量级容器JPanel和可以显示文本和图像的组件JLable以及JButton实现用户登录窗体。当用户输入用户名和密码后点击登录,VideoLoginAction类中调用check()方法进入后台判断,当满足条件后,把主窗体界面设置成可见,把登录窗体设置成不可见。登录窗体如图5-2所示。

5.2 主界面

5.2.1主界面模块概述

在主界面中有菜单栏和快捷工具栏,菜单栏里包括基础数据维护、音像订购管理、租赁管理和系统维护。基础数据维护中包括音像信息管理、音像类别管理和顾客信息管理,音像订购管理中包括新碟订购和新碟验收,租赁管理中包括音像制品租借管理、音像制品归还管理和音像制品查询,系统维护中包括用户信息管理和更改口令操作。主界面主要实现与各个界面的链接。

13

软件工程课程设计报告

开始输入用户名和密码弹出错误提示框否用户名和密码是否正确是成功登陆跳转到音像店租赁系统主界面进入房屋租赁系统主界面点击退出按钮结束 图5-1系统登录流程图

图5-2系统登录

5.2.2主界面模块分析

主界面中用到了创建多文档界面的容器类JDesktopPane和一些用于创建菜单栏的容器组件以及创建快捷工具栏的图标。此外,还用到了HTML来布置主界面的背景。

5.2.3主界面模块实现

在类VideoSystem的构造器中先用容器JDesktopPane创建多文档界面,在添加组件侦听器addComponentListener中设置主窗体的背景,再把用于创建主窗体背景图片的JLabel追加到容器JDesktopPane中,最后用createMenu()方法创建菜单栏及createToolBar()方法创建快捷工具栏。主界面如图5-3所示。

14

软件工程课程设计报告

图5-3系统主界面

5.3 基础数据维护

5.3.1 顾客信息管理

1.顾客信息添加模块 (1)顾客信息添加模块概述

顾客信息添加模块主要是通过管理员对顾客信息的录入来完成对顾客信息的添加功能。 (2)顾客信息添加模块流程图和技术分析

该模块主要实现顾客信息的添加功能,如图5-4所示。此模块主要是对sql语句的灵活应用,通过向后台数据库顾客信息表中添加数据来完成顾客信息的添加功能,添加数据通过insert语句来实现。

(3)顾客信息添加模块实现

在类GuKeAddIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选框按钮JRadioButton、用于文本编辑的JTextField还有JButton组件等来完成顾客信息添加窗体,当点击保存时,在类ButtonAddListener的方法actionPerformed()中用过调用InsertGuKe()方法,InsertGuKe()方法返回值为int型,来说明数据库中变化的行数,若此变量等于1说明完成顾客信息的添加。顾客信息添加窗体如图5-5所示。

2.顾客信息修改和删除模块 (1)模块概述

顾客信息修改和删除模块,主要完成对顾客信息的修改和删除,管理员通过对顾客信息的修改和删除完成数据库的更新。

(2)模块流程图和技术分析

该模块主要实现顾客信息的修改和删除功能,如图5-6所示。此模块主要是对sql语句的灵活应用,通过修改后台数据库中顾客信息表的数据来完成顾客信息的更新功能,修改数据通过update语句和delete语句来实现。

15

软件工程课程设计报告

开始点击顾客信息添加输入顾客姓名和年龄等信息从下拉菜单中选择证件类型输入证件号码点击添加按钮输入的顾客信息中是否为空是弹出信息不能为空提示对话框否弹出证件号必须为18位对话框否顾客证件号是否为18位是数据库中顾客信息添加成功弹出添加成功对话框结束

图5-4顾客信息添加流程图

图5-5顾客信息添加

(3)模块实现

在类GuKeModiAndDelIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选框按钮JRadioButton、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成顾客信息修改和删除窗体,当用户选中一条记录点击修改时,类ModiButtonListener的方法actionPerformed()中调用UpdateGuKe()方法来完成顾客信息修改功能,当用户点击删除时,类DelButtonListener的方法actionPerformed()中调用DelGuKe()来完成顾客信息的删除功能。根据方法返回int i的值,来说明数据库中变化的行数,若此变量等于1说明完成顾客信息的修改和删除。顾客信息修改和删除窗体如图5-7所示。

16

软件工程课程设计报告

开始点击顾客信息修改和删除从表格中选择一条记录修改顾客信息点击删除按钮否是否点击修改数据库中顾客信息删除成功是数据库中顾客信息修改成功弹出删除成功对话框弹出修改成功对话框结束 图5-6顾客信息修改和删除流程图

图5-7顾客信息修改和删除

5.3.2 音像类别管理

1.音像类别添加模块 (1)模块概述

音像类别添加模块主要完成对音像类别信息的添加,管理员通过向数据库录入数据来完成音像类别的添加功能。

(2)模块流程图和技术分析

该模块主要实现音像类别信息的添加功能,如图5-8所示。

此模块主要是对sql语句的灵活应用,通过向后台数据库的音像类别表中添加数据来完成音像类别的添加功能,添加数据通过insert语句来实现。

(3)模块实现

在类VideoTypeAddIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标

17

软件工程课程设计报告

签、用于文本编辑的JTextField还有JButton组件等来完成音像类别添加窗体,点击保存时,在添加侦听器addActionListener的方法actionPerformed()中调用InsertVideoType()方法。根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像类别添加成功。音像类别添加窗体如图5-9。

开始点击音像类别信息添加菜单输入音像类别信息点击保存按钮弹出音像类别信息不能为空提示框是音像类别信息是否为空否数据库中音像类别信息添加成功弹出添加成功对话框结束 图5-8音像类别添加流程图

图5-9音像类别添加

2.音像类别修改模块 (1)模块概述

音像类别修改模块实现了音像类别修改的功能,管理员通过对音像类别的修改来完成数据库的更新。

(2)模块流程图和技术分析

该模块主要实现音像类别信息的修改功能,流程如图5-10所示。

此模块主要是对sql语句的灵活应用,通过修改后台数据库中的音像类别表的数据来完成音像类别的更新功能,修改数据通过update语句来实现。

18

软件工程课程设计报告

(3)模块实现

在类VideoTypeModiIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选框按钮JRadioButton、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成音像类别信息修改窗体,当用户选中一条记录点击修改时,类ModiButtonListener的方法actionPerformed()中调用UpdateVideoType()方法来完成音像类别信息修改功能。根据方法返回int i的值,来说明数据库中变化的行数,若此变量等于1说明完成音像类别信息的修改。音像类别修改窗体如图5-11所示。

开始点击音像类别信息修改按钮在表格中选择一条记录修改编号、名称等信息否是否修改是数据库中音像类别信息修改成功弹出修改成功对话框否是否退出是结束 图5-10音像类别修改流程图

图5-11音像类别修改

19

软件工程课程设计报告

5.3.3 音像制品信息管理

1.音像制品信息添加模块 (1)模块概述

音像制品信息添加模块完成了对音像制品信息的添加功能,管理员通过向数据库录入数据来完成对音像制品信息的添加功能。

(2)模块流程图和技术分析

该模块主要实现音像制品信息的添加功能,模块流程如图5-12所示。

开始点击音像制品信息添加按钮输入编号名称等音像制品信息点击保存按钮弹出音像制品信息不能为空提示框是音像制品信息是否为空否数据库中音像制品信息添加成功弹出添加成功对话框结束 图5-12音像制品信息添加流程图

此模块主要是对sql语句的灵活应用,通过向后台数据库的音像制品信息表中添加数据来完成音像制品信息的添加功能,添加数据通过insert语句来实现。

(3)模块实现

在类VideoAddIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、复选框按钮JComboBox、用于文本编辑的JTextField还有JButton组件等来完成音像制品信息添加窗体。当管理员输入数据点击添加时类addVideoActionListener的方法actionPerformed()中通过调用InsertVideo(),根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像制品信息添加成功。音像制品信息添加窗体如图5-13。

2.音像制品信息修改模块 (1)模块概述

音像制品信息修改模块实现了音像制品信息修改的功能,管理员通过对音像制品信息

的修改来完成数据库的更新。

(2)模块流程图和技术分析

该模块主要实现音像制品信息的修改功能,模块流程如图5-14所示。此模块主要是对

20

软件工程课程设计报告

sql语句的灵活应用,通过修改后台数据库中的音像制品信息表的数据来完成音像制品信息的更新功能,修改数据通过update语句来实现。

图5-13音像制品信息添加

开始点击音像制品信息修改按钮在表格中选择一条记录修改编号、名称等信息否是否修改是数据库中音像制品信息修改成功弹出修改成功对话框否是否关闭窗体是结束 图5-14音像制品信息修改流程图

(3)模块实现

在类VideoModiAndDelIFrame中主要用JPanel设置容器的布局以及一些JLabel标签、复选框按钮JComboBox、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成音像制品信息修改窗体,当用户选中一条记录点击修改时,添加侦听器addVideoActionListener类中的方法actionPerformed()调用方法Updatevideo(),根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像制品信息修改成功。音像制品信息修改窗体如图5-15。

21

软件工程课程设计报告

图5-15音像制品信息修改

5.4 音像制品订购管理

5.4.1 音像订购管理

1.音像订购模块概述

音像订购模块主要完成对音像制品的订购功能,但新碟订购必须是基础数据维护中存在的音像制品,才能完成订购。

2.音像订购模块流程和分析

该模块主要实现音像制品的订购功能,模块流程如图5-16所示。

此模块主要是对sql语句的灵活应用,通过select语句和insert语句来完成音像订购功能。

3.音像订购模块实现

在类NewVideoOrderIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选框JRadioButton、复选框按钮JComboBox、日期文本编辑组件JFormattedTextField、用于文本编辑的JTextField还有JButton组件等来完成新碟订购窗体。当用户输入音像制品编号后,如果该音像制品在基础数据维护中则允许订购,否则,必须现在基础数据维护中完成音像制品信息的添加,才能进行订购。如果基础数据维护中存在此音像制品编号,当用户点击添加时,类ButtonAddLisenter的方法actionPerformed()中调用InsertVideoOrder()方法, 根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像制品订购成功。音像订购窗体如图5-17。

5.4.2 音像验收管理

1.音像验收模块概述

音像订购模块主要完成对音像制品的验收功能,管理员通过对新进的音像制品完成验收来更新数据库。

2.音像验收模块流程和分析

22

软件工程课程设计报告

该模块主要实现音像制品的验收功能,模块流程如图5-18所示。

此模块主要是对sql语句的灵活应用,通过update语句来完成音像验收功能。

开始点击订购功能菜单输入音像制品编号弹出提示对话框否音像制品信息是否存在是选中该条记录否是否订购是数据库中音像订购信息更新成功弹出订购成功对话框结束 图5-16音像订购流程图

图5-17音像制品订购

3.音像验收模块实现

在类NewVideoCheckIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选按钮JRadioButton、日期文本编辑组件JFormattedTextField、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成新碟验收窗体。选中一条记录,点击验收,如果单选框radioButton2没有被选中,说明音像制品已经验收,否则通过调用UpdateCheckVideoOrder()来完成音像制品的验收功能。根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像制品验收成功。音像验

23

软件工程课程设计报告

收窗体如图5-19所示。

开始点击验收菜单否是否存在音像制品记录是选中该条记录点击验收弹出已经进行过验收提示框是该音像制品是否已经验收否是否验收是数据库中音像验收信息更新成功否弹出验收成功对话框结束

图5-18音像验收流程图

图5-19音像制品验收

5.5 租赁及查询管理

5.5.1 音像制品租借

1.音像制品租借模块概述

音像制品租借模块主要完成音像制品的租借功能,管理员可以通过模糊查询功能先查下是否有顾客要租借的音像制品,如果系统中有该音像制品,管理员通过对顾客租借信息表的管理来完成顾客对音像制品的租借功能,租借模块可以准确无误的记录下顾客的租借时间。

2.音像制品租借模块流程图和技术分析

该模块主要实现音像制品的租借功能,模块流程如图5-20所示。

24

软件工程课程设计报告

租借模块主要是对sql语句的灵活运用,根据顾客编号和音像制品编号运用select语句进行操作。通过insert语句来实现租借功能。

开始

点击租借菜单输入顾客编号和音像编号点击回车键否是否租借是数据库中租借信息修改成功弹出音像制品租借完成对话框结束

图5-20音像租借流程图

3.音像制品租借模块实现

在类VideoBorrowIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、日期文本编辑组件JFormattedTextField、用于显示和编辑二维单元表的JTable、用于完成窗体分隔的组件JSplitPane、用于文本编辑的JTextField还有JButton组件等来完成音像制品租借窗体。给顾客编号gukeISBN添加侦听器,当输入顾客编号时,管理员根据顾客编号判断顾客是否注册,如果注册则找出顾客的可借的数量、租借的音像类别,根据类别查找可借天数,给音像制品编号videoISBN添加侦听器,根据音像编号查找是否存在此音像制品。当点击借出当前音像制品,通过类BorrowActionListener中的方法actionPerformed()中调用InsertVideoBorrow()方法,根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明音像制品租借成功。音像制品租借窗体如图5-21。

25

软件工程课程设计报告

图5-21音像制品租借

5.5.2 音像制品归还

1.音像制品归还模块概述

音像制品归还模块是音像店租赁管理系统的核心模块,主要完成对租借的音像制品进行归还的功能,当顾客来归还音像制品时,管理员通过输入顾客编号查找顾客租借的音像制品,选择顾客要归还的音像制品信息条目进行归还。

2.音像制品归还模块流程和分析

该模块主要实现音像制品的归还功能,模块流程如图5-22所示。

开始点击归还菜单输入顾客编号点击回车键否表格中是否存在记录是选择一条记录否是否归还是数据库中音像归还信息更新成功弹出归还成功对话框结束 图5-22音像制品归还流程图

归还模块主要是对sql语句的灵活运用,根据顾客编号运用select语句进行操作。通过update语句来实现音像制品归还功能。

3.音像制品归还模块实现

在类VideoBackIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、日期文本编辑组件JFormattedTextField、用于显示和编辑二维单元表的JTable、用于完成窗体滚动的组件JScrollPane、用于文本编辑的JTextField还有JButton组件等来完成音像制品归还窗体。输入顾客编号后,根据顾客编号调用方法selectVideoBack(),通过对tb_videoinfo、tb_gukeMessage和tb_borrow联合查询出归还信息。给Table添加侦听器,在类TableListener的方法mouseClicked()中调用方法selectVideoTypeFk()得到可借天数,在方法mouseClicked()中求出罚款金额,在表格中选择顾客要归还的音像制品,单击归还按钮后,在侦听器VideoBackActionListener的方法actionPerformed()中调用UpdatevideoBack()方法,通过修改isBack的值来完成音像制品的归还功能。根据UpdatevideoBack()方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说

26

软件工程课程设计报告

明音像制品归还成功。音像制品归还窗体如图5-23。

图5-23音像制品归还

5.5.3 音像制品查询

音像制品查询模块包括条件查询(按名称查询和按主演查询)和显示全部音像信息: 1. 条件查询流程图及实现。

该模块主要实现音像制品的模糊查询功能。查询模块流程如图5-24所示。在类VideoSearchIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成音像制品查询窗体。给查询按钮添加侦听器addActionListener,在方法actionPerformed()中分别通过调用selectvideomohu()和selectvideomohudaoyan()来完成按照名称模糊查询同名的音像制品功能,查询窗体如图5-25。

开始点击查询菜单选择主演或音像制品名选择音像制品名选择主演输入主演姓名输入音像制品名称点击查询表格中显示查询结果否是否退出是退出查询窗体结束 27

图5-24音像制品模糊查询流程图

软件工程课程设计报告

图5-25音像制品按名称查询

2.显示全部音像制品信息。在类VideoSearchIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、用于显示和编辑二维单元表的JTable、用于文本编辑的JTextField还有JButton组件等来完成音像制品查询窗体。当点击显示全部信息时,通过调用selectvideoserch()完成对全部音像制品信息的查询,窗体如图5-26。

图5-26显示全部音像制品信息

5.6 系统维护

5.6.1 更改密码

在类GengGaiMiMa的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、用于文本编辑的JTextField还有JButton组件等来完成更改密码窗体。在GengGaiMiMa的构造器中给确定按钮添加侦听器addActionListener,

如果旧密码和新密码不一致,且新密码和确认密码一致,通过方法actionPerformed()中通过调用方法Updatepass()来完成更改密码的功能。

更改密码窗体如图5-27所示。

5.6.2 用户信息管理

用户信息管理模块包括用户添加,用户修改,用户删除功能,完成对用户的管理,以便

28

软件工程课程设计报告

对系统的维护:

1.用户信息添加窗体。在类UserAddIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选按钮JRadioButton、日期文本编辑组件JFormattedTextField、用于文本编辑的JTextField还有JButton组件等来完成用户信息添加窗体。当点击保存按钮时,在保存按钮侦听器中调用方法Insertoperator()来完成添加用户信息的功能,根据Insertoperator ()方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明用户信息添加成功。

用户信息添加窗体如图5-28所示。

图5-27更改密码

图5-28用户信息添加

2.用户信息修改与删除模块。 (1)模块流程图

该模块主要实现用户信息的修改和删除功能,模块流程如图5-29所示。 (2)模块分析和实现

在类UserModiAndDelIFrame的构造器中主要用JPanel设置容器的布局以及一些JLabel标签、单选按钮JRadioButton、日期文本编辑组件JFormattedTextField、用于显示和编辑二维单元表的JTable、滚动条组件JScrollPane、用于文本编辑的JTextField还有JButton组件等来完成用户信息修改与删除窗体。给修改和删除按钮分别添加了侦听器,在侦听器中分别调用方法Updateuser()和方法Deluser(),根据方法返回值int i的值,来说明数据库中变化的行数,若此变量等于1说明用户信息修改和删除成功。

在修改和删除按钮各自的侦听器中调用方法selectuser()来显示结果在Table组件中,

29

软件工程课程设计报告

用户信息修改与删除窗体如图5-30所示。

5.7 快捷工具栏

通过这些快捷工具栏图标,可以快速完成对音像制品信息添加,音像制品信息修改,音像类别添加,音像租借,新碟订购,验收新碟,顾客信息添加,顾客信息修改与删除,退出系统等操作,快捷工具栏如图5-31。

开始点击用户信息修改和删除从表格中选择一条记录修改编号姓名等用户信息点击删除按钮否是否点击修改数据库中用户信息删除成功是数据库中用户信息修改成功弹出删除成功对话框弹出修改成功对话框结束 图5-29用户信息修改和删除流程图

图5-30用户信息修改与删除

图5-31快捷工具栏

30

软件工程课程设计报告

III、

6 系统测试

目前软件测试仍然是保证软件质量的关键步骤,软件测试的目的是在软件投入生产性运行之前,尽可能多的发现软件中的错误,之后进行诊断并改正错误,以保证开发出高质量的软件。本小节在音像店租赁管理系统实现后,反复的对系统进行测试,发现错误进行诊断和改正,以此来确保系统功能的正确性。

6.1 测试方法

测试方案是测试阶段的关键技术问题。为了提高测试效率,降低测试成本,本测试方案采用黑盒法设计基本的测试方案。在黑盒法测试方案中,采用等价划分技术,把所有可能的输入数据(有效的和无效的)划分成几个等价类。

黑盒测试完全不考虑程序的内部结构和处理过程。测试仅在程序界面上进行。设计测试实例旨在说明:第一,软件的功能是否可操作;第二,程序能否适当地接收输入数据并产生正确的输出结果,或在可能的场景中事件驱动的效果能否尽如人意;第三,能否保持外部信息的完整性。与黑盒测试法相反,白盒测试法密切关注处理细节,针对每一条逻辑路径都要分别设计测试实例,检查分支和循环的情况。

6.2 测试环境

软件测试环境是进行软件测试所必需的工作平台和前提条件,包括硬件环境和软件环境,硬件环境指进行测试所必需的服务器、客户端、网络连接设备,以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境则指被测软件运行时的操作系统、数据库及其他应用软件等构成的环境。

软件由数据和程序两个最基本的要素组成,对数据进行软件测试,就是在检查用户输入的信息、返回结果以及中间计算结果是否正确。主要根据下列原则来进行等价分配,以合理减少测试实例:边界条件、次边界条件和无效数据。

本系统的软件和硬件测试环境如表6-1所示。

表6-1 测试环境 软件环境 操作系统:Windows XP 数据库:Microsoft SQLServer 2005 开发工具:MyEclipse 8.5 硬件环境 续表6-1

31

软件工程课程设计报告

CPU:1.0GHz 内存:2GB 6.3 功能测试

功能测试也叫黑盒子测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码。功能测试用于验证应用程序或网站对目标用户能正确工作。

音像店租赁管理系统的管理员对顾客信息管理的测试,管理员对顾客信息模块有添加、删除、修改功能,测试中对相关功能进行了功能测试。下面给出测试用例TEST_1,如表6-2所示。

表6-2 管理员对顾客信息管理模块的测试

项目/软件 用例编号 功能特性 测试目的 测试数据 测试 步骤 音像店租赁管理系统 TEST_1 管理员对顾客信息模块管理 验证是否能对顾客信息模块进行添加、删除、更新操作 User:lilong,psw:123 测试 状态 功能模块名 编制时间 顾客信息管理模块 2012年3月10日 操作描述 输入数据 预期结果 实际结果 1 管理员登陆操作 User:lilong psw :123 跳转系统主窗体 跳转系统主窗体 正常 2 选择顾客信息管理 跳转顾客信无 息管理,显示详细信息 跳转顾客信息管理,显示详细信息 正常 3 选择顾客信息添加 单击窗体中“保存”按钮 无 显示顾客信息添加窗体 显示对话框显示顾客信息添加窗体 显示对话框正常 4 输入顾客基本信息 “添加成功” “添加成功” 正常 32

软件工程课程设计报告

续表6-2 单击对话框“添加成功”按钮 选择顾客信息删除 单击窗体中“删除”按钮 单击对话框“删除成功”按钮 选择顾客信息修改 单击窗体中“修改”按钮 顾客信息表中多了该条记录 显示顾客信息删除窗体 显示对话框顾客信息表中多了一条记录 显示顾客信息删除窗体 显示对话框正常 正常 5 无 6 无 7 选中一条顾客记录 “删除成功” “删除成功” 顾客信息表中少了该条记录 显示顾客信息修改窗体 显示对话框顾客信息表中少了该条记录 显示顾客信息修改窗体 显示对话框正常 8 无 正常 9 无 正常 10 更改选中记录 “修改成功” “修改成功” 顾客信息表中顾客信息表中保存了修改后的该条记录 正常 11 单击对话框“修改成功”按钮 无 保存了修改后的该条记录 正常 对音像店租赁管理系统各个模块进行功能测试结果表明:在该系统中管理员可以方便地对基础数据维护中信息的录入与更新,对音像制品的订购和验收,对音像制品租赁与归还的管理以及对音像制品的查询,对系统的维护。其中系统维护中可以对用户的增加、删除、修改以及对登录口令的修改。

6.4 小结

本章主要介绍了系统测试的方法,测试环境和功能测试。并详细地给出了管理员对顾客信息模块的测试方法,数据输入和产生的测试结果。达到了预期测试目的。

33

软件工程课程设计报告

IV、

7 结束语

7.1 总结

随着计算机硬件技术和系统软件技术的高速发展,计算机的应用系统开发就显得越来越迫切和重要。对于不同行业的用户来说,要想真正让计算机为本行业本单位服务,主要还是取决于本行业的应用系统的开发水平。在科技发展日益迅猛的今天,数字化、信息化的管理模式已经渗透到了社会的每个角落。面对众多的顾客、会员信息以及其相关音像制品的租赁信息这样一个庞大的信息集合,在本着节约人力资源,以及方便经营管理的前提下,基于C/S结构模式音像租赁管理系统颇具针对性的管理模式设计,人性化、便捷的操作,为音像制品租赁行业的管理带来了一缕春风。

音像店租赁管理系统的主要目标是实现对音像店内部各种管理的电子化和自动化, 提高音像店的办公效率, 为高质量的租赁服务提供保证。

本论文首先介绍了课题开发背景及意义、技术与工具,然后对音像店租赁管理系统进行需求分析、概要设计,接着对音像店租赁管理系统的具体实现进行了详细的介绍,主要包括用户登陆系统、基础数据维护、音像制品订购和验收管理、音像制品租借和归还管理、系统维护管理,其中基础数据维护中主要对顾客信息、音像制品类别信息及音像制品信息进行管理,最后对系统进行了测试,系统功能基本满足用户的基本需求。

7.2 展望

音像店租赁管理系统的设计基本上满足了中小型音像店的基本需求,但纵观其内容,以及技术方面,也有很多不足之处。

第一,在实现用户登录时,没有充分考虑安全性因素对密码进行加密。第二,本系统管理员只有一个,其中添加的用户是用于系统更新维护,系统应该实现权限管理,以便更好的对系统进行管理和维护。

V、 附 录

实现系统登陆功能的核心代码:

class VideoLoginAction implements ActionListener {

public void actionPerformed(final ActionEvent e) {

user = Dao.check(username.getText(), password.getText());//验证用户是否合法 if (user.getName() != null) { try {

VideoSystem frame = new VideoSystem(); frame.setVisible(true);

34

软件工程课程设计报告

VideoLoginIFrame.this.setVisible(false); } catch (Exception ex) { ex.printStackTrace(); } } else {

JOptionPane.showMessageDialog(null, \"只有管理员才可以登录!\"); username.setText(\"\"); password.setText(\"\"); } } }

实现顾客信息添加功能的核心代码:

public static int InsertGuKe(String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN){

int i=0; try{

String sql=\"insert into

tb_gukeMessage(name,sex,age,identityCard,date,maxNum,tel,keepMoney,zj,zy,bztime,ISBN) values('\"+name+\"','\"+sex+\"','\"+age+\"','\"+identityCard+\"','\"+date+\"','\"+maxNum+\"','\"+tel+\"',\"+keepMoney+\

i=Dao.executeUpdate(sql); }catch(Exception e){ e.printStackTrace(); }

Dao.close(); return i; } 实现音像制品订购功能的核心代码:

class ButtonAddLisenter implements ActionListener{

public void actionPerformed(final ActionEvent e) { if(orderDate.getText().isEmpty()){

JOptionPane.showMessageDialog(null, \"订够日期文本框不可为空\"); return; }

if(ISBN.getText().isEmpty()){

JOptionPane.showMessageDialog(null, \"音像制品编号文本框不可为空\"); return; }

if(orderNumber.getText().isEmpty()){

JOptionPane.showMessageDialog(null, \"订购数量文本框不可为空\"); return; }

if(operator.getText().isEmpty()){

JOptionPane.showMessageDialog(null, \"操作员文本框不可为空\"); return; }

if(price.getText().isEmpty()){

JOptionPane.showMessageDialog(null, \"价格文本框不可为空\"); return;

}

if(!Dao.selectVideoOrder(ISBN.getText().trim()).isEmpty()){

JOptionPane.showMessageDialog(null, \"添加重复!\"); return; }

35

软件工程课程设计报告

String checkAndAccept=\"0\"; if(radioButton2.isSelected()){ checkAndAccept=\"1\"; }

Double zks=Double.valueOf(zk.getText())/10; try{

int i=Dao.InsertVideoOrder(ISBN.getText().trim(),

java.sql.Date.valueOf(orderDate.getText().trim()), orderNumber.getText().trim(), operator.getText().trim(), checkAndAccept,zks);

if(i==1){ //添加成功

JOptionPane.showMessageDialog(null, \"添加成功!\"); }

}catch(Exception ex){

System.out.println(ex.getMessage()); } } }

实现音像制品验收功能的核心代码:

class CheckActionListener implements ActionListener{ private final DefaultTableModel model;

CheckActionListener(DefaultTableModel model) { this.model = model; }

public void actionPerformed(final ActionEvent e) { if(radioButton2.isSelected()){ String ISBNs=ISBN.getText();

int i=Dao.UpdateCheckVideoOrder(ISBNs); //验收实现 if(i==1){

JOptionPane.showMessageDialog(null, \"验收成功!\");

Object[][] results=getFileStates(Dao.selectVideoOrder());

model.setDataVector(results,columnNames); table.setModel(model);

radioButton1.setSelected(true); } }else {

JOptionPane.showMessageDialog(null, \"您选择的音像制品已经进行过验收,请选择其他音像制品进行验收\");

} } } 实现音像制品租借功能的核心代码:

class ISBNListenerlostFocus extends KeyAdapter { public void keyTyped(KeyEvent e) { if (e.getKeyChar() == '\\n') {

String ISBNs = gukeISBN.getText().trim(); List list = Dao.selectGuKe(ISBNs);

if (list.isEmpty() && !ISBNs.isEmpty()) {

JOptionPane.showMessageDialog(null,\"此顾客编号没有注册,查询输入顾客编号是否有误!\");

}

for (int i = 0; i < list.size(); i++) { GuKe reader = (GuKe) list.get(i); gukeName.setText(reader.getName()); number.setText(reader.getMaxNum());

36

软件工程课程设计报告

keepMoney.setText(reader.getKeepMoney() + \"\"); } } } }

class videoISBNListenerlostFocus extends KeyAdapter { public void keyTyped(KeyEvent e) {

if (e.getKeyChar() == '\\n') { //回车 if (gukeISBN.getText().trim().length()!=0

&& videoISBN.getText().trim().length()!=0) { String ISBNs = videoISBN.getText().trim(); List list = Dao.selectVideoInfo(ISBNs); for (int i = 0; i < list.size(); i++) {

VideoInfo video = (VideoInfo) list.get(i); videoName.setText(video.getVideoName());

videoType.setText(String.valueOf(map.get(video .getTypeId()).getName()));

price.setText(String.valueOf(video.getPrice())); }

String days = \"0\";

List list2=Dao.selectVideoCategory(videoType.getText() .trim());

for (int j = 0; j < list2.size(); j++) {

VideoType type = (VideoType) list2.get(j); days = type.getDays(); }

String readerISBNs = gukeISBN.getText().trim();

List list5 = Dao.selectGuKe(readerISBNs); List list4 = Dao.selectVideoInfo(ISBNs); if (!readerISBNs.isEmpty() && list5.isEmpty()) {

JOptionPane.showMessageDialog(null,\"此顾客编号没有注册,请查询输入顾客编号是否有误!\");

return; }

if (list4.isEmpty() && !ISBNs.isEmpty()) {

JOptionPane.showMessageDialog(null,\"本音像店没有此音像制品,查询输入音像编号是否有误!\");

return; }

if (Integer.parseInt(number.getText().trim()) <= 0) {

JOptionPane.showMessageDialog(null, \"租借量已经超过最大限制!\");

return; }

add();

number.setText(String.valueOf(Integer.parseInt(number .getText().trim()) - 1)); }else

JOptionPane.showMessageDialog(null, \"请输入顾客编号!\"); } } }

class BorrowActionListener implements ActionListener { public void actionPerformed(final ActionEvent e) { String videoISBNs=videoISBN.getText().trim(); String gukeISBNs=gukeISBN.getText().trim(); String videoNames=videoName.getText().trim(); String operatorId=user.getId();

String borrowDate=myfmt.format(new java.util.Date()); String backDate=myfmt.format(getBackTime());

37

软件工程课程设计报告

参考文献

}

i=Dao.InsertVideoBorrow(videoISBNs,gukeISBNs,operatorId, java.sql.Timestamp.valueOf(borrowDate), java.sql.Timestamp.valueOf(backDate)); if(i==1){

JOptionPane.showMessageDialog(null, \"音像制品租借完成!\"); doDefaultCloseAction(); } }

[1] 邱伟江 陆萍.Java项目教程[M]. 清华大学出版社,2012.3

[2] Still E, LeBlanc C. 贲可荣等译. 基于项目的软件工程:面向对象研究方法[M]. 北京:机械工业出版社, 2008.

[3] 李 明 张新元. UML 在人力资源管理系统中的应用[J] .微电子学与计算机,2008, (12) :37~38. [4] Marc Loy,Robert Eckstein等. Java Swing(第二版)[M]. 清华大学出版社. 2010 [5] 李钟尉. Java范例完全自学手册[M]. 人民邮电出版社. 2010

[6] 杨辉.基于C/S和B/S结构的高校教务管理系统的设计与实现[J].中南大学.2010.6 [7] 王鹏 何昀峰. Java Swing图形界面开发与案例详解[M]. 清华大学出版社2010.3 [8] 林智扬 范明翔 陈锦辉. 精通Java Swing程序设计[M]. 中国铁道出版社. 2010 [9] 张红梅. Java 应用案例教程[M]. 清华大学出版社.2010

[10] 耿祥义 (作者).张跃平 Java程序设计实用教程[M].人民邮电出版社 2010 [11] 李伟 王国辉.Java典型模块与项目实战大全[M] .电子工业出版社.2011.4 [12] 张居敏. Java程序设计经典教程[M].电子工业出版社.2009.1

38

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

Top