自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(317)
  • 资源 (6)
  • 收藏
  • 关注

原创 Ruby中的self、作用域和可见性

self所指的是当前或者默认对象,是一个在程序运行中依次分配给许多对象的角色。

2023-10-30 18:05:40 661

原创 Ruby模块和程序组织

在类中定义一个方法两次,第二个定义将会取代第一次。这在模块中依然如此。对象的方法可以从任意数量的类和模块中获得。一个对象在其查找路径中有两个同名方法的另一种情况是:当一个类混合了两个或多个模块时,将搜索到方法的多个实现。这样的例子中,按照包含的逆序查找模块,这意味着最新混合到类中的模块将最先被搜索到。假如最新混合得到类的模块包含一个同名的方法,其方法在早先被混合的模块中出现过,最新被混合的模块中的那个版本的方法将会占据优先级,因为新混合的模块在查找路径中有最短的距离。module M。

2023-10-30 16:21:19 388

原创 Ruby使用类组织对象

使用Object.new创建新对象,但是一次只使用一种方法,这是感受以对象为中心的Ruby编程的最佳方式之一。不过这种方式并不能很好地扩展,假如有一个正在运行地在线售票网站,然后其数据库必须处理数以百计地售票记录,那么可以在Ruby程序中寻找另外地一种方式去创建和操作类似的ticket的对象。Ruby有一套完整的编程技术用于批量地创建对象,从而不必对每一个ticket定义一个独立的price方法。与之前不同的是通过定义一个ticket类可以让每一个独立的ticket对象自动拥有一个price方法。

2023-10-18 11:41:42 1073

原创 Ruby和面向对象技术

Ruby提供了一个关键字明确地定义了返回值:return,这个关键字地使用通常是可选的,但是多数程序员都喜欢用它,因为它使隐式的返回值表达式变得显而易见。

2023-10-16 20:26:31 526

原创 Ruby语言基础知识

Ruby是一种简单快捷的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发,遵守GPL协议和Ruby License。它的灵感和特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。以下是Ruby语言的一些特点:面向对象:在Ruby中,一切皆是对象。这意味着所有的数据和代码都被视为对象,每个对象都有自己的属性和方法。动态类型:Ruby是一种动态类型语言,这意味着你不需要在声明变量时指定其类型。

2023-10-14 17:33:05 1557

原创 Android位置服务和应用权限

并不是所有设备都同时又这两类位置提供者,所以可以使用位置管理器的getBestProvider方法得到设备上最准确的位置提供者,这个方法有两个参数:一个Criteria对象(可以用来指定电量需求之类的标准),以及一个标志(指示当前是否应当在设备上启用)。这些服务允许你得到用户的当前位置,请求定期更新,并在用户进入一个特定位置指定半径范围内时请求触发一个意图。这个方法有4个参数:位置提供者、更新的最小时间间隔,位置更新之间的最小距离,你希望接收这些更新的位置监听器。指定位置提供者用来确定用户的位置。

2023-10-13 09:32:09 453

原创 Android绑定式服务

启动式服务对于后台操作很合适,不过需要一个更有交互性的服务。接下来构建这样一个应用:1、创建一个绑定式服务的基本版本,名为OdometerService我们要为它增加一个方法getDistance(),这个方法会返回一个随机数2、让活动MainActivity绑定到OdometerService,并调用它的getDistance方法。将每秒调用一次这个方法,在MainActivity中用得到的结果更新一个文本视图。

2023-10-11 16:16:23 344

原创 Android启动式服务

服务是与活动类似的应用组件,只不过服务没有用户界面。使用服务可以一直在后台做某些事情,比如下载一个大文件,播放一段音乐或者监听来自服务器的一个消息。有三种类型的服务:1、启动式服务启动式服务可以在后台无限期的运行,即使启动这个服务的活动已经撤销,也不会影响服务的运行。2、绑定式服务绑定式服务会绑定到另一个应用组件,如一个活动。这个活动可以与绑定式服务交互,发送请求并得到结果。只要与之绑定的组件还在运行,绑定式服务就会一直运行下去。这个组件不再与之绑定时服务将会被撤销。

2023-10-09 10:20:05 246

原创 Android异步和线程

