2013年12月9日

附加作业-命令行调试器的使用

摘要: 平时我们各种图形界面的调试器用多了,这次我来演示一下命令行调试器。为什么使用命令行调试器? 平时的程序都能有图形界面的调试器,可是我们可以想像,第一个图形界面的调试器也需要调试,所以命令行的调试器还是很有存在的意义的。并且对于一些非常底层的东西,比如操作系统内核,一般都只提供基本的调试工具,那就是命令行。 为了体现出区别,我直接就演示一个绝对高端洋气上档次的。具有以下特性: 1.被调试的程序是操作系统内核,就是我们上学期操作系统的课程设计。 2.被调试的程序是mips指令集的,所以使用的工具链都是针对mips的,都是我自己下载了源代码后配置并编译的,平台为OS X 10.9 ... 阅读全文

posted @ 2013-12-09 15:05 不想嚣张 阅读(523) 评论(0) 推荐(0) 编辑

homework-09

摘要: 概要:这次作业老师要求我们做一个算法演示程序。演示求子矩阵,使得总和最大。关于这次程序的要求,做网页版能够有更高的评价,所以我就果断做了网页版。并且,可能很多人觉得服务器、客户端是最有效的手段。可是,我这一次使用了纯html+css+javascript实现,不需要任何的服务器端,只要有一个稳定的浏览器,就可以进行算法演示,页面加载完后,即使断开网络,也能继续完整地进行算法演示。另外,作业中有个10分附加部分,录制屏幕作演示,这个我也完成了。使用windows自带的步骤记录器,psr.exe。上传到了百度云盘上:http://pan.baidu.com/s/1pbAtZ首先是主界面:(这个程序 阅读全文

posted @ 2013-12-09 11:45 不想嚣张 阅读(184) 评论(0) 推荐(0) 编辑

附加作业-堆和栈

摘要: 本次作业要探讨堆和栈的性质,为了严格起见,先说明下我这里的软件环境:操作系统:OS X 10.9编译器:CLANG & LLVM 3.3先说内存占用部分:由于我的编程能力弱爆了,只会写最简单的程序,并且各种规范都没有注意。于是我就写了如下程序来考察栈对于内存的使用:#include void foo(){ int a, b; a = 1; b = a;}int main(){ int i; while (1) { foo(); } return 0;}这段程序就在做一个很无聊的事情,不断申请空间。。。但是由于栈会自动回退,所以内存占用比较良好:然后弱爆了的我为了测试堆的内存... 阅读全文

posted @ 2013-12-09 01:10 不想嚣张 阅读(510) 评论(0) 推荐(0) 编辑

2013年11月25日

homework-06

摘要: 先说我的填充部分 public void playPrev(GoMove gm) //如果没有上一步 { if (m_gmLastMove == null) { return; } Grid[m_gmLastMove.Point.X, m_gmLastMove.Point.Y].removeStone();//删除这个点 m_gmLastMove = gameTree.peekPrev();//更新上一个点 ... 阅读全文

posted @ 2013-11-25 12:00 不想嚣张 阅读(168) 评论(0) 推荐(0) 编辑

2013年11月18日

homework-08

摘要: 上次作业中,已经提到了C++ 11的特性。不过,光说不练假把式,这次作业中,我们就对此进行验证。进行测试的4个项目分别为:1.变量作用域和生命周期2.堆和栈3.unique_ptr和shared_ptr4.分割url为了保证测试的有效性,先要检测编译器对于C++ 11的支持情况。以下是目前主流编译器的支持情况:http://developer.51cto.com/art/201303/384630.htm由于Clang编译器对于C++ 11的支持比较不错,所以本次我们就选择了Clang作为编译环境从中我们可以看到,编译器是3.3版本,支持本次我们需要用到的所有特性。1.变量作用域和生命周期这个 阅读全文

posted @ 2013-11-18 01:18 不想嚣张 阅读(204) 评论(0) 推荐(0) 编辑

2013年11月11日

homework-07

摘要: C++ 11新特性:Modern C++ emphasizes:Stack-based scope instead of heap or static global scope.Auto type inference instead of explicit type names.Smart pointers instead of raw pointers. std::string and std::wstring types (see ) instead of raw char[] arrays.Standard template library (STL) containers like . 阅读全文

posted @ 2013-11-11 13:02 不想嚣张 阅读(123) 评论(0) 推荐(0) 编辑

2013年11月3日

homework-05

摘要: 无聊的时候怎么办? ---玩游戏吧玩游戏不够档次怎么办?? ---自己写游戏吧做不出游戏怎么办??? ---凉拌所以,为了防止无聊,就写个游戏吧!游戏内容:猜数字所有游戏者提交一个数字,最接近平均数*0.618者为胜由于是多人游戏,就会涉及到服务器与客户端的通信问题。这里我们就采用socket来实现一个服务器对应多个客户端,命令直接通过文本的方式传送为了能够更加有效的解析命令,我们就需要对传送的文本进行规范。从plain text转化成structured data。为了能完成文本的转换,我们可以用http传送参数的方式完成。{ Para1: value1, Para2: value2}和Pa 阅读全文

posted @ 2013-11-03 16:17 不想嚣张 阅读(160) 评论(1) 推荐(0) 编辑

2013年10月28日

homework-04

摘要: 这次作业比较变态。特别是矩阵的生成,所以我去网上找了个python的开源实现由于是软件工程课,实现目的才是第一位的。毕竟这种代码一般很难搞出最优解,搞出来也不是本门课的目标了。希望主角海涵,给个好点的分数,毕竟这次作业的目的我达到了。我所做的就是用已有的生成代码,生成一个尽可能紧凑的矩阵,然后我暂时没想到有什么好的办法,就果断从5到30(最大值),暴力枚举了计算主要是交给shell程序做的。我使用了临时文件来分析结果,用了管道来输出结果:# -*- coding: utf-8 -*-#由于这是一门关于软件工程的课,所以我使用了别人的算法,但是也可以做到较好的完成目标import os, sys 阅读全文

posted @ 2013-10-28 00:10 不想嚣张 阅读(168) 评论(2) 推荐(0) 编辑

2013年10月20日

homework-03

摘要: 这一次的作业主要考察点在于进程间通信。一个进程建立后,先查看是否已经有该进程的实例正在运行。如果有,则传递消息让已有进程创建新标签页。如果没有,就自己创建一个。进程间通信我采用了命名管道技术。一个程序先检查这个命名管道是否已经打开。如果打开,就尝试连接,并将参数传过去。如果没有打开,就自己创建一个,等待外部连接。接收端:public void receiver() { while (Form1.frm == null) ; while (Form1.frm.loaded == false) ; while (tru... 阅读全文

posted @ 2013-10-20 20:20 不想嚣张 阅读(185) 评论(0) 推荐(0) 编辑

2013年9月30日

homework-02

摘要: 这个我只做了非连通图,支持/v /h参数具体原理也很简单,而且编程十分方便。那就是积分图:1111111111111111111111111假如上图是输入。然后我们就算对应的积分图。每个点都变成此点左上角所有点之和:0000000123450246810036912150481216200510152025这样的计算能在m*n复杂度内完成。这样带来的好处是,对于任意一个矩形,矩形内所有元素之和的计算就变得极其简单了。0000000123450246810036912150481216200510152025因为左上角区域要被减两次,所以要加回来:元素之和 = 右下角 - 左下角 - 右上角 + 阅读全文

posted @ 2013-09-30 21:45 不想嚣张 阅读(128) 评论(2) 推荐(0) 编辑

导航