自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随缘的专栏

追逐梦想

  • 博客(40)
  • 收藏
  • 关注

原创 窗口启动时最大化

<br />很多时候我们希望我们的程序窗口在启动的时候以最大化显示(一般这个时候我们同时也会令最大化的系统菜单不可用.).然而我们该以什么办法令它最大化显示呢.这里我总结了几个办法,均亲自测试过的,请放心使用.<br /> <br />方法 1:<br /> <br />为CmainFrame类添加WM_SIZE消息响应函数,并在其中添加下面代码:<br />cx = GetSystemMetrics(SM_CXSCREEN);<br />cy = GetSystemMetrics(SM_CYSCREEN)

2009-10-23 13:54:00 713

转载 VC++中的一些小问题的解决方法

(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHA

2009-10-23 13:35:00 1080

原创 多年前对《代码大全》作者的采访

 今天在搜索《代码大全》作者资料的时候,无意看到了多年前多他的一次采访的摘要。为了练习英语就决定把它翻译下来,可能我翻译的很烂,但我在努力...^_^红字是我的翻译。Interview with Steve McConnell by Clay Shannon Abstract: Clay Shannon 采访 Steve McConnell的摘要:Steve McConnell,

2009-10-22 22:18:00 1113

原创 图形学课程设计总结

马上要毕业的人的,学校给开了一些奇怪的课程,如java, asp.net, 图形学,人工智能,信息安全.真不知道学校到底怎么想的.这些课程可以说都是很好的课程,学校早干嘛去了,现在才开.郁闷啊,对于图形学,人工智能,信息安全,只能用剩下的时间学个皮毛了,了解了解也是挺不错的..而至于Java,asp.net就算了,一直坚持学习C/C++,现在再去学那些,到毕业也只是个皮毛,对于找工作也没多大帮助,

2009-10-22 16:45:00 2775

转载 随心所欲改变窗口图标

---- 在使用VC++5.0开发应用程序时,我们可能需要改变框架窗口(包括主框架窗口和子框架窗口)的图标,而不是使用VC为你已经准备好了的、很难看的那个图标。但笔者参考了很多书籍、资料,却没有找到任何叙述如何去改变窗口图标的方法的文章(或许很多人认为这根本就不值得一提),让很多初学者无从着手。笔者经过实践,发现了以下两个改变框架窗口图标的方法。使用方法一可以在编写应用程序时指定框架窗口的图标,使

2009-10-22 14:11:00 746

原创 循环链表

// Note:Your choice is C++ IDE#include #include typedef struct LNode{ int data; LNode* next;}LNode,*cirLinkList;/* 初始化一个循环链表,分为两步: ①:为它申请一个头结点. ②:令他的头结点的指针指向其自身. */void InitC

2009-10-17 14:05:00 622

转载 设置对话框的背景颜色

---- 笔者曾在《软件报》2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问: 一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对于这个问题,其实可以 由几种不同的方法来实现,具体如下(粗斜体代码为增添的):---- 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。---- 其中函数的第一个参数指定了背景颜色

2009-10-16 21:39:00 806

原创 你选择走哪条路

我认为人生有两条路可选择:1 走一条别人都走过的路 即你学习一些现存的知识,现存的技术,然后为一些现存的产品工作。一日复一日,一年复一年的做着重复的工作,拿着或许客观的工资,过着还算说得过去的日子.我们把它扩展开来说就是:现存的知识,现存的技术:如:我准备在IT行业混,就学一些现存的语言,看一些别人设计的数据结构和算法。然后到一个IT公司打工,每天做着几乎相同的工作,除了代

2009-10-15 21:58:00 997

原创 单链表

1 这里我重点总结一下带头结点的单向链表,说实在话,这个带头结点这句话算是迷惑了我很长时间,我们可以把它理解成为结点,也可以不把它理解为结点。只不过是我们定义了一个结构体而已,里面包含了整个链表的属性信息,及一个头指针和一个尾指针。头指针指向第一个结点,尾指针指向最后一个结点。其中链表的属性信息里面可以包含有链表的长度。当然我们里面可以什么都不存储。下面我们来看一下单向链表在内存中的存储。

2009-10-15 13:05:00 788

原创 线性表

在开始本章节之前,我要说明两个问题:1 线性表的一个误解很多人认为,并且严老师的书上也是这么划分,就是将线性表和栈,队列划分开来。其实并不是这么回事,我们可以参考《计算机程序设计艺术》第一卷,第二章。其实线性表包括链表,栈,队列。2 就是我这里想说一些前些天一个女同学问我的一个问题她大概是这么说的:NULL是什么啊?p = NULL;是什么意思啊?为什么要等于NULL啊?我开始

2009-10-14 22:25:00 679

原创 数据结构----严蔚敏

最近一直想找一本纯数据结构的书来学习,找来找去都没有找到一本合适的书籍,相比之下国内的书籍之中,严蔚敏和吴伟民的还算是经典版了,很多国内其他数据结构教材都参考这本书的。但缺点是很多都是伪代码,对编程初学者来说有一些难度,甚至有些考研的同学来看这本书有很多还看不懂,并且里面也有些容易迷惑人的地方。出于对自己数据结构知识的巩固和给那些考研的同学学习这本书一个参考,我决定对这本书中大部分的伪代码用C做一

2009-10-14 17:08:00 1893

原创 C专家编程上的一些习题

第一题: 关于链表问题;问题:怎样才能检测到链表中是否存在循环? 对访问过的每个元素做个标记,继续遍历这个链表,如果遇到某个已经做过标记的元素,说明链表中存在循环。(如何做标记呢?思考之…如果链表中的元素全部都是正整数的话,我们可以这样做,对访问过的每个元素加上个负号,然后我们继续遍历链表,如果访问到负数了,就说明链表里存在循环。如果既有正数又有负数呢?那么我们可以先遍历链表以此找

2009-10-12 21:11:00 1077

原创 数组的内存模型

1 一维数组的内存模型一维数组说开了就是一组连续的数值,这组数值存储在一段连续的内存空间之中,只是不一样的是,若是我们不定义数组我们来访问这一连串的数值需要n个变量对应这n个数值或是需要一个指针进行遍历。只是现在我们为这一组值起了个名字而已,以后我们便可以通过这个名字+下标来访问这一组值了。如我们定义了一个数组:char a[] = “hello world”;它的大小为sizeo

2009-10-12 17:41:00 1148

原创 数组和指针

数组和指针是很容易被混淆的东西,他们两个并不是在任何情况之下都等价的。1 int *p; int a[10];这两个就存在很明显的区别,我们可以给a赋值,就不可以给*p赋值。很明显的道理,目前p并没有指向有效地内存空间,我们无法对其进行操作,否则会引发灾难。2 int a[10] = {1,2,3,4,5,6,7,8,9,10};--------------------------

2009-10-11 15:52:00 603

原创 C编程小事

1 字符串的连接C++: cout  nihaoama?" 这种输出结果为: hello ni hao  nihaoama?  两个字符串之间会出现一个空格。要想不出现空格必须第二行处于行头C:printf("helooolasdfasdfafdasf/nasfdasfassasdaf");这个效果和上面一样,但是这是一种旧式的写法。最新的写法为:    pri

2009-10-11 13:42:00 620

转载 volatile的作用

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1). 并行设备的硬件寄存器(如:状态寄存器)     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic var

2009-10-11 12:59:00 596

原创 如何返回局部数组?

            稍微有些编程经验的朋友都会知道一个函数是无法返回一个局部数组的,至于原因,我想从两个方面进行说明,虽然并不是这两个方面都对其有影响,但我认为在这个问题上我们都该了解的东西:① 函数的返回类型不能为一个数组类型。这个就是说,作为函数返回类型的不能为一个数组,我们要想返回一系列的值,只能用一个指针来代替了,返回指向这一系列值的第一个元素的指针。② 局部数组,具有局部

2009-10-11 12:18:00 3128

转载 我的算法书收藏

我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。另见豆列:负责任推荐:算法学习经典1. CLRS 算法导论算法百科全书,只做了前面十几章的习题

2009-10-10 09:03:00 1112 1

转载 数据结构与算法书籍推荐

如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理。如果只开一门课,那剩下的就一定是:数据结构与算法。Niklaus Wirth说:算法+数据结构=程序,不说废话了,下面列出一份数据结构算法书目,先从最著名的说起A原书名:The Art of Computer Programming中文名:计算机程序设计艺术作者:Donald E.Knuth难度:

2009-10-10 09:01:00 5521

原创 Fibonacci数列

    Fibonacci数列是一个应用很广泛的数列,它的形式如下:        0,1,1,2,3,5,8,13,21,34.....它的规则为:                Fn-1 + Fn-2  (n > 1)          Fn =         1      (n==1)                               0     (n

2009-10-09 16:53:00 748

转载 设置图标按钮

// 首先得到按钮句柄  CButton *pBunH;  pBunH = (CButton*)GetDlgItem( IDC_BUTTON2);  // 接下来得到图标句柄  HICON hBtnIcon;  // 方法1  //hBtnIcon = AfxGetApp()->LoadIconW( IDI_ICON3);  // 方法2  //hBtnIcon = LoadIconW( AfxG

2009-10-06 21:03:00 753

转载 存储器的分类

存储器:用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。  只读存储器(ROM):只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种: 1、掩膜ROM: 掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用

2009-10-06 10:36:00 1882

原创 中点画线法

算法目的:画一条直线算法思想:判断两个像素点的重点是在直线的下方,上方还是直线上,从而确定该选择那一个像素点。线内:F(x,y) ==0;上方:F(x,y) > 0;下方:F(x,y) -----------------------------------------------------------------------------------------------

2009-10-04 08:33:00 4745 1

转载 VC 实现XP风格

要在你的应用程序中实现XP风格,你要做的第一件事情是创建一个manifest文件(其实是一个XML文件),下面列出了代码,新建一个文本文件,然后保存为xpstyle.manifest。这里我们放在res文件夹中,也可以放在编译目录下。我们要做的就是把它整合到资源文件中,这样编译后生成.res文件,link后自然就和.exe文件合到一起了。首先,复制下面.manifest文件:  name=

2009-10-01 16:50:00 1266

原创 vector中的rezie和reserve

首先我们应该明白resize 和 reserve的意思。resize :调整大小reserve: 保留明白意思之后我们首相就可以通过名字对他们的功能有一个大致的了解了:为了弄清他们之间的区别,我们看下面的一段代码:#include #include using namespace std;int main(){ vector v; v.res

2009-09-28 14:48:00 948

原创 为窗口设置背景图片

CPaintDC dc (this);CRect rect;GetClientRect(&rect);CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1); CBrush brush;brush.CreatePatternBrush(&bmp);dc.FillRect(&rect,&brush);  1 定义一个设备上下文,然后获得客户区。

2009-09-26 21:56:00 785

原创 VC++小问题解决

1   使用VC++建的工程中使用OPENFILENAME 出现未定义错误    需要包含头文件 #include 2   ‘Debug/.pch’is not a precompiled header file created with this compiler?   这种情况的产生一般为其他编译器产生的工程。或是同一个编译器,但是由于某种原因卸载了,又重装后再编译上次编译好的

2009-09-24 15:45:00 1429

原创 C陷阱与缺陷学习总结

总结序言:学习大牛们的书籍,每次都是新潮澎湃,热血沸腾,看他们的书心中就有一种信任,有一种无比的膜拜。最初看到这本书的时候心情也是如此。Andy这个大牛我想大家也都如雷贯耳了吧.从图书馆找到他的书籍,我二话不说便细细的品味起来,希望从中能获得意想不到的东西.然而当我真正的深入阅读之后才发现原来一切都是那么常见的问题,一切都来源于实际的编程,并不是什么高深的东西。然而正是这些常见的细微的编程问题

2009-09-24 15:25:00 753

原创 考研还是工作?----- 一点自己的看法

   刚从肖老师的笔记里看到一个同学的疑惑,肖老师已经做了详尽的回答,我随没看完肖老师的解释,但已经急于表达自己看法了,这个想法使自己体会到的。原文地址:http://student.csdn.net/space.php?uid=39028&do=blog&id=12262下面说一下自己的看法:            这里我提前说明一下,我说的这些是针对那些想有所作为的,有宏伟目标的同

2009-09-24 13:15:00 1186

原创 字符串指数问题

问题描述:  求一个字符串由多少个字串构成。即若我们输入:abcdaaaaababab那么输出结果应该为143我们该如何设计这个算法呢。我目前的算法就是首先判断一个字符,然后逐步扩展,当并不是一个字符一个字符的扩展,而是能被当前字符串长度正除的字符串长度才会被处理。好的,我们看一下算法: while (gets(s) != "#") { m =

2009-09-23 22:22:00 1305

原创 荷兰国旗问题

 上方的图片便是一个荷兰国旗,从图中我们可以很清楚的看出它的特点,它有三个区域组成,即红,白,蓝。好,现在我们的问题出来了。现在我们面前有一张桌子,桌子上整齐的摆放着红色,白色,蓝色三种线条,但他们的顺序是凌乱的。我们的要求是:用一个算法把这些线条挑出来重新摆放顺序,最后的结果就像上图的荷兰国旗,红色在上,白色在中间,蓝色在最下面。 好了,我们该如何实现上面的问题呢?其实拿到这

2009-09-23 20:25:00 8544 4

原创 大数相乘问题

        我们在现实的计算中难免会遇到益处问题,加法溢出,乘法溢出等,因为我们的类型变量表示的范围是有限的。这里我们讨论下有溢出的乘法问题的解决。这种方法我们可以通过两个数组来存储乘数和被乘数来解决问题。代码1:#include using namespace std;void Multi(int *num1,int size1,int *num2,int size2){

2009-09-23 19:18:00 1125

原创 住在我隔壁储藏室的大学刚毕业的小夫妻(震撼,感动)(转帖)

你想洗礼一次自我的心灵吗?你想重新审视自己的人格吗?那么就请你花点时间,耐心的看完这篇文章。无须探究故事的真实,因为这个社会已经不太“真实”,也经不起真实的推敲。        (一)        从搬进这家民房的第一天,我就开始怀疑我隔壁的那个储藏室根本没住人。一天到晚黑黢黢的,没半点声响。        我终于还是忍受不了房间里那个破沙发了,便又一次跟房东要求,能不能让我把一些杂物放进隔壁的

2009-09-22 18:01:00 1252

原创 二叉排序树

q = p; s = p->lchild;while (s->rchild){} 二叉排序树的删除分析删除二叉排序树中一个结点分为两种情况,删除右子树上的一个结点和删除左子树上的一个结点。令指针p为待删除结点的指针,q为待删除结点的父结点指针。①删除左子树上的一个结点:此种情况又分为3中情况:   1: 待删除结点的左右子树均为空,即删除的为一个叶子结点。

2009-09-20 13:49:00 550

原创 深刻理解指针类型

   1   内存存储Code:char * p  = "hello,world";   对于个语句中,p所占的内存空间是分配在栈空间中的,在变量p的生命期结束时自动释放,其中"hello,world";是存在全局的静态区的,是到这个程序才会释放的空间。当p的生命期结束后,我们将无法访问到存储"hello,world"的那块内存。所以对一下应用将会是一个错误

2009-09-19 21:40:00 652

原创 《C 陷进和缺陷》----词法分析中的“贪心法”

       C语言中的某些符号,例如/、*、=,只有一个字符长,称为单字符符号,而C语言中的其他符号,例如/*、==,以及标识符,包括了多个字符,称为多字符符号。当C语言编译器读入一个字符/后又跟了一个字符*,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是后起来作为一个符号对待。C语言对这个问题的解决方案可以归纳为一个很简单的规则:每一个符号应包含尽可能多的字符。即编译器将

2009-09-19 21:36:00 737

原创 内存分配

               今天在看书的时候突然想到一个问题,操作系统的内存分配是从高地址进行的,还是从低地址进行的呢?故就回来进行 试验一翻了解一下,首先我们都知道内存分为栈内存区,堆内存区,静态变量区等好几个部分呢。就此我们仅仅研究栈内存和对内存的分配.首先看一下栈内存的分配:#include using namespace std;int main(){ in

2009-09-19 20:37:00 614

原创 三叉链表

#include #include #include using namespace std;enum {ERROR,OK,OVERFLOW = 0};int Nil = ;typedef struct BiTNode{ int data; BiTNode *lchild,*rchild,*parent;}BiTNode,*BiTree;bool

2009-09-18 15:49:00 2505

原创 二叉树

#include #include #include using namespace std;enum {ERROR,OK,OVERFLOW = 0};int Nil = ;typedef struct BiTNode{ int data; BiTNode *lchild,*rchild;}BiTNode,*BiTree;bool InitBiTr

2009-09-18 15:11:00 593

原创 循环链表

#include #include typedef struct LNode{ int data; LNode* next;}LNode,*cirLinkList;/* 初始化一个循环链表,分为两步: ①:为它申请一个头结点. ②:令他的头结点的指针指向其自身. */void InitCirLinkList(cirLinkList &t){

2009-09-15 11:15:00 686

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除