软件构造实验三

本次实验旨在通过ADT和泛型等技术,设计具有可复用性和可维护性的软件,应用于径赛方案、太阳系模拟、原子结构和社交网络。实验涉及子类型、多态、继承、设计模式等多个软件构造技术,并采用Eclipse IDE、Git进行开发和版本管理。实验中,学生需实现包括添加/删除轨道、计算熵值等功能,以及针对不同应用场景的特定功能,如行星轨道运动、原子结构可视化和社交网络信息扩散。同时,实验强调了面向复用的设计,如CircularOrbit接口和Track类的设计,以及在不同系统中实现的可视化工具。
摘要由CSDN通过智能技术生成
  1. 实验目标概述

本次实验覆盖课程第 3、5、6 章的内容,目标是编写具有可复用性和可维护 性的软件,主要使用以下软件构造技术:

⚫ 子类型、泛型、多态、重写、重载

⚫ 继承、代理、组合

⚫ 常见的 OO 设计模式

⚫ 语法驱动的编程、正则表达式

⚫ 基于状态的编程

⚫ API 设计、API 复用 本次实验给定了五个具体应用(径赛方案编排、太阳系行星模拟、原子结构 可视化、个人移动 App 生态系统、个人社交系统),学生不是直接针对五个应用 分别编程实现,而是通过 ADT 和泛型等抽象技术,开发一套可复用的 ADT 及其 实现,充分考虑这些应用之间的相似性和差异性,使 ADT 有更大程度的复用(可 复用性)和更容易面向各种变化(可维护性)

  1. 实验环境配置

实验环境:

  • 系统:windows10,JDK8
  • ide:Eclipse IDE for Eclipse Committers 2018-12 (4.10.0)
  • 版本管理:git
  • 代码托管:Github

在这里给出你的GitHub Lab2仓库的URL地址(Lab2-学号)。

https://github.com/ComputerScienceHIT/Lab3-1170300527.git

  1. 实验过程

请仔细对照实验手册,针对每一项任务,在下面各节中记录你的实验过程、阐述你的设计思路和问题求解思路,可辅之以示意图或关键源代码加以说明(但千万不要把你的源代码全部粘贴过来!)。

    1. 待开发的三个应用场景

首先请列出你要完成的具体应用场景(至少3个,1和2中选一,3必选,4和5中选一,鼓励完成更多的应用场景)。

  1. Stellar System
  2. Atom Structure
  3. Social Network Circle

共性:

  1. 需要轨道系统中基本存在的对象,包括轨道、中心物体、轨道物体。其中物体都不考虑绝对位置。轨道都为圆形
  2. 都需要完成的功能有:添加/删除轨道,在某一轨道上添加/删除物体,获得轨道系统的熵值,获得逻辑距离,比较两个同类型轨道系统的差异,检查轨道系统是否合法,可视化

差异:

  1. 包含的结构不同,行星需要考虑其绝对位置,并且位置会根据时间变化,原子与社交网络则无需考虑
  2. 具体实现的功能要求也存在差异
    1. 基于语法的图数据输入

根据给出的输入结构写出正则表达式进行匹配,每读入一行将其分别进行匹配,并进行处理

行星系统:

原子系统:

社交网络:

    1. 面向复用的设计:CircularOrbit<L,E>

设计为接口,提取系统中的共有方法

方法

作用

public CircularOrbit<L,E>  concreteCircularOrbit ();

创建一个空的 CircularOrbit 对象

public void setOrbit(Track t);

增加一条轨道

public void removeOrbit(Track t);

去除一条轨道

public void setCenter(L center);

增加中心点物体

public void setObject(E object, Track t);

向特定轨道上增加一个物体(不考虑物理位置)

public void readFile(String file);

从外部文件读取数据构造轨道系统对象

public void transit (E object, Track t);

object 从当前所在轨道迁移到轨道 t

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值