软件开发案例分析课程设计参考模板11111.doc
-
资源ID:28562364
资源大小:262KB
全文页数:45页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件开发案例分析课程设计参考模板11111.doc
精品文档,仅供学习与交流,如有侵权请联系网站删除大连工业大学艺术与信息工程学院软件开发案例分析课程设计题 目: 火车网上售票系统专 业:计算机科学与技术 指导教师:王海文完成人姓名: 班级学号:参与人姓名: 班级学号: 2012年 3 月 23 日需求规格说明书1. 引言火车网上售票系统需求规格说明书旨在详尽描述系统功能需求和一些非功能需求,明确系统边界。文章分为四个部分:概述部分描述了项目目的和范围,并对文档中使用的术语进行了说明;系统说明部分对系统进行了简要的描述;需求说明部分对系统从功能要求、安全性、性能等几方面进行了阐述;验收标准则描述了系统最终验收通过的准则。编写目的:火车网上售票系统需求规格说明书的目的是明确火车网上售票系统中各项功能和非功能需求,确定系统功能模块,同时为概要设计和详细设计人员提供设计依据,也可供本项目的其他开发人员参阅。火车网上售票系统需求规格说明书的阅读对象为:1) 对相关业务技术和总体方案作出决策和管理人员和质量管理人员;2) 对本需求规格说明书进行评审和确认的有关业务和技术人员;3) 参加概要设计和详细设计阶段工作的全体设计人员;4) 火车票网上售票系统项目组;背景软件名称:火车网上售票系统用户:广大人民群众项目与系统、软件的关系:该系统所需数据要与其他系统数据兼容,系统采用B/S,服务器端采用Microsoft Server 2008 为操作系统的工作站,采用Microsoft Server 2005为开发软件的数据库服务程序。2. 任务概述2.1 目标旨在开发一个统一的网上售票平台,利用信息化手段缓解火车站售票压力,满足广大人民群众的购票需求,使管理人员能够方便进行售票管理工作,包括修改、维护、统计等,使广大人民用户能够利用该系统进行信息的查询,网上购票,退票等。系统的用例图如下图所示:2.2 用户特点本系统的最终用户有两类:1) 售票管理人员:对做各项售票管理熟悉,上网经验丰富,为本系统的主要面向用户,教务人员几乎每天都会体会到本教务系统;2) 广大人民群众:能够较快地熟悉系统的用户,上网时会大量地使用本系统进行信息查询和买票订票;3. 功能需求本系统:两类人员的权限表如下所示:系统管理员更改 查询 管理 调度 维护客户查询 购票 订票 退票数据库设计文档一、 系统需求分析报告(数据流图、数据字典、功能分析)系统应该具有售票、查询、管理和维护等功能,系统管理员应该可以进行对车次的更改、票价的变动及调度功能等操作,票价的修改可以通过修改运价来进行,车次调度可以通过对发车时间表的修改来进行,维护功能即可对表进行修改。1. 功能需求经过分析报告后确定系统应该具有以下功能:(1)、售票功能a) 销售车票b) 预订车票c) 退票(2)、查询功能a) 车次查询b) 时刻表查询c) 售票情况查询(3)、调度功能a) 运价修改b) 车辆修改c) 终点站修改d) 车次修改(4)、维护功能a) 车票表修改b) 预定车票表修改c) 退票表修改d) 密码修改(5)、系统功能a) 售票统计b) 报表打印2. 数据流图应用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改。通过确定系统的处理逻辑和流程,得到如上所示的系统数据流图。3. 数据字典经过分析可以得到一下数据条目:车次表=车辆+车型+座位数终点站名表=站名+里程运价表=车型+运价+座位档次发车时刻表=车次+车辆编号+站名+发车时间+检票口已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量退票表=票号+退票时间+票价+应退款系统管理员=工号+姓名+账号+密码车辆编号=6数字6车次=4字符5车型=1字符8座位数=2数字2站名=1字符10里程=1数字5运价=1数字6发车时间=时间乘车日期=日期4. 性能需求4.1 精度要求票价报表中的票价一般保留至小数位后两位4.2 时间特性要求 响应时间:所有的查询操作响应时间一般不超过5秒,大型的报表如票价报表则应该在15秒内显示或者提示相关出错信息; 更新处理时间:所有提交数据一般在3秒内响应; 数据的转换和传送时间;5. 输入输出格式要求参考附录和售票管理中的相关内容。6. 数据管理能力要求系统数据库中车票记录数位几百万左右,增长速度每天两万左右条车次记录等。7. 故障处理要求鉴于火车售票系统涉及的数据对于火车站日常管理的重要性,必须建立数据库严格有效的恢复机制:数据必须每天进行一次备份,由于本信息涉及信息量巨大,应以天为周期进行增量转储,一般半个季度为周期进行删除。8. 其他专门要求1) 对系统各个模块功能,以分级菜单的形式给出;2) 所有的提交,确认,删除等操作以按钮的形式给出,且名称一律取为“提交”、“确认”、“删除”等易于理解的形式;3) 根据用户统计信息计算,统计在正常情况下应该支持一定人数的并行操作能力,春运高峰期间人们要集中买票和查询,应支持更多人数的并行操作能力;高峰期间服务器应支持几十万以上的日访问量。9. 运行环境规定Ø 设备和开发工具规定指定工具编程工具:Visual Stdio 2005数据库管理系统:SQL server 2005开发环境操作系统:Windows XPCLP 虚拟机测试环境操作系统:Windows XP/Vista数据库管理系统:SQL server 2008Ø 通信接口规定系统管理人员主要在局域网环境下使用系统,广大人民群众则可能在外网进行访问系统,所以系统应支持局域网协议和广域网协议。10. 附录u 车辆类型a) 动车 Db) 空调快车 Kc) 空调特快 T/Nd) 直达快车 Ze) 临时客车 Lf) 普通快车 编号u 车座类型a) 软卧b) 硬卧c) 软座d) 硬座e) 无座概要设计说明书详细设计说明书概述目的本文为教学案例项目SQL Server功能规范说明书。本说明书将:l 描述数据库设计的目的l 说明数据库设计中的主要组成部分l 说明数据库设计中涵盖的教学知识要点内容本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象的直接关系)。本文档中包含对以下数据库内容的描述:l 数据表l 视图l 存储过程l 用户自定义函数l 触发器l 约束在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。与其他项目的关联教学案例项目的数据库设计与教学项目(Web部分和Windows部分)功能密切相关。教学案例项目的数据库将按照教学项目程序部分的功能需求而设计,数据库设计将配合教学案例的程序部分,以实现一个功能完备的企业环境内的应用。提示可通过使用 Web 应用程序或 Windows 应用程序来测试数据库。数据库数据库名称数据库的名称一定要设为 BlueHill,否则本案例设计的 Web 部分的应用程序和 Windows 部分的应用程序将无法使用该数据库。用户除了数据库中自动创建的 dbo 用户之外,还要创建如下两个用户: BlueHillWinUser:该用户是 Windows 应用程序访问数据库所使用的账号,它的权限一般仅限于查看视图和执行存储过程。 BlueHillASPUser:该用户是 Web 应用程序访问数据库所使用的账号,它的权限和 BlueHillWinUser 用户类似,即仅限于查看视图和执行存储过程。表表设计概述根据教学案例功能,数据库将以用户信息为中心存储相关数据,配合 SQL Server 数据库系统中提供的数据管理,实现对售票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。用户对系统的需求我们从以下几方面进行分析。数据库设计将以存储用户信息的用户表为基础,连接多张相关表实现对以下关系的支持:1.查询分为对车次信息的查询和客户对已订车票信息的查询。要求:1)对车次的查询,可以按照发车车次进行查询; 2)车次信息包括:车号、出发地、目的地、发车日期、开出时刻、票价。3)座位类型设定。4)车次信息只允许用户查询,不能修改。3.售票通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上售票确定已预订选中的车票。要求:售票记录应包括:会员名、车号、发车日期、订购日期、订购票数、总价。4.退票可退票,通过查询系统,客户可以根据自己的名字找到自己的售票信息,通过退票模块退去已购车票。实体-联系图数据库系统主要的实体关系如下图:用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。针对火车票售票系统,通过对网上售票工作的过程、内容以及数据流程分析,设计如下所示的数据项和数据结构:1.车次信息包括:车号、出发地、目的地、发车日期、开出时刻、剩余座位数、票价。3.售票记录包括:订单号、身份证号、车号、订购日期、订购票数、总价。4.用户信息包括:用户名、身份证号、性别、电话。E-R图如下图所示。nnn11m查询退票订票订单号用户身份证号车号订购日期总价发车日期订票信息用 户用户名地址性别电话车次车次 出发地目的地发车日期开出时刻坐位类型票价车票务管理系统设计局部ER图描述进行视图集成的具体过程,最后得到总体概念结构ER图。逻辑结构设计4.1 E-R图向关系模型的转换将图3.4总体概念结构E-R图转化成关系模型。 退票信息(订单号,旅客姓名,电话号,身份证号)旅客(旅客姓名,身份证号,电话号,性别,工作单位) 车次信息表(车次号,始发站,终点站,始发时间) 取票通知单(旅客姓名,取票时间,车次号,座位号,车票类型) 列车座位信息表(座位号,车次号,座位信息,车票类型)4.2 数据模型的优化将转化的关系模式进行优化,最终达到第三范式。1、确定数据依赖退票信息(订单号,旅客姓名,电话号,身份证号)根据这个关系写出数据依赖订单号旅客姓名,订单号电话号,订单号身份证号旅客(旅客姓名,身份证号,电话号,性别,工作单位)旅客姓名身份证号,旅客姓名电话号,旅客姓名性别,旅客姓名工作单位 车次信息表(车次号,始发地,目的地,始发时间)列车车次始发站,列车车次终点站,车次始发时间取票通知单(旅客姓名,取票时间,车次号,座位号,机票类型)旅客姓名取票时间,旅客姓名车次号,旅客姓名座位号,旅客姓名车票类型火车座位信息表(座位号,车次号,座位信息,车票类型)(座位号,车次号)座位信息,(座位号,车次号,座位信息)车票类型2、 对各关系模式间数据依赖进行极小化处理,消除冗余 订单号旅客姓名,订单号电话号,订单号身份证号,旅客姓名性别旅客姓名工作单位,旅客姓名取票时间,旅客姓名车次号旅客姓名座位号,旅客姓名车票类型,车次号始发站,列车号终点站车次号始发时间,(座位号,车次号)座位信息3、 看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解 最终分解成第三范式: (订单号,电话号,身份证号)(订单号,旅客姓名)(旅客姓名,取票时间,性别,工作单位,车票类型)(旅客姓名,车次号)(旅客姓名,座位号)(车次号,座位号,车票类型)(车次号,始发站,终点站,始发时间) 4.3 火车票售票系统数据库中各个表格的设计4.3.1表BusInfo概述表BusInfo用于记录企业内部的部门信息。每个独立的部门在该表中都对应一条记录。该表通过与BusInfo表关联可以确定用户所属的部门。该表中还记录了部门经理的用户编号,可以确定每个部门的部门经理。表定义表定义如下:表BusInfo用于记录用户基本信息,并作为基础表与其他表联接。车次信息表BusInfo字段名数据类型是否可空说明BusIDchar(10)NOT NULL车号(主键)BusFromvarchar(50)NOT NULL出发地BusTovarchar(50)NOT NULL目的地BusDateDatetimeNOT NULL发车日期(主键)BusBeginDatetimeNOT NULL开出时刻BusEndDatetimeNOT NULL到达时刻TicketNumintNOT NULL剩余票数PriceMoneyNOT NULL票价主键表BusInfo的主键是BusID字段,类型为 int,设置自动增量。外键表t OrderID 的外键为BusID,类型为 char,用于与表 tBusInfo 的BusID相关联。约束无其他约束索引主键BusID字段具有自动创建的聚集索引。表OrderInfo订单表OrderInfo字段名数据类型是否可空说明OrderIDChar(10)NOT NULL订单号(主键)UserIDChar(18)NOT NULL身份证号(外键)BusIDchar(10)NOT NULL车号(外键)BusDatedatetimeNOT NULL发车日期(外键)OrderDatedatetimeNOT NULL订购日期OrderNumIntNOT NULL订购票数TotalMoneyNOT NULL总价主键表OrderInfo 的主键是OrderID字段,类型为 char,设置自动增量。外键表User的外键有UserID,类型为char,用于User与表中的UserID 字段关联。DeptID 字段可以为空,在此情况下表示员工不在任何部门中。表OrderInfo的外键UserID有,类型为char,用于OrderInfo与表中的UserID字段关联。约束表OrderInfo中的UserID字段建议为英文字符,且不能与员工姓名相同也不可以为空字符串。索引主键字段UserID具有自动创建的聚集索引。4.3.2表User概述表User用于记录员工每月的工资信息,包括工资发放日期、工资组成等。表User通过字段OrderInfo 与表User关联。表定义表tblSalary定义如下:用户表User字段名数据类型是否可空说明UserIDchar(18)NOT NULL身份证号(主键)Uservarchar(50)NOT NULL用户名SexChar(2)性别Phonevarchar(12)电话主键表User的主键是UserID字段,类型为 char,设置自动增量。外键表tblSalary的外键是,类型为int,用于与表中的EmployeeID字段关联。约束无其他约束索引主键字段 具有自动创建的聚集索引。4.3.3表train概述表tblAttendance用于记录员工的考勤信息(上下班时间、记录者信息等),通过字段 EmployeeID 与表tblEmployee 关联。表定义表train定义如下:字段名数据类型长度约束描述tridchar30主键列车编号trtychar20不为空车种trssvarchar50不为空始发站trsavarchar50不为空终到站trstdate8不为空发时tratdate8不为空到时trccInteger4不为空车厢数trscinteger4不为空卧铺车厢数trkminteger8不为空里程snamevarchar50外键经过车站主键表train 的主键是trid字段,类型为 char,设置自动增量。外键表train的外键是ticket 和 RecorderID,其中ticket 类型为char,用于与表train 中的ticket字段关联;RecorderID 类型为 char, 用于与表train中的ticket 字段关联。约束表train 中的 RecorderID 不可与 EmployeeID 相同;表train 中的 Type 字段只能取“缺勤”、“迟到”、“早退”。索引主键trid字段具有自动创建的聚集索引。4.3.4表ticket概述表ticket用于记录员工的请假记录。表ticket中的基本信息包括:请假提交时间、请假开始时间、请假终止时间、请假原因、请假的类别和请假申请状态等。通过字段 EmployeeID 与表train关联。表定义表ticket定义如下:字段名数据类型长度约束描述tiidchar8主键车票编号tissvarchar50不为空始发站tiasvarchar50不为空终到站tistdate8不为空发时tiatdate8不为空到时tiprdecimal9不为空票价titpchar10不为空座位类型titychar10不为空车票类型tinointeger10不为空座位号snamevarchar50外键售票站名主键表tblLeave的主键是LeaveID字段,类型为 int,设置自动增量。外键表ticket的外键是 EmployeeID 和 ApproverID,其中ticket 类型为char,用于与表train中的EmployeeID字段关联;ApproverID 类型为 int,用于与表train中的EmployeeID字段关联。约束请假开始时间应小于请假结束时间;Status 字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。索引主键字段LeaveID具有自动创建的聚集索引。4.3.5表seller概述表seller用于记录员工的加班记录。表tblOvertime中的基本信息包括:加班时间、加班起止时间、加班原因和加班申请批准状态。通过字段 EmployeeID 与表tblEmployee 关联。表定义表seller定义如下:字段名数据类型长度约束描述slidchar50 主键工作证号slnavarchar50不为空售票员姓名slpavarchar50不为空登陆密码snamevarchar50外键经过车站名主键表seller的主键是OvertimeID字段,类型为 int,不设置自动增量。外键表ticket的外键是EmployeeID,类型为int,用于与表tblEmployee中的EmployeeID字段关联。约束加班开始时间应小于加班结束时间。Status 字段取值:“已取消”、“ 已批准”、“ 已否决”、“ 已提交”索引主键字段OvertimeID具有自动创建的聚集索引。4.3.6表station概述表station用于保存员工的绩效信息。表station中的基本信息包括:员工编号、考评者编号、提交时间、考评时间、评语和绩效状态。通过字段 EmployeeID 与表tblEmployee 关联。表定义表station定义如下:字段名数据类型长度约束描述snamevarchar50主键车站名scnavarchar50不为空城市名sprvarchar12不为空省份slidchar50外键售票员工作证号主键表station的主键是PerformID字段,类型为 int,设置自动增量。外键表station的外键是EmployeeID,类型为int,用于与表tblEmployee中的EmployeeID字段关联。约束Status 的取值可以为:“0”或“1”。索引主键字段PerformID具有自动创建的聚集索引。4.3.7表sale概述表sale用于保存系统配置信息和全局数据。表tblSysConfig中的基本信息包括:企业上下班时间、员工全年年假总数、病假总数。通过系统配置工具,修改该表中的数据可以更改这些配置信息和全局设定。表定义表sale定义如下:字段名数据类型长度约束描述tiidchar8主键车票编号slidchar50外键工作证号snamevarchar50外键车站名sltidate8不为空售票时间主键表sale的主键是ConfigID字段,类型为 int,设置自动增量。外键无约束无其他约束索引主键字段具有自动创建的聚集索引。4.3.8表tblSystemEvent概述表return用于保存系统事件的日志记录记录。表tblSystemEvent中的基本信息包括:事件编号、事件发生时间和事件描述。表定义表return定义如下:字段名数据类型长度约束描述tiidchar8主键车票编号slidchar50外键工作证号returnpricedecimal9不为空退票金额主键表return的主键是EventID字段,类型为 int,设置自动增量。外键无约束无其他约束索引主键字段EventID具有自动创建的聚集索引。视图BusInfo视图概述此视图通过左外联接表BusInfo和OrderInfo 得到了用户的详细信息,其中包括用户的基本信息基表l BusInfoOrderInfo视图包含字段l BusInfol BusID l BusFrom l Telephonel BusTo l BusDate l BusBegin l BusEnd l TicketNum l Price逻辑设计视图权限BlueHillASPUser 具有 Select 权限。视图OrderInfo概述此视图通过OrderInfo 内联接表User和 tblEmployee,得到员工的姓名、员工所属部门 ID和考勤情况。通过这个视图可以按部门 ID 查到整个部门员工的缺勤情况。基表OrderInfo User视图包含字段l OrderID l UserID l BusID l BusDate l OrderDate l OrderNum Total 逻辑设计视图权限BlueHillASPUser 具有 Select 权限。视图User概述此视图通过内联接表User 和 tblEmployee,得到员工的请假申请信息和请假批准人姓名。基表l UserTrain视图包含字段l UserID l User l Sex l Phone EndTimel Reason 逻辑设计视图权限BlueHillASPUser 具有 Select 权限。视图train概述此视图通过内联接表 ticket、train和 tblOvertimeType,得到表 tblOvertime中的加班申请信息和加班申请批准人姓名及加班折算成假期类型的名称。基表l Trainl ticket 视图包含字段l trid l trty l trss l trsa l trst l trat l trcc l trsc l trkm l sname 权限BlueHillASPUser 具有 Select 权限。视图ticket概述通过这个视图可以查询系统注册表中的公司策略信息。基表Ticket视图包含字段l tiid tisstiastisttiattiprtitptitytinosname权限BlueHillASPUser 具有 Select 权限。视图seller概述通过访问此视图可以达到与直接访问表 seller 相同的效果。基表Seller视图包含字段l slid l slna l slpa l sname权限BlueHillASPUser 具有 Select 权限。视图station概述通过此视图可以查询到所有的假期的具体日期。基表Station视图包含字段Snamescnasprslid权限BlueHillASPUser 具有 Select 权限。视图sale概述此视图通过内联接表sale 和 tblSystemEvent,得到经理的所有基本信息。基表l Salel tblSystemEvent视图包含的字段l tiid l slid l sname l slti 权限BlueHillASPUser 具有 Select 权限。视图tblSystemEvent概述此视图通过内联接表 tblLeave 和 tblSystemEvent,得到所有已提交的请假申请的详细信息、请假用户姓名和请假审核者姓名。基表l tblLeavel tblSystemEvent视图包含的字段l tiid l slid l returnprice 权限BlueHillASPUser 具有 Select 权限。6程序描述图5.2 系统抽象类图图5.3 系统包图系统主要抽象出三个类、一个接口,将三个类封装到Unit包中,将Com接口封装在Com包中。其中Com接口是该系统主要功能的集合, Com可使用Unit,SQLclient包中的类。Form包包括图形化界面,通过Com包引用。通过Search类来实现查询功能,Sell类实现售票功能,包括售全价票与半价票,Refund实现退票功能,Alter实现修改功能,Count实现统计功能。6.1查询模块功能:图5.4 查询功能时序图查询可分为按车次查询与站点查询,用户通过输入待查询车次或者站点查询车票的相关信息,包括票价,时刻,剩余票数等信息。若用户输入的车次或者站点错误,系统会提示输入错误。性能:能够对乘客要求的大部分查询类型都能够查询,每个查询功能键都一目了然,能快速精确的显示要查询的信息。要求单次的查询系统的处理时间在2秒以内。输入项目:车次号、站名输出项目:车次号、站点、发车时间、到站时间、剩余票数算法:该模块通过访问数据库查询车票信息,提取用户输入的车次或者站名,封装成SELECT语句,到数据库中查询车票信息,将信息返回到用户界面。若用户输入错误,弹出错误提示框。程序逻辑:图5.5 查询算法流程图接口:该模块通过Com接口中的Search方法访问数据库,Com接口提供连接数据库的功能。在售票模块中会调用此模块。测试要点:(1)输入数据有效性判定;(2)有效数据输出测试,无效数据输出测试。6.2售票模块功能:图5.6 售票时序图根据旅客的需求如发车日期、发车时间、车票类型(学生票、军人票)等,售票员查询相关的车票信息,选择用户所需要的车次,然后结算并打印车票给旅客。性能:查询车票精确,单次售票任务需要在25秒之内完成,系统的反应时间要求在3秒之内;保证36台机器同时运行该系统不会有过高延时。输入项目: 车次、站点、日期输出项目:车票信息、剩余票数算法:售票员输入顾客预购车票的相关信息,到数据库中查询是否有票,若有则打印火车票给顾客,数据库中改车次车票自动减去卖出的票数;若无则提示售票员车票已售完。程序逻辑:图5.7 售票算法流程图接口: 售票模块提供一个调用查询模块的接口,在Com包中定义。测试要点:(1) 查询数据的有效性(2) 正确打印出车票,票数正确6.3退票模块功能:图5.8 退票时序图 处理用户由于某种情况需要退回车票的情况,旅客要在车站指定的时间内进行退票,按照票款的80%退款。超过指定时间,只能改签,不能退票。性能:及时的记录下所退回的车票,并快速精确的显示应交付给顾客的余额。输入项目: 车票编号输出项目:确认车票界面、警告提示、退票款、数据修改成功算法:售票员扫描顾客欲退车票的条形码,获得车票编号,售票员点击退票按钮,将车票编号交给退票控制器。退票控制器到数据库中查询此票是否已售出,若匹配则点击确认退票,退票控制器会自动修改数据库,售票员返还退票款;若不匹配则会提示售票员此票未售出。程序逻辑:图5.9 退票算法流程图接口:退票模块需要有与数据库交互的接口,通过Com包中的Connect方法来实现与数据库的连接。测试要点:(1) 在退票完成之后,数据库中的记录确定更改(2) 提示车票退票时限准确6.4改签功能:图5.10 改签时序图乘客计划临时变更需要更改出发日期,或者退票不成功,可以选择改签服务。售票员收回乘客车票,返还票款,收取手续费。若乘客需要日期的票有剩余,则重新卖给乘客一张票;若票已售完,则退出。性能:保证数据库的一致,具有一定的容错能力。输入项目:车次、日期输出项目:警告提示、新车票算法: 售票员扫描车票条形码,输入到改签界面,控制器进入数据库中确认该车票确实售出。若确实售出,则返还退票款,并根据乘客需求另售一张指定日期车票;若没有售出,警告提示售票员。程序逻辑:图5.11 改签算法流程图接口: 改签模块需要调用售票模块的功能,由于两个功能均在一个Com包中,模块之间可以实现互相通信。6.5修改统计模块功能:图5.12 修改时序图系统管理员通过该模块修改需要变更的车次信息,包括车次修改、票价修改、站点修改。车次修改包括增加车次,减少车次,车次的临时调度和由于自然灾害造成的临时路线更改。票价修改为节假日、春运等特殊时段或某些特殊地域需要适量增加或减少票价,具体数字有铁路管理定。站点修改可是某些车次增加或减少一些站点。图5.13 统计时序图车票统计主要是统计车票的销售情况以及销售额等。同时通过车票统计还可得知不同日期车流量的情况,列车管理人员可以根据客流的流向随时调整列车运行车次,达到列车的合理调度,使列车最大限度的投入使用中,实现资源的合理利用。性能:修改模块需要最高的权限,非最高权限人不可修改数据库数据;统计需要较高的可靠性,保证数据的完整性,数据需要定时备份。输入项目:站点、时刻、车次、日期输出项目:报表、修改成功提示算法: 管理员输入欲修改的车次,提交给控制器,控制器根据管理员输入的信息进入数据库修改相关表数据,修改成功返回给管理员成功修改提示。 售票员将要统计的车次号输进到统计界面,控制器提取数据,进入数据库查询统计表,返回给售票员,售票员根据车次的售票情况作出销售额、客流情况统计表。程序逻辑:图5.14 统计算法流程图接口:两个方法均封装在Com包中,可以通过Com包的Connect方法连接数据库,并使用SQL语句进行查询或者修改数据库的操作。测试要点:修改过程中输入数据要正确有效6.6系统管理维护功能:图5.15 添加用户时序图图5.16 删除用户时序图查票销售管理系统涉及数据库以及局域网,数据庞大,对数据要求高。因此需要专门的人员进行维护与管理。该模块实现管理员对系统数据库的维护,以及对数据库的定期备份,同时通过此模块添加或删除用户,并授予相应权限。性能:要求较高安全性与可靠性输入项目:用户编号、姓名、授予权限、备份时间输出项目:日志文件、备份文件、添加成功提示、删除成功提示算法:管理员输入欲添加的用户的编号与姓名等,控制器提取数据,并将其添加到数据库中的员工表中,并返回添加成功界面。管理员输入欲删除的用户信息,控制器提取数据,进入数据库删除该用户所有信息,返回删除成功界面。程序逻辑:图5.17 添加用户算法流程图图5.18 删除用户算法流程图测试要点:(1) 添加人员与删除人员的信息无效的处理(2) 用户的授权控制7用户自定义函数7.1用户自定义函数udfwinDeptAllEmployee概述用户自定义函数udfwinDeptAllEmployee,根据部门名称从视图 viwEmployeeList 中得到本部门所有的员工信息。参数名称类型描述DeptNamenchar (10)部门名称返回值名称类型描述无table一个包含指定部门的所有员工信息的数据表7.2用户自定义函数udfwinGetDeptIDbyDeptName概述用户自定义函数udfwinGetDeptIDbyDeptName 根据部门名称得到部门编号。参数名称类型描述DeptNamenchar (10)部门名称返回值名称类型描述DeptIDint部门编号7.3用户自定义函数udfwinGetDeptNam