第四次到第七次作业的总结

  本次作业令我印象最为深刻的便是南水北调工程的程序设计,即水文数据校验及处理,在设计程序时,数据输入完成后并不是可以直接使用的。并且如果录入的过程中出现了哪怕一些小错误也会使程序立马终止。所以在录入之前,我将输入数据先进行处理,将录入的“/”处理出来,将日期进行分割后录入数组中,这样方便了整体输入的数据处理。所有的数据全部都是字符串形式进行录入,这样就可以避免数据录入的错误而使程序终止,;其次以空格和行结束符作为数据间分 隔标志;f茸将每个数据以单个字符读入;最后,对单个字符进行以上_三项 检查。数据的有效位检查。在现代的水文规范中,对水文数据的有效位 数有着较为严格的规定,如水位须精确至小数点后两位;本次作业关注在调度指令发出后,各分水口门的实际调水情况,其业务流程如下:分水口门接收到调度系统下发的调水指令后,其闸门按照调度指令进行自动调整到指令要求的开度(GateOpening),其调水数据由数据报送员每两个小时(偶数整点)通过观测设备(人工观测、自动观测)上报至调度中心,调度中心统一收集,经过校验后形成调水日报表,最终报送给南水北调中线工程办公室及水利部。在程序设计后所输入输出的数据如下:

 

第二次测试的数据:

 

   而在蒙特卡罗方法求圆周率的题目中,我首次接触了蒙特卡罗方法,这也让我意识到,如果想要设计出好的程序,学好数学也是必不可少的。而通过查询资料我了解到,蒙特卡洛方法在金融工程学,计算机物理学等中扮演了十分重要的角色,而何为蒙特卡罗方法,便是进行随机投点的方法,通过在计算面积内的点数与所有点数的比,计算出所需求值的面积。而在程序设计中,有所难度的便是如何随机投点和设计坐标的部分程序,部分代码如下:

 而输入和输出数据如下:

 

 虽然输出答案仅仅是简单的三个数据,但是其中进行的计算是难以想象的,而这种投点的方法类似于数学中的极限求面积的方法,当所投点越来越多时,求出的面积也无限接近于其真正的面积。

  第四次作业的第三题便类似于我们之前做过的图形继承不过此次增加了球类和立体体积类,不过这种题目的大体方法与之前并无出入,所注意的便是类中定义方法的设计和类继承过程中的方法重写,同时构造方法也是极为重要的。

  对于类的继承的使用,其实是在代码的编写过程中,难免有不同的类会有一些相同的特性和行为。对此,我们可以创建一个父类来对其归纳和统一,而继承父类的类被称为子类,使用extends进行继承,而在父类中表达的共同之处,会被其他类所共享。子类可以从其父类中,继承可访问的数据域和方法,还可以添加新的方法和数据域。对于继承的使用可能有一些普遍的误解,譬如,可能认为子类是父类的一个子集,其实不然,大部分情况下,子类所包含的信息和方法通常比其父类要多,还有,在子类中不能直接使用父类中的数据域,不过,如果在父类中定义了公共的访问器或者修改器,那么可以通过这些公共的访问器和修改器来访问或者修改它们。并且,Java程序中不允许多重继承的出现,多重继承,即多个父类被一个子类继承,在Java中存在单一继承的限制,而若需要进行多重继承,则需要借助接口来实现。其次,在构造方法用于构造一个类的实例中,需要使用super(arguments)语句,调用与之匹配的父类的构造方法。在类被定义时,没有指定继承哪一个特定的类,则这个类默认继承于Object。

  第六次作业中的一元计算程序设计花费了我很多的时间,其中我接触到了栈的建立与使用,与c语言相比,Java中的stack函数使用,使程序设计的时间大大减少,而该题中十分重要的一点便是如何判定各个计算符号的优先级,比如“()”该符号的优先级大于+-*/等符号。而从栈中提取这些符号也大大方便了计算。

  第七次作业的卡片排序游戏中,我使用了队列,也与c语言中的队列大体相同,这也让我意识到了,想要学好Java,有好的其他语言的基础是必不可少的,因为对于电脑来说,了解电脑底部如何运行是最为重要的,若是理解了这些,在任何语言中都能开发出想要的程序。

 

 

猜你喜欢

转载自www.cnblogs.com/xy0509/p/13189327.html