自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MoreWindows Blog

格物穷理,以求自由!

  • 博客(157)
  • 资源 (23)
  • 收藏
  • 关注

原创 jquery 表格的增加删除和修改及设置奇偶行颜色

最近一周在学了一点点HTML, CSS, javascript,用javascript的jquery完成了一个简单的表格操作,有增加、删除和修改功能。表格分三列,第一列是学生编号(ID号),第二列是学生姓名,第三列为学生年龄。在姓名和年龄框内输入数据,再点“Add”就可以增加数据(ID号会自动递增的生成),输入ID号再输入新的姓名和年龄点“Edit”就可以修改,删除的话输入ID号就点“Delete

2011-12-08 09:35:26 21718

原创 STL系列之六 set与hash_set

STL系列之六 set与hash_setset和hash_set是STL中比较重要的容器,有必要对其进行深入了解。在STL中,set是以红黑树(RB-tree)作为底层数据结构的,hash_set是以Hash table(哈希表)作为底层数据结构的。set可以在时间复杂度为O(logN)情况下插入、删除和查找数据。hash_set操作的时间复杂度则比较复杂,这取决于哈希函数和哈希表的负载情况。下面

2011-12-01 09:49:56 40015 50

原创 STL系列之五 priority_queue 优先级队列

priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队列的使用是相当频繁的,进线程调度都会用到。在STL的具体实现中,priority_queue也是以别的容器作为底部结构,再根据堆的处理规则

2011-11-16 12:39:00 56490 23

原创 STL系列之四 heap 堆