Android应用打开数据库时首先要搜索数据库文件,如果没有找到数据库文件就要创建一个空的数据库。然后它要运行所有SQL命令,在数据库中创建数据库表和需要的所有初始数据。最后还要执行一些查询从数据库得到数据。

2023-10-08 21:37:35 321

原创 更新SQLite数据库数据

之前了解了如何修改应用让它从SQLite数据库中提取数据,但是还没有用过更新过数据库数据。这里要修改应用使用户能够记录哪些饮料是他们的最爱。为此要为DrinkActivity增加一个复选框;如果选中这个复选框,就说明当前饮料是用户的一个最爱。还要为TopLevelActivity增加一个新的列表视图,其中包含用户最喜欢的饮料。

2023-10-07 13:10:48 319

原创 取出SQLite数据(基本游标)

前面一节中已经为Starbuzz创建了一个SQLite帮助器。目前还是从Java Drink类获取数据,这时候要修改这个应用从SQLite数据库获取数据。本文所有代码均存放于。

2023-10-07 08:35:12 636

原创 SQLite数据库

本文所有代码均存放于在Android世界里,通常可以把数据安全地存放在SQLite数据库中。回到之前创建地Starbuzz应用,这个应用允许用户通过一系列屏幕导航查看Starbuzz提供的饮料。接下来让它从SQLite数据库获取数据。

2023-10-04 00:01:44 189

原创 Android导航抽屉

本文所有代码均位于之前使用过标签页布局可以让用户在应用中轻松地导航。当只有为数不多地几个类别屏幕,而且它们都在应用层次结构地同一级上,标签页布局就很适用。而可以实现更多选择,这是一个滑出式面板,包含了应用其他部分地链接。这可以把链接分组为不同的区段。

2023-09-28 00:46:28 459

原创 HJ90 合法ip 判断合法字符串

IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。solution:这个题目要额外注意细节,下面是一些需要注意的错误样例。现在需要你用程序来判断IP是否合法。输入一个ip地址,保证不包含空格。返回判断的结果YES or NO。

2023-09-25 00:47:22 98

原创 Android回收视图

本文所有代码均存放于回收视图是列表视图的一个更高级也更灵活的版本。回收视图比列表视图更加灵活,所以需要更多设置,回收视图使用一个适配器访问它的数据,不过与列表视图不同,回收视图不使用数组适配器之类的内置Android适配器。你必须编写你自己的适配器,要根据数据适当裁剪。这包括指定的数据的类型,创建视图并把视图绑定到视图。另外要使用一个布局管理器将数据项放置在回收视图中,有很多内置的布局管理器可以使用,可以把数据项放在一个线性列表或网格中。

2023-09-24 23:14:28 201

原创 Android设计支持库

设计支持库(Design Support Library)是 Google 在 2015 年的 I/O 大会上发布的全新 Material Design 支持库,在这个 support 库里面主要包含了 8 个新的 Material Design 组件,最低支持 Android 2.1。设计支持库提供了一系列 Material Design 风格的组件,帮助开发者快速构建符合 Material Design 规范的 Android 应用程序。

2023-09-22 00:22:56 211

原创 八、逻辑覆盖

不要让你的弱点妨碍你的优势。有两种互补的逻辑测试方法。第一种被称为,这种覆盖只考虑逻辑表达式的含义而不管表达式的构成。语义逻辑覆盖的优点在于即使谓词被写成一种表面不同但是具有等价语义的形式,依然可以产生相同的测试用例。第二种被称为,这种覆盖专门根据逻辑表达式的构成来生成测试用例。语法逻辑覆盖的优势在于可以处理一些当开发者不正确地构建表达式时发生地特殊情况。研究发现语法逻辑覆盖通常可以检测到更多的故障,但是这种测试准则相对复杂而且其使用成本可能会很高。

2023-09-21 00:24:01 196

原创 Android滑动片段

滑动标签片段

2023-09-20 20:57:20 324

原创 七、图覆盖

有向图是许多覆盖准则的基础。边的初始节点有时被称为前驱节点,终止节点被称为后继节点路径是一个节点序列。一条长度可能为0的路径p,它起始于N0中的某个节点,终止于Nf中的某个节点。在有些图中,所有的测试路径都起始于一个节点且终止于一个节点。这些图就被称为单入/单出图,或是SESE图。测试路径的极小集合被定义为如果从这个集合中拿走任意的测试用例,这个集合便不能满足我们的准则。

