摘要: 0 需求这次作业需要实现一个动态求解过程展示,在homework2里我们已经实现了对一维/二维矩阵的最大子矩阵和求解,并且能支持-h和-v(本次作业中没要求-a吧?)。程序需要再支持单步执行和自动执行,并且要有随机生成测试数据的功能。对于求解的每一步都用直观的图形展示。1 分析由于网页展示有加分,所以选择在网页上实现。稍微分析了一下,觉得网页实现大概有这三种形式:用Javascript读入文件,通过Javascript计算最大子矩阵,再通过Javascript操作DOM来实现动态展示用html选择文件,Post文件到服务器端,服务端计算结果,并且不断和浏览器的Javascript交互,来实现动 阅读全文
posted @ 2013-12-08 22:41 Forwil 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1) 把程序编译通过, 跑起来 ,把正确的 playPrev(GoMove) 的方法给实现了.解释一下playPrev里都要做什么1 把gm的子去除2 转移gm的mark 到它之前的棋子3 并设置之前的棋子为待更新(重画)4 如果当前棋子有吃掉什么的画,需要把吃掉的都画回去.5 取吃掉的棋子数组, 生成一个迭代器6 遍历数组,对每个棋子设置nokilled,setstorn(相反颜色)7 重画 1 public void playPrev(GoMove gm) 2 { 3 int i = gm.Point.X; 4 ... 阅读全文
posted @ 2013-11-25 00:26 Forwil 阅读(398) 评论(2) 推荐(0) 编辑
摘要: Stack1 #include2 using namespace std;3 char *get_hello(){4 char b[] = "hello c++ hehe";5 return b;6 }7 int main(void){8 cout 2 using namespace std;3 char *get_hello(){4 char *b = "hello c++ hehe";5 return b;6 }7 int main(void){8 cout 2 using namespace... 阅读全文
posted @ 2013-11-17 17:09 Forwil 阅读(262) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/lancelet/article/details/7220558http://www.csdn.net/article/2012-05-15/2805585http://wenku.it168.com/d_001049706.shtmlhttp://mindhacks.cn/2012/08/27/modern-cpp-practices/http://www.cnblogs.com/zhuyp1015/category/370450.html新特性c++11一方面对c++的语言特性进行了拓展,一方面又对它容易令人混淆和纠结不清的地方做了规定。我阅读了一 阅读全文
posted @ 2013-11-09 21:42 Forwil 阅读(188) 评论(1) 推荐(0) 编辑
摘要: 接口声明/regGET: 输出一个注册表单,其中 id:用户名 pd:密码POST: 接收一个表单{id="",pd=""},返回: 0:注册成功 -1:注册失败/attendGET: 输出一个游戏参与表单,其中 id:用户名 pd:密码 num:1-100之间的实数,表示所要提交的数字POST: 接受一个表单(id="",pd="",num=""),返回: -1:用户名不存在 -2:密码错误 -3:数字范围出错(必须在1-100之间) -4:游戏结束 left_time+",&quo 阅读全文
posted @ 2013-11-03 01:01 Forwil 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 编码规范这次两个程序都是用c写的,我比较习惯的风格是main函数在最后,其他函数在前面,而zjoe习惯的编程风格是main函数在第一位,然后前面声明一堆变量。他阅读过一些工业级c的代码,据说很多用c写的库都用这样的风格。我们两个人编写c语言都比较规范,重视代码的重用性。当某一个功能重复次数打到3次以上的话,那么就比较有必要为之写一个函数。而模块化到底是不是都是好的呢?我觉得这是运行效率和代码可重用性的trade off,追求效率的代码会用很多小技巧来加速程序的运行,而其可重用行可扩展性就变低了。不过在现在这种程序员时间比机器时间还宝贵的时代,显然编写可重用的代码是要有益得多的。时间记录预计时间 阅读全文
posted @ 2013-10-27 22:58 Forwil 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 以下分割线内摘自zjoe----------------------------------------------------------基本思路这个问题本身很容易,但无奈老师的要求实在是奇怪。要从命令行 启动程序,并且多次运行后只保留一个程序在运行。已经都写UI了 为何还要用命令行控制?如果非要满足这个要求,还需要写很麻烦 的进程切换,所以我没有完全按照老师的要求写。我的想法是用UI 作为主控程序,直接在UI内实现参数的输入。输入后用户按下按钮 触发一个过程,在这个过程中实现如下功能:分离参数将参数传递给计算程序,执行计算获取计算结果新建tab并显示结果这样实现的话计算程序运行完后就退出了 阅读全文
posted @ 2013-10-21 01:33 Forwil 阅读(190) 评论(1) 推荐(0) 编辑
摘要: 回答问题描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式, 或者其它方法) 让整个程序的架构不至于崩溃的?答:处理这种问题显然还是面向过程比较方便,像这种写完了测试通过了就扔的代码没有必要去维护其扩展性,重用性。更别说什么uml父类子类繁琐的东西,用最简单的方法解决问题就好了。如果是web应用或者桌面应用才需要曲考虑这些所谓维护设计吧。给出你做单元测试/代码覆盖率的最终覆盖率的报告, 用截屏显示你的代码覆盖率答:不会用VS,在linux下用了lcov来生成覆盖率,并成生了结果html,详见github上的maxsum.c.gcov和resu/index 阅读全文
posted @ 2013-09-29 21:50 Forwil 阅读(291) 评论(1) 推荐(0) 编辑
摘要: 参考书选择选了电子版---[代码大全2英文版(完整清晰版)].chm穷逼没钱买书好烦躁T.T问题分析一维的情况最朴素最暴力的方法是枚举所有的sum[i,j],算出其值然后取最大。时间复杂度为O(N^3),注意到sum[i,j]=sum[i,j-1]+a[i,j],所以不必每个sum[i,j]都重新算一遍,只需要通过前面的值来递推即可。时间复杂度降为O(N^2)我们对所有的sum[i,j]来分类,用tail[j]表示所有的sum[i,j]的最大值,即tail[j]=max{sum[i,j]|1 2 #define MAXN 100000 3 #define MINV (-(1ans)15 ... 阅读全文
posted @ 2013-09-19 19:52 Forwil 阅读(197) 评论(1) 推荐(0) 编辑