代码改变世界

随笔档案-2013年09月

WinForm退出程序的方法

2013-09-27 12:24 by Keiven_LY, 277 阅读, 收藏,
摘要: C# WinForm程序退出的方法(转载:http://www.cnblogs.com/yugen/archive/2010/08/10/1796864.html)1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;4.System.Environment.Exit(0 阅读全文

字符串的表现形式

2013-09-26 11:02 by Keiven_LY, 938 阅读, 收藏,
摘要: 参考博客:http://blog.163.com/ocean_china@126/blog/static/1851702020080410502075/) 字符数组 string是字符数组,代表的是字符数组的首地址,string[4]代表数组中序号为4的元素(v),实际上string[4]就是*(s 阅读全文

读书笔记:C++ Primer系列(15)——构造函数与析构函数

2013-09-24 20:40 by Keiven_LY, 776 阅读, 收藏,
摘要: C++为类提供了两种特殊的成员函数,一种是构造函数,在对象创建时自动调用,用以完成对象成员变量等的初始化及其他操作(如为指针变量动态申请内存空间);另一种是析构函数,在对象撤销时自动调用,用以执行一些清理任务,如释放成员函数中动态申请的内存等。 一、构造函数      如果程序员没有显式地定义构造函 阅读全文

define与typedef的区别

2013-09-24 16:39 by Keiven_LY, 301 阅读, 收藏,
摘要: 例:#define PI 3.14typedef int* int_p;从上面的两条语句可以看出:1、#define是预处理命令,在编译预处理时进行单纯的替换工作,不做正确性检查,而typedef是在编译时处理的,可理解为“为某个类型寻找另一种书写方式” 即typedef int* int_p;该语句为int*引入了一个新的助记符int_p,可以在程序中用int_p声明指向int型的指针变量 如typedef int* int_p; int_p pA,pB;上述两条语句声明了两个指向int型的指针变量pA和pB2、#define不是语句,后面不加分号,而typedef需加分号3、typedef 阅读全文

C++ 野指针

2013-09-24 16:17 by Keiven_LY, 828 阅读, 收藏,
摘要: 看下面一段代码:if(条件){ int *p=new int[8];}p是代码块中声明的局部指针变量,在代码块执行完退出时,p自动消亡,但p指向的大小为8,类型为整形的内存空间并不会被释放掉。代码块退出后,程序无法再通过指针p释放所申请的动态内存,这块内存已经“泄漏”!防止内存泄漏的方法:适时释放申请的动态内存 malloc()与free()配对使用,new与delete配对使用再看 int *p=new int[8]; ......... delete[] p;执行完delete[] p后,指针p也不会消亡,其值也不会变,并不会变为null,因此,指针被free或delete后,一定要置为n 阅读全文

C++中类的使用