2023-09-19 23:44:10 191

原创 Android嵌套事务

这时候旋转设备还是会重置秒表。旋转设备时Android会重新创建活动。如果你的活动包含一个 < fragment >元素,每次重新创建活动时,它会重新插入片段的一个新版本。老片段被丢掉,所有实例变量会设置其初始值。在这个特定的例子中,这意味着秒表会设置回到0。所以动态片段需要一个片段事务,片段元素对于显示静态数据的片段很适用,但是如果有一个动态片段,就需要使用片段事务来增加片段。修改activity_temp.xml来使用FrameLayout。

2023-09-14 22:46:42 302

原创 六、输入空间划分

工程师借助先行者的想法来为后知后觉者建造产品。从本质上来说,所有的测试都是从待测软件的输入空间中选择元素。而输入空间划分技术的特点是根据程序输入的逻辑关系来直接划分输入空间。我们将定义为输入参数可能拥有的全部测试值。根据待分析的软件工件的种类,输入参数可以是方法参数和非局部变量(在单元测试中)、代表程序当前状态的对象(当测试类时或在集成测试中)或是用户对程序的输入(在系统测试中)。划分覆盖的基本思想中,假设覆盖任一区块的测试用例和覆盖其他区块的测试用例一样有效。

2023-09-13 21:20:49 121

原创 Android动态片段

之前创建的片段都是静态的。一旦显示片段,片段的内容就不能改变了。尽管可以用一个新实例完全取代所显示的片段,但是并不能更新片段本身的内容。之前已经创建过一个基础秒表应用,具体代码。我们将这个应用增加到WorkoutDetailFragment,把它显示在训练项目的详细信息之下。

2023-09-13 11:36:11 364

原创 五、基于准则的测试设计

因为我们不可能使用所有的输入来测试,所以我们利用覆盖准则决定使用哪些测试输入。覆盖准则背后的原理是划分输入空间使单个测试用例发现的故障数最大化。从实际角度来说,覆盖准则也提供了有用的规则来决定什么时候停止测试。测试需求是软件工件中测试用例必须满足或覆盖的指定元素。如果目标是覆盖程序中的所有决定(分支覆盖),那么每个决定都将导致两个测试需求,一个需求决定复制为假,另一个需求决定赋值为真。如果每个方法必须被调用至少一次(调用覆盖),每个方法都生成一个测试需求。覆盖准则就是系统性地生成测试需求的办法。

2023-09-12 17:21:13 92

原创 四、测试优先

单个开发者犯的错误将会很快被发现,更重要的是全组的开发者会马上知晓有分歧的设计决定。持续集成和持续交付:敏捷方法强调持续集成和持续交付,在每个迭代结束时,都会将系统的最新版本进行集成和交付,同时也会进行相应的测试,确保系统的稳定性和可用性。传统的开发将成功定义为“预算内准时交付”,但是敏捷方法首先关注在开发的初期就要有可执行的电信,其次才是生产不同的、可能会比最先想象还要优质的产品。在最广义的层面上,敏捷方法只关乎最后的关键结果:可运行的软件,对随时的改动反应迅速,有效的开发小组和满意的客户。

2023-09-11 16:30:19 84

原创 三、测试自动化

测试自动化就是将测试实例化后加载到可执行的测试脚本中的过程。下面是其完整定义。使用软件来控制测试用例的执行,实际输出和预期输出的比较、先验条件的设置,以及其他的测试控制和测试报告功能。软件测试成本高而且耗费巨大人力,所以软件测试的一个重要目标就是尽可能地实现自动化。测试自动化不仅可以降低测试地成本,而且可以减少人为地错误,同时使回归测试变得更加容易。我们只需要一个按键,回归测试中地测试用例集就可以反复地运行下去。软件工程师有时候需要区分和。核心任务直接用来解决问题,而辅助任务斌不是解决问题必须要做的。

2023-09-10 20:43:52 154

原创 二、模型驱动测试设计

