【vc++精品源码栏目提醒】:网学会员鉴于大家对vc++精品源码十分关注,论文会员在此为大家搜集整理了“车辆违规管理系统 - 其它资料”一文,供大家参考学习
车辆违规管理系统1. 考试提醒 请仔细阅读规格文档,理解规格文档估计需要花费 1030 分钟来理解,请务必看清 楚要求再动手,试题包括规格描述和代码框架。
C/C编译环境统一为 Visual C 6.0 版本。
如果你喜欢并熟悉 Source Insight 或其它工具,也可以使用 Source Insight 或其它工具进行开发,但考 生必须保证提交的代码要在指定编译环境下编译通过,否则无法阅卷。
如果考题与日常工作/生活接近,请考生以规格为准,不要类比相似案例。
出于自动化测试的需要,程序中不要使用原始的 I/O 输入输出键盘输入、屏幕输 出作为正式输入输出,我们会提供基于 Socket 的输入输出 API 接口,考生必须 使用 Socket API 进行正式输入输出操作。
调试打印的方式不受此限制。
考试的工程已经提供 Socket 通信功能,并提供输入/输出的 API,考生不需要实 现。
2. 总体说明 考生需要模拟实现一个简单的车辆违规管理系统, 包括积分管理和罚款管理两部分。
系统需要实现“系统初始化”“录入违规记录”“缴纳罚款” 查 询历史违规信息”相关功能。
、 、 “ 、 系统启动后,用户需要输入命令进行系统初始化,系统初始化时登记一辆车的相关信息,其中初始积分为 20、无违规记录。
, 系统初始化后,可以进行“录入违规记录”“缴纳罚款”“查询历史违规信息”等操作。
3. 系统规则 1、 系统只需要支持一辆车,系统初始化时登记,初始积分为 20,无违规记录,无历史 违规信息。
2、 一辆车支持最多保存 10 条未缴纳罚款的违规记录,每条违规记录的罚款缴纳后, 该条违规记录将被清除。
系统内保存的违规记录达到 10 条时,再录入违规记录失 败,提示“E009:违规记录已满”。
、 3、 系统未初始化前,执行“录入违规记录”“查询历史违规信息”和“缴纳罚款”相 关操作,操作失败,并提示“E001:系统未初始化” 。
4、 需要携带时间的操作命令(代表本条命令的操作时间),相关规格如下: 1)时间为11000的整数(注意:包括 1 和 1000)时间超出范围时,命令执 行失败,提示“E002:输入时间超出系统允许范围” 。
2)系统初始化后,录入违规记录命令携带的时间必须递增或相等, 否则,输入错误, 提示“E008:时间参数小于上次操作时间” 。
3)系统初始化后的下一条操作命令携带的时间可以重新从“1”开始; 5、 违规类型包括超速、闯红灯、超载、醉酒驾车和违章停车注:违规类型输入错误时, 命令执行失败,提示“E003:输入违规类型超出系统允许范围”,违规处罚包括罚 款和扣分两项,违规类型对应的处罚情况详见下表: 违规类型 枚举值 罚款 扣分 违章停车 0 100 1 超速 1 200 2 闯红灯 2 300 3 超载 3 400 4 醉酒驾车 4 500 5 6、 缴纳罚款时规则如下: 1 缴纳金额为16000的整数(注:包括 1 和 6000) ,缴纳金额超出范围时, 命令执行失败,提示“E005:输入缴纳金额超出系统允许范围” ; 2 单条违规记录的罚款小于等于缴纳金额(或剩余金额)时才可缴纳; 3 多条违规记录满足条件 2 时,违规时间最早的违规记录优先缴纳; 4 同一天有多条违规记录满足条件 2 时,罚款最高的违规记录优先缴纳,如果 罚款相等时,按命令录入的先后顺序逐一缴纳即可; 5 至少一条违规记录的罚款已缴纳时, 余额不满足继续缴纳任一剩余违规记录的 罚款时,直接返回余额; 6 缴纳金额不满足缴纳任一违规记录的罚款,缴纳失败,提示“E006: 缴纳动作 ; 无效” 7 没有违规记录时进行缴纳操作时,缴纳失败,提示“E007:无违规记录,不需 要缴纳罚款”;参考实例: 违规记录 违规时间 罚款 1 10 300 2 15 200 3 25 100 例 1:如上表格,车辆有三条违规记录,缴纳金额为 450 元时,缴纳顺序如下: , a、 违规记录 1 的时间最早,罚款(300)小于缴纳金额(450) 满足条件,缴纳成功, 剩余余额为 150; , b、 违规记录 2 比违规记录 3 靠前,罚款(200)大于剩余余额(150) 不满足条件 , c、 违规记录 3,罚款(100)小于剩余余额(150) 满足条件,缴纳成功,剩余余额为 50; d、 只剩下违规记录 2,余额不足以缴纳,直接返回余额并显示缴纳后的剩余违规信息 违规记录 违规时间 罚款 1 5 200 2 5 300 3 40 100 例 2:如上表格,车辆有三条违规记录,缴纳金额为 550 元时,缴纳顺序如下: a、 违规记录 1 和违规记录 2 时间最早,且在同一天,罚款分别为(200)和(300)均 小于缴纳金额(550),均满足缴纳条件,但违规记录 2 的金额最大,优先满足条件, 缴纳成功,剩余余额 250 b、 剩余违规记录 1 和违规记录 3, 罚 违规记录 1 时间最早,款(200) 小于剩余余额(250), 满足条件,缴纳成功,剩余余额 50 元; c、 只剩下违规记录 3,罚款(100)大于剩余余额(50) ,不满足条件,直接返回余额 和并显示缴纳后的违规信息; 7、 扣分后的剩余积分等于或小于 0 时以 0 分计。
剩余积分为 0 时车牌被吊销,车牌吊 销后,从历史违规信息中删除所有关于此车辆的违规信息,查询时也不再显示此车 “录入违规记录”和“缴纳罚款”相关操作失败,提示 辆的违规信息。
车牌吊销后, “E004:车牌已吊销,操作失败”。
系统初始化,可继续进行“录入违规记录”和“缴 纳罚款”相关操作。
注意:无论是否缴纳罚款,一旦违规就要扣除积分,缴纳罚款 时不再重复扣除积分; 8、 查询历史违规信息不限制历史违规的次数,查询过程中需要逐条输出违规信息。
此 处要求必须用 C 语言链表实现(重点考察项) 。
4. 操作说明1 系统初始化(opInit) 命令 iinitial实现系统的初始化,同时提示” S001:初始化成功” (提示信息调用系统提供的 API 函数实现,下同)。
系统在任何时候均可执行 iinitial初始化系统,初始化之后系统所有信息要求恢复到初始状态(包括历史违规信息) 。
例 1:系统启动后初始化: 输入:i 输出:S001:初始化成功2 录入违规记录(opRecord) 命令 rrecord表示录入违规记录,其格式为:r 违规类型枚举值-时间,命令参数之间用“-”分隔。
如:r 1-2 例 2:输入正确的违规类型和时间录入违规记录: 输入:r 1-2 输出:S002:录入违规记录成功3 查询历史违规信息(opQuery) 命令 qquery 表示查询历史违规信息,其格式为:q。
如:q 查询成功时,调用系统提供的 API 函数输出违规信息。
特别说明:车牌吊销时,输出:E004:车牌已吊销,操作失败;无违规记录时,输出 E010:无违规记录 例 3:查询车辆的违规信息: 输入:q 输出: 违规时间 2 违规原因 超速 罚款金额 300 已缴纳罚款 否 剩余积分 17 违规时间 5 违规原因 闯红灯 罚款金额 200 已缴纳罚款 是 剩余积分 15 如果有多条违规记录,需要逐条显示,按照录入的违规的先后顺序依次输出。
4 缴纳罚款(opPay) 命令 p(pay)表示缴纳罚款,其格式为:p 缴纳金额,金额范围为16000。
如:p 500 缴纳罚款成功时,调用系统提供的 API 函数输出缴纳信息。
特别说明: 1 无找零时,找零为 0 2 所有违规记录的罚款均缴纳成功时,剩余违规记录数、剩余罚款为 0 例 4:车辆有 3 条违规记录,详细信息见下表: 违规记录 违规时间 罚款 1 5 300 2 15 200 3 20 100 输入:p 500 输出: 找零 0 剩余积分 14 剩余违规记录数 1 剩余罚款金额 1005 命令汇总命令
上一篇:
基于单片机的GPS高精度授时时钟设计
下一篇:
投简历到国外的公司需考虑哪些东西?