摘要: 近一周的时间,顶着编译大作业严重搁置的压力,天天搞,终于把网页动态展示的搞出来了!恩,还挺好看~因为是最后一次作业了,也是因为天生的完美主义强迫症,做到自己满意才放心停下来。不过,这个过程,看着同学都去测试编译了,我才写了语法分析,真的是压力山大。现在做出来的心情,就是从战场活下来的轻松与兴奋 T^T闲话少叙,下面展示作品,希望大家喜欢。网页发布在这个链接:happyjin.com/show/index.html1. 外观设计及使用说明(一定亲自操作一下才能看到动画效果)上方,Dynamic Show的标题以及网站主题的简介,采用扁平化风格,清晰干净的观感。因为页面太长,我在这里剪短一下。下面 阅读全文
posted @ 2013-12-09 10:27 Shone JIN 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 本文第一部分是现代C++作业2,第二部分是对围棋程序的部分建议,还有一些修改和优化体现在Github里面的代码中。首先是现代C++作业。1. 了解Lambda的用法。计算“Hello World!”中,字母e和l的个数。 1 int count (char s [], char ch ) 2 { 3 int num = 0; 4 for_each( s, s + sizeof(s), [&](char c){ 5 num += (c == ch); 8 }); 9 return num;10 }11 // 统计... 阅读全文
posted @ 2013-11-25 09:22 Shone JIN 阅读(1771) 评论(2) 推荐(0) 编辑
摘要: (1)理解C++变量的作用域和生命周期作用域是空间上的概念,包含全局作用域、文件作用域和局部作用域。生命周期是时间上的概念,其内存分配位置不同,可被引用的时间段也不同。static关键字和{}等标识符可以用来指定变量的作用域和生命周期。局部变量,分配内存是分配在栈存储区上的,其作用域也只是在局部函数内,在定义该变量的函数内,只要出了该函数,该局部变量就不再起作用,该变量的生命周期也只是和该函数同在。局部静态变量,分配的内存也是在静态存储内存上的,其第一次初始化后就一直存在直到程序结束,该变量的特点是其作用域只在定义它的函数内可见,出了该函数就不可见了。1 int function1(int n 阅读全文
posted @ 2013-11-18 10:54 Shone JIN 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 0. 摘要 近期读了一些关于C++11标准的材料。 本篇博客将从新标准的优点、与旧版本的区别和使用方法三个角度,大致介绍我对C++11的认识。C++11标准,原名C++0x, 是03版旧标准的更新。总结来说,新标准给我更加接近脚本语言的感觉。move语义的支持、auto关键字自动类型等新特性,使得C++11在性能和效率上比旧版本有更大优势。 我参考的博客和网页有: http://www.csdn.net/article/2012-05-15/2805585 http://stackoverflow.com/questions/1930903/bind-vs-lambda http:/... 阅读全文
posted @ 2013-11-10 22:53 Shone JIN 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 0. 摘要 之前我们玩了2次黄金数游戏,我也幸运的得到了一本《代码大全》,嘿嘿。这次的作业是一个Client/Server程序,自动化完成多轮重复游戏。我完成了Client部分,使用C#编写。下面简要阐述。1. 总体设计: 思考后,我认为这个客户端程序要能满足如下要求: 1. 保证信息传输到服务器。如果发送的信息没有得到相应,应可以不断重试。 2. 一定的错误恢复能力,当因网络问题错过某些回合,应该可以跳过而继续运行。 3. 恰当的算法,提供相对准确的黄金数字预测。 4. 具有自动获取可用端口能力,使得20个客户端同时开启能够不冲突的与服务器连接。 除此之外,为了确保游戏执行期间... 阅读全文
posted @ 2013-11-04 11:44 Shone JIN 阅读(346) 评论(2) 推荐(0) 编辑
摘要: homeword04-word search0. 摘要本次作业,要求完成一个word search的程序,具体要求是: 输入:一个包含20-60个单词的文件,各单词不大于20个字母,无空格。 输出:一个猜词游戏的字母矩阵,满足如下条件: 1. 每个单词在矩阵中出现,且只出现1次 2. 上下、下上、左右、右左及对角线共8个方向,每个方向均不少于2个单词排布。 3. 矩阵长宽可以不同 4. 不存在无效行或列 5. (进阶要求)矩阵为正方形 6. (进阶要求)矩阵四角有单词覆盖 对于这个题目的实现,在可解的基础上,最重要的是以一种相对高效的方式给出结果。为此,老师讲解了“简单粗暴”法、... 阅读全文
posted @ 2013-10-28 16:08 Shone JIN 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 摘要: 在本次作业博客里,我将主要阐述作业3的收获。作业3表面是将之前的程序转换为图形界面(之前程序见http://www.cnblogs.com/shone/p/3348372.html),然而本质是:1. 熟悉模块化、重构、重写2. 体验结对编程。 作业以上一次的优秀代码为基础,我们首先敲定了/h, /v, /h /v, /a几个模块的算法,然后进行模块化,成为独立的.dll文件,最后使用PYQT写UI并调用前述dll文件,实现原始需求。博客中老师要求提到的内容,以加粗表示。上图为我们的成果,并以此作为测试通过的象征,其他功能已经通过测试,不在此赘述。1. 算法相关 算法部分:htt... 阅读全文
posted @ 2013-10-21 13:32 Shone JIN 阅读(398) 评论(1) 推荐(0) 编辑
摘要: 前面已经谈过最大一维子数组和问题,这里面扩展到二维。一. 常规情况一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和。 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和。同样,时间复杂度很大,我们仅以此入手逐步优化。2. 参照一维数组的思路,保存中间结果,利用动态规划优化算法。优化点就是子数组求和一处,二维数组的求和不同于一维,但是仍然能找到方法:先声明这个方法是参考《编程之美》书中的讲解的,鄙人大脑迟钝,尚无法独创:令二维数组的起点不是0,而是1,使用PS[i][j]表示以[0][0], [i][0], [0][j], [i][j]四个顶点围起来的子数组和,边界... 阅读全文
posted @ 2013-10-01 11:39 Shone JIN 阅读(504) 评论(1) 推荐(0) 编辑
摘要: 一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和。“最大子数组和”是一个很好的IT面试考题,在《编程之美》一书中同时阐述了一维数组和二维数组的讨论。本篇博客将会更加细致的讨论一维部分。 一. 最直观的O(n3) 解法 在课上看到这个问题,当然最直观的解决办法即穷举。我们通过对子数组的起点和重点进行二层循环,计算每一个子数组的和,取其最大值,这样当然能够解决。但是作为一种O(n3)的解法,显然是低效率的。 二. 进一步思考——O(n2)解法 为增加程序效率,在接触过的算法中,我们想到或许动态规划能够被运用。动态规划的思想是将前一步的结果存储起来并在后续... 阅读全文
posted @ 2013-09-20 11:24 Shone JIN 阅读(966) 评论(3) 推荐(0) 编辑
摘要: 对于使用Mac系统的朋友们来说,Dashboard一定并不陌生。通过Dashboard我们可以方便地添加小组件,查看日历,天气,便签等等。然而,这些都是“定制”的内容。如何在Dashboard中显示自定义的东西,比如课程表,日程表呢?下面简单的几步将会教给你。 首先看一下效果: 中间的就是我们本次要加入的课程表了。左侧的校历也是相同的道理。 那怎么做呢?第一步,制作要查看的图片。打开相应的表格,或者文档等等内容所在的地方,使用系统的截图功能截取图片。快捷键是shift + command + 3 第二步,将图片放置在某个文件夹里。这里我是用sites文件夹。怎么找到呢?使用cont... 阅读全文
posted @ 2013-09-13 23:41 Shone JIN 阅读(998) 评论(1) 推荐(1) 编辑