第一篇:公路售票系统问题及解决方案
问题一:银行向公路方发出售票交易,公路售票成功并给乘客发送购票短信,但向银行发出返回报文后,由于网络延时等原因造成银行未在规定时间内收到返回报文,银行认为此笔售票未成功并进行冲正,此种情形下乘客并未付款且归集户账务已冲正,但由于购票短信已发送给乘客,乘客可以凭借短信在汽车站自助设备上取票,容易造成短款。
建议解决方案:建议增加售票最终确认交易,银行在收到公路方购票返回报文确认购票无误后,向公路方发送售票最终确认交易,公路方收到该交易后再向乘客发送购票短信,此方法可以有效避免短款出现。
问题二:在最初系统开发时,银行严格按照接口文档进行开发,但在实际生产过程中出现系统报错,导致交易无法进行,经问题排查发现公路方在未通知我方的情况下增加字段导致银行系统拆解包报错,针对此问题我方已在2017年联系过公路方,并进行过一次系统升级,但在2018年又出现此情况,导致客户经常投诉柜员,给银行造成不好的影响。
建议解决方案:公路方如果需要新增字段,需向我方市场部提需求,我方配合优化并在测试环境进行测试,测试无误后再进行变更。
问题三:公路方提出的生产环境出现短款问题,由于银行系统首次上线前,公路方并未测试对账交易,因此造成短款可能的原因有短信提前发出、对账未成功、冲正未成功。
建议解决方案:在测试环境进行全流程测试,覆盖对账和冲正交易,确认所有交易无误后,银行系统重新上线。需要公路方配合的工作有:
1、提供测试环境与数据,并配合银行进行全交易测试;
2、提供生产环境运维人员联系方式,以便银行运维人员在生产环境出现问题后可以联系公路方及时查找和解决问题。
第二篇:铁路售票系统
铁路售票系统应用软件需求分析报告
前言:
(1)需求分析报告的编写目的
本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本铁路售票系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。(2)产品背景明细 软件名称:铁路售票系统 软件开发者:(3)缩写及缩略语
铁路售票应用系统软件:基本元素为构成铁路售票及相关行为所必须的各种部分。
需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。
需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。本工程描述:
(1)软件开发的目标:
完善目前铁路售票系统,使之能跟上时代的发展。同时通过实践来提高自己的动手能力。(2)应用范围:
理论上能够实现于铁路部门的售票系统,其目的在于在原有的系统基础使得铁路售票实名化,以期实现完善日常生活中铁路售票的各种缺陷。(3)硬件配置要求:
硬件外部设备需奔腾133以上的pc机,内存需16兆以上。(4)子集说明:
软件分别有五个模块组成,每个模块各有不同的功能。但都能完成查询和存储功能,各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。(5)软件功能描述:
外部功能:实现可视化窗口,查找及存储 内部功能:同步,过滤,定位,识别 软件功能描述图: 赔偿信息 车次信息 列车明细 日志维护 个人信息 主界面 同步 过滤 数据库 定位
(6)软件操作人员的要求:
软件要求操作人员具有初步的相关知识(7)在其他方面的要求:
由于本系统为即时软件,对数据的同步要求较高,建议配置网络时使用可靠性较高的相关网络硬件设施。软件结构化描述(1)数据流图: 乘客 数据库更新 列车明细 个人信息 日志 售票员
(2)数据结构的描述:
车票=日期+价格+出发站+目的站+售票站+座号+车次+性质+编号 日期=年+月+日+时+分 价格=“1”..“9999” 出发站=1{汉字}6 目的站=1{汉字}6 售票站=1{汉字}6 座号=车厢号+座位号 车次=“1”..“9999”
编号=“000000001”..“999999999”
性质=“1”..“6” 注:“1”表示空调硬座特快,“2”表示空调软座普快等 设计要求:
(1)所调用的数据库的显示: 输入内容:指定的库文件名。加工内容:调用指定的数据库。输出内容:所指定的数据库的库结构。(2)关于编辑框的说明: 输入内容:编辑框名称。加工内容:生成编辑框。输出内容:显示所生成的编辑框(3)指定记录说明:
输入内容:指定的项名及库文件名。加工内容:将指定的数据库里指定的记录置为当前记录。(4)初始化说明: 输入内容:所要求的尺寸
要求处理内容:确定指定对象在窗体中的开始尺寸的大小 输出内容:确定开始尺寸的四个参数。(5)最大化说明: 输入内容:指定的参数值。
加工内容:确定指定对象在窗体中的最大尺寸。输出内容:确定指定对象最大尺寸的四个参数。(6)最小化说明 原理同上
(7)查词编辑框说明(编辑框控制)
功能:主要是定义的一个编辑框,供用户输入一个词名,为程序生成查找条件做准备。输入内容:在查词编辑框中输入要查找的词名。加工内容:用输入的词名以供程序生成查找条。输出内容:地址、长度。
(8)内容编辑框说明(编辑框控制)
功能:主要是定义的一个编辑框,将程序查找到的用户所输入词的相关内容显示出来,为用户提供帮助信息。
输入内容:数据库中查找到的记录的项的内容的地址、长度。加工内容:置控制标题或值。
输出内容:显示用户所输入词的相关内容(如该词的格式、用法……)。(9)定义过滤说明
作用:定义用户输入的词名与内容库中的词名字段中的词名进行串比较,即定义词名字段为过滤字段。输入内容:用户输入的词名。
加工内容:把代码写入过滤条件指针之中。输出内容:查找条件。(10)执行过滤说明
作用:将定义的过滤作为内容库的过滤条件。输入内容:查找条件。
加工内容:与查找编辑框中的内容比较。输出内容:库过滤显。(11)同步说明: I:令牌持有标记
P:与数据库同步更新数据 O:更新数据库 环境要求:
(1)数据录入精度需求
在进行向数据库文件提取数据时,要求数据记录定位准确,在往数据库文件数组中添加数时,要求输入数准确。
(2)软件自身时间特性需求
程序响应时间:在人的感觉和视觉事件范围内;
信息交换时间:要求在程序调用前调用后都与数据库保持同步更新,网络信息狡猾施加应该小于程序调用的时间
(3)数据管理能力需求
要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。接口要求:
(1)硬件接口:无特别要求
(2)网络硬件接口要求:现实中要求具有高速以太网组网一实现联网销售,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。(3)软件接口要求:无 软件属性(1)可用性 本软件也可以通过单步跟踪的操作进行检查处理。
(2)安全性
由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。(3)可维护性
本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。(4)兼容性
由于尚未测试,故无法对兼容性进行评析。支持信息(1)软件支持:
本软件开发是使用Delphi编写。
(2)设备支持:
推荐配置:WindowsXP,256内存,VGA显示器
第三篇:售票系统应急预案
安徽天柱山旅游发展有限公司
售票系统应急预案
为建立健全景区售票系统应急保障体系和运行机制,快速、有效地处理售票系统的安全事故和突发事件,根据风景区实际特制定本预案。
本预案适用于景区售票系统因网络、设备、软件、电力等故障或遭受大规模“病毒”感染、非法入侵及其它不可预测的因素导致售票系统中断或售票异常的安全事故和突发事件。
一、组织机构及职责
1、应急组织机构
公司成立售票系统安全事故和突发事件应急处置领导小组(以下简称“应急处置领导小组”),由 任组长,公司办公室、稽查办、财务科、茶庄游客中心、大龙窝索道公司、天柱山客运公司、执法大队、信息技术中心为组员单位。
2、应急处置领导小组主要职责
(1)根据事件的影响范围和严重性决定是否启动应急预案,遇重大情况负责及时向上级领导报告。
(2)负责售票系统安全事故的应急处置、治安保障、系统恢复、后勤保障、新闻发布等工作。
(4)保管备用纸质门票、车票。
(3)负责向售票系统相关技术支持单位请求技术支持。
二、应急响应、处置
售票系统中断运行由信息技术中心检查处理,在15分钟内不能恢复运行的须立即报告应急处置领导小组,启动应急预案。
1、公司办公室向领导报告启动预案。
2、游客中心通知售票员向大堂经理领取应急备用纸质门票、车票准备销售,并通过电子显示屏、展牌等媒介向游客进行解释宣传。
3、稽查办负责通知各检票口做好纸质门票、车票检验准备。
4、执法大队负责现场秩序维护。
5、财务科负责向管委会财务科报告,并做好纸质门票、车票的领退与分发工作。
6、信息技术中心负责售票系统的维修与相关技术单位的协调。
三、后期处置
售票系统恢复运行后,应急处置结束,由应急处置领导小组宣布应急结束,稽查办通知各检票口进行正常电子票检验。应急处置结束后2日内,由售票系统应急处置领导小组组织力量对事故的起因、性质、影响、责任、教训和处置进行评估,提出整改和预防措施,完善应急预案,并做好对上级部门的汇报。
附件:售票系统应急处置领导小组人员及联系方式
2015 公司办公室
稽 查 办 财 务 科 茶庄游客中心 大龙窝索道公司 天柱山客运公司 信息技术中心 执法大队
安徽天柱山旅游发展有限公司
年9月18
第四篇:网上售票系统任务书
题目: 任务与要求:
网上售票系统
(1)能够熟练应用Mysql数据库对数据进行管理。(2)前台部分主要用于为客户服务、包括余票查询、车票详细信息展示、客户信息修改、车票退定、关于网站的最新动态、其他站车的风采展示、网上购票用户注册/登录、票价查询、列车时刻表查询、起售时间查询、客票代售点查询、铁路客服中心电话展示、网上购票常见问题、客户信箱等。
(3)后台部分主要用于修改车票信息、添加车票信息、车票分类、对客户信息的管理、订单管理、管理员密码的修改等。
(4)采用JSP+Mysql、Servlet、JavaScript等技术实现。
时间: 2013 年 10 月 21 日 至 2013 年 12 月 13 日 共 8 周 所属系部:
学生姓名: 学 号: 专业: 指导单位或教研室: 指导教师:
职 称:
第五篇:航空售票管理系统
#include
typedef struct node//定义信息结构体 {
char num[10];// 航班号
int hour;//起飞时间小时
int minitues;//起飞时间分钟
char start[10];//起始
char end[10];//终点
float prize;//经济舱票价
int last;//剩余座位 }FLIGHT;
typedef struct Order//订单信息 {
char name[10];//乘客姓名
char num[10];//航班号
int count;//订票数量 }Order;
class flight//定义类 {
private: FLIGHT stu[N];//每个元素对应一条信息
Order psg[N];//订单
int len;//航班总数
int lenp;//订票者总数 public:
flight();
~flight();void input();//录入信息
void show();//浏览
void sall();//售票
void back();//退票
void search();// 信息查询
void search2();// 信息查询(起点终点)
char menu();//菜单
};
flight stud;
char filename[]=“flight.txt”;
flight::flight(){}//构造函数 flight::~flight(){}//析构函数
bool CheckTime(int h1,int m1,int h2,int m2)//判断两个时间前后
{ if(h1
return true;else if(h1==h2){
if(m1 return true; else return false;} else return false;} void flight::show()//浏览 { system(“cls”);//清屏 cout<<“ 所有航班信息如下:”< 起飞时间 起点 终点 经济舱票价 剩余座位 备注”< for(int i=0;i printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//获取当前系统时间 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出 cout<<“此次航班已发出”< else cout< } cout<<“_______________________________________________________________________________”< void flight::back()//退票 { char name[20]; char s[20]; system(“cls”);//清屏 cout<<“请输入退票的航班编号:”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 结束循环 if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{ cout<<“对不起!没有你输入航班编号的相关信息。n”; system(“pause”);//任意键继续 return;} time_t t; struct tm *tm; t=time(NULL);//获取当前系统时间 tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true) { cout<<“对不起!该航班已经起飞。不能退票。n”; system(“pause”);//任意键继续 return;} int j=i; cout<<“请输入您的姓名:”;cin>>name;for(i=0;i if(strcmp(stud.psg[i].name,name)==0 && strcmp(stud.psg[i].num,s)==0)//查询这个名字是否相同 { stud.stu[j].last+=stud.psg[i].count;//退票 stud.psg[i]=stud.psg[stud.lenp-1];///删除这个订单 stud.lenp--;//订单数减一 cout<<“退票成功!n”; system(“pause”);//任意键继续 return; } } cout<<“对不起!您没有定该航班的票。n”; system(“pause”);//任意键继续 } void flight::sall()//售票 { char s[20]; system(“cls”);//清屏 cout<<“请输入要购买的航班编号:”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 结束循环 if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{ cout<<“对不起!没有你输入航班编号的相关信息。n”; system(“pause”);//任意键继续 return;} if(stud.stu[i].last<=0)//没有票了 { cout<<“对不起!该航班票已售完。n”; system(“pause”);//任意键继续 return;} time_t t; struct tm *tm; t=time(NULL);//获取当前系统时间 tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true) { cout<<“对不起!该航班已经起飞。n”; system(“pause”);//任意键继续 return;} int j=i;i=stud.lenp;strcpy(stud.psg[i].num,stud.stu[i].num);cout<<“请输入购票数量:”;cin>>stud.psg[i].count; while(stud.psg[i].count>stud.stu[i].last){ cout<<“余票不足,请重新输入:”; cin>>stud.psg[i].count; } cout<<“请输入您的姓名:”;cin>>stud.psg[i].name; stud.stu[j].last-=stud.psg[i].count;//剩余票数 stud.lenp++;cout<<“购票成功!n”;system(“pause”);//任意键继续 } void flight::input()//录入信息 { system(“cls”);//清屏 for(int i=stud.len;i { cout<<“请输入航班号:”; cin>>stud.stu[i].num; cout<<“请输入起飞时间(格式: 12:30):”; char ch; cin>>stud.stu[i].hour>>ch>>stud.stu[i].minitues; cout<<“请输入起点:”; cin>>stud.stu[i].start; cout<<“请输入终点:”; cin>>stud.stu[i].end; cout<<“请输入经济舱票价:”; cin>>stud.stu[i].prize; cout<<“请输入剩余座位:”; cin>>stud.stu[i].last; stud.len++;//个数加1 cout<<“一条航班信息录入完成,是否继续录入?(y/n):”; while(1) { cin>>ch; if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else cout<<“输入错误请重新输入:”; } if(ch=='n' || ch=='N') break; } } void flight::search()// 信息查询 { char s[20]; system(“cls”);//清屏 cout<<“请输入要查询的航班编号:”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 结束循环 if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{ cout<<“对不起!没有你输入航班编号的相关信息。n”; system(“pause”);//任意键继续 return;} cout<<“ 查询结果如下:”< 起飞时间 起点 终点 经济舱票价 剩余座位 备注”< printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//获取当前系统时间 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出 cout<<“此次航班已发出”< else cout< cout<<“_______________________________________________________________________________”< void flight::search2()// 信息查询(按线路){ char s1[20],s2[20]; system(“cls”);//清屏 cout<<“请输入要查询的线路起点:”;cin>>s1; cout<<“请输入要查询的线路终点:”;cin>>s2; for(int i=0;i if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0) break;//存在 结束循环 if(i==stud.len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入航班编号不存在{ cout<<“对不起!没有你输入线路的相关信息。n”; system(“pause”);//任意键继续 return;} cout<<“ 查询结果如下:”< 起飞时间 起点 终点 经济舱票价 剩余座位 备注”< for(i=0;i if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0) { printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//获取当前系统时间 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飞时间在当前时间之前 输出此次航班已发出 cout<<“此次航班已发出”< else cout< } cout<<“_______________________________________________________________________________”< char flight::menu()//菜单 { char c; system(“cls”);//清屏 cout<<“nnnn ╔═══════════════════════════╗n”;cout<<“ ║ 1、录入航班信息 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 2、浏览航班信息 ║n”;cout<<“ ╠═══════════════════════════╣n”; cout<<“ ║ 3、查询路线(按编号) ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 4、查询路线(按线路) ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 5、售票 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 6、退票 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 0、退出系统 ║n”; cout<<“ ╚═══════════════════════════╝n”;cout<<“ 请选择:”; cin>>c; return c;} int main(){ while(1) { char ch; ch=stud.menu();//获取选择 switch(ch) { case '1': stud.input();break;//录入航班信息 case '2': stud.show();break;//浏览航班信息 case '3': stud.search();break;// 查询路线 case '4': stud.search2();break;// 查询路线(按线路) case '5': stud.sall();break;// 售票 case '6': stud.back(); break;// 退票 case '0': exit(0);//退出 } } return 0;}