OO面向对象课程作业1-3总结】的更多相关文章

作业一.多项式的加减运算 1.设计要点与自我分析 我设计的类图 老师建议类图 我设计了两个类来进行多项式的计算,类Polynomial进行多项式的存储和输入输出,第二个类进行多项式加减运算.而加减运算的类里面只有方法,而且都是静态方法,没有存储变量,感觉这个设计还是有些问题.之后我也参考了一下别人的代码. 多项式的存储: 我用的是一维数组来存储多项式,下标代表的是多项式的次数,数组存储的是多项式的系数,这种存储方法对于多项式加减法的操作很方便,但是浪费的空间大,因为很多系数是0:而且存储多项式加…
测试与正确性论证的效果差差异 测试和正确性论证都是对程序进行可靠性的验证. 测试: IEEE提出了对软件测试的定义:使用人工或者自动的手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或者弄清预期结果和实际结果之间的差别.它是从对程序的实际操作来对运行结果和期望的结果进行比对,实质上只是一种抽样检查,只是一种查错的手段,它可以帮助人们去发现程序中的错误,但不能证明程序中没有错误,即:测试不能证明程序是正确的.测试又分为黑盒测试和白盒测试: 黑盒测试把测试对象看做一个黑盒子,测试人…
嘛..不知不觉这门课程要结束了,那么就再说点啥以示庆祝呗. 测试vs正确性论证 说到这个,相比很多人对此其实很有疑惑,请让我慢慢分析. 逻辑概览 首先我们来看看两种方式各自的做法和流程是什么样的: 单元测试 在测试中,我们是这样的一个流程 此外,为了保证测试能覆盖到工程代码的每一个区域,需要保证测试的覆盖率. 正确性证明 在证明中,我们是这样的一个流程 在这一过程中 基于行为分析的repOk永真性证明依赖于JSF中的modifies项 方法正确性将基于JSF中所描述的effects和requir…
THE LAST ONE!! 2017<面向对象程序设计>课程作业八 031602230 卢恺翔 GitHub传送门 题目描述 1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否还想继续迭代优化你们计算器项目的作业呢?本学期最后一次博客作业,请大家描述: 从寒假到这次结束,经历的博客及编码作业的过程; 通过博客作业学到的知识.理论或技能: 博客作业结束时的感受: 暑假要如何规划,请立下你们的flag. 2.请将第六次博客作业中学习到的界面编程运用到本学期的面向对象计算器项目中. 作业…
面向对象作业 作业_定义学校老师课程班级学生类.py #面向对象编程作业,定义学校老师课程班级学生类 #定义几个类,尽可能定义多的数据属性及函数属性 class School: def __init__(self,name,addr,type): self.name = name self.addr = addr self.type = type def shang_ke(self): print('[%s]学校正在上课'%self.name) def zhao_sheng(self): pri…
OO面向对象第一单元总结(表达式求导) 写在前面: 魔鬼课程oo第一单元终于结束,当终究要落笔总结,竟不知从何写起…… 回首再去看第一次的作业,你会满足于那时的幸福,或许,这就是成长吧! 千言万语,一切尽在无言中…… 知识点总结: 对象,类 面向对象的编程思想 封装.继承.多态.抽象 接口 重写 …… 作业代码思路: 本单元的三次作业是一个层层深入的关系,我认为,虽然“推倒重来”式写法十分不可取,但对于一个刚刚接触面向对象思想的新手来说,也可能是不可少的一个环节,我们能从自己推倒重来的过程中,逐…
OO~第二次作业总结 连续三周的电梯作业结束了,总的来说这三次作业做的还算平稳,既没有被刀,也没有刀中别人.那么接下来开始谈谈我对这三次作业的认识. 一.设计策略 我三次作业的设计思路基本上是相同的,电梯主要分成了三个线程,即Input(输入线程).Scheduler(调度器).Elevator(电梯).在这三个线程之间通过两个不同的托盘进行数据交互,即把输入线程输入的电梯指令放入调度器的ArrayList中,然后再用傻瓜调度算法/可稍带算法将相应指令传给电梯,最后电梯执行指令并输出相应结果.…
oo面向对象--规格化设计 规格化设计与抽象 要了解规格化设计首先要了解抽象化的程序设计,两者是密不可分的. 抽象化(Abstraction) 抽象化是将数据与程序,用语义呈现他们的外观,但是隐藏起它的实现细节. 抽象的过程可以看做多对一的映射,让我们忽略个体信息,将不同事物当做相同的事物对待,能够减少程序的复杂度,使得程序员可以专注在处理少数重要的部分. 发展 近几年来,程序员对已经产生的抽象水平产生不满,甚至不满足于在高级语言程序中普遍实现的抽象水平,解决这个问题的方法在于创造"更高级的语言…
第一次OO博客作业 前言 面向对象课程已经经过了4周的时间.前三次作业全部是关于多项式求导的相关内容,内容由易到难,同时我也开始逐渐深入感受学习面向对象的各项特征,逐渐将自己的编程风格从C向真正的面向对象语言转换.同时我还接触了DEBUG和互测屋这样崭新的学习方式,在阅读别人代码的过程中不断增强自己的编程能力和学习能力. 本篇博客将结合3次作业内容,分别从题目的理解思路,代码风格和度量,BUG的产生以及修复和Applying Creational Pattern共4个方面分析我这四周以来的工作.…
OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对象转变.本文中,我将介绍我个人每一次作业的做法,以及三次作业的分析,互测时策略. 第一次作业 第一次作业由于只对多项式进行求导,求导的函数只有幂函数,项与项之间仅有和关系,因此处理起来比较简单,输入可以使用正则表达式提取数据,存储可以使用HashMap,这样可以很方便的实现合并同类项,输出也只需要判…
目录 OO--求导作业总结 程序结构的分析 第一次作业 第二次作业 第三次作业 对多项式合法性判断的讨论 程序bug的分析 未通过的互测bug bug的位置与程序结构的关系 继承和接口的使用 互测 手动构造样例 对拍器评测 两种评测方式的优缺点 Applying Creational Pattern 总结 OO--求导作业总结 程序结构的分析 第一次作业 1.设计思路 在第一次作业中,我设计了两个类:PolyDerivation(主类).Poly.main(String[])函数存在于PolyD…
oo第二单元作业总结 一.设计策略与质量分析 第一次作业 设计策略 在第一次作业之前,我首先确定了生产者--消费者模式的大体架构,即由输入线程(可与主线程合并)充当生产者,电梯线程充当消费者,二者不直接交互,而是在Controller类的成员变量等待队列中不断取出或放入请求以达到交互的目的.而对于调度器位置的考虑,我将其与电梯线程合并,即从宏观上来看,电梯本身不断与请求队列交互,并按照自己的策略决定是否移动.开关门等(这一架构正是后两次作业中无为而治的基础).在此基础上,添加一些线程结束的判断以…
OO第一单元作业总结 第一次作业 基于度量分析代码结构 基本算法 第一次作业是简单多项式导函数求解,不需要对输入数据的合法性进行判定, 基本思想是用 (coeff, expo)表示二元组 coeff*x**expo,而多项式中的每一项都可以以二元组的形式存储,这样做的好处在于多项式的每一项存储形式规范单一,求导规则随之变得很简单,再加上由于不需要考虑输入数据的合法性与否.化简相对简单,使得实现很快. 当然缺点也很明显,可拓展性很差,只能支持简单的多项式,下一次迭代必须得重构了. UML类图: 耦…
Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型项目或产品型项目(有换数据库需求的),大规模使用js编写业务逻辑,把后端大力简化为一个rest接口的数据库驱动2 1.3. 小部分模块,重视安全的,使用后端业务逻辑模式2 1.4. 貌似比较理想的模式 前端h5(ui界面)+js(业务逻辑)+rest(通讯层)+ sql(业务逻辑)+数据库(存储)2…
Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没有学习过JavaScript(jQuery),这个学期重新学习了一遍之前学习过的又学了些脚本语言.结合自己平时有点编程基础,学起来也挺快了,作为学期作业(自定任务),我尝试着去实现360极速浏览器的新标签页(刚开始也没有很好的想法,自己一直比较喜欢360极速浏览器'不是下广告',学校机房也没有联网,本来还想做…
1.设计思想: 首先是从JavaAppArguments.java示例开始,此示例已打印参数,定义数字 之和和作为存储单位的整型,然后将输入参数的字符串转化为整型,之后求和即可. 2.程序流程图: 3.程序源码: //课程作业01 //李慧,2016.9.20 package demo; public class CommandParameterSum { public static void main(String[] args) { // TODO Auto-generated method…
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一  三个基本的特性:封装.继承与多态1 1.2. 魔术方法 预定义方法2 1.3. 魔术常量(Magic constants) 预定义变量2 1.4. 适用领域 js php java c#2 1.5. 构造函数 __construct( ) vs xxxCls()3 1.6. 析构函数名称必须是__destruct( )  finally()3 1…
1  概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2  七大OO面向对象设计 2.1 单一职责原则SRP(Simple Responsibility Principle) 单一职责原则,就是一个设计元素只做一件事.什么是“只做一件事”?就是少管闲事.现实中也是如此,如果让一个人认真的去做一件事,那么任何人都有信心可以做到很出色.就一个类而言,应该仅有一个引起它变化的原因,如果你能想到两个…
coursea机器学习课程作业 一 关于此课程 课程地址 图片来自网络 1.官网课程地址传送 2.如果访问官网速度较慢可以上 B站课程地址 机器学习是一门研究在非特定编程条件下让计算机采取行动的学科.最近二十年,机器学习为我们带来了自动驾驶汽车.实用的语音识别.高效的网络搜索,让我们对人类基因的解读能力大大提高.当今机器学习技术已经非常普遍,您很可能在毫无察觉情况下每天使用几十次.许多研究者还认为机器学习是人工智能(AI)取得进展的最有效途径.在本课程中,您将学习最高效的机器学习技术,了解如何使…
OO第二单元作业总结 在第二单元作业中,我们通过多线程的手段实现了电梯调度,前两次作业是单电梯调度,第三次作业是多电梯调度.这个单元中的性能分要求是完成所有请求的时间最短,因此在简单实现电梯调度的基础上,我还使用了一些调度算法来追求性能分,但是效果上不是很理想,只能勉强获得90分,在这里我想把我自己的做法写出了,供大家参考. 本次作业分为以下部分,三次作业实现介绍(包括调度方法), 总结作业.请读者各取所需. (注:本次电梯的全部调度算法仅针对作业题目,对实际情况并不相符) 三次作业实现 第一次…
Java面向对象课程设计——购物车 小组成员:余景胜.刘格铭.陈国雄.达瓦次仁 一.前期调查 流程 客人(Buyer)先在商城(Mall)中浏览商品(Commidity),将浏览的商品加入购物车(Shopping Cart),最后通过购物车生成订单(Order),在购买时填写顾客地址信息(address),购买结束. 二.购物车 1.图表 业务流程图 功能结构图 UML图 2.包 包结构 3.类 (代码中均省略了自动生成的getter/setter) Mall 代码 public class M…
# classtop_urls.py # ————————64PerfectCRM实现CRM课程排名详情———————— from django.conf.urls import url from bpm.coursetop import coursetop_views urlpatterns = [ url( r'^coursetop_details/(\d+)/$', coursetop_views.coursetop_details, name="coursetop_details&quo…
OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一单元进行总体性的反思总结,请各位助教和同学们批评指正! 一.程序结构分析 1. 代码规模度量 第一次作业 类 类总代码规模 类属性个数 类方法个数 "MainClass" 8 0 1 "Polynomial" 150 10 4 "Term" 36 2…
第一个单元的三次作业均为求导,循序渐进的让我们掌握如何构造类和方法,让整个代码是面向对象的设计而不是面向过程的设计.如果第一次作业和第二次作业你只是简单的对过程着手架构类,到了第三次作业就会变得格外麻烦.掌握了面向对象创建多个类.分层次地实现每个类的功能,并梳理清楚继承与接口处理每个类的思路,便能够游刃有余地解决. 一. 总体设计思路 第一次作业 第一次作业时,还没有建立面向对象的程序设计思维和架构类的思路,因此整个代码采用面向过程,只构建了一个类,用多个方法划分,来处理输入并打印出求导的结果.…
面向对象第三次作业总结 一.JML基础梳理及工具链 注释结构 行注释://@annotation 块注释:/*@ annotation @*/ 两种注释都是放在被注释部分上面. 常见表达式 原子表达式 \result表达式:表示一个方法执行所获得的结果,即方法执行后的返回值.这里此表达式的类型根据被注释的函数的返回值而定. \old(expr)表达式:用来表示一个表达式expr在相应方法执行前的取值.当expr有被修改时,使用此表达式,表示expr被修改之前的值.这里有一点需要注意,对于一个引用…
Github链接 在看完这次的作业要求后我整个人是混乱的,因为作业要求把不同的函数放在一个main函数中:我们之前也是进行了函数分离,但是是放在了不同的文件中.如果要改的话相当于重写(而且这两种形式其实也都是在调用函数),绝不是星期日一个小时就能做完的,所以我和助教聊了一下: 在得到助教的回答后我又重新看了一遍代码,发现我们之前写的代码功能都混在一起了,没有办法完全分离成不同的函数,所以还是要重构.... 作业感想 虽然代码达到了要求,但是我还是不太了解到底什么是模块化,所以我又上网查了一下,看…
第五次作业:多线程电梯调度 设计策略 ​ 在本次电梯作业当中,我构造了一个电梯请求队列线程,一个调度器线程,三个电梯线程,一个文件输出线程,还有主线程. ​ 调度器扫描用户的请求队列,将每个队列分配给符合要求的电梯,每个电梯有自己的请求队列,电梯根据自己的请求队列来改变自身状态. ​ 同步控制主要包含两个点:用户请求队列会被调度器和请求队列输入线程操作,需要进行同步控制,电梯内部的运行队列也会被电梯本身和调度器操作,也需要进行同步控制. ​ 同步控制上,我用了synchronized关键词和wa…
C++计算器项目计算部分 零.项目源文件地址 地址:Calculator 2.0 一.项目信息相关 项 目 : Calculator 版 本 : 2 . 0 日 期 : 2016 . 4 . 14 实 现 : 对常规四则运算表达式的计算 对不常规表达式的判定 二.相关界面截图…
C++计算器项目初始部分 零.项目源文件地址 传送门:calculator 一.项目信息相关: 项目:Calculator 版本:1.0 日期:2016.2.16 实现: 基本的操作界面 对四则运算表达式的拆解 对一些基本表达式错误的判定 二.相关界面截图 三.过程中遇到的问题 项目本身没遇到什么问题 要上传到Github的时候忘记命令行怎么用了,又折腾了一会,多亏了汉犇犇带飞Orz...总算传上去了...…
一. 规格化设计   规格化抽象,即将执行的细节抽象为用户所需求的行为(模块做什么). 主要作用在于提高工程设计中的可维护性,可读性,明确功能,使整个编程任务变得清晰有序以减少程序BUG. 说其发展历史,似乎显得有些牵强,因为“规格化设计”这个标准的概念还没有得到广泛运用以至于百度上进行查找全都是北航同学的博客……不过类似的规范化设计仍然在计算机编程中发挥着比较重要的作用,在面向对象中,其主要衍生于数据抽象和过程抽象这样的初始概念,之后由于代码维护的重要性结合面向对象的特点产生了规格化设计的概念…