https://github.com/Centurybbx/sp18-century/tree/master/proj0

proj0的具体实现在上面的Github中。

在proj0中我明显感受到国外大学对于教学课程的严谨性和权威性,之前只是听说过测试(刚学习的小白),没想到在CS61B中老师为了方便测试学生所写代码的准确性,提前写好了不少测试类,直接运行即可。并且它的教程完全是保姆式的,完全是在手把手的教课,对于新手程序员来说简直是不要太好。

下面主要谈一下它的设计方面:

这个项目里面其实自己并没有写多少高大上的代码,感觉它的实现还是挺简单的,主要是基于牛顿定律和一些物理公式的推导得出来的。但是它的设计却让我感觉非常巧妙,例如在Planet中它先是循序渐进的让我们写出一个calcDistance(Planet p)方法来计算两个天体之间的距离,随后根据这个写calcForceExertedBy(Planet p)方法,用来计算两个天体之间的引力作用。随后又引出calcForceExertedByX(Planet p)和calcForceExertedByY(Planet p)两个方法来计算X和Y轴上力的分量,最后再写出calcNetForceExertedByX(Planet[] ps)/calcNetForceExertedByY(Planet[] ps)引用上面的方法来计算出多个引力作用的结果,感觉很妙!

总体来说这个项目还是挺简单的,因为好多轮子已经造好了,比如StdDraw/In这些工具类已经封装好了很多方法,直接看着API文档调用就好了。

-------------------------------------------------------------------------------------------------------

刚刚用gradescope评估了一下评分,发现它提示我有一点小问题——原来是变量作用域的问题,我用public修饰的G(一个系数)要改为private.....这真的好严谨,爱了爱了!这课不好好学完全是浪费啊!

proj0的具体实现 #CS61B-sp18的更多相关文章

  1. CS61B sp2018笔记 | Lists

    Lists csdn同作者原创地址 1. IntLists   下面我们来一步一步的实现List类,首先你可以实现一个最简单的版本: public class IntList { public int ...

  2. CS61B HW0

    The Enhanced For Loop public class EnhancedForBreakDemo { public static void main(String[] args) { S ...

  3. CS61b proj1a

    得分46.25有一个点的bug不会修(希望大佬带我),style没有注意.1.LinkedListDeque.java public class LinkedListDeque <T>{ ...

  4. diff and patch

    A patch captures the changes of two different files (oldfile and newfile). Given the oldfile and the ...

  5. 麻省理工18年春软件构造课程阅读02“Java基础”

    本文内容来自MIT_6.031_sp18: Software Construction课程的Readings部分,采用CC BY-SA 4.0协议. 由于我们学校(哈工大)大二软件构造课程的大部分素材 ...

  6. Java学习资源整理(超级全面)

    这里整理一些自己平常搜集的比较好的关于Java的学习资源,主要包括博客站点.书籍.课程等. 了解Java最新资讯 这部分主要是了解与Java相关的动态以及信息,能够拓展我们的视野以及寻找一些好的ide ...

  7. Java中的Iterable与Iterator详解

    在Java中,我们可以对List集合进行如下几种方式的遍历: List<Integer> list = new ArrayList<>(); list.add(5); list ...

  8. CS61A hw01

    前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...

  9. 1732157 - Collecting diagnosis information for SAP HANA [VIDEO]

    Symptom SAP Support asked you to provide a collection of the relevant diagnosis files (also known as ...

随机推荐

  1. Python-使用tkinter实现的摇骰子小游戏

    贴吧看到的一个求助题,大致需求是:3个人摇骰子,每人摇3次,点数之和最大的获胜,支持玩家名称输入.我觉得这个题目挺有意思的,做了个界面程序,欢迎大家交流指正~ #!usr/bin/env python ...

  2. 查看笔记本SN序列号

    https://www.pstips.net/getting-computer-serial-number.html $ComputerName = $env:COMPUTERNAME $serial ...

  3. HotSpot的类模型(2)

    在前一篇文章 HotSpot的二分模型中已经讲过,HotSpot采用了OOP-Klass模型描述Java的类和对象.Klass模型采用Klass类及相关子类来表示具体的Java类,可以理解这些类为Ja ...

  4. 听说你还不知道CompletableFuture?

    java8已经在日常开发编码中非常普遍了,掌握运用好它可以在开发中运用几行精简代码就可以完成所需功能.今天将介绍CompletableFuture的在生产环境如何使用实践.CompletableFut ...

  5. CSS Sprites精灵图(雪碧图)

    简介 CSS精灵图,是一种网页图片应用处理方式.允许将一个页面涉及到的所有零星图片都包含到一张大图中 利用CSS的"background-image","backgrou ...

  6. Python——操作smb文件服务器(上传和下载)

    最近在做上传和下载,然后文件比较大和多,就用到了文件服务器,文件服务器是实体机 ,不是在本地, 然后用python 通过pysmb模块就可以直接进行操作 mac选择前往.连接服务器去查看文件服务器里都 ...

  7. Django初级之django简介

    1.Django简介 Django是Python语言中的一个web框架,Python语言中主流的web框架有Django.Tornado.Flask 等多种.Django相较与其它WEB框架,其优势为 ...

  8. 十年老苹果(A1286)强升Catalina及Win10踩坑记

    前言 手头有一台十年老苹果,MacBook Pro,A1286,连视网膜屏都没有,电池也早就衰减以后直接拆掉了(减重). 早些年用得还挺多,后来家里也弄了台式,用得逐渐少了,再后来时不时Windows ...

  9. display:inline-block 什么时候不会显示间隙?

    移除空格 使用margin负值 使用font-size:0 letter-spacing word-spacing

  10. python 生成器(四):生成器基础(四)标准库中的生成器函数

    os.walk 这个函数在遍历目录树的过程中产出文件名,因此递归搜索文件系统像for 循环那样简单. 用于过滤的生成器函数 模块  函数  说明 itertools  compress(it,sele ...