2013年12月30日

摘要: 平时写程序的时候经常会碰见明知道自己不该这么写,却又无法明确自己不足在哪里的地方。经过阅读重构,我发现了我平时编程中存在的各种具体而又细微的问题。由于个人写的程序大部分都是面向过程的,所以很多地方可能会有局限性。以我写的编译器代码为例,我来简要说下存在的问题。1.循环的最后一次需要特殊处理的案例:for (i=0;i40){ Dosomthingwith(A);}Else{ if (A>20) { Dosomethingwith(A); } Else { Dosomethingwith(A); }}所以重构为If (A>40) goto DosomethingwithA_WhenA 阅读全文
posted @ 2013-12-30 21:14 Yuzuka 阅读(141) 评论(0) 推荐(0) 编辑

2013年12月23日

摘要: STACK和HEAP在英语中的意思大致都是堆,但翻译过来后加以区分为堆和栈。首先在最初的数据结构课中我们就已经了解了栈和队列这两种较为简单的数据结构。STACK即FILO表,先进后出。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。然后在编译的学习里我们了解了调用栈,在这里我来简要对调用栈和系统栈区做一个区分,实现了子程序的调用,即把局部变量存在该层调用栈区,全局变量放在。以类C 阅读全文
posted @ 2013-12-23 01:25 Yuzuka 阅读(181) 评论(0) 推荐(0) 编辑

2013年12月9日

摘要: 0. 问题描述见老师博客1.架构简介经过软件工程的课程,我将学到的很多知识应用到了这次作业中首先,我从架构上来讲解下我的这次作业。由于各个语言优势不相同,例如在C++课上我们讲到了C++的尴尬地位(但其实是一个折衷)。所以在这次作业中我也用到了类似思想,例如对于需要效率并不高的UI我采用了Python的PYQT界面的自动生成与方便的类型封装快速帮我解决了程序编写问题。但是对于效率依赖较高的的算法部分,我认为使用C会更快速解决问题,算法实现效率更好。所以我采用的是界面由python编写,然后使用gcc编译出的DLL文件进行调用。以此发挥各个语言的优势。而在软件工程中我认为更为重要的一点就是封装, 阅读全文
posted @ 2013-12-09 11:50 Yuzuka 阅读(213) 评论(0) 推荐(0) 编辑

2013年11月25日

摘要: 1) 把程序编译通过, 跑起来。 把正确的 playPrev(GoMove) 的方法给实现了。 如果大家不会下围棋,那就需要大家实地或者上网练习一下围棋的死活,提子是怎么回事。这个应该一个小时就能搞定。1 提子2 把focus移动到之前的一个点3.吃子后重绘4.获得历史树的迭代器5.将所有子置反2)由于刚知道要写这个,所以没有特别了解这一块。 但是可以提出如下几点要求: 1.绿波浪线所述都是没有使用的变量,应予以消除 2.c#中的属性没有用上而是用的原先的set,get我觉得可以改 3.我并不是特别了解c#但是。。把这么多类都写在一个文件里,软工要求允许吗 4.与上条一样,我觉得应该... 阅读全文
posted @ 2013-11-25 02:29 Yuzuka 阅读(178) 评论(1) 推荐(0) 编辑

2013年11月24日

摘要: 使用裸指针:#include #include #include #include #include using namespace std;int test(int n){ char * p(new char[13]); n = 12-n; strcpy(p,"hello world!"); string s(p+n); *(p+n) = '\0'; string t(p); cout#include #include #include #include using namespace std;int test(int n){ shared_ptr p(n 阅读全文
posted @ 2013-11-24 15:45 Yuzuka 阅读(201) 评论(0) 推荐(0) 编辑

2013年11月17日

摘要: uno.理解C++变量的作用域和生命周期没有要求讲解我就简单注释了一下~#include int main(){ for (int i=0;iusing namespace std;char *wrongdoing(){ char t[] = "wroingdoing"; return t;}char *rightway(){ char *t = "rightway"; return t;}int main(){ cout using namespace std;int *p,*q;void test(){ int *a = new... 阅读全文
posted @ 2013-11-17 23:23 Yuzuka 阅读(166) 评论(1) 推荐(0) 编辑

2013年11月11日

摘要: Ref:http://zh.wikipedia.org/wiki/C++0xhttp://wenku.it168.com/d_001049706.shtmlhttp://www.devx.com/SpecialReports/Article/38813http://zh.wikipedia.org/wiki/CLRhttp://zh.wikipedia.org/wiki/C%2B%2BC++11标准中,大量充斥的左值右值的概念让我联想到与之相似的C++/CLI,同样是对原C++的扩充那么这两者之间又有着怎样相似怎样不同的联系呢?首先是相同点:C++/CLI为标准C++特性提供一流的包括全部CL 阅读全文
posted @ 2013-11-11 00:28 Yuzuka 阅读(218) 评论(1) 推荐(0) 编辑

2013年11月4日

摘要: 这一次写的内容是黄金豆小游戏,由于现在偏重写服务器端。对于算法层面其实涉及不多,更多偏于工程上的架构。总而言之本次作业的服务器核心是用web.py所写,而且为了方便其他用户写客户端,架构非常简单。具体而言,首先从接口上来说,服务器只涉及到两个表单操作,注册表单和提交表单,注册也同样可以在网页上进行。由于是测试服务器通讯的,为了方便客户端调试很多细节与题设有所不同,但修改起来非常简单。注册模块: 注册需要提交用户名和密码{[username],[password]} 1.只有在游戏开始前可以进行注册。 2.注册失败,会返回-1. 3.注册成功,会返回0. 4.注册信息会录... 阅读全文
posted @ 2013-11-04 00:05 Yuzuka 阅读(322) 评论(1) 推荐(0) 编辑

2013年10月28日

摘要: 任务概述给出多条英文单词,找出一个包含所有单词的填字阵。并且对于该方阵有一定特殊要求:a)Stage 1Every phrase in the input file is covered once and only once.No less than 2 of the phrases must be in these directions:i.top-down, bottom-up,left-right, right-left, and all 4 diagonal directions.The width and height of the matrix can be differentth 阅读全文
posted @ 2013-10-28 11:07 Yuzuka 阅读(228) 评论(0) 推荐(0) 编辑

2013年10月20日

摘要: HOMEWORK-03红字部分为组员修改的意见文件介绍在EXE文件夹中的main.exe文件为本项目执行文件直接点击即可,CODE文件夹中的C文件夹中包含了算法部分的代码,其编译出的DLL文件在bin文件夹中,另外在CODE文件夹下的python文件为本项目GUI实现,其样本XML在UI文件夹中。项目回顾对于HOMEWORK-02,-a的模式进行了改进,(HOMEWORK-02参见链接)由于图的规模不容易控制(如果是正负间隔的数据情况则无法使用并查集缩点):样例1: 4 4 1 -2 3 -4 -5 6 -7 8 9 -10 11 -12 -13 14 -15 16所以在这里我认为很难有一个. 阅读全文
posted @ 2013-10-20 23:26 Yuzuka 阅读(316) 评论(1) 推荐(0) 编辑

导航