下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。建立堆make_heap(

2011-11-14 01:16:13 72016 25

原创 STL系列之三 queue 单向队列

queue单向队列与栈有点类似,一个是在同一端存取数据,另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。因此实现也是非常方便的。下面就给出单向队列的函数列表和VS2008中单向队列的源代码。单向队列一共6个常用函数(front()、ba

2011-11-09 09:20:10 69915 12

原创 STL系列之二 stack栈

栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个

2011-11-09 09:03:29 62930 17

原创 STL系列之一 deque双向队列

deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数

2011-11-08 09:52:01 131485 19

原创 Windows 缓冲区溢出与数据执行保护DEP

缓冲区溢出与数据执行保护DEP介绍先看一个缓冲区溢出的C++实例程序,代码如下(VC6.0下编译通过)://by MoreWindows #include #include #include #include #include void foo(const char *input){ char buf[4]; //buf 占4字节,后4字节为ebp,再后4个字节为返回地址。

2011-10-19 10:09:20 20765 18

原创 C# 访问数据库

C#访问数据库无疑是非常方便的,下面给出了C#访问MSSQL的基本方法。 首先声明命名空间using System.Data.SqlClient;再使用SqlConnection类连接,SqlCommand类执行SQL命令,结果返回给SqlDataReader类或其它类。 各类的基本用法介绍:SqlConnection类在构造时传入连接数据库字符串,也可以定义后通过ConnectionString

2011-10-10 10:37:26 28809 4

原创 Windows 各种计时函数总结

本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、GetTickCount()及QueryPerf

2011-10-09 10:42:30 60113 18

原创 C/C++变量在内存中的分布

C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。先写一个测试程序:#include #include int g_i = 100;int g_j = 200;int g_k, g_h;int main

2011-10-08 10:30:09 33679 90

原创 Windows系统下搭建MPI(并行计算)环境

Windows系统下搭建MPI环境MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。一.准备工作1.

2011-09-26 19:44:15 70067 20

原创 VS2010项目转化为VS2008项目

第一步:打开VS2010项目的SLN文件有如下代码: Microsoft Visual Studio Solution File, Format Version 11.00# Visual Studio 2010将之改为:Microsoft Visual St

2011-09-25 15:24:40 17409 2

原创 进程通信之一 使用WM_COPYDATA C++及C#实现

进程间通信最简单的方式就是发送WM_COPYDATA消息。本文提供C++及C#程序相互通信的二种实现方式。这样消息的接收端可以用C++实现,发送端可以用C++或C#实现。 发送WM_COPYDATA消息:SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&CopyData); 其中的CopyData为COPYDATASTRUCT结构类

2011-09-23 15:43:02 35034 14

原创 VC 控制台颜色设置

通常控制台都是白字黑底的,千篇一律不免单调。适当的在控制台中加入一些彩色可以让人耳目一新,本文介绍如何使用系统API接口去修改控制台的文字和背景颜色。 主要用到如下二个函数:得到standard input, standard output, or standard error的设备句柄:HANDLE GetStdHandle(DWORD nStdHandle);参数有:STD_INPUT_HAN

2011-09-19 10:39:04 19980 6

原创 C/C++ 在控制台下显示进度

当程序在进行大量的运算或IO操作时,常常需要耗很长时间,为了不让用户有一个乏味的等待或是错误的认为系统已经死机,有必要给程序添加进度提示功能。在窗口界面中要显示进度条和显示完成百分比是非常容易的,但如何在控制台下去完成这个任务了?一行一行的输出当前完成百分比肯定是不够美观的,最好能“原地踏步”一样的显示即旧的数字会被新的数字完全覆盖。其实这个是很容易的,下面先给出的示例代码,稍后再进行讲解。//在

2011-09-02 10:33:45 29545 20

原创 VC Debug与Release区别

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,我们使用的软件都是Release版本的。Debug 和 Release 并没有本质的

2011-08-30 11:14:20 15624 5

原创 VC 编译参数介绍

VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:这些参数究竟代表什么意思了?可以

2011-08-29 19:46:46 11713 1

原创 C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来

2011-08-26 18:19:33 113845 22

原创 白话经典算法系列之七 堆与堆排序

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父

2011-08-22 20:04:13 439096 192

原创 C,C++中使用可变参数

可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种

2011-08-22 10:20:34 42974 8

原创 图解如何在VC6,VS2008中设置程序条件断点

VC6.0中按Ctrl+B可以弹出断点设置对话框点Condition,弹出Breakpoint Condition对话框中输入i==5||j==5。再点确定。再按F5运行程序,就会在设置的条件满足时停止。注意这句Break at ‘{, test.cpp,}.12’ when ‘i==5||j==5’。一般按F9设置的断点都没有后面这个语句称为指定行上无条件断点,这种可以称为指定行指定条件断点。另

2011-08-20 18:50:22 13537 5

原创 VC 利用DLL共享区间在进程间共享数据及进程间广播消息

在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程。 一.在DLL中设置共享区间在DLL中是用数据段来实现共享区间的,有了这个共享区间,各进程可以方便的共享数据。1.先用

2011-08-19 16:27:53 11608 6

原创 C,C++宏中#与##的讲解

文中__FILE__与示例1的可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#defi

2011-08-18 10:58:48 23200

原创 使用ANSI C and Microsoft C++中常用的预定义宏

__FILE__       源文件的名称  如XXX.cpp__LINE__       代码在源文件中是第几行 __DATE__      源文件完成日期如Aug 17 2011__TIME__       源文件完成时间如19:31:13__TIMESTAM

2011-08-17 21:35:23 8206

原创 VC 用发音函数Beep()播放简谱音乐

Win32 API中有个非常有意思的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放一些简单的音乐了。 函数原型:BOOL WINAPI Beep(  __in          DWORD dwFreq,  __

2011-08-15 15:30:27 12711 28

原创 VC 为程序创建快捷方式的详细讲解

有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径HRESULT S

2011-08-14 20:49:24 18148 16

原创 使用VC库函数中的快速排序函数

上一篇讲了快速排序的实现。但在很多场合,直接使用快速排序的库函数是很方便的。下面讲下VC中库函数qsort()的用法: 函数原型:void qsort(void *base,size_t num,size_t width, int (__cdecl *compare

2011-08-13 17:23:03 22252 8

原创 白话经典算法系列之六 快速排序 快速搞定

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快

2011-08-13 17:19:58 665395 453

原创 VC 如何使程序运行后自己删除自己

有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易:方法1,调用BAT文件。//向指定文件写入文本。如果文件不存在就创建。int WriteTextToFile(cons

2011-08-12 16:08:01 20545 25

原创 白话经典算法系列之五 归并排序的实现

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中void MemeryArra

2011-08-11 11:01:05 361603 179

原创 VS2008下设置与VC6.0相同的字体

用VC6.0用久,对VS2008的文字大小和文字字体非常不习惯,因此决定改动下VS2008显示代码的文字字体。运行VS2008后在菜单项依次选择工具->选项->环境->字体和颜色。然后先在显示项中选择“纯文本”,再将“字体” 设为 Fixedsys。“大小” 设为 13这

2011-08-11 10:33:00 12581 12

原创 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现

直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1.      初始时,数组全为无

2011-08-09 11:15:51 37031 37

原创 VC 利用SetWindowRgn实现程序窗口的圆角多角矩形

下面是实现程序窗口圆角多角矩形的三种方法,但效果都比较差。只是简单的将边角裁剪,从边框和标题栏上都可以看出来。不过可以通过这三个函数来学习下SetWindowRgn()及创建一个HRGN的不同方法。方法1void SetWindowEllipseFrame1(HWND hwnd, int nWidthEllipse, int nHeightEllipse){ HRGN hRgn; RE

2011-08-08 11:55:39 14645 4

原创 白话经典算法系列之三 希尔排序的实现

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增

2011-08-08 11:41:40 225773 114

原创 白话经典算法系列之二 直接插入排序的三种实现

直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1.      初始时,a[0]自成1个有序区,无序区为a[1..n-1]。

2011-08-06 19:27:17 154553 92

原创 白话经典算法系列之一 冒泡排序的三种实现

冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N

2011-08-06 19:20:30 196363 103

监视剪切板

有很多程序会监视剪贴板,比如迅雷,这样当你复制一个迅雷下载链接时,迅雷就可以自动启动并创建一个新的下载任务。下面我们就来看看如何实现这个技术。

2013-12-31

Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)

本篇《Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)》将从大名鼎鼎的chromium库抽取代码,保证健壮高效的完成Base64编码解码。

2013-10-19

Windows界面编程-使用换肤库

Windows界面编程-使用换肤库 短短几行代码就能让你的程序界面变的更加漂亮。有完整的代码及程序,运行时程序会随机加载一种皮肤。

2013-05-06

VC++位图特效显示合集—交错、百叶窗、随机积木、飞入伸展

《Windows界面编程第十三篇 位图显示特效合集》 http://blog.csdn.net/morewindows/article/details/8696730 配套程序。 自己封装了一些常用字的位图特效显示函数——交错、百叶窗、随机积木、飞入伸展。代码清晰可读,推荐大家试用下。

2013-03-24

进程通信之三 父进程传参数与子进程返回值

《进程通信之三 父进程传参数与子进程返回值》 http://blog.csdn.net/morewindows/article/details/8683830 配套程序。本篇介绍一个简单而又实用的进程通信方式——父进程向子进程传入参数并获取子进程返回值。这个非常简单: 1.父进程向子进程传入参数可以由CreateProcess()函数来完成,注意子进程是通过GetCommandLine()来获取这个参数而且不是char *argv[]。 2.父进程要获取子进程的返回值可以在等待子进程结束后通过GetExitCodeProcess并传入子进程句柄来获取子进程中main或WinMain函数的返回值。

2013-03-21

Windows VC++ 调整进程当前目录为程序可执行文件所在目录

《Windows VC++ 调整进程当前目录为程序可执行文件所在目录》http://blog.csdn.net/morewindows/article/details/8683519 配套程序。 调整进程当前目录为程序可执行文件所在目录是个非常实用的方法。为了更加的让代码复用,本文将调整进程当前目录为程序可执行文件所在目录这一功能封装为三个实用函数—— 1.SplitPathFileName 这个函数将文件全名(带路径)分解成路径名,文件名,后缀名。 2.GetProcessPathNameAndFileName 得到当前进程可执行文件的路径名,文件名,后缀名。 3.AdjustProcessCurrentDirectory 调整进程当前目录为程序可执行文件所在目录

2013-03-21

WindowsVC++获取多核CPU各核使用率

《Windows系统CPU内存网络性能统计第三篇 CPU 多核CPU各核使用率 C#》 http://blog.csdn.net/morewindows/article/details/8678382 配套程序,能获取多核CPU各核的使用率,已经测试,能在WinXP及Win7运行。

2013-03-20

WindowsVC++获取CPU整体使用率

《Windows系统CPU内存网络性能统计第二篇 CPU CPU整体使用率》 http://blog.csdn.net/morewindows/article/details/8678359 配套程序。 讲解了在Windows系统下使用VC++获取系统CPU整体使用率。已经测试,能运行于WinXP和Win7系统。

2013-03-20

MoreWindows微软实习生大礼包

微软实习生日记 第二篇 微软实习生招聘指导手册 . http://blog.csdn.net/morewindows/article/details/8684061 博客配置资料,包含微软实习的笔试题,面试题,笔经,面经及实习大礼包

2013-03-18

秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据

《秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据》 http://blog.csdn.net/morewindows/article/details/8646902 配套程序 在《秒杀多线程系列》的前十五篇中介绍多线程的相关概念,多线程同步互斥问题《秒杀多线程第四篇一个经典的多线程同步问题》及解决多线程同步互斥的常用方法——关键段、事件、互斥量、信号量、读写锁。为了让大家更加熟练运用多线程,将会有十篇文章来讲解十个多线程使用案例,相信看完这十篇后会让你能更加游刃有余的使用多线程。

2013-03-13

Windows界面编程第八篇 listbox彩色显示隔行变色

《Windows界面编程第八篇 listbox彩色显示隔行变色》 http://blog.csdn.net/morewindows/article/details/8656061 配套程序 示范了如何彩色显示listbox控件,并让其隔行变色。 Win32或MFC程序均能使用。

2013-03-11

Windows界面编程第七篇 文件拖拽(文件拖放)

《Windows界面编程第七篇 文件拖拽(文件拖放)》 http://blog.csdn.net/morewindows/article/details/8634451 配套程序。 使程序支持将文件拖入窗口的功能。Win32或MFC均能使用。

2013-03-11

电脑屏幕大小查看器(VC++带源码)

可以查看电脑屏幕的大小,并计算对角线长。让你了解你电脑屏幕到底是多少英寸的。 《VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下》文章配置程序

2013-03-03

MoreWindows界面编程第五篇 静态控件背景透明化

博客文章《Windows界面编程第五篇 静态控件背景透明化》的配套程序,示范了二种不同的方法来设置静态控件的透明背景,程序注释翔实,讲解细致,可读性强。

2013-01-06

MoreWindows界面编程第四篇 异形窗口2

博客文章《Windows界面编程第四篇 异形窗体 下》的配套程序,示范了如何创建以图片为对话框形状话的异形窗口,程序注释翔实,讲解细致,可读性强。

2013-01-06

MoreWindows界面编程第三篇 异形窗口 1

博客文章《Windows界面编程第三篇 异形窗体 上》的配套程序,示范了如何创建以图片为对话框形状话的异形窗口,程序注释翔实,讲解细致,可读性强。

2013-01-06

MoreWindows界面编程第二篇 半透明窗体

博客文章《Windows界面编程第二篇 半透明窗体》的配套程序,示范了如何实现半透明窗口。程序注释翔实,可读性强。

2012-12-31

MoreWindows界面编程第一篇-位图背景与位图画刷

博客文章《Windows界面编程第一篇 位图背景与位图画刷》的配套程序,示范了为对话框添加位图背景,并分别用自贴图和位图画刷来完成。程序注释翔实,可读性强。

2012-12-31

OpenCV图像二值化

《【OpenCV入门指南】第四篇 图像的二值化》http://blog.csdn.net/morewindows/article/details/8239678 的配套程序,可以动态调整二值化的阈值,以便更好观察二值化效果。

2012-12-05

VC,VS实用脚本--批量删除VC及VS临时文件

这个小脚本可以批量删除VC及VS编译时产生的临时文件,使用时将这个脚本拷贝到目标目录下,然后双击运行即可。这样当前目录中包括其子目录中的临时文件都会清理干净。

2012-11-27

MoreWindows白话经典算法之七大排序第2版(高清)

在第一版的基础上新加了对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法的总结篇,方便大家复习,合适作为笔试面试前的复习资料。

2012-09-10

MoreWindows白话经典算法之七大排序(高清版)

这是本人在研一上课时所整理的文档,包括冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法,这些文章不仅使我在考试中取了不错的成绩,也为后来顺利面过迅雷,腾讯,微软打下了良好的基础,现在整理成电子书形式,希望能对大家有所帮助。

2012-07-21

空空如也

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

TA关注的人

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