地铁收费管理系统Word格式.docx
- 文档编号:15021878
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:18
- 大小:63.25KB
地铁收费管理系统Word格式.docx
《地铁收费管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《地铁收费管理系统Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
乘客可以从任何站点进站,也可以从任何站点出站。
表中无重复记录,一对相邻站点在表中只存在一条记录,比如:
S2与S4之间的记
录只有:
S2->
S4或S4->
S2其中的任意1条,而不会同时存在2条。
考生可以直接使用考试系统提供的根据该表计算任意2站点间最短里程的接口(接
口参见3.4API说明)。
1.2地铁收费系统规则
1、票价分为基本票价和扣费票价。
扣费票价是在基本票价的基础上,根据票卡类型、时间段进行特殊计算得到的(也有可能等于基本票价),是扣费操作时需要从卡上扣除的金
额。
2、基本票价计算规则:
按进站点与出站点之间的最短里程分级计算:
3千米(包含3千米,但不包括0)以内:
2元。
3千米至5千米(包含5千米):
3元。
5千米至10千米(包含10千米):
4元。
10千米以上:
5元。
structdistcost
{
Chars1[];
Chars2[];
Intdistanee;
};
3、进出站为同一站点的,则按进出站时长计算:
(1)小于等于30分钟:
单程票:
票卡面值作为扣费票价;
其他卡:
0元,且不受任何时间段的限制,即直接作为扣费票价。
(2)大于30分钟:
(票卡面值,3元)中“最大值”作为扣费票价;
3元,且不享受任何时间段的优惠,即直接作为扣费票价。
4、扣费票价计算规则1:
按照各种票卡的类型计算:
普通卡(C):
正常时间段以基本票价作为扣费票价;
特殊时间段收费参见“5、扣费票价计算规则2”。
老年卡(B):
正常时间段以基本票价的9折作为扣费票价(如出现小数,则向下取整);
特殊时间段收费参见“5、扣费票价计算规则2”。
单程票(A):
即一次性车票,任何时间段不享受任何优惠,直接以(票卡面值,基本票价)中“最大值”作为扣费票价。
5、扣费票价计算规则2(不涉及单程票):
按照进站时间的不同区间计算:
进站时间为[7:
00,9:
00)、[16:
30,18:
30)时,无任何优惠,所有类型的交通卡(单
程票除外)以基本票价作为扣费票价。
进站时间为[10:
00,11:
00)、[15:
00,16:
00)时,所有类型的交通卡(单程票除外)
以基本票价的5折作为扣费票价(如出现小数,则向下取整)。
1.3约束
考生严格按操作说明的功能项实现,不用考虑其他异常(比如:
单参数的合法性,
不同操作之间的逻辑关联性,等等)。
系统不考虑跨天的情况,只需要考虑同一天,即00:
00~23:
59地铁全天运行时间范围内的功能。
所用的命令字和卡类型参数中的字母不区分大小写;
站名中若出现小写字母,考试
框架自动将其转换成大写字母。
2操作说明
采用在考试系统提供的SocketTool工具中输入命令串方式与系统进行操作交互,命令字是该命令串的第一个符号。
命令行的格式:
命令字[空格]参数仁.[空格]参数n
命令字与第一个参数之间、参数与参数之间,均使用英文半角空格分隔,单个参数内无空格。
命令行涉及到的“参数说明
参数名称
参数说明
类型
取值范围
示例
卡号
整数
0~9,0为通配卡号,只在查询(q)命令中可用。
5
卡类型
票卡的类型:
单程票/老年卡/普通卡
字符
A(a),B(b),C(c)
B,b
金额(元)
卡扣费前余额卡扣费后余额扣费金额
(遇小数向下取整)
0~999
888
时间
进站时间出站时间查询起始时间查询终止时间
HH:
MM
00:
59
注意命令输入格式:
合法:
09:
05
非法:
9:
05、09:
5、9:
站点名称
进站站点名称出站站点名称
字符串
共六个站名:
S1~S6
S5
2.1初始化
命令格式:
r
功能说明:
程序复位,使程序恢复到刚启动时的初始化状态。
全局变量、链表及输出消
费记录的文件等统一恢复到初始状态。
约束说明:
系统在任何状态下可以执行该命令初始化系统。
输出说明:
输出操作结果提示(执行完r命令后系统会自动输出操作结果,考生不需要
调用任何输出函数)。
编号
用例标题
测试步骤
预期输出
1
程序复位
R
I00:
欢迎使用地铁收费系统
22请求扣费
c卡号卡类型卡扣费前余额进站时间进站站点名称出站时间出站站点名称
1、按照输入条件和“1.2地铁收费系统规则”,对票卡进行扣费操作(减去扣费票价)。
2、输出信息调用系统已提供的接口完成(接口参见“3.4API说明”)。
3、如果:
进站时间>出站时间,则不扣费,输出参数错误。
请求扣费命令
C9C2012:
05S1
E02:
参数错误(时间关系错误)
参数非法
11:
20S4
4、如果从进站点到出站点之间的路线不存在,则不扣费,输出无效路线,并显示“卡扣费后余额”(“卡扣费后余额”等于“卡扣费前余额”)。
无效线路,扣费
C3C8509:
05S3
I10:
扣费失败(无效路线)
失败
10:
20S8
<卡号-3><余额=85>
注意:
3/4同时发生时,以3输出优先。
5、如果“卡扣费前余额”大于等于扣费票价,则扣费,输出扣费成功,并显示“卡扣
费后余额”。
如果单程票面值大于等于扣费票价,则按票面值扣费。
例如:
单程票面值5元,
应收票价为3元,则本次扣费为5元,余额为0。
正常扣费成功
C1A307:
00S4
08:
25S3
I11:
扣费成功<卡号-1><余额
瓦-0>
6、不是单程票的,扣费成功后,如果“卡扣费后余额”小于20元,则输出余额过低,
并显示“卡扣费后余额”。
编号「
正常扣费成功,
C4B2010:
I12:
扣费成功(余额过低)
卡内余额偏低
<卡号-4><余额-18>
7、如票“卡扣费前余额”不足以扣费,则不扣费,输出扣费失败(余额不足),并显示
“卡扣费后余额”(“卡扣费后余额”等于“卡扣费前余额”)。
余额不足,扣费
C4B115:
00S1
I13:
扣费失败(余额不足)
15:
55S4
<卡号-4><余额-1>
8、调用系统已提供的写日志接口(接口参见“3.4API说明”),将“地铁乘车记录”记录到内存日志中,日志记录中包含如下字段:
<卡号><进站时间HH:
MM<t站站点名称><出站时间HH:
MM<出站站点名称><实际扣款金额><扣费是否成功>
Structloginfo{
Intcard;
LonginTime;
Chars1[];
LongoutTime;
Intcost;
BoolisCost;
};
请求扣费操作(c/C)所有(无论是否成功或失败)输出返回时,均要求要记录日志。
(如果卡号已注销的话,不写日志)
仅请求扣费操作(c/C)才记录日志,其他任何操作(查询扣费日志(q/Q)、初始化
(r/R))均要求不要记录日志。
系统最多记录10条日志,超过的系统会自动丢弃,程序初始化(或复位(r/R))后
日志记录自动清空,自动从头记录。
无。
输出操作结果,统一参见“3.3基本用例”。
2.3查询扣费日志(本功能作为附加功能,学员选做,请在完成其他功能后再做)
q卡号查询起始时间查询终止时间
1、查询指定票卡出站时间在指定时间段内(查询起始时间<
=出站时间<
=查询终止
时间)的“地铁乘车记录”日志。
备注:
对于内存日志的访问,请使用系统已提供的访问日志的接口(接口参见“3.4API
说明”)。
2、输出日志查询结果信息,请调用系统已提供的接口完成(接口参见“3.4API说明”)。
查询起始时间>
查询终止时间,则输出参数错误。
查询日志命令参数非法
Q020:
0017:
30
4、如果卡号为0,则查询所有票卡出站时间在指定时间段内的地铁乘车记录;
5、查询结果按照“卡号”从小到大的顺序输出,同一卡号按照记录日志的先后顺序输
出。
查询日志成功
<
卡号-4>
余额=18>
卡号-3>
余额=85>
Q000:
0023:
I20:
查询成功|
3>
05>
S3>
20xS8>
0>
失败>
4>
S1>
20>
S4>
2>
成功>
6、如果没有满足条件的记录,则输出查询失败(无相应记录)
无日志记录,查询失败
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地铁 收费 管理 系统