oo作业总结(二)】的更多相关文章

概述 和前三次作业相比,这几次作业最大的不同是难度的飞跃.遗憾的是在这难度的变化面前,我自己却没有做好充分的准备,错误的低估了作业难度导致给自己带来了很多不必要麻烦和损失.接下来我将对它们进行说明(度量图工具出了故障一直无法生成请原谅). 设计简介 第五次作业 这是oo课程第一次多线程作业,我自己也体会到了它的难度.我的设计思路是首先够早一个调度器类(以上类图的scheduler类),负责管理各种实时输入的指令,然后是有三部电梯在各自独立的运行着,每当有新的指令输入时,首先判断是否是同质指令,然…
作业十二 规格化设计简介 规格化设计的发展历史 1950年代,第一次分离,主程序与子程序的分离结构是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过程:分析-设计-编码-测试,使大型软件系统的开发成为可能. 1975-1980年代,第二次分离,规格说明(Spec)和体(body)的分离说明是类型定义和操作描述,体是操作的具体实现.(具体的例子就是C++,Java等面向对象语言的类说明与类实现的分离.)解决方案设计只关注说明,实现时引用或者设计体…
作业十五 测试与正确性论证的效果差异 程序的测试需要通过输入特定数据等方式,检查程序是否和预期相同,因为测试不可能穷举,导致了不穷举的测试不可能验证程序是完全正确的,只能验证程序在测试时没有发生错误,尽管如此,测试依然是一种高效的检查程序的方法,通过输入数据或复现现场,直观的发现代码的问题,进而在代码中找到问题的来源并修正. 程序的正确性论证是在用户提出需求后,进行规格撰写后,论证程序是否符合规格的过程.因为规格往往是布尔型或自然语言,对程序员来说并不如代码和测试数据直观,且工作量巨大.但相应的…
概述 经历了三次oo作业的洗礼,让我对java语言的强大以及面向对象编程有了初步的理解(当然,我是小白).本文接下来就将对自己这三次作业的代码进行分析以及分享自己的心路历程. 基础知识点考核 针对前三次作业,我列出了这其中涉及到的主要的知识点: java基础语法 java正则表达式(注意不要爆栈) 对java封装.继承.多态.接口的理解 程序的构思能力 当然,还有最重要的还是阅读和理解指导书的能力,能够在较短的时间内准确无误的理解指导书的意图也是必需的能力之一. 程序结构分析 作业一:多项式计算…
oo第一次博客 以前从未真正的写过Java代码,接触Java也只是寒假的时候简单的看了看语法,不懂该如何面向对象,但没事,心里不惧,想着什么都是可以学的(直到真正开始写工程的时候,才发现自己还是太天真了),就这样开始了OO学习这条不归路. 一.三次作业的实现过程分析 第一次作业 第一次作业是多项式加减运算,首先我用c语言写了一遍,基本熟悉题目的具体要求,当用Java去写时,我遇到了下面一系列的问题(具有难度等级): 1. 该如何划分类,如何面向对象编程: 2.正则表达式是什么: 3.该如何用Ja…
前言 在经过了三次艰辛的oo作业后,oo课程的第一单元告一段落,这一单元,我作为一个oo小白,开始了解oo的编程思想,也有了自己的一点心得体会.把笔粗成字,不当之处,还请各位大佬多多指教. 一.分析程序结构 第一次作业: 在第一次作业中,由于刚刚开始接触oo的思想,我还不是很了解面向对象的编程方法,还是按照c语言的思路,将deriviation作为main函数,在deriviation中调用number类,完成运算. 具体的操作思路,则是使用正则表达式构造出因子与项,通过正则式匹配来得到每一个项…
1.总结本单元两次作业的架构设计 在我动手开始总结我的设计之前,我看了其他同学已经提交在班级群里的博客,不禁汗颜,我是真的偷懒.其他同学大多使用了新建一个类,用以储存每一个UMLelemet元素的具体信息(当然这个类的形式可能是结构.map等等,但核心思路大体一致).在设计这个类的时候,大多数同学都遇到了困难,耗费了大量的时间精力. 下面我来讲一下,我的第一次作业的架构设计: 最开始,我查看方法描述,考虑如何实现方法的时候,惊喜的发现,UMLelemet数据类型的对象是可以实行操作的!这样一来,…
测试与正确性论证 测试是通过构造一系列测试数据,通过对比程序的实际运行结果和预期输出结果来判断程序是否有bug的一种手段.同时,在测试的时候是默认看不到程序的具体实现的,即进行黑盒测试,例如每次OO作业的互测阶段.测试的具体方法是将输入进行划分,通过构造一个错误分支树,然后每个分支构造一个或多个测试样例来对程序进行测试.其手段简单,易于实现,通常情况下可以覆盖大多数情况.但也可以看到通过测试的话是需要大量的测试数据的,如果在输入很麻烦的情况下,需要花费大量的时间.同时,就算所有的测试输入都是正确…
团队作业(二):团队选题 题目四:基于Android的文件加密系统 系统名称:ASB 一.引言 1.1编写目的 (1)学习并熟悉掌握AES/DES加密算法的原理以及算法 (2)学习并熟悉Android Studio的使用 (3)编写算法实现在Android移动终端基于AES/DES等加密算法对文件的加解密 (4)完善程序形成良好的用户体验 1.2编写背景 (1)大数据时代,个人信息隐私的保护十分重要,以此为契机,在Android平台上开发出一个APP,供人们使用,随时随地实现对文件的加解密,保障…
规格设计的发展历史 随着计算机软硬件的发展,代码的复杂程度也在不短增加,随着计算机软件规模日渐庞大,结构化程序设计方法开始无法满足用户的需求,面向对象程序设计产生.面向对象程序设计是一场重大的革命,提高了开发人员的效率,有效的控制了软件开发的复杂度,提高了软件的可维护性和可拓展性.一个复杂,功能强大的程序,往往不只是由单个人员设计而成,需要多人的合作,各司其职,再把多人的工作整合起来,而要达到多人为一份作业服务,就需要要求代码的规格化,提高程序的规范性以及程序的模块化划分. 这样使得程序设计的数…