还剩80页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要随着我国铁路交通的不断发展,简单的窗口售票模式已经不能满足方便人们出行的目的采用先进的网络技术__出方便快捷的网上订票系统是现代客运业务发展的必然需求本次设计的火车票网上订票系统通过访问主页可以实现个人信息注册、车次车票__查询、在线订票退票等基本功能,为用户提供方便快捷的订票服务牛牛购票我们使用j__a语言进行__,采用了C/S结构,通过该__我们可以最快查询,__,和退订火车票和飞机票等操作关键字网上订票,j__a,交通发展AbstractWiththecontinuousdevelopmentofrailwaytransportationinourcountrya______windowticketmodealreadycannotsatisfythepurposeofconvenienttr__el.USEStheadvan__dnetworktechnologyaredevelopingfastandconvenientonlinebookingsystemistheinevitablede__ndofthedevelopmentofmodernpassengerservi__s.Trainticketsonlinebookingsystembyvisitingthehomepageofthisdesigncanachievepersonalinfor__tionregistrationtrainticketpri__inquirythebasicfunctionsuchasonlinebookingtickettoprovideuserswithconvenientbookingservi__.NiuniuticketsweuseJ__alanguagedevelopmenttheuseoftheC/Sstructurethroughthewebsitewecanfastestquerypurchaseandunsubscribetrainticketsandplaneticketsandsoon.Keywords:ticketsonlineJ__atrafficdevelopment目录TOC\o1-3\h\u第1章绪论
41.1引言
41.2系统设计的目标
51.3__工具简介
51.4可行性研究9第2章需求分析
102.1功能需求
102.
1.1产品描述
102.2性能需求
122.3业务流程图
142.4数据流图
142.5数据字典
162.6结构
182.7界面设计原则
221.界面一致性原则
222.布局合理化原则24第3章详细设计
263.1总体设计描述
263.
1.1需求规定
273.
1.2运行环境
273.
1.3基本设计概念和处理流程
273.2系统的功能设计
283.3概念设计
333.4业务逻辑表设计
363.5接口设计
383.6运行设计
403.7系统论据结构设计
403.8美学设计40第4章系统的实现
424.1系统主界面
424.2首页推荐
424.3订票界面
454.4登录
464.5注册
464.6图标资源
474.7图像资源
474.8界面组件
474.9主要程序代码48第五章系统调试与测试
645.1调试与测试的概述
645.2测试和调试过程
665.3测试步骤
675.2功能测试69第六章实训总结71第1章绪论
1.1引言1编写目的该文档的目的是描述牛牛订票系统项目的概要设计,其主要内容包括系统功能简介系统结构设计系统接口设计数据设计模块设计界面设计本文档的预期的读者是__人员项目管理人员测试人员2背景随着人们生活水平的提高,人们对消费的质量也渐渐要求更高,人们甚至愿意花更多的钱去买更好质量的服务人们也或多或少因为工作或什么原因到处奔波,走走看看,所以免不了要选择火车或飞机出行如果每次出行前都要到售票处买票,来回耽误实践不说,还不一定有票那么问题来了,____既安全有便捷的出行呢?基于这种背景,__出牛牛购票系统,在家就能订票退票,不管是自己出行,还是帮亲戚朋友订票,都方便,快捷,牛牛订票系统致力于“我们不是卖票的我们只是送票员”,只要小手一点,不耽误工作,娱乐,休闲,顺利出行,想走就走还有什么比我们更懂你,牛牛订票系统应运而生生活富足了,当然就免不了想走走看看,牛牛购票系统,独特的送票员,世界那么大,有点钱,当然得去看看,然后就发现真的只是“有点钱”,牛牛系统为您独家设计双程票,来去自由总之,人们很少再去售票点买票订票,那么,网络订票,无疑是一个很好的切入点
1.2系统设计的目标为那些想要乘飞机或者火车出行的人,提供一些帮助,使他们的出行更简便,更舒适,玩得更开心,更尽兴在出发旅行前,不用担心买不到票的问题,让他们可以提前买票,以便提前规划好自己的行程
1.3__工具简介J__a编程语言的风格十分接近C、C++语言J__a是一个纯的面向对象程序设计语言,它继承了C++语言面向对象技术的核心,J__a舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧在J__aSE
1.5版本中,J__a又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性 J__a不同于一般的编译执行计算机语言和解释执行计算机语言它首先将源代码编译成二进制字节码bytecode,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了J__a程序的运行效率但在J2SE
1.
4.2发布后,J__a的执行速度有了大幅提升 与传统程序不同,Sun公司在推出J__a之际就将其作为一种开放的技术全球数以万计的J__a__公司被要求所设计的J__a软件必须相互兼容“J__a语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件__商的认同这与微软公司所倡导的注重精英和封闭式的模式完全不同 Sun公司对J__a编程语言的解释是J__a编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言 J__a平台是基于J__a语言的平台这样的平台非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿J__a的C#语言J__a语言的特点
1.平台无关性平台无关性是指J__a能运行于不同的平台J__a引进虚拟机原理,并运行于虚拟机,实现不同平台的J__a接口之间使用J__a编写的程序能在世界范围内共享J__a的数据类型与机器无关,J__a虚拟机http://baike.baidu.com/view/
1132.htm\thttp://baike.baidu.com/_blank(J__aVirtual__chine)是建立在硬件和操作系统之上,实现J__a二进制代码的解释执行功能,提供于不同平台的接口的
2.安全性J__a的编程类似C++,学习过C++的读者将很快掌握J__a的精髓J__a舍弃了C++的指针http://baike.baidu.com/view/
159417.htm\thttp://baike.baidu.com/_blank对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统J__a对程序提供了安全管理器,防止程序的非法访问
3.面向对象J__a吸取了C++面向对象的概念,将数据封装http://baike.baidu.com/view/
262940.htm\thttp://baike.baidu.com/_blank于类中,利用类的优点,实现了程序的简洁性和便于维护性类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用程序员只需把主要精力用在类和接口的设计和应用上J__a提供了众多的一般对象的类,通过继承即可使用父类的方法在J__a中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类J__a提供的O__ect类及其子类的继承关系如同一棵倒立的树形,根类为O__ect类,O__ecthttp://baike.baidu.com/view/
627051.htm\thttp://baike.baidu.com/_blank类功能强大,经常会使用到它及其它派生的子类
4.分布式J__a建立在扩展TCP/IPhttp://baike.baidu.com/view/
7729.htm\thttp://baike.baidu.com/_blank网络平台上库函数http://baike.baidu.com/view/
905012.htm\thttp://baike.baidu.com/_blank提供了用HTTPhttp://baike.baidu.com/view/
9472.htm\thttp://baike.baidu.com/_blank和FTPhttp://baike.baidu.com/view/
369.htm\thttp://baike.baidu.com/_blank协议传送和接受信息的方法这使得程序员使用网络上的文件和使用本机文件一样容易
5.健壮性J__a致力于检查程序在编译和运行时的错误类型检查帮助检查出许多__早期出现的错误J__ahttp://baike.baidu.com/view/
29.htm\thttp://baike.baidu.com/_blank自己操纵内存减少了内存出错的可能性J__a还实现了真数组http://baike.baidu.com/view/
209670.htm\thttp://baike.baidu.com/_blank,避免了覆盖数据的可能,这些功能特征大大提高了__J__a应用程序的周期并且J__a还提供了Null指针检测、数组边界检测、异常出口、Bytecode校验等功能
6.解释型我们知道CC++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关J__a不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”字节码是很接近机器码的文件,可以在提供了j__a虚拟机(JVM)的任何系统上被解释执行
7.动态j__a程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得J__a可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译
1.4可行性研究
1、任何用户,不用培训和查看使用说明书,都能熟练的操作牛牛订票软件
2、软件的查询功能相应的比较慢
3、牛牛购票软件操作流程简单,主要有登陆、注册、余票查询、预定、订单查询、退票等基本功能
4、牛牛购票软件的所有界面风格、框架统
一、风格一致
5、登陆后可实现每个用户基本购票需求第2章需求分析需求分析是软件设计最重要的环节,本阶段对购票系统的使用情况的全面调查,从而确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,来确定用户的需求名词解释所谓需求分析,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果可以说需求分析是做系统之前必做的在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作需求分析是软件工程中的一个关键过程在这个过程中,系统分析员和软件工程师确定顾客的需要只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法需求分析阶段的任务是确定软件系统功能在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤但在近十年内,越来越多的人认识到,需求分析是整个过程中最关键的一个部分假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件项目无法在规定的时间里完工
2.1功能需求我们的网上购票系统应该具备一下的功能功能牛牛购票具有登录,注册功能,在登陆以后的情况下,可以通过我们的程序,了解他所需的有关火车以及飞机班次的信息,并且预订相关班次的机票或者火车票,保证他出行畅通无阻可行性分析运用了J__A语言进行编程牛牛购票软件根据编写目的进行定制__,__包括整个的软件的基本功能,牛牛购票可以实现飞机票和火车票的真实查询和虚拟预定,本软件主要功能就是实现余票的真是查询与模拟现实购票及退票
2.
1.1产品描述
1、项目数据通过聚合网络接口获取数据,为火车票和飞机票的查票提够实时真实数据
2、牛牛购票软件的主要功能有登陆、注册、车票查询预定、订单查询、退票等基本功能
3、软件实现时将充分考虑以下几点界面的友好性;系统的响应时间各个界面数据的__为了体现我们购票软件的简单,本软件将使用统一的界面风格设计,__一款易于操作的购票软件,可以帮用户购飞机票和火车票,满足用户的需求
1.登陆功能通过登陆我们的站点可以访问牛牛购票系统的主页面,在浏览火车票和飞机票的情况之后__购票的时候输入用户或___的信息实现用户的登陆和用户身份的识别,并区别用户权限实现不同的操作
2.注册功能当用户没有在本__进行过注册,那么当__登陆的时候将会提醒用户以用户名,__和__确认进行账号的注册
3.查询功能用户在登录或非登录状态下,根据出发地,目的地,出发日期,类型(火车或飞机)来查询票务信息
4.订票功能用户在已经登陆的情况之下才可以进行购票!
5.订单查询退票功能用户在登录状态下,查询个人订单或退票!
6.账户注销用户在登录状态下,__用户标签,提示是否注销
2.2性能需求
1.客户端的界面要求
1.界面内容排版整齐,清新
2.艺术风格界面、版面形象清新悦目、布局合理字号大小适宜、字体选择合理,前后一致,美观大方;动与静搭配恰当动静效果好;色彩和谐自然与主题内容相协调
2.响应时间需求无论是客户端和管理端,当用户登录,进行任何操作的时候,系统应该及时的进行反应,反应的时间在20秒以内系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应
3.可靠性此系统是面向部分需找工作的人员使用的系统,所以对与系统的可靠性要求为中级具体的要求如下a)月正常运行时间8×5×22b)月停机维护时间不超过24小时c)最大缺陷数量205levelbugs以内4开放性__内容应面向广大用户,对于所有人群均__,保证__的实用性5可拓展性__设计要求能够体现扩展性要求,以适应将来功能扩展的需求
2.3业务流程图下图为牛牛购票系统的业务流程图#0;#0;#0;#0;开始查询余票(飞机票与火车票)订票登陆是否合法账号预定订票成功是否想要订单查询(确认信息)是否继续购票结束购票退订注册账号YNYYNNYNYN
2.4数据流图名词解释数据流图是结构分析方法中使用的工具它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模块在结构化__方法中,数据流图是需求分析阶段产生的结果数据流图英文缩写DFD(DataFlowDiagram)它是描绘信息流和数据从输入__到输出的过程中所经受的变换数据流图从数据传递和__的角度,以图形的方式刻画数据流从输入到输出的__变换过程数据流程图包括a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;c.指明几个处理和(或)数据媒体之间的数据流的流线符号;d.便于读、写数据流程图的特殊符号在处理符号的前后都应是数据符号数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)数据流图有两种典型结构,一是变换型结构,它所描述的工作可表示为输入、主处理和输出,呈线HYPERLINKhttp://baike.baidu.com/picture/228931/228931/0/3b6833f5b8bfb243bc31098c.htmlfr=lemmact=single\o变换型结构数据流图\thttp://baike.baidu.com/view/_blankINCLUDEPICTUREhttp://a.hiphotos.baidu.com/baike/s=220/sign=7d6cff4c2834349b70066987f9eb1521/55e736d12f2eb938c31164a4d5628535e5dd6f
63.jpg\*MERGEFORMAT变换型结构数据流图性状态另一种是事务型结构,这种数据流图呈束状,即一束数据流平行流入或流出,HYPERLINKhttp://baike.baidu.com/picture/228931/228931/0/d35a10f48eb98608dcc
47477.htmlfr=lemmact=single\o事务型结构数据流图\thttp://baike.baidu.com/view/_blankINCLUDEPICTUREhttp://f.hiphotos.baidu.com/baike/s=220/sign=087ad69caf51f3dec7b2be66a4eff0ec/6609c93d70cf3bc70a51d3bad100baa1cd112a
16.jpg\*MERGEFORMAT事务型结构数据流图可能同时有几个事务要求处理
1.下图为牛牛购票系统的数据流程图#0;#0;#0;登陆身份识别管理员/普通用户管理员操作普通用户操作结束用户
2.查询数据流程图(如图2-2)2-2牛牛购票系统查询管理数据流图
3.牛牛购票系统车票车次车票,站点管理数据流图(如图2-3)2-3牛牛购票系统车票车次车票,站点管理数据流图
2.5数据字典数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMShttp://baike.baidu.com/view/
68450.htm\thttp://baike.baidu.com/view/_blank自动更新的数据字典被动数据字典是指修改时必须手工更新其内容的数据字典数据字典最重要的作用是作为分析阶段的工具任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析http://baike.baidu.com/view/
198632.htm\thttp://baike.baidu.com/view/_blank中,数据字典的作用是给数据流图http://baike.baidu.com/view/22__
31.htm\thttp://baike.baidu.com/view/_blank上每个成分加以定义和说明换句话说,数据流图上所有的成分的定义和解释的文字__就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息用户可以用SQL语句访问数据库数据字典
2.6结构一般用户的功能结构图(2-1)1功能需求与程序的关系在需求说明中规定要实现的功能,对应的模块和程序实现如下功能和需求描述模块功能描述个人信息管理注册个人信息行程余票信息输入出发地,目的地和出发日期查询完成订单订单的确认(不做支付部分)改签更改行程进行退票及重新订票操作程序处理进行程序的更新改错等操作说明
1、主界面__了这些功能和模块,为用户操作提供一个框架;
2、以上划分的模块、子系统,在逻辑上相对__,因此被划分成相对__的模块,这种方式的划分为系统的实现能够提供更加明确的思路,但是,这些模块在实现的时候不能够达到完全的内聚,因此,实现的成员安排,请参考项目计划中的____;
3、模块之间的接口设计,请参考以下的说明;
2.人工处理过程本软件系统http://baike.baidu.com/view/
8343.htm的工作过程中不得不包含的人工处理过程
3.尚未解决的问题理论上可以,但是由于缺少这方面的资料,身边和网上没有实例可以参照,所以担心最后不可实现
4.硬件的限制
4.1属性
1、每个用户用户注册功能,就可以对牛牛购票系统软件进行操作,实现购票等有关功能
4.2可用性任何用户,不用培训和查看使用说明书,都能熟练的操作牛牛订票软件
2、软件的查询功能相应的比较慢
3、牛牛购票软件操作流程简单,主要有登陆、注册、余票查询、预定、订单查询、退票等基本功能
4、牛牛购票软件的所有界面风格、框架统
一、风格一致
5、登陆后可实现每个用户基本购票需求
4.3安全性对软件系统级安全性需求进行分析软件可对每个注册用户进行登陆与余票查询预定等功能合适的编程语言—J__a软件结构设计安全,软件功能完整
4.4可维护性维护就是在牛牛购票软件交付使用后进行的修改,修改之后进行必要的测试,以保证所做的修改是正确的牛牛购票软件使用了J__a语言在WINDOWS环境下进行编译部分功能实现,使用面向过程来实现,维护可能不怎么容易
4.5可转移\转换性
1、在设计过程中采用的通用程序设计语言J__a和运行支撑环境ecplise没有使用与系统的底层相关性强的语言
2、牛牛购票软件的源代码到不同的台下(不同的操作系统),都可实现运行,需要修改的内容较少
4.6警告指定所需属性十分重要,它使得人们能用指定的用户账号去登陆,通过软件完成自己的需求5数据库在数据库中有一些数据是后台直接输入的不需要前台的变动如老师的信息,所教的班级,课程,班级有哪些学生,学生的信息等,这些都是不变的,只要他们在这学校中,学校就会为他们分配各自的信息,并保存在数据库中也就是说老师在这家校通系统中,登陆后,就可以看到他所教的班级,班级中有哪些学生家长登陆后也会直接看到他们孩子所在的班级,以及所对应的老师,并会显示老师所教的哪门课程在家校通中,数据库主要存储了一些必要的数据比如老师信息、家长信息、学校动态、聊天记录、__信息、老师给家长发送的文件等在数据存储方面,只要学校动态有变动,老师和家长在登陆后观看学校动态就会自动更新这动态也会在数据库中自动按时间来保存老师和家长的信息也会跟他们的变动,而改变每个家长和老师的聊天记录会根据他们聊天的内容来按时间顺序来保存在数据库中,只有当他们在聊天记录中选择删除聊天记录内容,数据库中的相关记录也会跟着自动删除只要数据库中的表有改动,数据库就会自动更新,来保证与数据变动的同步
2.7界面设计原则软件界面设计就像工业产品中的工业造型设计一样,是产品的重要卖点一个友好美观的界面会给人带来舒适的视觉享受,拉近人与电脑的距离,为商家创造卖点界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计检验一个界面的标准既不是某个项目__组_____也不是项目成员投票的结果,而是最终用户的__所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果的过程好的界面会给人们更舒适的感觉,人们会更开心的接受这项服务在此软件中充分体现了用户界面设计的三大原则置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性,以达到界面直观,软件功能操作便捷的目的
1.界面一致性原则如同一本书一样,一个系统即一个个体,各个功能、各个界面相互__、脉络相通,后台服务与前台界面相辅相成,界面是一个系统的门面,是用户使用系统的窗口,界面设计的一致性,是衡量一个系统的重要标准之一,界面的统一直接体现了系统功能设计的理念界面的一致性体现在设计目标一致、元素外观一致和交互行为一致三个方面
1、设计目标一致软件中往往存在多个组成部分(组件、元素)不同组成部分之间的交互设计目标需要一致例如如果以电脑操作初级用户作为目标用户,以简化界面逻辑为设计目标,那么该目标需要贯彻软件(软件包)整体,而不是局部
2、元素外观一致交互元素的外观往往影响用户的交互效果同一个(类)软件采用一致风格的外观,对于保持用户焦点,改进交互效果有很大帮助遗憾的是如何确认元素外观一致没有特别统一的衡量方法因此需要对目标用户进行调查取得反馈在软件中其元素外观设计规范如下颜色以草绿色()为主,白色打底,充分彰显软件设计的清新感,给使用者舒适、明朗的感觉s字体标题为绿底黑字,其它多用白底黑字,字体大小以14sp为主,根据具体情况设置对齐方式两端对齐为主,根据具体需求进行左对齐或右对齐标签提示以黑底白字的提示框进行提示()
3、交互行为一致在交互模型中,不同类型的元素用户触发其对应的行为__后,其交互行为需要一致例如所有需要用户确认操作的对话框都至少包含确认和放弃两个按钮对于交互行为一致性原则比较极端的理念是相同类型的交互元素所引起的行为__相同但是我们可以看到这个理念虽然在大部分情况下正确,但是的确有相反的例子证明不按照这个理念设计,会更加简化用户操作流程
2.布局合理化原则此软件是基于j__a平台下的软件,遵循j__a中UI设计的原则,简洁明了,通过主界面的引导访问分界面,采用顶端主栏,下端主体具体内容的总分布局设计方式,达到了一下几个布局设计要求
1.清晰软件整体布局绿白为主,界面设计清晰,,用户视觉体验良好的,整体印象清晰舒适
2.简洁界面布局简介,主界面从上到下由一个搜索栏、水平滑动菜单、幻灯片推介窗口、垂直菜单组成,分界面则是由自上向下的一个任务栏、主体具体内容组成,一目了然、容易操作
3.熟悉软件各个界面的颜色、布局统一,用户使用到任何界面都会有熟悉感
4.响应界面响应迅速,而且界面的提醒功能全面,用户能够及时快速的得到反馈信息
5.一致界面风格、布局框架一致,不会让用户有错愕感
6.美观界面整体颜色清丽,布局简洁明了,给人以愉悦的感觉及其美观的视觉体验第3章详细设计
3.1总体设计描述即对全局问题的设计,也就是设计系统总的处理方案,又称概要设计制造系工程总体设计包括市场调研,技术规格书编写,初步设计,详细设计,产品制造等
[1] 软件工程总体设计包括计算机配置设计、系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容软件功能分解属于下列软件__中的总体设计阶段完成大型工程体系的总体方案和总体技术途径的设计过程在一般工程设计中总体设计则指按计划任务书的内容进行概略计算,附以必要的文字说明和图纸设计,又称初步设计对于工程系工程总体设计是指前一种含义总体设计是工程项目__过程中的一个重要阶段(见图)研制大型工程体系的基本问题是,怎样把比较笼统的初始研制要求逐步地变为成千上万个研制参加者的具体工作,以及怎样把这些工作最终综合成一个技术上先进、经济上合算、研制周期短、能协调运转的实际系统,并使这个系统成为它所从属的更大系统的有效组成部分1954年美国最早出现为导弹研制计划提供这种服务的系统工程公司──拉莫·沃尔德里奇公司50年代末中国开始研制人造卫星和运载火箭时,也建立了这样的机构,并称之为总体设计部总体设计部设计的是系统的总体,系统的总体方案和实现它的技术途径,并通过可行性研究和技术经济论证,确保项目在规划、设计、制造和运行各个阶段,总体性能最优这样可以避免因规划、研制和运用的缺陷造__力、物力和财力的浪费
3.
1.1需求规定经过调研,本系统面向的主要参与者有三类一般用户、团体用户、___为界定三种系统参与者的身份,根据设定用户的权限以及增加不同使用者的功能需求模块来区分参与者的角色本系统主要特征为__性,可以随时随地地使用系统的各项功能,所以有必要对业务流中使用到的信息进行安全级别的设置,以保证不同身份的用户可以访问使用到自己需要的数据
3.
1.2运行环境WindowsXP、Windows
2000、Windows7等
3.
1.3基本设计概念和处理流程1设计概念该软件设计的系统是根据人们出行的实际需求所__的一个实用、方便的基于网络的订票系统,考虑到用户以的实际需求,在系统的设计过程中遵循实用性原则、可行性原则、可扩展性原则、人性化原则以及注重实用性原则本应用的基本设计概念是依托网络,__一个专为出行而设定的一款应用,通过实现平台的“个人订单”、“个人信息管理”、“查询”、“订票退票”、“登录注册”、在有效地提高用户的订票效率以及订票过程的体验度的同时也能够为交通系统增大客流量和收入
3.2系统的功能设计牛购票,从聚合数据__上获取免费机票,火车票数据用户可通过牛牛客户端查询机票或火车票;订票和订单查询,用户必须登陆注册账号
1.角色定义角色或者执行者(Actor)指与__产生交互的外部用户或者外部系统a.用户用户是指在牛牛客户端登陆注册的游客,他们可以查询全国各地的实时机票和火车票信息,订购全国各地的机票和火车票,查询他们所订订单b.游客游客是指进入__的用户,他们可以查询全国各地的实时机票和火车票信息,但不可订购机票和火车票,查询订单用户具体说明如下用户-登陆牛牛购票客户端的用户,享有__一切权益游客-进入__,对__部分功能可以使用
2.牛牛购票前台游客通过打开客户端访问牛牛购票客户端,前台功能主要包括登陆注册,查询,订票等功能模块,首先游客可以决定是否要注册自由账号,成为牛牛购票的一个真正的用户,牛牛购票是一个对所有有购票需求开放的平台!您可以无障碍的自由浏览牛牛购票,牛牛购票注册才可以使用购票,查询订单等功能1前台首页结构如下图A-5所示2客户端的功能主要包括查询,订票,订单查询等功能,它的结构图如图A-6客户端用户的功能描述如下F-C-1查询功能查询主要是用户查询全国各地的实时机票和火车票信息F-C-2订票功能订票主要是根据用户所选择的票,订购全国各地的机票和火车票F-C-3查询订单功能查询订单主要是根据用户的购票记录查询、F-C-4退票功能退票功能主要是根据用户查询订单的结果,看是否需要退票
3.3概念设计概念设计是由分析用户需求到生成概念产品的一系列有序的、可__的、有目标的设计活动,它表现为一个由粗到精、由模糊到清晰、由抽象到具体的不断进化的过程概念设计即是利用设计概念并以其为主线贯穿全部设计过程的设计方法概念设计是完整而全面的设计过程,它通过设计概念将设计者繁复的感性和瞬间思维上升到统一的理性思维从而完成整个设计概念的设想是创造性思维的一种体现,概念产品是一种理想化的物质形式下面以概念设计教学实例之HYPERLINKhttp://baike.baidu.com/picture/768608/768608/0/1a94b36e1128a7bf80cb4af
7.htmlfr=lemmact=single\o功夫熊猫概念设计图稿3\thttp://baike.baidu.com/_blankINCLUDEPICTUREhttp://e.hiphotos.baidu.com/baike/s=220/sign=63bd05bbb48f8c54e7d3c22d0a282dee/71cf3bc79f3df8dc1dec4cc4cd11728b
46102896.jpg\*MERGEFORMAT功夫熊猫概念设计图稿3一来说明其涵义给出一个概念“断药”,让学生进行座椅的__设计步骤是,首先向学生讲述心理学中的一个名词———暗示心理,并分别举出一个“安乐死”实验和一个“挽救少女生命”的文学名著故事,从正反两个方面说明暗示对人的健康的影响;然后运用一个“民间故事”阐述如何将“断药”的概念物化到具体的产品上因为,在民间曾有这样一个说法,就是将一把断了的钥匙用红线穿上挂在小孩的脖子上,取“断钥”的谐音“断药”暗示常生病的孩子挂上“断钥”这挂项链之后,就断了药,从此不再吃药,这也意味着孩子走向健康所以,将一把断了的钥匙(断药)的概念物化到具体的产品上来为健康做设计时,用折断了的钥匙做椅架为主题,由学生创意出现了形形__的座椅__设计方案(其草图、效果图、视图等技术说明从略),于是就有了一种新型的专用座椅的概念设计其应用场合为疗养院、医院、不能自理的老人家庭等这是传统的产品概念设计当然,产品的类型不止是这种无障碍设计思想指导下的专用座椅产品即人之观念的物化,设计是一种思维行为在这种思维创造___活动中,产品概念的构思是丰富的,人的创作智慧是无穷的概念产品的类型更是多种多样牛牛购票系统E-R图E-R图牛牛购票车票信息图E-R(如图3-1)图3-1牛牛购票订票信息E-R图(如图3-2)图3-2牛牛购票系统车次信息E-R图(如图3-3)图3-3用户功能界面设计通过选择用户登陆输入用户账号和用户__,验证通过后面试用户功能界面,如果是第一次登录系统则可以进行信息的注册通过用户功能界面可以实现用户个人信息的维护,车次的查询订票退票的操作
3.4业务逻辑表设计
1.airplane字段名字段类型说明flightnumberString__号companyString__公司dexpectedString起飞时间aexoectedString到达时间startcityString起飞城市endcityString到达城市
2.ItemnameStirng姓名startStirng出发城市endStirng到达城市starttimeStirng出发日期endtimeStirng到达日期typeStirng出发时间startdateStirng到达时间serailnumberStirng乘坐类型
3.Traintr字段名字段类型说明train_noString车次start_stationString出发站end_stationString到达站start_timeString出发时间arrive_timeString到达时间lishiString历时shangwuString商务座tedengString特等座yidengString一等座gaojiString高级软座ruanwoString高级软卧yinwoString硬卧ruanzuoString软卧yinzuoString硬座wuzuoString无座
3.5接口设计用户接口
1、程序接口操作系统提供给编程人员的接口牛牛购票软件用户通过在程序中使用系统调用命令来请__作系统提供服务
2、图形接口图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标来将系统各项功能、各种应用程序和文件,直观、逼真地表示出来,牛牛购票软件用户可通过鼠标、键盘等相关输入和命令来完成对应程序和软件功能实现与操作1外部接口
2.内部接口
3.6运行设计1运行模块运行程序后,进入主界面,游客可通过出发地,目的地和出发日期使用查询功能;订票功能,必须登陆注册
4.2运行时间运行牛牛订票,将占用系统时间
3.7系统论据结构设计为简化设计,直接在.properties和.xml上进行数据存储
1、用户数据存储Infor__tion.properties
2、订单数据存储Items.xml3系统出错处理设计
1、重新运行程序
3.8美学设计本软件坚持以用户体验为中心设计原则,界面直观、简洁,操作方便快捷,用户接触软件后对界面上对应的功能一目了然在界面上保持了字体及颜色一致,避免一套主题出现多个字体;通过保持页面内元素对齐方式的一致,达到了界面统一的效果;使用一致的标记、标准缩写和颜色,显示信息的含义应该非常明确,用户不必再参考其它信息源本系统采用了人机界面设计遵循了以用户为本、提高可交互性、尽量避免需要记忆的内容、简化用户操作、提高操作的效率、应用安全等一般原则对于用户问题和要求表现得了很好的满足,且界面用语具有可理解性和易用性,极大程度上便于用户的习惯使用方式第4章系统的实现
4.1系统主界面通过登录站点访问主页如(图4-1)
4.2首页推荐主界面的设计总体包括主栏、登陆界面、注册界面、查询四个部分,其主要的界面效果如下图所示,每一个图标以及标识的功能可见下图的图示说明界面展示主界面代码如下publicclass__inFrameextendsJFrame{privatezjpanlcontentPane;privateJTextFieldtextField;privateJTextFieldtextField_1;privateJTextFieldtextField_2;privateDefaultTableModeltrainTableModel;privateDefaultTableModelairplaneModel;privateJTableplanetable;privateJTabletraintable;privateStrings__eValue=火车;privateJFor__ttedTextFieldtfDate;privateDefaultTableModelitemModel;privateJTableitemJTable;/***Launchtheapplication.*/publicstaticvoid__inString[]args{__inFrameframe;try{frame=new__inFrame;frame.setVisibletrue;}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}/***Createtheframe.**@throwsEx__ption*/public__inFramethrowsEx__ption{setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;setBounds1001001220600;contentPane=newzjpanlnewI__geIconser/bg
2.jpg.getI__ge;contentPane.setBordernewEmptyBorder5555;setContentPanecontentPane;contentPane.setLayoutnull;itemModel=Tool.getitem__odel;itemJTable=Tool.getitemTableitemModel;airplaneModel=Tool.getplaneModel;planetable=Tool.getplaneTableairplaneModel;trainTableModel=Tool.gettrai__odel;traintable=Tool.gettrainTabletrainTableModel;//为Jtable添加滚动条finalJScrollPanejs=newJScrollPanetraintableScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYSScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;JLabellabel=newJLabel出发地;label.setBounds601225715;contentPane.addlabel;textField=newJTextField;textField.setText__;textField.setBounds13011910021;contentPane.addtextField;textField.setColumns10;JLabellabel_1=newJLabel目的地;label_
1.setBounds2561225415;contentPane.addlabel_1;textField_1=newJTextField;textField_
1.setText北京;textField_
1.setBounds33111910021;contentPane.addtextField_1;textField_
1.setColumns10;JLabellabel_2=newJLabel出发日期;label_
2.setBounds4691226515;contentPane.addlabel_2;finalJLabelusernamelable=newJLabel未登陆;usernamelable.setBounds5583610034;usernamelable.setVisiblefalse;contentPane.addusernamelable;finalJButtonitembutton=newJButton查询订单;itembutton.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEventarg0{js.setViewportViewitemJTable;try{itemModel.setDat__ectorTool.getitemsinfoTool.getItem__ynameusernamelable.getText.substring0usernamelable.getText.indexOfTool.getitems;}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}itemJTable.getColumn备注.set__llRenderernewItemButtonRenderer;itemJTable.getColumn备注.set__llEditornewItemButtonEditornewJCheckBox;}};itembutton.setBounds8713612034;itembutton.setVisiblefalse;contentPane.additembutton;//textField_2=newJTextField;//textField_
2.setBounds52011910021;initTfDate;//日历koujisncontentPane.addtfDate;tfDate.setColumns10;tfDate.setText2015-04-23;JRadioButtonrdbtnNewRadioButton=newJRadioButton火车;rdbtnNewRadioButton.setBounds7041185723;contentPane.addrdbtnNewRadioButton;JRadioButtonrdbtnNewRadioButton_1=newJRadioButton飞机;rdbtnNewRadioButton_
1.setBounds8671185723;ButtonGroupbuttonGroup=newButtonGroup;buttonGroup.addrdbtnNewRadioButton;buttonGroup.addrdbtnNewRadioButton_1;rdbtnNewRadioButton.setSelectedtrue;rdbtnNewRadioButton.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{JRadioButtontemp=JRadioButtone.getSour__;iftemp.isSelected{s__eValue=temp.getText;System.out.printlns__eValue;}}};rdbtnNewRadioButton_
1.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{JRadioButtontemp=JRadioButtone.getSour__;iftemp.isSelected{s__eValue=temp.getText;System.out.printlns__eValue;}}};contentPane.addrdbtnNewRadioButton_1;finalJButtonbtnNewButton=newJButton查询;btnNewButton.setBounds104111212034;btnNewButton.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{ifs__eValue.equals火车{js.setViewportViewtraintable;trainTableModel.setDat__ectorTool.getticketInfoTool.getTrainstextField.getTexttextField_
1.getTexttfDate.getTextTool.getticketname;traintable.getColumn备注.set__llRenderernewButtonRenderer;traintable.getColumn备注.set__llEditornewButtonEditornewJCheckBox;}else{js.setViewportViewplanetable;airplaneModel.setDat__ectorTool.getplaneInfoTool.getairplanestextField.getTexttextField_
1.getTexttfDate.getTextTool.getplanename;planetable.getColumn备注.set__llRenderernewButtonRenderer;planetable.getColumn备注.set__llEditornewButtonEditornewJCheckBox;}}};contentPane.addbtnNewButton;js.setBounds03001200300;contentPane.addjs;finalJButtonbtnNewButton_1=newJButton注册;finalZhu__z=newZhu__;btnNewButton_
1.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{Registersreg=newRegisters;}};btnNewButton_
1.setBounds10413612034;contentPane.addbtnNewButton_1;finalJButtonbutton=newJButton登陆;button.addActionListenernewActionListener{@OverridepublicvoidactionPerformedActionEvente{denglud=newdenglucontentPaneusernamelablebuttonitembuttonbtnNewButton_1;}};usernamelable.addMouseListenernewMouseListener{@OverridepublicvoidmouseReleasedMouseEvente{//TODOAuto-generatedmethodstub}@OverridepublicvoidmousePressedMouseEvente{//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExitedMouseEvente{//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseEnteredMouseEvente{//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseClickedMouseEvente{inttemp=JOptionPane.showConfirmDialognull是否注销用户提示:JOptionPane.YES_NO_OPTION;iftemp==JOptionPane.OK_OPTION{JOptionPane.showMessageDialog__inFrame.this注销成功;usernamelable.setText未登陆;usernamelable.setVisiblefalse;itembutton.setVisiblefalse;button.setVisibletrue;btnNewButton_
1.setVisibletrue;contentPane.validate;}else{}}};button.setBounds6943612034;contentPane.addbutton;Iconicon=newI__geIconser/__截图
20150415161749.png;JLabellblNewLabel=newJLabel;lblNewLabel.setIconicon;lblNewLabel.setBounds1543638041;contentPane.addlblNewLabel;Iconicon1=newI__geIconser/WOX
12.png;JLabellblNewLabel_1=newJLabelicon1;lblNewLabel_
1.setBounds23-1112113;contentPane.addlblNewLabel_1;}/**initTfDate初始化JFor__ttedTextFieldtfDate;*/publicvoidinitTfDate{tfDate=newJFor__ttedTextField;tfDate.setBounds55811910021;tfDate.addMouseListenernewMouseListener{publicvoidmouseClickedMouseEventmouseevent{//添加文本框单击__//TODOAuto-generatedmethodstub//System.out.println------MyTest-----;DateChoosermDateChooser=newDateChoosertfDate;//设置DateChooser弹出位置Pointp=tfDate.getLocationOnScreen;p.y=p.y+30;mDateChooser.showDateChooserp;tfDate.requestFocusInWindow;}publicvoidmouseEnteredMouseEventmouseevent{//TODOAuto-generatedmethodstub}publicvoidmouseExitedMouseEventmouseevent{//TODOAuto-generatedmethodstub}publicvoidmousePressedMouseEventmouseevent{//TODOAuto-generatedmethodstub}publicvoidmouseReleasedMouseEventmouseevent{//TODOAuto-generatedmethodstub}};}}头部头部是系统的简要工具栏,浏览系统的简要导航作用登陆栏登陆栏实现的是登陆的功能,与后台数据库直接相连,通过帐号__的方式查询栏查询栏可以查询出发地到目的地,时间和显示各种信息,在我们的系统中,这是最主体的部分
4.3订票界面界面展示
4.4登录登录是需要输入的信息如下数据项说明输入格式帐号注册时的帐号文本__注册时的__字符串界面展示
4.5注册
4.6图标资源本软件的标志性__,如logo等均由本小组成员制作而成,图示如下
4.7图像资源Fighting__小组
4.8界面组件第五__小组
4.9主要程序代码//连接到万络事实查询火车和飞机票的购票情况publicstaticListtraingetTrainsStringstartStringendStringdate{URLtrainurl;HttpURLConnectiontrainconnection;Listtraintrains=newArrayListtrain;try{Stringurl=http://apis.juhe.cn/train/ypkey=faacad2972ae3a30b460__3c9916a254dtype=jsonfrom=+URLEncoder.encodestartUTF-8+to=+URLEncoder.encodeendUTF-8+date=+date;trainurl=newURLurl;trainconnection=HttpURLConnectiontrainurl.openConnection;Stringtrainjson=inputStream2Stringtrainconnection.getInputStream;JSONO__ecttJsonO__ect=newJSONO__ecttrainjson;JSONArraytJsonArray=tJsonO__ect.getJSONArrayresult;forinti=0;itJsonArray.length;i++{JSONO__ecttemp=tJsonArray.getJSONO__ecti;traint=newtrain;t.setArrive_timetemp.getStringarrive_time;t.setEnd_stationtemp.getStringto_station_name;t.setErdengtemp.getStringze_num;t.setGaojitemp.getStringgr_num;t.setLishitemp.getStringlishi;t.setRuanwotemp.getStringrw_num;t.setRuanzuotemp.getStringrz_num;t.setShangwutemp.getStringswz_num;t.setStart_stationtemp.getStringfrom_station_name;t.setStart_timetemp.getStringstart_time;t.setTedengtemp.getStringtz_num;t.setTrain_notemp.getStringtrain_no;t.setWuzuotemp.getStringwz_num;t.setYidengtemp.getStringzy_num;t.setYinwotemp.getStringyw_num;t.setYinzuotemp.getStringyz_num;trains.addt;}}catchEx__ptione{e.printStackTra__;}returntrains;}publicstaticListairplanegetairplanesStringstartStringendStringdate{Listairplaneplanes=newArrayListairplane;URLairplaneurl;HttpURLConnectionaircConnection;try{Stringurl=http://apis.juhe.cn/plan/bckey=40ed2aa936d14dd7e0ed6e61e8637105start=+URLEncoder.encodestartUTF-8+end=+URLEncoder.encodeendUTF-8+date=+date;airplaneurl=newURLurl;aircConnection=HttpURLConnectionairplaneurl.openConnection;Stringairjson=inputStream2StringaircConnection.getInputStream;JSONO__ectairJsonO__ect=newJSONO__ectairjson;JSONArrayaJsonArray=airJsonO__ect.getJSONArrayresult;forinti=0;iaJsonArray.length;i++{JSONO__ectj=JSONO__ectaJsonArray.geti;airplanep=newairplane;p.setAexpectedj.getStringArrTime;p.setCompanyj.getStringAirline;p.setDexpectedj.getStringDepTime;p.setEndcityj.getStringArrCity;p.setFlightnumberj.getStringFlightNum;p.setStartcityj.getStringDepCity;planes.addp;}}catchEx__ptione{e.printStackTra__;}returnplanes;}publicstaticStringinputStream2StringInputStreaminthrowsIOEx__ption{StringBufferout=newStringBuffer;byte[]b=newbyte
[4096];forintn;n=in.readb!=-1;{out.appendnewStringb0n;}returnout.toString;}publicstaticString[]getrainString{String[]trainsStrings=newString[]{Train_noStart_stationEnd_stationStart_timeArrive_timeLishiShangwuTedengYidengErdengGaojiRuanwoYinwoRuanzuoYinzuoWuzuoBeizhu};returntrainsStrings;}publicstaticString[]getplansString{String[]planeStrings=newString[]{FlightnumberCompanyDexpectedAexpectedStartcityEndcityBeizhu};returnplaneStrings;}publicstaticvoidWritePropertiesStringpKeyStringpValuethrowsIOEx__ption{Propertiespps=newProperties;InputStreamin=newFileInputStreamInfor__tion.properties;//从输入流中读取属性列表(键和元素对)pps.loadin;//调用Hashtable的方法put使用getProperty方法提供并行性//强制要求为属性的键和值使用字符串返回值是Hashtable调用put的结果OutputStreamout=newFileOutputStreamInfor__tion.properties;pps.setPropertypKeypValue;//以适合使用load方法加载到Properties表中的格式,//将此Properties表中的属性列表(键和元素对)写入输出流pps.storeoutUpdate+pKey+name;in.close;out.close;}publicstaticJScrollPanegettraintableListtraintrainsthrowsEx__ption{intrownumber=trains.size;String[]trainsStrings=Tool.getrainString;O__ect[][]planeInfo=newO__ect[rownumber]
[17];forinti=0;itrains.size;i++{traintemptrain=trains.geti;Classtraintempclass=Classtraintemptrain.getClass;forintj=0;jtrainsStrings.length;j++{MethodtMethod=tempclass.getDeclaredMethodget+trainsStrings[j];Stringtempstring=StringtMethod.invoketemptrain;planeInfo[i][j]=tempstring;}}//列名String[]name={车次出发站到达站出发时间到达时间历时商务座特等座一等座二等座高级软座软卧硬卧软座硬座无座备注};DefaultTableModeltableModel=newDefaultTableModelplaneInfoname{//让表格只有最后一列可编辑publicbooleanis__llEditableintrowintcolumn{ifcolumn==16{returntrue;}else{returnfalse;}}};JTabletable=newJTabletableModel;DefaultTable__llRenderertcr=newDefaultTable__llRenderer;tcr.setHorizontalAlig__entSwin__onstants.__NTER;table.setDefaultRendererO__ect.classtcr;table.setRowHeight50;//表格行高//table.setEnabledfalse;//设置表格不可被编辑table.setPreferredScrollableViewportSizenewDimension10060;//表视口初始大小table.getTableHeader.setEnabledfalse;//设置表头不可被编辑table.getTableHeader.setPreferredSizenewDimension050;table.getTableHeader.setFontnewFont微软雅黑Font.BOLD13;table.getTableHeader.setBackgroundnewColor22140211;//增加button控件table.getColumn备注.set__llRenderernewButtonRenderer;table.getColumn备注.set__llEditornewButtonEditornewJCheckBox;//为Jtable添加滚动条JScrollPanejs=newJScrollPanetableScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYSScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;returnjs;}publicstaticString[]getticketname{String[]name={车次出发站到达站出发时间到达时间历时商务座特等座一等座二等座高级软座软卧硬卧软座硬座无座备注};returnname;}publicstaticO__ect[][]getticketInfoListtraintrains{intrownumber=trains.size;String[]trainsStrings=Tool.getrainString;O__ect[][]ticketInfo=newO__ect[rownumber]
[17];forinti=0;itrains.size;i++{traintemptrain=trains.geti;try{Classtraintempclass=Classtraintemptrain.getClass;forintj=0;jtrainsStrings.length;j++{MethodtMethod=tempclass.getDeclaredMethodget+trainsStrings[j];Stringtempstring=StringtMethod.invoketemptrain;ticketInfo[i][j]=tempstring;}}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}returnticketInfo;}publicstaticString[]getplanename{String[]name={__号__公司预计起飞时间预计到达时间出发城市到达城市备注};returnname;}publicstaticDefaultTableModelgettrai__odel{returnnewDefaultTableModelTool.getticketInfoTool.getTrains__北京2015-04-23Tool.getticketname{publicbooleanis__llEditableintrowintcolumn{ifcolumn==16{returntrue;}else{returnfalse;}}};}publicstaticDefaultTableModelgetplaneModel{returnnewDefaultTableModelTool.getplaneInfoTool.getairplanes__北京2015-04-23Tool.getplanename{publicbooleanis__llEditableintrowintcolumn{ifcolumn==6{returntrue;}else{returnfalse;}}};}publicstaticDefaultTableModelgetitemModelStringname{returnnewDefaultTableModelgetIteminfonamegetitemname{@Overridepublicbooleanis__llEditableintrowintcolumn{ifcolumn==0||column==2{returnfalse;}else{returntrue;}}};}publicstaticJTablegetplaneTableDefaultTableModelplaneModel{JTablej=newJTableplaneModel;DefaultTable__llRenderertcr=newDefaultTable__llRenderer;tcr.setHorizontalAlig__entSwin__onstants.__NTER;j.setDefaultRendererO__ect.classtcr;j.setRowHeight50;//表格行高j.setPreferredScrollableViewportSizenewDimension10060;//表视口初始大小j.getTableHeader.setEnabledfalse;//设置表头不可被编辑j.getTableHeader.setPreferredSizenewDimension050;j.getTableHeader.setFontnewFont微软雅黑Font.BOLD13;j.getTableHeader.setBackgroundnewColor22140211;//增加button控件j.getColumn备注.set__llRenderernewButtonRenderer;j.getColumn备注.set__llEditornewButtonEditornewJCheckBox;returnj;}publicstaticJTablegetitemTableDefaultTableModelitemModel{JTablej=newJTableitemModel;DefaultTable__llRenderertcr=newDefaultTable__llRenderer;tcr.setHorizontalAlig__entSwin__onstants.__NTER;j.setDefaultRendererO__ect.classtcr;j.setRowHeight50;//表格行高j.setPreferredScrollableViewportSizenewDimension10060;//表视口初始大小j.getTableHeader.setEnabledfalse;//设置表头不可被编辑j.getTableHeader.setPreferredSizenewDimension050;j.getTableHeader.setFontnewFont微软雅黑Font.BOLD13;j.getTableHeader.setBackgroundnewColor22140211;//增加button控件j.getColumn备注.set__llRenderernewItemButtonRenderer;j.getColumn备注.set__llEditornewItemButtonEditornewJCheckBox;returnj;}publicstaticJTablegettrainTableDefaultTableModeltrai__odel{JTablej=newJTabletrai__odel;DefaultTable__llRenderertcr=newDefaultTable__llRenderer;tcr.setHorizontalAlig__entSwin__onstants.__NTER;j.setDefaultRendererO__ect.classtcr;j.setRowHeight50;//表格行高j.setPreferredScrollableViewportSizenewDimension10060;//表视口初始大小j.getTableHeader.setEnabledfalse;//设置表头不可被编辑j.getTableHeader.setPreferredSizenewDimension050;j.getTableHeader.setFontnewFont微软雅黑Font.BOLD13;j.getTableHeader.setBackgroundnewColor22140211;//增加button控件j.getColumn备注.set__llRenderernewButtonRenderer;j.getColumn备注.set__llEditornewButtonEditornewJCheckBox;returnj;}publicstaticListItemgetItem__ynameStringnamethrowsEx__ption{Filef=newFileItems.xml;DocumentBuilde___ctorydBuilde___ctory=DocumentBuilde___ctory.newInstan__;DocumentBuilderdBuilder=dBuilde___ctory.newDocumentBuilder;Documentdocument=dBuilder.parsef;ListItemitems=newArrayListItem;NodeListn=document.getElement__yTagNamename;forinti=0;in.getLength;i++{ifn.itemi.getTextContent.equalsname{Nodenode=n.itemi.getParentNode;NodeListcNodeList=node.getChildNodes;Itemtemp=newItem;forintj=0;jcNodeList.getLength;j++{ifcNodeList.itemj.getNodeName.equalsname{temp.setNamecNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalsstart{temp.setStartcNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalsend{temp.setEndcNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalsstarttime{temp.setStarttimecNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalsendtime{temp.setEndtimecNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalstype{temp.setTypecNodeList.itemj.getTextContent;continue;}elseifcNodeList.itemj.getNodeName.equalsstartdate{temp.setStartdatecNodeList.itemj.getTextContent;}elseifcNodeList.itemj.getNodeName.equalsserailnumber{temp.setSerailnumbercNodeList.itemj.getTextContent;}else{continue;}}items.addtemp;}else{continue;}}returnitems;}publicstaticbooleanadditemItemitemthrowsEx__ption{Filef=newFileItems.xml;DocumentBuilde___ctorydBuilde___ctory=DocumentBuilde___ctory.newInstan__;DocumentBuilderdBuilder=dBuilde___ctory.newDocumentBuilder;Documentdocument=dBuilder.parsef;Elementitemel=document.createElementitem;Elementnameel=document.createElementname;nameel.appendChilddocument.createTextNodeitem.getName;Elementstartel=document.createElementstart;startel.appendChilddocument.createTextNodeitem.getStart;Elementendel=document.createElementend;endel.appendChilddocument.createTextNodeitem.getEnd;Elementstarttimeel=document.createElementstarttime;starttimeel.appendChilddocument.createTextNodeitem.getStarttime;Elementendtimeel=document.createElementendtime;endtimeel.appendChilddocument.createTextNodeitem.getEndtime;Elementtypeel=document.createElementtype;typeel.appendChilddocument.createTextNodeitem.getType;Elementstartdateel=document.createElementstartdate;startdateel.appendChilddocument.createTextNodeitem.getStartdate;Elementserailnumberel=document.createElementserailnumber;serailnumberel.appendChilddocument.createTextNodeitem.getSerailnumber;itemel.appendChildnameel;itemel.appendChildstartel;itemel.appendChildendel;itemel.appendChildstarttimeel;itemel.appendChildendtimeel;itemel.appendChildtypeel;itemel.appendChildstartdateel;itemel.appendChildserailnumberel;document.getDocumentElement.appendChilditemel;doc2XmlFiledocumentItems.xml;returnfalse;}publicstaticbooleandoc2XmlFileDocumentdocumentStringfilename{booleanflag=true;try{/**将document中的内容写入文件中*/Transforme___ctorytFactory=Transforme___ctory.newInstan__;Transformertransformer=tFactory.newTransformer;/**编码*/transformer.setOutputPropertyOutputKeys.ENCODINGUTF-8;DOMSour__sour__=newDOMSour__document;StreamResultresult=newStreamResultnewFilefilename;transformer.transformsour__result;}catchEx__ptionex{flag=false;System.out.println更新+filename+出错+ex;ex.printStackTra__;}returnflag;}publicstaticintgetusernameStringnameStringpasswordthrowsEx__ption{Propertiesp=newProperties;InputStreaminputStream=newFileInputStreamInfor__tion.properties;p.loadinputStream;ifp.containsKeyname==false{return-1;}else{ifp.getPropertyname.equalspassword==false{return0;}else{return1;}}}publicstaticString[]getitemname{String[]colname={序号姓名证件类型证件号码__号码};returncolname;}publicstaticO__ect[][]getIteminfoStringname{O__ect[][]info=newO__ect
[1]
[5];info
[0]
[0]=1;info
[0]
[1]=name;info
[0]
[2]=二代___;info
[0]
[3]=362203199206255432;info
[0]
[4]=13647054722;returninfo;\}publicstaticString[]getitems{String[]items={序列号姓名乘号出发城市到达城市出发日期出发时间到达时间乘坐类型备注};returnitems;}publicstaticO__ect[][]getplaneInfoListairplaneairplanes{intrownumber=airplanes.size;String[]planStrings=Tool.getplansString;O__ect[][]planeInfo=newO__ect[rownumber]
[7];forinti=0;iairplanes.size;i++{airplanetempplane=airplanes.geti;try{Classairplanetempclass=Classairplanetempplane.getClass;forintj=0;jplanStrings.length;j++{MethodtMethod=tempclass.getDeclaredMethodget+planStrings[j];Stringtempstring=StringtMethod.invoketempplane;planeInfo[i][j]=tempstring;}}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}returnplaneInfo;}publicstaticString[]getitemsString{String[]itemsstring={ColnumberNameSerailnumberStartEndStartdateStarttimeEndtimeTypeBeizhu};returnitemsstring;}publicstaticO__ect[][]getitemsinfoListItemitems{intrownum=items.size;String[]itemstring=getitemsString;O__ect[][]itemsinfo=newO__ect[rownum]
[10];forinti=0;irownum;i++{Itemtemp=items.geti;try{ClassItemtempclass=ClassItemtemp.getClass;forintj=0;jitemstring.length;j++{ifj==0{itemsinfo[i][j]=i+1;}else{MethodtMethod=tempclass.getDeclaredMethodget+itemstring[j];Stringtempstring=StringtMethod.invoketemp;itemsinfo[i][j]=tempstring;}}}catchEx__ptione{//TODOAuto-generatedcatchblocke.printStackTra__;}}returnitemsinfo;}publicstaticDefaultTableModelgetitem__odelthrowsEx__ption{returnnewDefaultTableModelgetitemsinfogetItem__yname黄一洋getitems{publicbooleanis__llEditableintrowintcolumn{ifcolumn==9{returntrue;}else{returnfalse;}}};}publicstaticvoidremoveitemItemitemthrowsEx__ption{SAXBuilder__uilder=newSAXBuilder;System.out.printlnitem.getName;org.jdom.Documentdocument=__uilder.buildItems.xml;org.jdom.Elementroot=document.getRootElement;Listorg.jdom.Elementlist=root.getChildrenitem;fororg.jdom.Elementelement2:list{Stringname=element
2.getChildTextname;Stringstart=element
2.getChildTextstart;Stringend=element
2.getChildTextend;Stringstarttime=element
2.getChildTextstarttime;Stringendtime=element
2.getChildTextendtime;Stringstartdate=element
2.getChildTextstartdate;Stringtype=element
2.getChildTexttype;Stringserailnumber=element
2.getChildTextserailnumber;ifname.equalsitem.getNamestart.equalsitem.getStartend.equalsitem.getEndstarttime.equalsitem.getStarttimeendtime.equalsitem.getEndtimestartdate.equalsitem.getStartdatetype.equalsitem.getTypeserailnumber.equalsitem.getSerailnumber{System.out.printlnroot.removeContentelement2;break;}}s__eXMLdocument;}publicstaticvoids__eXMLorg.jdom.Documentdoc{//将doc对象输出到文件try{//创建xml文件输出流XMLOutputterxmlopt=newXMLOutputter;//创建文件输出流FileWriterwriter=newFileWriterItems.xml;//指定文档格式For__tfm=For__t.getPrettyFor__t;//fm.setEncodingGB2312;xmlopt.setFor__tfm;//将doc写入到指定的文件中xmlopt.outputdocwriter;writer.close;}catchEx__ptione{e.printStackTra__;}}第五章系统调试与测试
5.1调试与测试的概述1软件测试是找出软件已经存在的错误而调试是定位错误修改程序以修正错误.2软件测试从一个已知的条件开始有预知的结局而调试从未知的条件开始其结局不可预知3软件测试可以计划可以预先制定测试用例和过程工作进度可以度量.而调试不能计划进度不可度量.4调试是在测试之后在方法思路策略上都有所不同.5测试的对像可以是文档和代码而调试的对像只能是代码
6.调试是随机性的由程序员完成为了程序可运行测试是有目的性的由测试人员完成为了程序可完成指定功能软件测试是为了发现错误而执行程序的过程或者说,软件测试是根据软件__各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程软件测试与调试在目的、技术和方法等方面存在很大的区别,主要表现在如__面
(1)测试是为了发现软件中存在的错误;调试是为了证明软件__的正确性
(2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的
(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的
(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程
(5)测试的执行是有规程的;调试的执行往往要求__人员进行必要推理以至知觉的飞跃
(6)测试经常是由__的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的__人员完成
(7)大多数测试的执行和设计可以由工具支持;调式时,__人员能利用的工具主要是调试器测试的目的是显示存在错误,而调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误调试是测试之后的活动测试和调试在目标、方法和思路上都有所不同,如下
1、测试从一个已知的条件开始,使用预先定义的过程,有预知的结果调试从一个未知的条件开始,结束的过程不可预计
2、测试过程可以实现设计,进度可实现确定调试不能描述过程或持续时间
3、测试是显示错误的行为调试是推理的过程
4、测试显示__人员的错误调试是__人员为自己辩护
5、测试能预期和可控调试需要想象,经验和思考
6、测试能在没有详细设计的情况下完成没有详细设计的信息调试不可能进行
7、测试能由非__人员进行调试必须由__人员进行
5.2测试和调试过程
1.测试主页访问是否成功打开浏览器输入地址,按下回车键,出现系统主页则访问成功
2.测试新用户注册是否成功__主界面中的注册按钮,按要求填写相关信息,最后__注册按钮,系统将会把数据保存到数据库中,注册完成将会跳转会首页,表示注册成功
3.测试是否可以登陆成功__主界面中的登陆按钮,填写已经注册好的用户名和____登陆按能顺利钮跳转页面则登陆成功
4.测试查询功能是否成功填写完成相关的查询要求信息,之后__查询按钮;能成功显示出信息则表示查询功能成功
5.测试订票功能是否成功__查询出来的结果中的订票按钮,页面跳转输入验证码,__提交订单按钮,跳转回主界面显示订购的票,则订票成功,否则失败
6.测试注销功能是否成功__主界面中的注销按钮;按提示操作,最后主界面注销按钮显示请登陆则说明注销成功,反之则说明失败!
5.3测试步骤测试步骤单元测试类的方法————白盒测试功能测试页面的按钮等————黑盒测试性能测试显示的速度
5.
3.1单元测试测试编号测试对象输入用户名输入__期望值实际值时间测试结果1注册功能a123注册成功注册成功
2015.
6.20通过2注册功能b111注册成功注册成功
2015.
6.20通过3注册功能c1212注册成功注册成功
2015.
6.20通过4注册功能d87注册成功注册成功
2015.
6.20通过5注册功能a55用户已存在注册成功
2015.
6.20通过测试编号测试对象用户名__期望值实际值时间测试结果1登陆功能a123登录成功登录成功
2015.
6.20通过2登陆功能a222__错误登录失败
2015.
6.20通过3登陆功能e111用户名不存在登录失败
2015.
6.20通过4登陆功能d87登录成功登录成功
2015.
6.20通过测试编号测试对象动作期望值实际值时间测试结果1购票__购票按钮购票成功购票成功
2015.
6.20通过2购票__购票按钮购票成功购票成功
2015.
6.20通过3购票__购票按钮购票成功购票成功
2015.
6.20通过4购票__购票按钮购票成功购票成功
2015.
6.20通过测试编号测试对象动作期望值实际值时间测试结果1查询功能卫衣出现查询结果出现查询结果
2015.
6.20通过2查询功能T恤出现查询结果出现查询结果
2015.
6.20通过3查询功能裤子出现查询结果出现查询结果
2015.
6.20通过4查询功能牛仔出现查询结果出现查询结果
2015.
6.20通过测试编号测试对象动作期望值实际值时间测试结果1订票功能__订票按钮订票成功订票成功
2015.
6.20通过2订票功能__订票按钮订票成功订票成功
2015.
6.20通过3订票功能__订票按钮订票成功订票成功
2015.
6.20通过4订票功能__订票按钮订票成功订票成功
2015.
6.20通过测试编号测试对象动作期望值实际值测试结果1退票功能__退票显示主界面显示主界面已购票消失通过2退票功能__退票显示主界面显示主界面已购票消失通过3退票功能__退票显示主界面显示主界面已购票消失通过4退票功能__退票显示主界面显示主界面已购票消失通过5退票功能__退票显示主界面显示主界面已购票消失通过测试编号测试对象动作期望值实际值测试结果1注销功能__注销按钮返回首页显示请登陆返回首页显示请登陆失败2注销功能__注销按钮返回首页显示请登陆返回首页显示请登陆通过3注销功能__注销按钮返回首页显示请登陆返回首页显示请登陆通过
5.2功能测试
5.
2.1黑盒测试测试编号测试对象__按钮期望值实际值测试时间测试结果1Regester.jsp注册按钮__注册按钮跳转到reg.jsp并进行注册跳转到reg.jsp并进行注册
2015.
6.20通过2Regester.jsp注册按钮__注册按钮跳转到reg.jsp并进行注册跳转到reg.jsp并进行注册
2015.
6.20通过3Regester.jsp注册按钮__注册按钮跳转到reg.jsp并进行注册跳转到reg.jsp并进行注册
2015.
6.20通过4Regester.jsp注册按钮__注册按钮跳转到reg.jsp并进行注册跳转到reg.jsp并进行注册
2015.
6.20通过5Regester.jsp注册按钮__注册按钮跳转到reg.jsp并进行注册跳转到reg.jsp并进行注册
2015.
6.20通过第6章实训总结云南大学滇池学院本科学年论文评分标准及评审表(理工科)系专业班级学生姓名学号指导教师学年论文(设计)题目评分内容分值评分标准得分
1、选题及态度10%能体现专业培养目标,难度与分量适中;工作量饱满,作风严谨扎实
2、调研论证10%能__查阅文献及进行调研,能较好地理解课题任务并提出实施方案具有分析整理各类信息,从中获取新知识的能力
3、分析、计算20%能够综合运用有关的理论基础理论和专业知识分析和解决问题对各种信息进行综合分析和数据处理,分析合理,计算正确
4、结构、建模、实验、图纸35%整体结构合理,详略得当,层次清楚;数模正确;实验方法科学,数据可靠;图纸工艺结构合理,绘制及技术要求符合国家标准,图面质量符合要求
5、创新10%有独特见解,有较强实用价值及学术意义论文(说明书)撰写质量10%结构严谨,文字通顺,用语符合技术规范,图表清楚,书写格式规范
7、英文摘要5%翻译准确,文字流畅
8、指导教师评分
9、指导教师评语指导教师签名年月日图A-5前台首页的结构图图A-6客户端功能例图出发地查询界面注册界面登陆界面系统logo查询查票系统登陆__登陆__。