2013-09-15 15:59 by Keiven_LY, 707 阅读, 收藏,
摘要: 1、类定义的基本形式class 类名{ private: 私有的数据成员定义 私有成员函数 public: 公共成员函数};如:class computer{ private: //私有成员列表 char brand[20]; float price; public: //公有成员列表(访问接口) void print(); void SetBrand(char *sz); void SetPrice(float pr);}... 阅读全文

C/S与B/S的区别

2013-09-15 14:00 by Keiven_LY, 387 阅读, 收藏,
摘要: 1、C/S架构C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端/服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。2、C/S的优缺点优点 阅读全文

C++ 中的指针与引用

2013-09-13 14:15 by Keiven_LY, 369 阅读, 收藏,
摘要: 引言:       从概念上讲:       指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。       引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象 阅读全文

C++中的函数定义、声明、调用

2013-09-12 16:19 by Keiven_LY, 18769 阅读, 收藏,
摘要: 1、函数的本质:函数由能完成特定功能的独立程序代码块组成,如有必要,也可调用其他函数(函数的嵌套)函数内部工作对程序的其它部分是不可见的2、 实现一个函数要经过3个步骤:定义、声明、调用函数声明(又称函数原型)的原因:用来通知编译器函数的存在,以获得函数的使用许可,只有这样,才能在程序中对函数进行调用。具体来说,函数声明的作用如下:使编译器正确处理返回值使编译器可以检查输入参数的数目使编译器检查输入参数的类型,如果类型不正确,则对类型进行隐式转换函数调用的作用如下:用实参向形参传递数据为获得数据的参数和函数中为声明的变量分配临时存储空间中断当前正在运行的上级调用函数,将程序流程转到被调用函数的 阅读全文

字符数组中的cin与cout

2013-09-11 21:02 by Keiven_LY, 2222 阅读, 收藏,
摘要: 1 #include 2 #include 3 4 using namespace std; 5 6 int main() 7 { 8 char str[]="Welcome to C++ world !"; //创建一个字符数组,并初始化 9 cout>str;12 cout这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string... 阅读全文

七大经典排序算法

2013-09-06 10:03 by Keiven_LY, 543 阅读, 收藏,
摘要: 1、直接插入排序 基本思想:    (1)首先对数组的前两个数据进行从小到大排序;    (2)接着将第3个数据与排好序的两个数进行比较,将第3个数据插入到合适的位置;    (3)然后将第4个数据插入到上述已排好序的前3个数中;    (4)不断重复上述过程,知道将最后一个数据插入到合适的位置,最 阅读全文

二叉排序树的插入、生成、删除及查找操作

2013-09-05 20:56 by Keiven_LY, 643 阅读, 收藏,
摘要: 二叉排序树的性质:(1)若它的左子树不为空,左子树上所有节点的关键字均小于它的根节点的关键字;(2)若它的右子树不为空,右子树上所有节点的关键字均大于它的根节点的关键字;(3)它的左右子树也均为二叉排序树#include#includetypedef struct node{ int key; struct node *lchild; struct node *rchild;};void InsertBST(struct node **bst,int key){ struct node *s; if(*bst==NULL) { s=(struc... 阅读全文

二分查找(折半查找)

2013-09-04 19:21 by Keiven_LY, 3726 阅读, 收藏,
摘要: 二分查找又称折半查找,前提要求数据序列呈现线性结构,即必须是经过排序的。基本思路: 在一组有序序列中,取中间值与给定关键字进行比较,如果给定关键字大于该值关键字,则要查找的关键字位于有序序列的后半部分;若给定小于该值,则要查找的关键字位于有序序列的前半部分。每次将有序序列的长度缩小一半之后,再从中间位置的记录进行比较,依次反复进行。查找过程如下:1、查找初始化为low=1、high=length。其中low和high是两个位置指示器,分别指向当前序列的第一个和最后一个值;2、对当前有序序列做如下处理:(1)求当前序列的中间位置:mid=(low+length)/2,mid为中间值的位置指示器; 阅读全文

顺序查找

2013-09-03 21:10 by Keiven_LY, 350 阅读, 收藏,
摘要: 基本思想:用所给关键字与线性表中各个数据进行逐一比较,直到成功或失败。方法1:对查找数组中的某元素(逐一比较)#include#include#include#define max_len 20#define N 6int SearchFun(int a[],int n,int x) //在给定长度的数组中查找数据元素x{ int i,f=-1; for(i=0;i#include#define max_len 20typedef struct{ int key; char data;}Record;typedef struct{ Record r[max_len... 阅读全文

二叉树的创建、遍历及应用

2013-09-02 16:53 by Keiven_LY, 792 阅读, 收藏,
摘要: 如图所示的二叉树:#include #include #include #define MAXNODE 10struct node{ char data; struct node *lchild; struct node *rchild;};struct node *CreatBTree() //采用递归法,创建二叉树{ struct node *topNode; //定义1个指向结构体的指针 char ch; ch=getchar(); //getchar函数是从输入缓冲区里读出最开头的那个字符的,然后把最先的那个字符删掉 if(ch=='0'... 阅读全文