车票管理系统的设计和实现.doc_第1页
车票管理系统的设计和实现.doc_第2页
车票管理系统的设计和实现.doc_第3页
车票管理系统的设计和实现.doc_第4页
车票管理系统的设计和实现.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

车票查询系统车票查询系统 (姓名) (浙江海洋学院 数理与信息学院 A06 计算机, 浙江 舟山 316004) 摘摘 要要 本文是软件工程设计车票查询系统的开发说明,重点描述运用软件工程知 识对系统进行分析、设计和实现的思想,其中包括软件生命周期的三个主要方 面:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、 详细设计、编码、测试)和运行维护。通过实际的运用软件工程知识处理问题, 加强程序的规范性、清晰性、可靠性,并且使得程序易于维护。 本软件前台设计由JAVA实现,后台以SQL SEVER 2000为数据服务器,具 有自己的独立模块,兼容性好且易于实现。系统主要的功能为车票信息的查询, 只需要输入出发和到达地点就可方便查出车次号,界面简单,查找方便,容易 上手。 【关键词关键词】:车票查询系统, Java, SQL SEVER 目录 摘摘 要要I I 1.1. 概述概述1 1 1.1 管理信息系统简介.1 1.2 车票查询系统概述.1 2.2. 车票查询系统的分析车票查询系统的分析2 2 2.1 问题定义.2 2.2 可行性研究2 2.2.1 技术可行性.2 2.2.2 经济可行性.3 2.2.3 操作可行性.3 2.3 系统需求分析.3 2.3.1 功能需求.3 2.3.2 性能需求.4 2.3.3 数据需求.5 3.3. 车票查询系统的设计车票查询系统的设计7 7 3.1 系统总体设计.7 3.2. 数据结构设计8 3.2.1 数据库数据结构设计.8 3.2.2 物理数据结构设计.9 3.2.3 创建表/字段.10 3.3. 系统详细设计.10 3.3.1 系统流程图10 3.3.2 运行模块13 3.3.3 出错处理设计13 3.3.4 运用面向对象的分析对系统建模13 4.4. 车票查询系统的编码和测试车票查询系统的编码和测试1515 4.1 系统编码15 4.1.1 用户操作模块15 4.1.2 数据库操作模块20 4.2 系统测试22 4.2.1 功能测试的内容22 4.2.2 测试用例的设计和结果分析22 5.5. 总结总结2525 参考文献参考文献2626 1. 概述概述 1.1 管理信息系统管理信息系统简介简介 管理信息系统(Management Information Systems 简称 MIS1)在现代社会已深入到 各行各业,由于计算机技术的迅速发展和普及,MIS 事实上已成为计算机 MIS。 目前,由于开发高质量 MIS 的能力大大落后计算机硬件日新月异的进展,加上社会 对 MIS 发展和完善需求的增加以及对 MIS 开发过程中出现的错误认识和行为而导致 MIS 开发的失败,这些情况已严重妨碍了计算机技术的进步。因此对 MIS 有关的内容进行深入 研究,提高工作效率,提高 MIS 开发成功率已变得十分重要。 1.MIS 的定义。 管理信息系统既指使用信息技术来提供信息和通信服务的组织系统, 又指计划开发和管理系统的企业功能,由人、计算机系统、软件系统、数据库系统构成的, 是以人为主导,以计算机为工具,对企业的各种信息进行收集、存储、加工、分析,以协 助企业的决策、管理与运行的系统。 2.MIS 的特征。管理信息系统能实测企业的各种运行情况,利用过去和现行的数据预 测未来,从全局出发辅助企业决策,利用信息控制企业行为,帮助企业实现规划目标,辅 助计算机管理人员完成信息搜集、加工等管理工作的系统软件。信息系统不能只考虑其单 一性,即只认为此系统是为管理者提供决策信息的人机对话界面,这样就孤立了管理信息 系统的价值与其存在的意义。我们应该把它放入社会这个大的背景之下来仔细研究,就会 发现管理信息系统的意义不只如此。它不仅是一门科学技术,更多的是一种社会性实践, 而它的价值也更多的体现在系统与组织、环境的交互。 3.MIS 的发展趋势。由于科学技术总是不断发展和更新的,适应知识经济的新的管理 模式和管理方法不断涌现:敏捷制造2、虚拟制造、精益生产、客户关系管理、供应商关系 管理、大规模定制、基于约束理论的先进计划、电子商务以及商业智能。管理信息系统必 须不断融进这些新的思想和方法以适应企业的管理变革和发展要求。我们还要看到我们现 在处在全球经济一体化的年代,网络经济的时代已经到来,由于互联网络和通信技术的高 速发展,彻底改变了我们的经营管理模式和生活方式。只有采用基于互联网络的系统才能 方便地实现资源共享以及全球供应链。 1.2 车票查询系统概述车票查询系统概述 本次开发的车票查询系统是车票管理系统的一个子系统,所以也可以称之为一个微型 的管理信息系统。它的主要的功能是接受用户的查询信息(包括起点、终点、乘客人数), 然后查询数据库中的信息,再将信息反馈给用户。采用 Java3制作系统,它的优良特性使 得 Java 应用具有无比的健壮性4和可靠性,这也减少了应用系统的维护费用。Java 对对象 技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统的开发时间并降低成本。Java 的 编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传 递信息的低成本方式。 2. 车票查询系统的软件定义车票查询系统的软件定义 2.1 问题定义问题定义 问题定义阶段必须确定系统应该做什么,一般应通过对客户的访问调查,让系统分析 员扼要地写出关于问题性质、工作目标和工程规模的书面报告,经过讨论和必要的修改之 后这份报告应该得到客户的确认。由于此次程序较小,所以只确定一个功能,即车票信息 查询。 2.2 可行性研究可行性研究 2.2.1 技术可行性技术可行性 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 的总称。用 Java 实现的 HotJava 浏览器(支持 Java applet)显示了 Java 的魅力:跨平台、 动态的 Web、Internet 计算。从此,Java 被广泛接受并推动了 Web 的迅速发展,常用的浏 览器现在均支持 Java applet。另一方面,Java 技术也不断更新。 Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口(Application Programming Interface5、简称 API)构成。Java 应用编程接口为 Java 应用提供了一个独立 于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。现在 Java 平台已经嵌入了几乎所有的操作系统。 这样 Java 程序可以只编译一次,就可以在各种系统中运行。Java 分为三个体系 J2SE (Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。 SQL6是英文 Structured Query Language 的缩写,意思为结构化查询语言。SQL 语言 的主要功能就是同各种数据库建立联系,进行沟通。按照 ANSI(美国国家标准协会)的规定, SQL 被作为关系型数据库管理系统的标准语言。SQL 语句可以用来执行各种各样的操作, 例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库 管理系统,如 Oracle,Sybase,Microsoft SQL Server,Access 等都采用了 SQL 语言标准。 虽然很多数据库都对 SQL 语句进行了再开发和扩展,但是包括 Select,Insert,Update,Delete,Create,以及 Drop 在内的标准的 SQL 命令仍然可以被用 来完成几乎所有的数据库操作。 SQL Server 是一个关系数据库管理系统。它最初是由 Microsoft Sybase 和 Ashton- Tate 三家公司共同开发的,于 1988 年推出了第一个 OS/2 版本。在 Windows NT 推出后, Microsoft 与 Sybase 在 SQL Server 的开发上就分道扬镳了,Microsoft 将 SQL Server 移植 到 Windows NT 系统上,专注于开发推广 SQL Server 的 Windows NT 版本。Sybase 则较 专注于 SQL Server 在 UNIX 操作系统上的应用。 SQL Server 2000 是 Microsoft 公司推出的 SQL Server 数据库管理系统7,该版本继 承了 SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可 伸缩性好与相关软件集成程度高等优点,可跨越从运行 Microsoft Windows 98 的膝上型电 脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 SQL 系统分为静态和动态8俩个部分:静态 SQL 指直接内嵌到应用源程序中的 SQL 语句,当编写数据库应用程序时,静态 SQL 用于完成特定的或固定的任务。在有些应用 中,对数据库作何种操作,或对数据库作某种操作的先决条件在编译时还不明确,必须在 程序运行时动态构造(或接收)和处理各种各样的 SQL 语句。在这种情况下,SQL 语句的构 成在程序运行前不知道,通常这类语句每次执行都有可能发生变化。涉及这类 SQL 语句 的编程要用到动态 SQL 方法,它是一种先进的程序设计技术。 它不但能增加应用程序的 功能还能提高其灵活性。一般说来,程序中 SQL 语句的文本(即命令、子句) 、宿主变量 个数、宿主变量的数据类型或引用的数据库对象等有一种情况不知道时,就要用到动态 SQL 方法。 在存储过程或函数中使用动态 SQL 语句将会大大提高程序的处理性能,同时可以执 行各种类型的 SQL 语句,使用起来非常灵活。在实际应用中可以把已调试成功的程序通过 定义程序中的动态 SQL 语句构造函数和查询结果格式化函数的方法9,就可以方便地把修 改后的程序移植到其它应用系统中。 2.2.2 经济可行性经济可行性 本系统作为车票管理系统的一个部分,在作为售票点服务或者网上查询系统时,可以 快捷方便的为查询者提供所需信息,对于管理者来说也可以有效减轻他们的工作量提高工 作效率,减少不必要的支出。相对的只需用很小的代价便可开发完毕,所以开发本系统在 经济上是可行的。 2.2.3 操作可行性操作可行性 本系统提供了直观的查询界面,用户只要输入出发城市、目的城市和乘客人数,即可 得到相应信息,操作十分简便。 2.3 系统需求分析系统需求分析 2.3.1 功能需求功能需求 车票查询系统的目标是:在计算机网络,数据库和先进的开发平台上,利用现有 的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具 有良好人机交互界面10的车票查询系统,实现自动化的计算机系统。 系统数据流图: 车票信息 用户 车票信息 车票查询系统 查询信息 车票信息 用户 系统功能: 将 Java 的前台界面程序与后台的数据库相连,对用户的信息进行处理,实现车票 的查询系统。以计算机为中心,实现查询功能的自动化,可为车票信息的查询提供便 利。 在实现上,可以分为以下几个部分: 1接收由用户输入的车票信息: 通过前台程序接收信息并存入到数据库中。 2查询班次信息: 根据所需车票信息(出发城市、目的城市、乘客人数) ,在数据库中查询并得到正 确的班次的信息。 3传递班次信息到用户: 把得到的班次信息通过前台显示程序反映给用户。 2.3.2 性能需求性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的 性能需求: 1 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充 分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企 业对信息处理的需求。 2 系统的开放性11和系统的可扩充性 车票查询系统在开发过程中,应该充分考虑以后的可扩充性。例如进一步扩展为 车票管理系统,用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供 足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成, 既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块, 配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3 系统的易用性和易维护性 本系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就 要求系统能够提供良好的用户接口,易用的人机交互界面。 4 系统的标准性 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符 合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具 都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的 TCP/IP 网络协议及 ISO9002 标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计 工作,制订行之有效的软件工程规范12,保证代码的易读性、可操作性和可移植性。 5系统的先进性 目前计算系统的技术发展相当快,在系统的生命周期尽量做到系统的先进,充分 完成信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改 善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上 尽量采用当前主流并先进且有良好发展前途的产品。 6系统的响应速度 应尽量优化代码,加快反应速度,以保证实时的操作性。 2.3.32.3.3 数据需求数据需求 机票预定系统的数据需求包括如下几点: 1数据录入和处理的准确性和实时性 数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确 和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通 过系统界面上的安排系统具有容错性13。 2数据的一致性与完整性 由于系统的数据是共享的,如何保证这些数据的一致性,是系统必须解决的问 题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的 去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定 义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。 3 数据的共享与独立性14 整个车票查询系统的数据是共享的。然而,从系统开发的角度上看,共享会 给设计和调试带来困难。因此,应该提供灵活的配置,通过人工干预的手段进行系统 数据的交换。这样,也能提供系统的强壮性。 2.3.42.3.4 系统逻辑模型系统逻辑模型 系统的 ER 图如下: 用户 查询 查询系统 车票信息 出发地点 目的地点 乘客 人数 3. 车票查询系统的设计车票查询系统的设计 3.1 系统总体设计系统总体设计 系统层次结构图: 车票查询系统 接收数据数据处理、查询发送数据 判断类型 解开数据包 接收数据 准备 SQL判断查询 数据 库操 作 正 确 准备返回数 据 判断原因 准备返回数据 准备数据包 发送数据给用户 用户界面的设计:在用户界面部分,根据需求分析的结果,用户需要一个用户友 善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局, 应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对 WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Java 进行编程,在界面上可使用 Java 所提供的可视化组件15,向 WINDOWS 风格靠近。 其中服务器程序界面要做到操作简单,易于管理。 总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。 软件接口设计:程序可使用 Java 提供的对 SQL SERVER 的接口,进行对数据 库的所有访问,使用 SQL SERVER 的对数据库的备分命令,以做到对数据的保存。 硬件接口设计:在输入方面,对于键盘、鼠标的输入,可用 Java 的标准输入/输 出,对输入进行处理。在输出方面,也可用 Java 的标准输入/输出对其进行处理。 内部接口设计:内部接口方面,各模块之间采用方法、参数传递、返回值的方式 进行信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回 值的形式在各模块间传输。 3.2. 数据结构设计数据结构设计 3.2.1 数据库数据结构设计数据库数据结构设计 DBMS 的使用上系统将采用 SQL SERVER, 系统主要需要维护 1 张数据表: 班次号出发城市目的城市乘客人数 上表保存了所有的班次信息,它的主键为班次号。 车票查询系统的类图如下: 查询信息 出发地点 目的地点 乘客人数 查询系统 JLabel 出发城市 JLabel 目的城市 JLabel 乘客人数 JButton 查询 JButton 重置 车票信息 Num var(10) Lecity var(50) Des va(50) Econum int 3.2.2 物理数据结构设计物理数据结构设计 物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中都是以结构的 方式表示。 查询信息 错误信息 车票信息 数据库基本信息表 数据库信息表 列名数 据 类 型字段大小 含 义是 否 为 空 NumberVarchar10班次号NOT NULL LeavecityVarchar50出发城市NOT NULL DestinationVarchar50目标城市NOT NULL EconumINT乘客人数NOT NULL 1出发城市 String 2目的城市String 3乘客人数 INT 1. 错误类型INT 2. 输出语句String 4班次号 String 5出发城市String 6目的城市 String 7乘客人数 INT 3.2.3 创建表创建表/字段字段 上面分析了数据库表的结构,下面给出在 SQL Server 2000 中实现这些表的创建的 SQL 语句。 创建数据库中车次信息表,SQL 代码如下。 创建 SQL 的数据库文件 mdf 和日志文件 ldf: create database ticket on ( name=ticket_data, filename=e:ticketticket.mdf, size=5MB, filegrowth=1MB ) log on ( name=ticket_log, filename=e:ticketticket.ldf, size=5MB, filegrowth=10% ) 创建车次表: use ticket create table ticketinfo(number varchar(10) not null primary key,leavecity varchar(50) not null,destination varchar(50) not null,econum int not null) insert ticketinfo 3.3. 系统详细设计系统详细设计 3.3.1 系统流程图系统流程图 系统具体工作流程:第一步,接受用户输入的查询信息(包括出发城市、目标城市、 乘客人数) ;第二步,对用户输入的数据进行处理,如数据不符合格式要求,则提示错误, 如符合要求,则将数据送入数据库进行查询;第三步,将输入数据和数据库中内容进行核 对,如有满足条件的数据库信息则输出,如无则给用户提示。 系统流程图如下: 否 启动界面 输入数据 数据是否匹配格式 提示错误 是 检测数据库中数据 是否有数据满 足要求 提示找不到信息 否 是 输出班次号 由系统流程图改编的流图: 1 2 3 4 56 从图中可看出,系统环形复杂度为 3 用盒图的表示方法: 输入数据 F 是否匹配格式 T 错误提示 检查数据库 F 是否满足条件 T 提示无信息 输出车次号 3.3.2 运行模块运行模块 运行模块的组合: 程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行 格式化。在接收数据模块得到充分的数据时,将调用数据传输模块,将数据送到数 据库,并等待接收数据库返回的信息。接收到返回信息后随即调用数据输出模块, 对信息进行处理,产生相应的输出。 运行控制: 运行控制将严格按照各模块间调用关系来实现。在事务中心模块中,需对运行控 制进行正确的判断,选择正确的运行控制路径。 运行时间: 在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。可 以使用较快的处理器或者其他硬件设备来加快运行速度。 3.3.3 出错处理设计出错处理设计 程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生 的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬 错误。 对于软错误,须在查询操作成功判断及输入数据验证模块由数据进行数据分析, 判断错误类型,再生成相应的错误提示语句,送到输出模块中。 对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回 输入阶段。 出错信息必须给出相应的出错原因,例:输入数据不符合要求; 找不到指定班次。 3.3.4 运用面向对象的分析对系统建模运用面向对象的分析对系统建模 面向对象分析16,就是抽取和整理用户需求并建立问题与精确模型的过程。 面向对象建模得到的模型17包含系统的 3 个要素,即静态结构(对象模型) 、交互次 序(动态模型)和数据变换(功能模型) 。解决的问题不同,这三个子模型的重要程度也不 同:几乎解决任何一个问题,都需要从客观世界实体及实体间相互关系抽象出极有价值的 对象模型;当问题涉及用和时序时,动态模型是重要的;解决运算量很大的问题,则涉及 重要的功能模型。动态模型和功能模型中都包含了对象模型中的操作。 复杂问题的对象模型通常由下述 5 个层次组成:主题层、类与对象层、结构层、属性 层、服务层。 描绘车票查询系统的用例图: 查询 车票查询系统 提供数据 数据库 用户 系统事件跟踪图: 用户查询系统数据库 启动界面 要求输入数据 输入数据 验证数据 信息符合 显示信息 4. 车票查询系统的编码和测试车票查询系统的编码和测试 4.1 系统系统编码编码 4.1.1 用户操作模块用户操作模块 定义图形界面中的各个变量(包括界面边框,按钮等): privateprivate JPanel pan; privateprivate JLabel lblLeave; privateprivate JTextField txtLeave; privateprivate JLabel lblDestination; privateprivate JTextField txtDestination; privateprivate JLabel lblEconum; privateprivate JTextField txtEconum; privateprivate JButton btnSearch; privateprivate JButton btnReset; 定义各个参数的变量(名称、数据库、返回值): privateprivate String strLeave=“; privateprivate String strDestination=“; privateprivate String strEconum=“; privateprivate intint Econum=0; privateprivate String sql=“; privateprivate String result=“; privateprivate intint rstNum=0; privateprivate DBTools db; privateprivate ResultSet rs; 查询界面的类名: public MainFrame() 查询界面中各个部分的名字 pan=newnew JPanel(); lblLeave=newnew JLabel(“出发城市“); txtLeave=newnew JTextField(); lblDestination=newnew JLabel(“目的城市“); txtDestination=newnew JTextField(); lblEconum=newnew JLabel(“乘客人数“); txtEconum=newnew JTextField(); btnSearch=newnew JButton(“查询“); btnReset=newnew JButton(“重置“); 初始化各项的值: getContentPane().setLayout(nullnull); pan.setLayout(nullnull); pan.setSize(450, 110); pan.setLocation(20, 15); pan.setBorder(newnewTitledBorder(nullnull,“,TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, nullnull, nullnull); 给绘图函数赋值,画出具体的界面: lblLeave.setBounds(20, 20, 90, 30); pan.add(lblLeave); txtLeave.setBounds(90, 20, 100, 25); pan.add(txtLeave); lblDestination.setBounds(230, 20, 90, 30); pan.add(lblDestination); txtDestination.setBounds(300, 20, 100, 25); pan.add(txtDestination); lblEconum.setBounds(20, 70, 90, 30); pan.add(lblEconum); txtEconum.setBounds(90, 70, 100, 25); pan.add(txtEconum); btnSearch.setBounds(250, 70, 70, 20); pan.add(btnSearch); btnReset.setBounds(330, 70, 70, 20); pan.add(btnReset); thisthis.add(pan); thisthis.setTitle(“车票查询系统“); Dimension d=Toolkit.getDefaultToolkit().getScreenSize(); thisthis.setSize(500, 170); thisthis.setLocation(d.width/2-250, d.height/2-100); thisthis.setVisible(truetrue); thisthis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 设置界面按键: btnSearch.addActionListener(thisthis); btnReset.addActionListener(thisthis); 完成上述过程后,可产生完整的查询界面,效果如下图: 构造提示表及其界面: publicpublic voidvoid actionPerformed(ActionEvent e) ifif(e.getSource()=btnReset) txtLeave.setText(“); txtDestination.setText(“); txtEconum.setText(“); 用户输入错误信息时给予提示: ifif(e.getSource()=btnSearch) strLeave=txtLeave.getText().trim().toString(); strDestination=txtDestination.getText().trim().toString(); strEconum=txtEconum.getText().trim().toString(); ifif(strLeave.equals(“)|strDestination.equals(“)|strEconum.equals(“) JOptionPane.showMessageDialog(nullnull, “信息填写不完整,无法进 行查找!“); returnreturn; Econum=Integer.valueOf(strEconum); 程序出错提示如图: 用户输入符合要求的信息后进行查询数据库操作,给出结果: sql=“select * from ticketinfo where leavecity=“+strLeave+“ and destination=“+strDestination+“ and econum=“+Econum; trytry db=newnew DBTools(); rstNum=db.results(sql); ifif(rstNum0) rs=db.select(sql); result=“查询出“+rstNum+“个车次n“; whilewhile(rs.next() result=result+rs.getString(“flightno“)+“n“; JOptionPane.showMessageDialog(nullnull, result); elseelse JOptionPane.showMessageDialog(nullnull, “没有找到所需车次, 请重新查询!“); catchcatch(Exception ex) JOptionPane.showMessageDialog(nullnull, ex.getMessage(); finallyfinally trytry db.free(); catchcatch(Exception ex) JOptionPane.showMessageDialog(nullnull, ex.getMessage(); 成功查出信息,显示车次号,效果: 、如数据库中无此趟车次,则显示: Java 运行主函数: publicpublic staticstatic voidvoid main(String args) MainFrame mf=newnew MainFrame(); 4.1.2 数据库操作模块数据库操作模块 引进数据库: importimport java.sql.*; importimport javax.sql.*; 获得数据库的链接,引入操作集,让数据库可用: publicpublic classclass DBTools privateprivate Connection con = nullnull; privateprivate Statement cmd = nullnull; privateprivate ResultSet rs = nullnull; publicpublic DBTools() throwsthrows Exception trytry Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); con=DriverManager.getConnection(“jdbc:odbc:ticketdb“); catchcatch(Exception ex) System.out.println(ex.getMessage(); publicpublic intint executesql(String sql) throwsthrows Exception trytry cmd=con.createStatement(); cmd.execute(sql); returnreturn 1; catchcatch(Exception ex) System.out.println(ex.getMessage(); returnreturn 0; 编写执行数据库时对结果的操作: publicpublic ResultSet select(String sql) throwsthrows Exception trytry cmd=con.createStatement(); rs=cmd.executeQuery(sql); returnreturn rs; catchcatch(Exception ex) System.out.println(ex.getMessage(); returnreturn nullnull; 编写返回值情况: publicpublic intint results(String sql) throwsthrows Exception intint num=0; trytry cmd=con.createStatement(); rs=cmd.executeQuery(sql); whilewhile(rs.next() num+; catchcatch(SQLException sq) System.out.println(sq.getMessage(); returnreturn num; 关闭数据库: publicpublic intint free() throwsthrows Exception trytry rs.close(); cmd.close(); con.close(); returnreturn 1; catchcatch(Exception ex) System.out.println(ex.getMessage(); returnreturn 0; finallyfinally con.close(); 4.2 系统测试系统测试 在开发大型软件的漫长过程中,面对极其错综复杂的问题18,人的主观认识不可能完 全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此, 在软件生命周期的每个阶段都不可避免地会产生差错。尽量减少差错,以免造成严重的损 失。测试是“为了发现程序中的错误而执行程序的过程” 。测试的目的就是在软件投入生产 性运行之前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步 骤,它是对软件规格说明设计和编码的最后复审,也是必不可少的关键步骤。 测试方案是测试阶段的关键技术问题。为了尽量贴近实际使用情况,本测试方案采用 黑盒法19设计基本的测试方案。在黑盒法测试方案中,采用等价划分技术,把所有可能的 输入数据(有效的和无效的)划分成几等价类来进行测试。 4.2.1 功能测试的内容功能测试的内容 功能测试也称为黑盒测试,用于验证系统的各项功能是否能正常完成。由于实际情况 的多样性,需要由多人重复测试,在不同情况下执行各项功能操作,其输出就是该功能的 执行结果。 4.2.2 测试用例的设计和结果分析测试用例的设计和结果分析 根据已输入数据库中的数据,合法的输入项为:1、出发城市均为“舟山” ;2、终点 城市为“杭州” 、 “宁波” 、 “绍兴” 、 “温州” 、 “上海” 、 “北京”中的任意一个;3、乘客人数 均小于或等于 50 人。能得到期望结果的必须同时满足上述 3 个条件。 测试情况一:输入出发城市任意字符,目的城市任意字符,乘客人数任 意字符,如图: 预期输出结果:无法运行,乘客人数定义为 INT 型,输入数据格式不正确。 实际效果:运行出错,如下图所示 运行效果符合预测情况。 测试情况二:出发城市舟山,目的城市天津,乘客人数10,如图: 预期输出结果:找不到信息。 实际效果:如图 运行效果符合预期情况。 测试情况三:出发城市舟山,目的城市杭州,乘客人数2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论