自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 HIT-软件构造blog-LSP

LSP(Liskov Substitution Principle),里氏替换原则,是面向对象的最重要的几大原则之一。其提出者是Barbara Liskov,2008年图灵奖获得者。LSP定义为:If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is

2021-07-07 19:15:43 121

原创 HIT-软件构造blog-软件构造课程的内涵思考

我正在复习的这门课叫做“软件构造”。我以为,叫做“软件构造方法”可能更为合适。这样,能够让学生更能看出这门课程的本质,而不是在学习的过程中(甚至是期末)才体悟到。其实这门课是面向工业的课程,而非面向理论问题(指计算机工业和计算机理论问题)。整门课其实是一套方法论,只是恰好用于管理软件,软件的载体恰好是计算机,所以我们计算机的学生需要上这门课。课程的内容并非面向机器,主要是面向人类。它极力针对的不是如何帮助人类设计某种工具,而是如何让人类适应已经设计好的工具。具体地,课程的理论有助于提高开发效率,而对程序

2021-07-07 00:02:49 129

原创 HIT-软件构造blog-Java Calendar类

一直以来有一种感受,就是日期类这个东西是个神奇的东西。我觉得各编程语言中的日期类都不是面向为了肝大作业的学生设计的。在Lab3里,我只是想朴素地设置一个日期,忽略时间,但却比较麻烦。尤其是在实验要求的三个App中的一个里使用了经典的基于毫秒的时间,出现了各种舍入bug。感觉Java Calendar类相对比较友善。它其实相当于一个表,存了很多字段,比如YEAR,存的是年份;MONTH,存的是月份。很多情况下(尤其是对于这种学生实验)比那种只能存一个毫秒数的方法好用很多。我用到了这么几个方法:

2021-07-05 05:49:15 146

原创 HIT-软件构造blog-有关实验三(2)

在Lab Manuals中,要求我们实现IntervalSet和MultiIntervalSet,但又说,可以考虑将二者进一步抽象形成一个更高层次的ADT,进而使用一个ADT来代替这两个。说实话,我真的挺想这么办的。但是感觉大家都没有这样做,玩意我写不出来没有人可以交流病情,于是就放弃了。但是还是简单设想了一下。Lab Manuals中的3.4.1节,介绍了三个维度上的差异。我的考虑是,是否是Multi的,也是一种差异,也就是我们总共要处理4个维度的差异。只是Lab Manuals认为,其中一种的地位与

2021-06-25 01:14:35 92

原创 HIT-软件构造blog-有关实验三

最近在做实验三,室友xh做的比较快,我看了看他的代码,帮他改进了一个小问题。故事是这样的:首先,xh对MultiIntervalSet的实现方法是:创建一个map,让每个label都映射一个IntervalSet,这个IntervalSet的label是整数:1,2,3…,然后每个整数对应一个Interval。这样,就实现了一个label对应多个Interval,并且每个Interval还有编号,进而实现了MultiIntervalSet。xh可能是为了实现的方便,对一个Interval的删除操作是,将

2021-06-23 05:24:53 287

原创 HIT-CSAPP大作业

摘要本文是计算机系统课程的课程作业,旨在研究hello程序在Linux系统下的整个生命周期,包括其预处理、编译、汇编、链接,以及其进程管理、存储管理和IO管理。本文以CASPP教材为本,通过实践将其中内容落实并展现出来。关键词:CSAPP;生命周期;Linux;计算机系统第1章 概述1.1Hello简介P2P过程:在Linux系统中,hello.c程序通过cpp的预处理、ccl编译、as汇编、ld链接最终成为可执行目标程序hel...

2021-06-23 04:57:44 273

原创 2.4 【高精度】 FJOI2007 轮状病毒

FJOI2007 轮状病毒传送门:https://www.luogu.org/problemnew/show/P2144暴力找规律 发现n=1~5时答案是1,5,16,45,121 奇数项是平方数,偶数项是平方数减4 1,5,16,45,121 分别是1^2,3^2-4,4^2,7^2-4,11^2 1,3,4,7,11这个数列有类似于斐波那契数列的性质,只不过前两项是1和3罢了

2018-02-04 15:03:02 221

原创 2.4 【树链剖分】 HAOI2015 树上操作

HAOI2015 树上操作题目描述有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。输入格式第一行包含两个整数 N, M 。表示点数和操作数。接下来一行 N 个整数

2018-02-04 13:55:53 269

原创 1.31 【可持久化线段树】CQOI2015 任务查询系统

任务查询系统题目描述最近实验室正在为其管理的超级计算机编制一套任务管理系统,你被安排完成其中的查询部分。超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi。同一时间可能有多个任务同时执行,它们的优先级可能相同,也可能不同。调度系统会经常向查询系统询问,第Xi秒正在运行的任务中,

2018-01-31 23:23:13 154

原创 1.20 【树链剖分】 NOI2015 软件包管理器

Linux 用户和 OS X 用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu 使用的 apt-get,Fedora/CentOS 使用的 yum,以及 OS X 下可用的 homebrew 都是优秀的软

2018-01-20 21:26:51 191

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除