软件构造实验三总结

要死了!!!!!

由于上周进行了计算机系统的期末考试,上上周进行了马克思原理的洗礼,所以导致从这周三才开始进行lab3的编写,太死亡了。废话不多说,发完牢骚,我们开始lab3的一些关键点的梳理。

首先还是老方法,我们先看一下整个实验的步骤

1.实现IntervalSet的实现以及方法的编写

2.实现MultiIntervalSet的实现以及方法的编写

3.设计检查空白,检查是否有时间重叠,检查是否可以有多个时间轴

4.设计Employee,Process和Course的类实现

5.进行三个APP的具体实现

6.进行文本输入

7.API复用的实现

先来看1的实现

在这里给出我的各类方法的实现

一..建立一个空对象 2.插入一个时间信息 3返回一个对象的起始时间. 4.返回一个对象的结束时间 5.查看时间轴内的所有对象 6.得到创建好的图.

然后看2的实现

同样是上述的六个方法的实现,但是这里有一些区别:

1.插入时间信息时,对于1中的实现,我们需要检查是否为图中的对象,不是的话加入,是的话不可插入,2的实现同样需要检查是否为图中对象,如果不是需要把对象和时间段一起加入图内,如果是则直接插入它的时间段链表

2.返回起始时间,1的返回起始时间只需要返回它的时间段的第一个元素即可,但是2的实现需要遍历一遍该对象的时间段数组,然后找出一个最小的start

二.检查空白,检查时间重叠

1.检查空白,首先我们需要找到开始时间和起始时间,即遍历一遍图,然后记录下开始时间和结束时间,然后再对图进行一次遍历即可;

2.检查重叠 思路和1一样,用一个双重循环即可解决

三.设计类实现

1.Employee

三个标签有员工的名字,职务,电话,全部设置为private String

然后设置一些方法:1.getname     2.getzhiwei   3.getphonenumber  4.hascode   5.toString  6.equals

2.Process

四个标签有ID,名字 设置为private String 最短执行时间和最长执行时间 设置为 private long

然后设置方法和1类似

3.Course

四个标签有ID,名字,老师名字,教室 定义为private String

四.APP具体实现

这里是整个实验最精华的部分,也是自由度最大的地方,因此不进行具体说明,因为需要大家各自自由发挥

但是这里有一个比较烦的地方在于 时间的转换,即怎么把年月日的时间转化为时间轴中的一个long类型数据

我才用的是将起始时期设置为0,然后输入的日期以起始时期为基准,以天为单位,开始设置具体的long,而且在这里需要注意start和end的设置是有区别的,start无需加1额,而end在计算之后还需要加1转化为时间轴中的具体的值。

五.文本输入

这里最让人烧脑的就是不知道怎样将各类中的各对象输入到程序中,这里可以给一个提示

“Employee(.*)”表示进入到Employee的花括号中读数据。

六.API的复用实现

这里的实现都不是很难,主要的思想都是遍历图以及进行重复循环即可。

这就是本次实验的难点,但是更大的难点其实在于APP内的各种方法的实现,但是由于不同的人设计不同,无法进行讲解。

最后总结一下对这次实验的感想:

  这次试验实在是非常的“充实”,尤其在期末的时间点上设计了这个实验,写得让人太焦虑,强烈建议老师将这个实验往前安排或者拆开进行安排。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值