完全改正软件是不可能到达的,其原因是可以以形式化的方式来表述的而且是富有哲理的。聪明的软件工程师不再追求软件的完全正确,而是试着评判软件的行为来决定其是否为可接受的。**包括可靠性、安全性、可维护性、安保性、还有效率。**这比验证软件是正确的要复杂的多。MDTD过程把测试分成一系列的小任务,从而简化测试用例的生成。然后测试设计师在高层次的抽象等级上使用数学化的工程结构来设计测试用例,这样做可以独立于软件内部细节、独立于设计所基于的软件工件、也独立于测试自动化和测试执行。

2023-09-07 19:08:29 543

原创 一、为什么测试软件

举例来说,[2, 7, 0]返回1是正确的,[0, 7, 2]返回0是不正确的。如果一个状态与预期不符合,那么它就是错的,如果整体不符合预期,即使在这个状态中每个变量值单独考虑是对的,这个状态依然是错的。循环初始化和循环判断条件是分开的,在每一次循环的末尾,循环增量(“i++”)才会被执行。地消除故障,越到开发晚期发现和修复故障的代价越大,我们不可能做到完美,但是在单元测试或是更早的时候每消除一个故障都是在省钱。第3级:测试的目的不是要证明一些具体的成功或是失败,而是减少使用软件的风险。

2023-09-06 22:04:43 121

原创 Android后退堆栈

希望片段处理后退的方式:假设用户在手机上运行这个应用,单击一个训练项目时,会在另一个活动中显示这个训练项目的详细信息。在应用中从一个活动访问到另一个活动时,Android会把各个活动增加到一个后退堆栈,来跟踪你访问过的所有活动,后退堆栈是一个日志,记录了你在设备上访问过的所有地方,每个地方记录为一个单独的事务。现在的ItemClick使得用户单击其中一个项目时就会跳转,现在要修改其使得在一个小屏幕设备上才会这样做,在一个大屏幕设备上运行用户选择一个训练项目时在右边的片段显示响应的信息。

2023-09-05 20:25:49 548

原创 面向更大屏幕的片段

目前为止,只做过小屏幕设备运行应用。本文中将创建灵活的用户界面,根据运行应用的设备让应用有不同的外观和行为。之前我们创建了在手机上运行的Workout应用版本。但是在一个平板上运行这个应用时,应用的表现几乎是一样的。不过由于屏幕更大,所以用户界面中有大量空置的空间,可以更好的利用一下这些空间。

2023-09-05 16:29:29 94

原创 连接列表和详细信息

连接列表和详细信息

2023-09-04 20:57:02 122

原创 Android列表片段

不用创建你自己的时间监听器并绑定到列表视图,而只需要实现列表片段的onListItemClick()方法。列表片段生成的布局包括一个列表视图,可以在活动代码中使用列表片段的getListView()方法访问这个列表视图。初始化数组适配器时,首先要指定绑定到列表的数组中包含什么类型的数组,然后要传入3个参数:一个Context(上下文,通常是当前活动)、一个布局资源(指定如何显示数组中的各项),以及数组本身。列表片段是一种专门处理列表的片段,它会自动绑定到一个列表视图,所以不需要另外创建列表视图。

2023-09-04 18:50:29 650

原创 片段与活动的交互

后者会得到处理支持库片段的片段管理器的一个引用,前者得到处理其他片段的片段管理器的引用,这些片段使用原生的Android片段类。由于片段于活动不同,因此片段没有包含活动的所有方法,片段没有findViewById方法,要得到片段中视图的引用,首先必须使用geyView方法得到片段根视图的引用,然后使用根视图查找它的子视图。片段管理器用于跟踪和处理活动使用的所有片段。另外的,Fragment类是继承自java.lang.Object类的,并不扩展Activity类,这表明活动可用的一些方法在片段中无法使用。

2023-09-01 00:38:33 443

原创 Android片段

需要注意的是,支持库片段需要扩展了FragmentActivity的活动,但是AppCompatActivity是FragmentActivity的一个子类,所以扩展了AppCompatActivity类就不会有什么问题,下面是DetailActivity.java的代码。如果精心设计,可以使用Java代码完全控制界面,如果片段代码包含控制布局所需的全部内容,将大大增加在应用中重用这个片段的机会。如果活动的布局代码中只包含一个片段,则可以将上述代码直接简化为一个根元素为fragment的布局。

