停止并重新启动秒表

时间:2013-03-26 21:44:40

标签: java

这比较了使用Math.sqrt和牛顿方法查找平方根所需的时间。我应该添加方法,允许客户端停止并重新启动秒表,但我不知道如何做到这一点。不幸的是,搜索其他问题并没有带来太多运气。因为这是一个课程,我不希望给我一个完全的答案,但是一些建议,或者关于如何实现我的目标的教程的链接将是很好的。谢谢你的帮助。

public class Stopwatch 
    {
private final long start;

public Stopwatch()
{ start = System.currentTimeMillis(); }

public double elapsedTime()
{
    long now = System.currentTimeMillis();
    return (now - start) / 1000.0;
}

public static void main(String[] args)
{
    int N = Integer.parseInt(args[0]);

    double totalMath = 0.0;
    Stopwatch swMath = new Stopwatch();
    for (int i = 0; i < N; i++)
        totalMath += Math.sqrt(i);
    double timeMath = swMath.elapsedTime();

    double totalNewton = 0.0;
    Stopwatch swNewton = new Stopwatch();
    for (int i = 0; i < N; i++)
        totalNewton += Newton.sqrt(i);
    double timeNewton = swNewton.elapsedTime();

    System.out.println(totalNewton/totalMath);
    System.out.println(timeNewton/timeMath);
}

}

2 个答案:

答案 0 :(得分:0)

创建另一个名为timeElapsedUntilLastStop的属性为long的属性。

创建一个名为stop的方法,它完全按照elapsedTime执行,但不是返回添加到当前值timeElapsedUntilLastStop

restart()方法应初始化应该足够的start变量。

答案 1 :(得分:0)

很高兴你诚实地说这是为了一堂课而且你不想给你答案。这是学习的良好开端:)

以下是我将如何处理任务:

首先,我只是定义缺少的方法。然后,我开始编写(作为内联注释)方法应该做什么。重置秒表意味着什么,停止它意味着什么?你可以画出“现实生活”秒表的相似之处。这应该让您开始思考,一旦您定义了规则,就应该可以将其转换为代码。

也许这比你想象的更抽象,但我相信你会以正确的态度到达那里,就像你似乎有的那样!祝你好运!