面向对象JML实战:地铁系统与Path/RailwaySystem实现
需积分: 0 126 浏览量
更新于2024-08-05
收藏 725KB PDF 举报
本次面向对象JML系列第三次作业的主要目标是提升对JML规格进阶级的理解和实际应用,同时掌握设计模式及单元测试的高级实践。作业的核心内容涉及两个关键类的实现:Path 和 RailwaySystem。Path 类作为一个容器,需要支持路径的增删查改操作,以及基于无向图的查询。而 RailwaySystem 类则代表了一个简单的地铁系统,能够处理路径相关的查询,包括线路之间的换乘计算和票价计算。
具体任务要求学生继承官方提供的 Path 和 RailwaySystem 接口,并自定义实现 MyPath 和 MyRailwaySystem 类。这些类需要严格遵循给出的 JML 规格,这包括接口中的方法定义及其行为描述。JML (Java Modeling Language) 是一种静态分析工具,用于规范接口的行为,确保代码质量和一致性。
设计模式在这个过程中可能会被应用,例如可能涉及到工厂模式或者策略模式,以提供灵活的方式来创建和管理地铁线路。学生需要根据提供的接口源代码和JML规格,编写出高效且易于维护的代码。
单元测试是另一个重要的环节,学生们需要编写针对自己实现的类的测试用例,确保每个接口方法的正确性和性能。这有助于发现潜在的问题,并验证代码是否符合预期的行为。
在主类中,学生需要调用官方提供的 AppRunner 类,并加载自己实现的 MyPath 和 MyRailwaySystem 类,以便构建完整的可运行程序。这展示了如何将类实例化并与主程序集成,实现功能的交互。
对于地铁系统的概念,换乘是指从一条线路转移到另一条线路时在同一个站点发生的切换。计算票价时,需要考虑经过的边数和换乘次数。例如,在路线2->3->5中,经过2条边,一次换乘,所以票价为边数加上换乘数,即2+1=3。
作业完成后,除了技术技能的提升,学生还将获得关于抽象和接口设计、代码规范性以及测试驱动开发的实践经验。不满意度部分可能用来评估学生对规格理解和实现的准确性,以及他们如何处理可能出现的问题和优化代码质量。这个作业是一个综合性项目,旨在强化学生的面向对象编程、设计模式理解和单元测试实践能力。
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
今年也要加油呀
- 粉丝: 26
- 资源: 312
最新资源
- 基于KNN算法的婚恋推荐算法研究.zip
- Animate.css-Tutorial:Animate.css教程的文件
- android应用源码动画文字自由移动-IT计算机-毕业设计.zip
- roadtrip-node:使用 node 和 mongo-db 的 roadtrip 应用程序
- TemplatesNetCore:我用于快速构建应用程序的代码模板,这些模板具有我在项目中通常使用的实践,特性和库
- WeatherWebApiSample
- mrobinson93.github.io:网站
- 数据库设计project——物业集团管理系统.zip
- Enterprise_Application_Solution:免费资料和样品
- porgy:Protoc插件
- V5:分层排队网络求解器
- dltmatlab代码-event-driven-IP:用于尖峰神经网络的事件驱动的内在可塑性(IP)学习规则
- MMath-Code:机器学习和微分方程
- testDBJenkins
- LunarCalendar:一个基于 Electron + React + Material Design 的工具栏日历,适用于 Mac、Windows 和 Linux
- dltmatlab代码-3D-DIC:3D-DIC