基于web的铁路订票系统内容摘要:
直通快车票额按列车限售区段分配。 首先保证始发站至终到站或限售区段以长途客流的 需要,途中各停车站的票额按限售区段以远客流量依次分配。 途中各停车站分配的票额由始发站套用。 限售区段以远各站如有下车规律数量,可按规律分配。 2.软、硬卧铺,软座票额 软、硬卧铺票额首先考虑列车始发站长途旅客的需要,同时根据列车沿途停靠站客流情况适当兼顾中途站。 根据长短途列车合理分工的运输组织原则,首先满足始发长途客流的需要,中间站凡有同方向、同终到站的始发快车时,所经过的列车要严格掌握,根据沿途客流情况分配少量票额。 列车夜间运行途中,开车时刻超过零点的车站原则上不分配软、硬卧和软座票额。 列车运行到最 后一昼夜前的车站如有长途旅客下车时,可根据下车规律数分配一定数量的票额。 从票额的分配原则看出,票额大部分集中在列车的始发站,席位复用的重点主要在于利用列车始发站的票额,始发站售出的客票有一部分是不到达终点的,这一部分席位在旅客下车后,如果未被再次利用则造成下车站至终点站间的运能虚糜。 若将这部分席位复用,从提高客运产品质量的角度来说,可以给中途上车的旅客提供一个良好的乘车环境席位,从铁路自身效益的角度来说,有利于降低成本,提高收益。 覆盖全国的电子售票系统的建成使席位的复用成为可能。 15 订票系统 的席位复用 列车始发站售出一张客票后,这张客票的到站就会反映到席位库中,只要下一张客票的发站是前一张客票到站的前方站,这个席位就可以被别的车站重复利用。 同时,未用的站与站之间的运能也能在席位库中反映出来,从而达到不浪费任何一个区段的运能。 针对票额长短途不均的情况 , 设置限以近站和限以远站两个数据项 , 对长短途客票的分售作初步确定。 限以近站是指限制票额必须发售在列车停靠站中某站以近的各车站 , 即票额最远可发售到的车站的站名 ; 限以远站是指限制票额必须发售到列车停靠站中某站以远的各车站 , 即票额最近必须发售的车站的站名。 也就是说 , 票额发售的车站 , 必须介于限以远站和限以近站之间 , 在编制票额分配计划时可以通过合理地限制以远站和以近站来确定票额的长短途划分。 对于短途客票额复用问题 , 在库中增设可用区段起始车站和截止车站两个数据项 , 籍此描述该座席可利用的区段情况 , 当起始车站和截止车站相同时表示该记录的座席已无可利用区段了。 当售出车票的上车站不是首发车站时 , 则将可用区段截止车站改写为上车站 , 此时也可能有两种情况: 情况 1 (如图 ) :改写后可用区段起始站序仍为 1 , 截止站序为 4 ,表示该席位的站序 1~ 4 区段还可以利用。 图 席位复用简例 (情况 1) 情况 2 (如图 ) :改写后可用区段起始站序仍为 1 , 截止站序为 4 ,表示该座席的站序 1~ 4 区段还可以利用 ; 同时 , 另外增加一条记录 , 仍是这一 16 席位 , 其可用区段起始站定为售出车票的下车站序 6 , 截止站序为原可用区段的截止站序 8 , 表示该座席站序 6~ 8 区段还可以利用。 图 席位复用简例 (情况 2) 另外 , 通过设置票额用途字段将票额按不同用途分开。 票额用途作为基础数据 , 根据地区中心或车站票额分块的具体需求加以确定 , 此用途可灵活掌握。 在编制票额分配计划时 , 将 需分配票额指定到具体的用途上 , 以便票额按照确定的用途自动生成。 客票系统中席位分为有座席和无座席两种 , 每一张席位在客票系统数据库中的存储为一行记录 , 每行记录都有相同的属性列表 , 其中对席位复用有直接影响的是乘车站、以远站和限售站这 3个属性: A.乘车站:席位所属车站,即票额的预分配站旅客由何处上车也是由乘车站控制。 B.以远站:席位可以终到的最近车站,通常情况下本属性的值与乘车站的值相同,即本席位卖出的终点站没有任何限制,但有时为了提高席位的利用率,也会将以远站设置与乘车站不同的值,以防止需求紧张的席位被售为 短途。 C.限售站:席位可以终到的最远车站,通常情况下本属性的值为本次车的终点站。 客票系统中任何一张有效席位都必须指定以上 3 个基本属性值。 当一个席位的客票被出售之后,该席位将被修改为售出状态,无法再次使用。 在上述的例子中,旅客购买了 1 张由A站到 C 站的车票后,该席位从 C 站到D 站这一区间将是空余的状态,如何才能让这个席位重新被利用,方法就是在客票数据库中再增加 1 条相应的记录,用来和本空余席位相对应,正如前面所说 , 只有指定了乘车站、以远站和限售站的席位才算是有效席位,因此正确的指定此3 个属性值成了 关键,首先来设定乘车站,旅客在C站下车后,下一位旅客如果要使用该席位,最近的乘车站就是C站,因此新增席位的乘车站就是C站;接下 17 来设定以远站,为了提高利用率 , 当然是将以远站设置为C站;最后设定限售站,很明显 , 设置为D站是最佳的选择; 3个关键属性值确定了之后,新增的这条记录就和实际的空余席位相对应了,也就是说 , 该席位可以当做 1个正常的席位出售了。 对于复杂的情况,基本原理是一致的。 数据库设计 数据库设计步骤 1) 需求分析 全面、准确了解用户的实际要求。 2) 概念结构设计 即设计数据库的概念结构。 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。 3) 逻辑结构设计 逻辑结构设计是将抽象的概念结 构转换为所选用的 DBMS支持的数据模型,并对其进行优化。 4) 数据库物理设计 数据库物理设计是对为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 5) 数据库实施 在数据库实施阶段,设计人员运用 DBMS 提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结 果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 6) 数据库运行和维护 数据库应用系统经过试运行后即可投入正式运行。 在数据库系统运行过程中必须不断地对其进行评价、调整与修改。 数据库的完整性 18 完整性约束是一种规则,不占用任何数据库空间。 完整性约束存在数据字典中,在执行 SQL 期间使用。 用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之, 但约束始终存在于数据字典中。 在系统的设计中,主要用到了 NOT NULL 约束 和 主键约束。 NOT NULL 约束应用在单一的数据列上,并且他保护的数据列必须要有数据值。 某些商业规则要求某数据列必须要有值, NOT NULL 约束将确保该列的所有数据行都有值。 表有唯一的主键约束。 表的主键可以保护一个或多个列,主键约束可与 NOT NULL 约束共同作用于每一数据列。 NOT NULL 约束和唯一性约束的组合将保证主键唯一地标识每一行。 数据库中主要的表 系统 中共有 20 张表, 主要 的表 有 BasicMessage、 StationMessage、 Price、SeatUseing、 PassengerA 和 PassengerB 等等,如表 ~表 所示。 其余还有新闻公告 News 表和管理员信息 Admin 表等。 表 用于列车基本信息的查询,能对某趟列车作最初步的了解。 其中TrainName 为主键,用来唯一确定车次,同时还能通过此字段与 StationMessage表 和 Price表 中的 TrainName字段来查询关于车次更加具体的信息,如经过站点、各区段的价格和座位信息等等。 表 车次基本信息 BasicMessage表 字段名 数据类型 字段大小 可否为空 备注 TrainName Char 10 否 车次 TrainType Int 1 否 列车类型 StartStation Char 20 否 起始站 ArriveStation Char 20 否 终点站 LeaveTime Char 10 否 发车时间 ArriveTime Char 10 否 到达时间 19 表 和表 的主键分别是 TrainName 和 No。 在表 中由于 TrainName不唯一,故添加 No 作为主键。 这两张表主要 用于具体查询及订 票的过程。 StationMessage 表中记录的为列车经过站点的名称,由于每趟列车经过的站点数不尽相同,故假设所经站点都少于 10 个,且至少经过两个站点(始发站和终点站)。 Price 表和 StationMessage 表对应,主要用于记录每站的票价,分别为从第一站到所到达的站。 这样,当乘客不从始发站上车时,其所需的票价只要将他的目的站的价格减去上车站的价格即可。 表 列车途经站点 StationMessage表 字段名 数据类型 字段大小 可否为空 备注 TrainName Char 10 否 车次 Station1 Char 20 否 站点 1名称 Station2 Char 20 否 站点 2名称 Station3 Char 20 是 站点 3名称 Station4 Char 20 是 站点 4名称 Station5 Char 20 是 站点 5名称 Station6 Char 20 是 站点 6名称 Station7 Char 20 是 站点 7名称 Station8 Char 20 是 站点 8名称 Station9 Char 20 是 站点 9名称 Station10 Char 20 是 站点 10名称 20 表 列车各站票价信息 Price表 字段名 数据类型 字段大小 可否为空 备注 No Int 5 否 序号(主键) TrainName Char 10 否 车次 SeatType Int 1 否 席位类型 SeatRemain Int 5 否 剩余席位数 Price12 Float 10 否 站 1 到站 2的价格 Price13 Float 10 否 站 1 到站 3的价格 Price14 Float 10 是 站 1 到站 4的价格 Price15 Float 10 是 站 1 到站 5的价格 Price16 Float 10 是 站 1 到站 6的价格 Price17 Float 10 是 站 1 到站 7的价格 Price18 Float 10 是 站 1 到站 8的价格 Price19 Float 10 是 站 1 到站 9的价格 Price10 Float 10 是 站 1到站 10的价格 21 表 的主键为 PassengerNo,以此来对应唯一的乘客。 此表 用于记录乘客的信息,在乘客订票完成后,系统将提示输入其信息,包括姓名和联系电话,然后系统自动生成唯一的验证码提示给订票的乘客,并将所有数据写入此表中。 乘客可凭此验证码和身份证领取车票。 表中的 CheckNo 字段为系统自动生成的验证码,乘客将通过此验证码来领取车票。 表 乘客信息 PassengerA表 字段名 数据类型 字段大小 可否为空 备注 PassengerNo Int 5 否 乘客序号 TrainName Char 10 否 车次 SeatType Int 1 否 席位类型 SeatNo Int 5 否 席位号 PassengerName Char 20 否 乘客姓名 PassengerTel Char 20 否 联系电话 CheckNo Char 20 否 系统生成验证码 22 表 记录了列车每个座位每个区段的使用情况, UsePath1— UsePath9 内填入使用该区段的乘客号,与下面 PassengerB 表结合使用。 这两张表主要用于席位复用模块的实现。 表 席位使用 SeatUseing表 字段名 数据类型 字段大小 可否为空 备注 TrainName Char 10 否 车次 Seat Int 5 否 席位号 UsePath1 Int 5 是 区段 1的使用 UsePath2 Int 5 是 区段 2的使用 UsePath3 Int 5 是 区段 3的使用 UsePath4 Int 5 是 区段 4的使用 UsePath5 Int 5 是 区段 5的使用 UsePath6 Int 5 是 区段 6的使用 UsePath7 Int 5 是 区段 7的使用 UsePath8 Int 5 是 区段 8的使用 UsePath9 Int 5 是 区段 9的使用 表 和表 在席位复用的情况下使用,由于在 UsePath1— UsePath9 内填入 了 使用该区段的乘客号 ,故只需将此乘客号与 PassengerB 表 中的PassengerNo 字段对应,即可得出各车次每个区段的使用情况,并且进一步能够得到具体乘客的信息。 表 席位复用中的乘客信息 PassengerB表 字段名 数据类型 字段大小 可否为空 备注 PassengerNo Int 5 否 乘客序号 TrainName Char 10 否 车次 PassengerName Char。基于web的铁路订票系统
相关推荐
功实现。 附上判断游戏结束的代码: if(uTag==0) { for(int i=0。 i()。 i++) { CPoint uPoint1=(i)。 if(== amp。 amp。 ==) { uTag=1。 break。 } } } if(uTag==0) { 16 (0,uPoint)。 ReDisplay(uPoint)。 if(== amp。 amp。 ==) {
private void Msave_Click(object sender, EventArgs e) { // = true。 = txt files (*.txt)|*.txt|All files (*.*)|*.*。 = 0。 // =。 // = txt。 if (() == ) { = + .txt。 StreamWriter sw = new StreamWriter()。 ()。
流程图 打开设备 结束 开始 将运算结果转为整型 将数据输出到四个七段数码管 关闭设备 11 } 三、 关闭设备 void CcDlg::OnBnClickedButtonClosedevice() { // TODO: Add your control notification handler code here if(m_hFile) CloseHandle(m_hFile)。 } 第三部分
同时存储在数据库中 结束 开始 管理员 连接数据库的存储 结束 Web 开发课程设计报告 第 7 页,共 12 页 (四)编码实现和测试 实现方法: javascript 脚本 : 用来检查表单数据是否为空。 script //用于管理员登陆的验证 function check() { var adminName=(adminName).value。 var
现场查询每部影片的场次另外提供进阶查询可使观众了解每部影片的导演主演类型剧情等资讯 会员服务相关功能有会员登入会员 注册会员登入以后可查询每部影片的场次并在网上直接进行订票操作该功能极大满足了观众自由选择座位的权利 图 31 前台系统功能
选 B的人 数 数字 长整型 count_c 选 C的人数 数字 长整型 count_d 选 D的人数 数字 255 :见 表 5 表 5 judge表 字段名 字段含义 数据类型 字段大小 id 编号 自动编号 长整型 question 问题 文本 255 ans 答案 是 /否 是 /否 flag 所属主题 数字 长整型 YES 选是 的人数 数字 长整 型 NO 选否的 人数 数字 长整型