软件构造Lab2

阅读: 评论:0

软件构造Lab2

软件构造Lab2

    1. Poetic Walks

实现的类型是Graph,带有标记顶点的可变加权有向图的抽象数据类型。即需要实现添加新节点、添加新边、移除节点、获得所有的节点集合等

      1. Get the code and prepare Git repository

从所给网址出直接下载。

然后输入以下指令建立仓库

git init

Git remote add origin git@github:ComputerScienceHIT/Lab2-1190201909.git

git pull origin master

git add .

git commit -m “1”

git push origin master

      1. Problem 1: Test Graph <String>

对于add函数,测试已存入和未存入的点

对于set函数,测试权值是否为0

对于remove函数,测试已存入和未存入的点,还有其他相邻的点

对于vertices函数,测试空图和非空图

对于sources和targets函数,测试有无边链接的点

      1. Problem 2: Implement Graph <String>

以下各部分,请按照MIT页面上相应部分的要求,逐项列出你的设计和实现思路/过程/结果。

        1. Implement ConcreteEdgesGraph

实现Edge

1、public Edge(String source, String target, int weight)构造方法

2、getSource() 得到起点

3、getTarget() 得到终点

4、getWeight() 得到权值

5、toString() 字符串连接起来

实现ConcreteEdgeGraph

1、add 调用vertices.add添加顶点(若vertices()中已包含vertex,返回false,否则新建一个顶点将其加入vertices)

2、set(String source, String target, int weight)设置一条边,若不存在则添加它(先判断顶点在不在集合中),若为0则删掉。

3、remove遍历所有的点若存在则删除点再删除边,不存在则返回false

4、Set vertices() 返回顶点

5、Map<String, Integer> sources 如果找到了目标的target点,就返回对应的source,如果没找到,返回一个空的map

6、Map<String, Integer> targets 如果找到了目标的sourse点,就返回对应的target,如果没找到,返回一个空的map

3.1.3.2Implement ConcreteVerticesGraph

        1. Implement ConcreteVerticesGraph

实现Vertex

1、Vertex构造方法

2、String getName() 得到该点

3、Map<String,Integer> getSource() 存储所有以当前点为终点的边,key表示边的起点,value表示边权

4、Map<String,Integer> getTarget() 存储所有以当前点为起点的边,key表示边的终点,value表示边权

5、public void checkRep() 检查当前点的rep是否非空。

6、String toString() 以字符串的形式直观地展示有哪些边以当前点为终点起点

7、int setSource(String s, int weight) Vertex V ,设置V的源点返回weight

8、int setTarget(String t, int weight) Vertex V ,设置V的终点返回weight

      1. Problem 3: Implement generic Graph<L>
        1. Make the implementations generic

使用泛型实现即可:

在修改过程中通过eclipse提示的错误修改即可完成:

方法的修改同理

        1. Implement

调用一个具体的实现:

      1. Problem 4: Poetic walks
        1. Test GraphPoet

对于add函数,测试已存入和未存入的点

对于set函数,测试权值是否为0

对于remove函数,测试已存入和未存入的点,还有其他相邻的点

对于vertices函数,测试空图和非空图

对于sources和targets函数,测试有无边链接的点

        1. Implement GraphPoet

1、public GraphPoet(File corpus) throws IOException 将文档中句子整行输入,用split分割,每个单词建立顶点,两个相邻单词间添加有向边,权重设为1,若边出现多次则权重为出现的次数

2、public void checkRep() 检查图不空

3、public String poem(String input) 输入部分诗句,获取其中单词通过其target找下一个单词,直到把诗句拼完整。

4、public String toString() 输出

        1. Graph poetry slam

程序如下

      1. 使用Eclemma检查测试的代码覆盖度

      1. Before you’re done

git add .

git commit -m “2”

git push origin master

本文发布于:2024-01-31 12:02:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667377228380.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23