随笔分类 -  现代程序设计

邹欣老师的《现代程序设计》课后总结与反思
摘要:经过大半学期的学习和练习, 我们把学到的东西综合起来。通过这门课,自己的确学到了好多东西.其实并不是说讲课有多棒,一是因为讲课的次数其实并不多,二是讲课的内容其实感觉并没有太大的提高,在课程快结束的时候,我现在还能够有记忆的知识性内容,也许只有C++11的一点点知识.但是之所以说通过这门课自己学到了好多,是因为这门课布置的作业和这门课一起上课的同学.先说作业,回顾以前做过的作业闲来无事统计了一下作业的有效代码量记得这门课刚开始的时候老师发了一张表统计大家目前的代码量...因为刚刚参加完暑期ACM集训....自己很嚣张的填了五万行...现在看来真的是Too Simple,Sometimes Na 阅读全文
posted @ 2013-12-09 09:23 VeryBigMan 阅读(1487) 评论(4) 推荐(2) 编辑
摘要:写代码爽还是读代码爽?当然是写代码爽好吧...读代码明显是读+写两倍的工作量好么...本次作业要求:1) 把程序编译通过, 跑起来。 读懂程序,在你觉得比较难懂的地方加上一些注释,这样大家就能比较容易地了解这些程序在干什么。 把正确的 playPrev(GoMove) 的方法给实现了。 如果大家不会下围棋,那就需要大家实地或者上网练习一下围棋的死活,提子是怎么回事。这个应该一个小时就能搞定。注释的问题放到后面的问题有统一解决,这里先实现PlayPrev方法.通过仔细研读代码(¥#@#¥@#¥!#¥&8),我们可以知道这个GoMove里面的DeadGroup存的是被吃掉的子,那么我们就需 阅读全文
posted @ 2013-11-25 08:53 VeryBigMan 阅读(490) 评论(1) 推荐(0) 编辑
摘要:本次作业要求:1. 了解Lambda的用法计算“Hello World!”中a.字母‘e’的个数b. 字母‘l’的个数2. 练习使用智能指针 打印“Hello World!”循环右移n位的结果 Example: n = 1, output = “!Hello World” n = 3, output = “ld!Hello Wor”这次作业比较简单,也没有什么好说的,第一个采用Lambda表达式确实比较方便,只要这样一行代码就可以搞定1 cnt=count_if(str.cbegin(),str.cend(),[=](char tempCh){return tempCh==ch;});第二个. 阅读全文
posted @ 2013-11-25 08:45 VeryBigMan 阅读(343) 评论(0) 推荐(0) 编辑
摘要:1. 理解C++变量的作用域和生命周期a) 用少于10行代码演示你对局部变量的生命周期的理解 1 /*------局部变量的生命周期的理解------*/ 2 void test1()//在if代码块中中定义的string局部变量str在超出该代码块时已经无法引用,会报错"未声明标识符str",即str已经被销毁 3 { 4 if(true) 5 { 6 string str; 7 str="Hello,World"; 8 } 9 cout sp(new int(10)); //一个指向整数的shared_p... 阅读全文
posted @ 2013-11-17 23:40 VeryBigMan 阅读(658) 评论(0) 推荐(0) 编辑
摘要:本次作业要求为阅读C++11的新特性并写博客分享.在这次作业之前,我对C/C++语言标准的印象只停留在C89 C99什么的...对于C99较C89的改进地方,我觉得很方便的地方也许只有说在C99中,允许程序猿在for语句的初始化部分定义一个或多个变量,这些变量的作用于仅限于本for语句所控制的循环体内,于是我们终于可以不必在循环开始前定义长长的一坨int i,int j,int abcdefg了...完全可以像下面这样1 for(int i=0;i={ "first", "second", "third"};3 map singers 阅读全文
posted @ 2013-11-10 22:34 VeryBigMan 阅读(431) 评论(1) 推荐(0) 编辑
摘要:本次作业要求设计服务器和客户端,由于之前对网络编程是一窍不通,上上节课听宗学长讲述Tcp的时候心里想这个东西还真是高大上啊一点儿都听不懂,但是上个周末看了看C#网络编程的博客和书之后,发现这个东西入门其实很简单.经过几天的需求分析代码维护之后,我们的作业已经初具成果,先展示一下效果.服务器:客户端:是不是很华丽的说。。。感觉就像做了一个实验室的小项目一样。。。代码量有一千的说。。。当然如果要做的更好还可以加很多优化。。。但是(见最后吐槽)。。下面根据作业要求来展示一下我们的设计:多人游戏, 每个选手有一个客户程序在运行, 和一个服务器通过互联网的某种协议交互。我们采用的是TCP编程,遵循TCP 阅读全文
posted @ 2013-11-03 19:23 VeryBigMan 阅读(369) 评论(1) 推荐(0) 编辑
摘要:或许这种东西,就该叫做深深的绝望吧..题目要求:第四次作业,构造一个方阵将指定单词填入stage 1:每个单词只出现1次,且八个方向各至少有两个单词stage 2:矩阵长宽相等stage 3:方阵的四个角都要参与单词的构建算法思路:课上将这个题的时候我和z-mac讨论了一下,通过研读样例,我们认为大部分单词都是斜着填进方阵的,所以我们在用8个单词构造好边框后,将剩下单词按照四种对角线的方向依次填入,最后再扫一遍矩阵将矩阵压缩就好.但是这种方法无法满足长宽相等的条件.前天想了一个简单粗糙的方法,虽然能够满足题目的所有要求,但是构造的方阵缺少美感,尤其是在我刚刚看了肖犇犇和鲁大师的博客之后,突然感 阅读全文
posted @ 2013-10-27 20:51 VeryBigMan 阅读(242) 评论(0) 推荐(0) 编辑
摘要:homework -03ps:为毛在首页显示的时候一点文档格式都木有了.........请点开文章看吧还是~!结对编程人员:11061190 李孟 Lmeng11061192 周敏轩 Z-Mac11061193 薛亚杰 VeryBigMan我们三个人将以下材料仔细阅读,觉得十分受益。下面是我们的总结和分享:1)代码规范与代码复审 代码规范:一句话,我们的代码是要让其他人轻易看懂。 这就要求什么? 当我们拿汉语来作类比的时候,我们就能理解这个问题。为什么我们能交流无障碍?因为所有中国人都看得懂中文字!为什么?因为有一本字典(其实就是规范)告诉我们哪个字是什么意思,组成一个词又是什么意思?这... 阅读全文
posted @ 2013-10-20 22:20 VeryBigMan 阅读(322) 评论(1) 推荐(0) 编辑
摘要:首先显示博客要求:描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式, 或者其它方法) 让整个程序的架构不至于崩溃的?建议从后往前来搞,比如我通读一遍需求后了解到后面会用到多种模式,那么在输入的时候自然要定义后mode然后一步一步来,这里用的是面向过程的设计方法,所以没有用到面向对象的那么多冗杂的概念,程序的架构主要是根据不同的mode分别进行相应的输入错误判断,然后调用不同的Input函数完成输入,init()函数完成初始化操作,最后通过不同的work()函数完成函数主体操作给出你做单元测试/代码覆盖率的最终覆盖率的报告, 用截屏显示你的代码覆盖率。。 阅读全文
posted @ 2013-09-29 20:20 VeryBigMan 阅读(352) 评论(6) 推荐(0) 编辑
摘要:搞了6个小时individual project...看看博客做一做第一次现代程序设计作业1) 建立 GitHub 账户, 把课上做的 “最大子数组之和” 程序签入我的github地址是https://github.com/oldoldb,以前没有用过各种不熟练啊....代码我放到这个repository里了,是昨天完成的在hdu和poj上找的5道关于一维和二维情况的最大子数组&最大子矩阵问题的练习,具体的解题报告参见第一篇博客:http://www.cnblogs.com/oldoldb/p/3312195.html2) 在 cnblogs.com 建立自己的博客。 写博客介绍自己的 阅读全文
posted @ 2013-09-12 16:32 VeryBigMan 阅读(309) 评论(2) 推荐(0) 编辑
摘要:邹老师的第一门课上小测了最大子矩阵的问题,课堂上只想到了O(n^2*m^2)的算法后来翻《编程之美》的时候翻到了这道题...今天下午研究了一下,到OJ上切了几道题,熟悉了动态规划在这个问题中的应用.一.最大子段和书上已经将这种思想讲的很透彻,对基本的最大子段和的练习可以参照hdu1003题http://acm.hdu.edu.cn/showproblem.php?pid=1003,唯一的一点变形是这道题要求求出最大字段的起始位置和终止位置. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define INF 0x3f3f3f 阅读全文
posted @ 2013-09-10 14:57 VeryBigMan 阅读(251) 评论(0) 推荐(0) 编辑