2023-08-31 22:14:54 579

原创 在应用条上共享内容

在应用条上共享内容

2023-08-31 17:25:38 127

原创 在应用条中添加向上导航

在应用条中添加向上导航

2023-08-31 16:13:59 94

原创 为应用条增加动作

实现该方法之后,会把你的菜单资源文件增加到应用条,也就是inflate,这说明它会创建一个menu对象,这是菜单资源文件的一个Java表示,菜单资源文件包含的所有动作会转换为MenuItem。再把这些菜单项增加到应用条。菜单资源文件有一个menu元素作为它的根元素,其中可以有多个item元素,每个item元素描述一个不同的动作,动作包含很多属性,可以确定这个动作在应用条上如何显示,如它的图标和文本。大多数应用中都可能会为应用条增加动作,动作是应用条中的一些按钮或文本,可以单击它们来做一些事情。

2023-08-29 23:00:52 79

原创 Android工具条

在底层,所有通过主题得到应用条的活动都使用ActionBar类实现它的应用条。不过最新的应用条特性已经增加到AppCompat支持库中的Toolbar类。这意味着,如果你想在应用中使用最新的应用条特性,就需要使用支持库中的ToolBar类。3、删除现有的应用条。将主题替换为一个没有应用条的主题即可,例如NoActionBar。工具条是一个视图类型,所以可以把它放在你希望的任何位置,并控制它的外观。或者把工具条定义为一个单独的布局,在主布局中将其包含进去即可。5、更新活动,设置这个工具条作为活动的应用条。

2023-08-28 21:53:02 290

原创 支持库和应用条

这个图标作为应用的启动图标,如果你使用的主题会在应用条中显示一个图标,就会使用这个图标。android:label属性描述一个对用户友好的标签,它会显示在应用条中,在上面的代码中,< application >标签使用这个属性来为整个应用指定一个标签,也可以为< activity >标记增加这个属性,这会为一个活动指定标签。一旦在工程中增加了AppCompat支持库,就可以在你的应用中使用这个支持库的资源了,在这里我们希望应用其中一个主题,为MainActivity增加一个应用条。

2023-08-28 19:07:45 77

原创 字典树TRIE(前缀树)

字典树C++的实现

2023-07-11 20:56:08 313

原创 合理组织安卓活动

用类别活动在一个列表视图中显示列表项,通常会使用onItemClick方法启动另一个活动来显示用户单击的列表项的详细信息。这里主要使用数组适配器。再使用drinkID得到用户选择的饮料的详细信息,drinkID时饮料的ID。开始构建一个应用时,你会考虑这个应用要包含什么,会有各种各样的很多想法,如何组织这些想法来建立一个直观、清晰的应用。首先是Drink类,这是一个纯Java类,定义了一个包括3中饮料的数组,每种饮料包括饮料名,描述,以及图像资源ID。在饮料类别活动中,会显示出售的所有饮料的一个清单。

2023-07-04 11:14:14 302

UCF Local Contest — September 5, 2015.pdf

UCF Local Contest — September 5, 2015 UCF Local Contest — September 5, 2015 UCF Local Contest — September 5, 2015

2020-03-08

2019icpc台湾区域赛的ac代码.zip

2019icpc台湾的ac代码 2019icpc台湾的ac代码 2019icpc台湾的ac代码 2019icpc台湾的ac代码

2019-11-27

2019icpc雅加达站.rar

international collegiate programming contest ASIA REGIONALCONTEST ICPC JAKARTA 2019

2019-10-28

2019ICPC韩国网络赛.pdf

2019icpc首尔网络赛 2019-10-5 2019 Asia Regional - Seoul - Nationwide Internet Competition

2019-10-06

2019ICPC印尼网络赛.rar

ICPC Asia Jakarta Regional | Indonesia National Contest 2019-10-6

2019-10-06

2019icpc台湾模拟赛.rar

2019年icpc台湾赛区模拟题 2019 ICPC Taiwan Online Programming Contest - Practice Session

2019-10-04

空空如也

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

TA关注的人

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