自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术土豆

即使再小的帆,也能远航!

  • 博客(200)
  • 资源 (51)
  • 收藏
  • 关注

原创 学习《C++ Templates 中文版》第一部分 第3章、第4章

第三章学习笔记:1.类模板   和函数模板很相似的template  class stack{  };注:那么这个类的类型是stack 一些对赋值,拷贝构造函数等要像这样template class stack{  stack(stack const&);  stack& operator=(stack const&);};stack& stack(st

2011-10-27 17:20:16 681

原创 学习《C++ Templates 中文版》第一部分 第2章

第二章学习笔记:1.函数模板 阐明了定义模板类型,不一定只能class,而今可以使用typename关键字  而且该关键字不会产生误解2.模板被调用一次  就会产生该次的单一实体  即模板被实例化 模板实例化是编译器自动完成的模板被编译两次,分别① 实例化之前,检查本身语法② 检测调用的有效性 3.实参演绎4.重载函数模板就目前而言,只要牢记:函数的所有重载版本的声

2011-10-25 15:14:41 646

原创 学习《C++ Templates 中文版》第一部分 基础

《C++ Templates 中文版》这里讲解模板的重要性,模板实现可以减少重复的工作和避免重复范同样的错误~  所以学习C++模板是相当有必要的。PDF电子书下载地址:http://download.csdn.net/detail/helihui123/3719798

2011-10-25 13:37:37 667

转载 骨骼动画资料搜集

http://www.cnblogs.com/lai3d/archive/2009/12/22/1629749.html

2011-10-06 12:22:11 530

转载 D3DMULTISAMPLE_TYPE是什么意思,请问怎么用的

参考答案1:是屏幕抗锯齿方式 屏幕都是一个个象素点组成的,画线的时候会出现锯齿,通过设置这个参数可以降低锯齿现象 但是会牺牲显存和渲染的速度的 它是硬件支持的特性,如果硬件不支持就不能设置参考答案2:缺省的设置为NONE方式——不支持全屏幕

2011-09-21 13:31:13 1275

转载 DirectX游戏开发终极指南 EnumDevices

DirectX游戏开发终极指南 DirectInput的例子,不能运行解决方法:CDirectInput.cpp文件里m_inputSystem->EnumDevices(DI8DEVCLASS_GAMECTRL, (LPDIENUMDEVICESCALLBACK

2011-09-20 15:43:25 1970

转载 学习3D开发技术的优秀网站

以下这些网站都是我从各大搜索引擎搜集而来的,大多数经过我的验证,因为这些网址都是手工录入,所以难免有疏漏和差错,还望大家多多谅解,谢谢大家支持www.C3DN.net!我把这些网址归为:一、3D综合类;二、3D硬件技术;三、OpenGL;四、DirectX;五、Web3D

2011-09-18 08:50:23 1317

转载 关于VC++6.0编译高版本DX库出错问题

关于VC++6.0编译高版本DX库出错问题2011-06-07 12:09今天从网上下载了一个DX的Demo,readme里说是基于VC++6&DX9.0.于是用VC++6打开了工程,又在VC++6里引入了DX的.h和.lib。编译报错

2011-09-12 19:17:41 512

转载 C++成员函数末尾const关键字的作用

1>    尽管函数名和参数列表都相同,void    foo( ) const成员函数是可以与void    foo( )并存的,可以形成重载!  我们假设调用语句为obj.foo(),如果obj为non-const对象,则调用foo()。如果obj为const对象,则

2011-09-02 14:30:48 744

转载 VC++下使用ADO编写数据库程序 – 操作大全

准备:(1)、引入ADO类 #import "c:/program files/common files/system/ado/msado15.dll" /no_namespace /rename ("EOF", "adoEOF")(2)、初始化COM在M

2011-08-30 09:49:07 410

转载 Quoted-Printable

(转自CSDN,个人笔记而已)Quoted-Printable也是MIME邮件中常用的编码方式之一。同Base64一样,它也将输入的字符串或数据编码成全是ASCII码的可打印字符串。Quoted-Printable编码的基本方法是:输入数据在33-60、62-12

2011-08-22 21:47:53 598

原创 socket smtp 邮件带附件MFC编程

socket smtp 邮件带附件MFC编程网上发邮件的MFC的代码还是比较多的,但都是不太完整,找到一个比较好的却没有验证帐号密码的。然后看代码封装的比较好的,链接是:http://www.pudn.com/downloads229/sourcecode/windows

2011-08-20 21:06:23 2056 3

转载 SMTP 命令

SMTP 命令SMTP 命令包括:HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。MAIL FROM 命令中指定的地址是发件人地址RCPT TO

2011-08-20 14:16:55 10116 1

转载 邮件头分析

邮件头分析 2008-11-07 10:02:18转贴自Foxmail论坛精华区) 一、简介 这一部分内容将详细讨论email头的方方面面。主要为用户架设邮件服务器提供理论基础并为管理员在出现电子邮件垃圾骚扰时提供发现垃圾邮件的真正

2011-08-19 12:14:36 3044

转载 主要邮件服务器地址

网易126邮箱   接收服务器:pop3.126.com   发送服务器:smtp.126.com  网易163免费邮   接收服务器:pop.163.com   发送服务器:smtp.163.com  网易163VIP邮箱   接收服务器:pop.v

2011-08-18 13:41:03 21933

转载 推荐 5 款 Windows 下的 SVN 客户端工具

SVN (Subversion) 是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。本文向你介绍 5 款免费和开源的图形界面的 SVN 客户端工具:Tortoise

2011-08-17 09:01:27 16959 2

转载 VC6.0设定UNICODE编译环境

VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。      1. 安装完成后:需要把VC98\MFC\LIB下的MFC42U*.*手动拷贝到对应的安装目录下   2.

2011-08-12 11:54:34 502

转载 使用SkinMagic美化MFC的窗口

使用SkinMagic美化MFC的窗口跟美化对话框很相似,但是由于我是新手,对于这些操作不是太熟,所以还是有必要记录一下这段历程,往事开头难嘛!!对于这篇文章和使用《SkinMagic美化MFC对话框》中即使相同的步骤,我还是在这里详细的记录下来,意图熟能生巧。SkinMag

2011-08-12 10:15:33 1539

转载 MFC对话框复制

在工程中导入已建好的对话框,方法有三:法一:1、首先要生成一个*.ogx的文件。   方法:打开包含有所要加的对话框资源的工程(别的工程)。         在试图资源(ClassView)中鼠标右键点击所需的对话框的类(也可以是所需的类)

2011-08-11 16:24:44 816

转载 VC MFC 窗口最大化、最小化所触发的事件

消息名称:WM_SYSCOMMAND  The framework calls this member function when the user selects a command from the Control menu, or when the

2011-08-10 16:20:10 5868

转载 [转]MFC获取命令行参数

方法一:可用用GetCommandLine得到命令行字符串CWinApp   *thisApp   =   AfxGetApp();   CString   sCmdLine   =   thisApp->m_lpCmdLine;   方法二:char

2011-08-10 13:04:09 537

转载 CCommandLineInfo详解 和 ProcessShellCommand(cmdInfo)函数功能

在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我差了很多资料终于使其漏出庐山真面目。CCommandLineInfo cmdInfo;//定义命令行 ParseCommandLine(cmdInfo

2011-08-10 12:57:17 475

转载 MFC注册窗口类以及FindWindow按窗口类名查询

呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下:HWND FindWindow( LPCSTR lpClassName,    //输入窗口的类名,其实需要是注册过的类

2011-08-10 10:06:39 759

转载 MFC判断网络文件是否存在

需要引用头文件:#include CInternetSession sess ;    DWORD dwFlag = INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_RELO

2011-08-08 14:46:08 839

转载 window任务计划命令详解

Schtasks安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。若要查看该命令语法,请单击以下命令:schtasks create创建新的计划任务。语法schtasks /create /t

2011-08-06 21:31:15 3492

转载 Visual C++获取程序当前路径

GetCurrWorkingDir(){     CString strPath;     GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));     strPath.ReleaseBuffer();

2011-08-06 13:17:56 722

转载 Spin控件使用总结

不知道为什么每个控件都会为难我很久,然后再突然给我提示使我顿悟,唉,可能真的是VC在考验我这个懒人吧,呵呵,我虽然比较懒可是有时候还真的很叫真儿的.这不,一个小小的spin控件和我打了一天的太极,终于今天早晨被我降服了,哈哈…. 扭扭屁股,庆祝一下……       其实spi

2011-08-06 00:07:57 683

转载 在对话框中加入属性页

http://www.vckbase.com/document/viewdoc/?id=398作者:黄晨量下载本文全部源代码当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置。本文针对这种方法来讨论几种可能实现的方案。

2011-07-30 20:08:29 424

转载 JSON 入门指南

简介: JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。尽管有许多宣传关

2011-07-25 23:15:29 427

转载 轻松使用jquery解析XML

xml文件结构:books.xml 深入浅出extjs 张三 88 锋利的jQuery 李四 99

2011-07-25 20:20:18 360

转载 JS跳转

第 1种:window.location.href="login.jsp?backurl="+window.location.href; 第 2种:alert("返回");window.history.back(-1);第 3种:window.navigate("top.jsp"

2011-07-16 14:59:24 339

转载 JS操作JSON总结

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工

2011-07-14 19:15:36 334

转载 函数指针

函数指针函数指针是指向函数的指针变量。 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后

2011-07-13 22:23:35 362

转载 JavaScript弹出模式窗口

解决思路:          一般来说,显示在最前面的窗口都是因为窗口被激活获得焦点,要使窗口永远显示在最前面,可以人为的设置窗口在blur时立刻focus,或者用模式、无模式对话框实现。          具体步骤:          方法一:弹出窗口里加上代码:onblur=

2011-07-13 10:33:59 371

转载 C++关键字const用法详解

C++关键字const用法详解看到const 关键字,很多程序员想到的可能是const 常量,这可有点象踩到陷井上还不知道自己危险了。读读以下文字会使你对c++中的const有一个全面的认识。const 是C++中常用的类型修饰符,有某些微妙的应用场合,如果没有搞清本源,则错误在

2011-07-11 14:01:54 441

转载 static_cast

用法:static_cast ( expression )  该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:  ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。  进行上行转换(把派生类

2011-07-11 12:47:48 442

转载 多线程---event

转自:http://blog.sina.com.cn/s/blog_52324e0b0100oitj.html EVENT是多线程同步机制中最具弹性。它的激发与未激发状态完全是由程序来进行控制的。问不会随着Wait..函数而改变。它是一个内核对象。1.创建event:HANDLE CreateEvent(  LPSECURITY_ATTRIBUTES lpEventAttributes

2011-07-01 13:58:00 568

转载 C语言中结构体大小计算即存储分配

C语言中常用预定义的数据类型:类型:         char short int long float double (long double)大小(字节数):  gcc3.2.2: 1      2    4   4     4     8      12  Visual C++:1      2    4   4     4     8      8ARM架构下被访问的变

2011-06-26 00:04:00 579

原创 母版页中使用js取服务器控件ID或class

取ID:

2011-05-16 10:37:00 1289 1

转载 再谈C#委托与事件

<br />之前写过一篇关于C#委托与事件的文章(见《C#委托和事件例析》),不过还是收到一些网友的提问。所以,今天再换另一个角度来详解一下这个问题。<br />一、在控制台下使用委托和事件<br />我们都知道,C#中有“接口”这个概念,所谓的“接口”就是定义一套标准,然后由实现类来具体实现其中的方法,所以说“接口,是一组类的抽象”。同样道理,我们可以将“委托”理解为“方法的抽象”,也就是说定义一个方法的模板,至于这个方法具体是怎么样的,就由方法自己去实现。<br />我们知道接口的最大好处就是可以实现多

2011-05-10 08:46:00 350

mime协议(详细)

MIME结构 一、 RFC822协议 RFC822 文档定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822文档定义的邮件体部分通常都只能用于表述一段普通的文本,而无法表达出图片、声音等二进制数据。另外,SMTP服务器在接收邮件内容时,当接收到只有一个“.”字符的单独行时,就会认为邮件内容已经结束,如果一封邮件正文中正好有内容仅为一个“.”字符的单独行,SMTP服务器就会丢弃掉该行后面的内容,从而导致信息丢失。 由于 Internet的迅猛发展,人们已不满足于电子邮件仅仅是用来交换文本信息,而希望使用电子邮件来交换更为丰富多彩的多媒体信息,例如,在邮件中嵌入图片、声音、动画和附件。但是,由于图片和声音等内容是非ASCII码的二进制数据,而RFC822邮件格式只适合用来表达纯文本的邮件内容,所以,要使用 RFC822邮件格式发送这些非ASCII码的二进制数据时,必须先采用某种编码方式将它们“编码”成可打印的ASCII字符后再作为RFC822邮件格式的内容。邮件阅读程序在读取到这种经过编码处理的邮件后,再按照相应的解码方式解码出原始的二进制数据,这样就可以借助RFC822邮件格式来传递多媒体数据了。这种做法需要解决以下两个技术问题: (1) 邮件阅读程序如何知道邮件中嵌入的原始二进制数据所采用的编码方式; (2) 邮件阅读程序如何知道每个嵌入的图像或其他资源在整个邮件内容中的起止位置。 针对这个问题,人们后来专门为此定义了MIME(Multipurpose Internet Mail Extension,多用途Internet邮件扩展)协议。 .....

2011-08-21

jQuery_API_1.4.4.chm (精)

jQuery 1.4.4 速查表 By Jones 感谢: Shawphy 原作:G. Scott Olson 核心 jQuery 核心函数 jQuery(expr, [context]) jQuery(html, [ownerDoc]) jQuery(html, props) jQuery(elements) jQuery() jQuery(callback) jQuery 对象访问 each(callback) size() length selector context get() get(index) index(subject) 数据缓存 data([name] , [value]) data(obj) removeData(name) $.data([el], [key], [val]) 队列控制 queue(name ,[cb|queue]) dequeue(name) clearQueue([queueName]) 插件机制 jQuery.fn.extend(object) jQuery.extend(object) 多库共存 jQuery.noConflict([ex]) 属性 属性 attr(name) attr(properties) attr(key, value) attr(key, fn) removeAttr(name) CSS 类 addClass(class | fn) removeClass([class | fn]) toggleClass(class|fn [, sw]) HTML代码/文本/值 html( [val | fn] ) text( [val | fn] ) val( [val | fn | arr] ) CSS CSS css(name) css(properties) css(name, value | fn) 位置 offset([coordinates]) position() scrollTop( [val] ) scrollLeft( [val] ) 尺寸 height( [val] ) width( [val] ) innerHeight() innerWidth() outerHeight(options) outerWidth(options) 选择器 基本 #id element .class * selector1,selector2,selectorN 层级 ancestor descendant parent > child prev + next prev ~ siblings 基本 :first :last :not :even :odd :eq :gt :lt :header :animated 内容 :contains :empty :has :parent 可见性 :hidden :visible 属性 [attribute] [attribute=value] [attribute!=value] [attribute^=value] [attribute$=value] [attribute*=value] [attrSel1][attrSel2][attrSelN] 子元素 :nth-child :first-child :last-child :only-child 表单 :input :text :password :radio :checkbox :submit :image :reset :button :file :hidden 表单对象属性 :enabled :disabled :checked :selected 文档处理 内部插入 append(content | fn) appendTo(content) prepend(content | fn) prependTo(content) 外部插入 after(content | fn) before(content | fn) insertAfter(content) insertBefore(content) 包裹 wrap(html) wrap(elem) wrap(fn) unwrap() wrapAll(html) wrapAll(elem) wrapInner(html) wrapInner(elem) wrapInner(fn) 替换 replaceWith(content) replaceAll(selector) 删除 empty() remove([expr]) detach([expr]) 复制 clone() clone(true) 筛选 过滤 eq(index) first() last() hasClass(class) filter(expr | fn) is(expr) map(callback) has(expr) not(expr) slice(start, [end]) 查找 children([expr]) closest([expr]) find(expr) next([expr]) nextAll([expr]) nextUntil([expr]) offsetParent() parent([expr]) parents([expr]) parentsUntil([expr]) prev([expr]) prevAll([expr]) prevUntil([expr]) siblings([expr]) 串联 add(expr, [context]) andSelf() contents() end() 事件 页面载入 ready(fn) 事件处理 bind(type, [data], fn) one(type, [data], fn) trigger(type, [data]) triggerHandler(type, [data]) unbind([type], [data]) 事件委派 live(type, [data], fn) die([type], [fn]) delegate(selector, [type], [fn]) undelegate() 事件切换 hover(over, out) toggle(fn, fn2, [fn3, fn4, ...]) 事件 blur( [fn] ) change( [fn] ) click( [fn] ) dblclick( [fn] ) error( [fn] ) focus( [fn] ) focusin( [fn] ) focusout( [fn] ) keydown( [fn] ) keypress( [fn] ) keyup( [fn] ) mousedown(fn) mousemove(fn) mouseout(fn) mouseover(fn) mouseup(fn) resize(fn) scroll(fn) select( [fn] ) submit( [fn] ) unload(fn) 效果 基本 show() show(speed, [callback]) hide() hide(speed, [callback]) toggle() toggle(switch) toggle(speed, [callback]) 滑动 slideDown(speed, [callback]) slideUp(speed, [callback]) slideToggle(speed, [callback]) 淡入淡出 fadeIn(speed, [callback]) fadeOut(speed, [callback]) fadeTo(speed, opacity, [fn]) fadeToggle(speed, [easing), [callback] 自定义 animate(param,[dur],[e],[fn]) animate(params, options) stop([clearQueue], [gotoEnd]) delay(duration, [queueName]) 设置 jQuery.fx.off jQuery.fx.interval Ajax Ajax 请求 $.ajax([options]) load(url, [data], [callback]) $.get(url, [data], [fn], [type]) $.getJSON(url, [data], [fn]) $.getScript(url, [callback]) $.post(url, [data], [fn], [type]) Ajax 事件 ajaxComplete(callback) ajaxError(callback) ajaxSend(callback) ajaxStart(callback) ajaxStop(callback) ajaxSuccess(callback) 其它 $.ajaxSetup([options]) serialize() serializeArray() 工具 浏览器及特性检测 $.support $.browser $.browser.version $.boxModel 数组和对象操作 $.each(object, [callback]) $.extend([d],tgt,obj1,[objN]) $.grep(array, fn, [invert]) $.makeArray(obj) $.map(array, callback) $.inArray(value, array) $.toArray() $.merge(first, second) $.unique(array) $.parseJSON(json) 函数操作 $.noop $.proxy(function, scope) 测试操作 $.contains(container, contained) $.isArray(obj) $.isFunction(obj) $.isEmptyObject(obj) $.isPlainObject(obj) $.isWindow(obj) $.type(obj) 字符串操作 $.trim(str) URL $.param(obj, [traditional]) 插件编写 $.error(message) 关于 关于jQuery API 1.4.4中文版 关于jQuery 1.3 版翻译 关于jQuery 1.2 版翻译 提交bug及获取更新

2011-08-20

发邮件纯文本C代码 控制台 很简单的代码

#include <windows.h> #include <winsock.h> #include <assert.h> #include <iostream> #include <string> #include <stdio.h> #include <ctime> #pragma comment(lib,"WS2_32.lib") using namespace std; //base64编码 string Base64Encode(LPCTSTR lpszSrc); //base64解码 string Base64Decode(LPCTSTR lpszSrc); int main() { //1.首先需要连接邮件服务器 这里用socket 邮件服务器端口 25 WSADATA Wsa; //进行WINSOCK的设置 WSAStartup(0x0101,&Wsa); SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); SOCKADDR_IN sin; LPHOSTENT lphost = gethostbyname("smtp.163.com");//这里是用网易的邮件服务器 也可以修改 if(lphost) sin.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; else { printf("%s\n","获取地址失败"); return 1; } sin.sin_family = AF_INET; //注意邮件服务器的侦听端口 25 sin.sin_port = htons(IPPORT_SMTP); //连接服务器 if(connect(s,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR) { printf("%s\n","连接错误"); return 1; } printf("%s\n","连接成功"); //接收服务器初次回应 char buff[1024]; memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); /////上面已经完成连接了///// string szLine="\r\n";//相当于你按下回车 //2.现在就是和服务器对话了 //问候服务器 string szHelo = "HELO smtp.163.com" + szLine; printf("我说:%s\n",szHelo.c_str()); send(s,szHelo.c_str(),szHelo.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); //请求验证用户密码(需要编码) string szAL = "auth login" + szLine; //发送验证命令 printf("我说:%s\n",szAL.c_str()); send(s,szAL.c_str(),szAL.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); // printf("服务说:%s\n",buff); //服务器会回答说 可以输入帐号 //发送帐号 string szUser; cout<<Base64Decode((LPCTSTR)(buff+4)); cin>>szUser; szUser = Base64Encode(szUser.c_str()) + szLine; //对输入的帐号进行base64编码 send(s,szUser.c_str(),szUser.length(),0); //发送帐号 printf("我说:%s\n",szUser.c_str()); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); // printf("服务说:%s\n",buff); //服务器会回答说 可以输入密码 //发送密码 string szPsw; cout<<Base64Decode((LPCTSTR)(buff+4)); cin>>szPsw; szPsw = Base64Encode(szPsw.c_str()) + szLine; //对输入的密码进行base64编码 send(s,szPsw.c_str(),szPsw.length(),0); //发送密码 printf("我说:%s\n",szPsw.c_str()); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); //然后可以用你登陆的邮箱给其他邮箱发邮件了 string szFrom,szTo; cout<<"from:";//你自己的邮箱 cin>>szFrom; cout<<"to:"; //发送给谁 cin>>szTo; //发送者的地址 string From = "mail from:<"+szFrom+ ">"+ szLine; //收信者地址 string To = "rcpt to:<" + szTo +">" + szLine; //现在确定看谁发的邮件 往哪发 send(s,From.c_str(),From.length(),0);//from printf("我说:%s\n",From.c_str()); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); getchar(); //只是用来暂停一下而已 按任意字母继续 send(s,To.c_str(),To.length(),0); //to printf("我说:%s\n",To.c_str()); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); getchar(); //资料应该都看过了吧命令里的data输入后 表示输入邮件内容了 send(s,"data\r\n",6,0); //DATA 命令发送 printf("我说:%s\n","data"); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); //邮件 下面的信息都是当作内容处理 //邮件头 string szFrom_in = "from:"+szFrom + szLine; string szTo_in = "to:"+szTo + szLine; //发送日期 string szDate_in="Date: Sat, 20 Aug 2011 13:39:29 +0800" + szLine;//这里我就直接写上去日期了 为了方便 //邮件标题 string szSubject_in = "Subject:我是邮件标题" + szLine; //邮件正文 string szBody_in = "我就是传说中的邮件体" + szLine; string szContent = szFrom_in + szTo_in + szDate_in + szSubject_in; szContent += szLine;//添加一个空白行 szContent += szBody_in; //上面是最基本的格式// send(s,szContent.c_str(),szContent.length(),0); //szContent printf("我说:%s\n",szContent.c_str()); memset(buff,0,sizeof(buff)); // recv(s,buff,sizeof(buff),0); // printf("服务说:%s\n",buff); getchar(); //发送完了说明下结束 send(s,".\r\n",3,0); //说明内容结束了 printf("我说:%s\n","."); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); getchar(); //退出服务器连接 send(s,"quit\r\n",6,0); //退出 printf("我说:%s\n","quit"); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s 发送邮件成功\n",buff); return 0; } 等等。

2011-08-20

MIME协议分析 MIME

MIME协议分析 第1 章. MIME概述 MIME,全称为“Multipurpose Internet Mail Extensions”,比较确切的中文 名称为“多用途互 联网邮件扩展”。 它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049(注意RFC1521和RFC1522是它的过时版本)。 MIME试图在不改变SMTP协议和RFC822(邮件格式标准)的基础上,使得邮件可以传送任意二进制文件。为此,它在这些协议之上,采取了一些 措施,这就是我们下面所要重点讲述的内容。 第2 章. MIME详解 2.1. 改进措施 一封邮件包括信封、邮件头和邮件体等三个 部分。信封显然可以不含有二进制信息,而其它两部分则可能包含任意二进制序列,因此需要加以改进。MIME正是抓住了这两个地方来对 他们加以改进。 1) 新增了一些邮件头信息,用来协商MIME的一些参数。 2) 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准 化。 3) 定义了传送编码,从而可以传送任意二进制文件。 在这里,我还是要不厌其烦地强调指出,所 有的改进措施都是建立在不改变原来的SMTP协议和RFC822的基础上的。事实上,我们可以把这些改进措施,看成是在用SMTP等发送邮件前所采取的 预处理。 2.2. 一封简单邮件的源码 为了对MIME邮 件有个直观的了解,先给出一封简单邮件的源码。源码中,行号和行号后的空格是为了分析方便而另外加的,“... ... ... ...” 表示此处省略了大段编码。 1 From: "bhw98" 2 Reply-To: [email protected] 3 To: 4 Subject: Re: help 5 X-Mailer: Foxmail 4.2 [cn] 6 Mime-Version: 1.0 7 Content-Type: multipart/alternative;

2011-08-20

SMTP命令 CMD

SMTP 命令包括: HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。 EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。 MAIL FROM 命令中指定的地址是发件人地址 RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。 DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束 VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 HELP 查询服务器支持什么命令 NOOP 无操作,服务器应响应 OK RSET 重置会话,当前传输被取消 QUIT 结束会话 ......

2011-08-20

C++ STL参考手册(精)

导读 你已经熟悉了STL。你知道怎么建立容器,迭代它们的内容,添加删除元素和应用常见算法,比如find和sort。但你并不满足,你不能摆脱STL所提供的超过它们能带来的好处的感觉。应该简单的任务并非那样。应该直截了当的操作确有资源泄漏或错误行为。应该高效的过程却需要比你希望给它们的更多的时间和内存。是的,你知道怎么使用STL,但你不确定你在有效地使用它。 我为你写了这本书。 在《Effective STL》中,我解释了怎样结合STL组件来在库的设计得到最大的好处。这样的信息允许你对简单、直接的问题开发简单、直接的解决方案,也帮你对更复杂的问题设计优雅的方法。我描述了常见的STL使用错误,而且向你演示怎么避开它们。那帮助你躲开闪资源漏、不可移植的代码和未定义的行为。我讨论了优化代码的方法,所以你能使STL表现得像它应该的那样快速、光滑。 本书里的信息将使你成为一个更好的STL程序员,它将让你成为一个更高产的程序员。而且它将让你成为一个更愉快的程序员,使用STL很有趣,但是有效地使用它更为有趣,这种有趣是它们必须把你拽离键盘,因为你不能相信你争拥有的好时光。即使对STL的匆匆一瞥也能发现它是一个非常酷的库,但这份酷比你可能想象的更宽更深。我在本书的一个主要目标是传达给你这个库有多神奇,因为在我编程的差不多30年里,我从未见过任何像STL的东西。你或许也没有。 定义、使用和扩展STL 没有“STL”的官方定义,而且当人们使用这个术语时,不同的人表示的是不同的东西。在本书中,“STL”的意思是与迭代器合作的C++标准库的一部分。那包括标准容器(包括string),iostream库的一部分,函数对象和算法。它不包括标准容器适配器(stack、queue和priority_queue)以及bitset和valarray容器,因为它们缺乏迭代器支持。它也不包括数组。真的,数组以指针的形式支持迭代器,但数组是C++语言的一部分,并非库。 技术上,我的STL的定义排除了标准C++库的扩展,特别是散列容器,单链表,rope和多种非标准函数对象。虽然如此,一个有效的STL程序员需要知道这样的扩展,因此我在合适的地方提到了它们。的确,条款25致力于非标准散列容器的概述。它们现在不在STL里,但类似它们的东西几乎肯定将要进入标准C++库的下一个版本,而在窥见未来是有价值的。 存在STL扩展的原因之一是STL是被设计为可扩展的库。不过,在本书里,我关注于使用STL,而不是给它添加新的组件。例如,如果你发现,我没有说多少关于写你自己的算法的东西,而且我根本没有在写新容器和迭代器上提供指导。我相信在你着手增加它的能力之前,掌握STL已经提供的东西很重要,所以那是我在《Effective STL》里关注的。当你决定建立你自己STLesque组件时,你将在像Josuttis的《The C++ Standard Library》[3]和Austern的《Generic Programming and the STL》[4]这样的书里找到建议。我确实在这本书里讨论的STL扩展的一个方面是写你自己的函数对象。你不可能在不知道怎么写自己的函数对象的情况下有效地使用STL,所以我为这个主题投入了整整一章(第6章)。 引用 先前段落中对Josuttis和Austern的书的引用演示了我怎么处理书目引用的。通常,我试图提及引用的足够信息以便已经熟悉它的人能够鉴别出来。例如,如果你已经知道这些作者的书,就不必转向参考书目那里查明[3]和[4]提及的你已经知道的书。当然,如果你不熟悉一个出版物,参考书目(从第225页开始)会给你全面的引用。 我经常引用三个一般没有使用引用编号的东西。第一个是C++国际标准[5],我通常把它简称为“标准”。其他两个是我早先关于C++的书,《Effective C++》[1]和《More Effective C++》[2]。 STL和标准 我经常提及C++标准,因为《Effective STL》专注于可移植的,与标准一致的C++。理论上,我在这本书里演示的一切都可以用于每个C++实现。实际上,那不是真的。编译器的缺陷和STL实现凑合成防止一些有效的代码编译或表现出它们应该有的行为。那是很常见的情况,我描述了这些问题,而且解释了你应该怎么变通地解决他们。 有时候,最容易的变通办法是使用另一个STL实现。附录B给一个这种情况的例子。实际上,STL用得越多,编译器和库实现的区别就越重要。程序员在设法让合法的代码编译时遇到困难,他们通常责备他们的编译器,但对于STL,编译器可能是好的,而STL实现是不良的。为了强调你得依赖编译器和库实现的事实,我使用你的STL平台。一个STL平台是一个特定编译器和一个标准模板库特定实现的组合。在本书里,如果我提及一个编译器问题,你能确信我意思是编译器有问题。但是,如果我说你的STL平台有问题,你应该理解为“可能是编译器缺陷,可能是库缺陷,或许都有”。 我一般提及你的“编译器们”——复数。那是我长期相信你通过确保代码可以在多于一个的编译器上工作的方法来改进你的代码质量(特别是移植性)的产物。此外,使用多个编译器一般可以简化拆解由STL的使用不当造成的错误信息难题。(条款49致力于解码此类消息的方法。) 关于与标准一致的代码,我强调的另一个方面是你应该避免构造未定义行为。这样的构造可能在运行期做任何事情。不幸的是,这意味着它们可能正好做了你想要的,而那会导致一种错误的安全感。太多程序员以为未定义行为总会导致一个明显的问题,例如,一个分段错误或其他灾难性的错误。未定义行为的结果实际上更为狡猾,例如,破坏极少引用的数据。它们也可以通过程序运行。我发现一个未定义行为的好定义是“为我工作,为你工作,在开发和QA期间工作,但在你最重要的用户面前爆炸了”。避免未定义行为很重要,所以我指出了它会出现的通常情况。你应该训练你自己警惕这样的情况。 引用计数 讨论STL而没有提及引用计数是几乎不可能的。正如你将在条款7和33看见的,基于指针的容器的设计几乎总要导致引用计数。另外, 很多string实现内部是引用计数的,而且,正如条款15解释的,这可能是一个你不能忽视的实现细节。在本书里,我认为你已经熟悉引用的基础。如果你不是,大多数中级和高级C++教材都覆盖了这个主题。例如,在《More Effective C++》里,相关材料是在条款28和29。如果你不知道引用计数是什么而且你不喜欢学习,不要担心。你也可以读完本书,虽然这里那里可能有一些句子不像它们应该的那么有意义。 string和wstring 我关于string说的任何东西都可以相等地应用到给它的宽字符兄弟,wstring。类似地,任何时候我提及string和char或char*之间的关系,对于wstring和wchar_t或wchar_t*之间的关序也是正确的。换句话说,只是因为我在本书里不明确地提及宽字符字符串,不要以为STL不能支持它们。它也像基于char的字符串一样支持它们。它必须。string和wstring都是同一个模板的实例化,basic_string。 术语,术语,术语 这不是STL的入门书,所以我认为你知道基本的东西。仍然,下面的术语十分重要,我感到需要强迫复习它们: vector、string、deque和list被称为标准序列容器。标准关联容器被是set、multiset、map和multimap。 迭代器被分成五个种类,基于它们支持的操作。简要地说,输入迭代器是每个迭代位置只能被读一次的只读迭代器。输出迭代器是每个迭代位置只能被写一次的只写迭代器。输入和输出迭代器被塑造为读和写输入和输出流(例如,文件)。因此并不奇怪输入和输出迭代器最通常的表现分别是istream_iterator和ostream_iterator。 前向迭代器有输入和输出迭代器的能力,但是它们可以反复读或写一个位置。它们不支持operator--,所以它们可以高效地向前移动任意次数。所有标准STL容器都支持比前向迭代器更强大的迭代器,但是,正如你可以在条款25看到的,散列容器的一种设计可以产生前向迭代器。单链表容器(在条款50提到)也提供前向迭代器。 双向迭代器就像前向迭代器,除了它们的后退可以像前进一样容易。标准关联容器都提供双向迭代器。list也有。 随机访问迭代器可以做双向迭代器做的一切事情,但它们也提供“迭代器算术”,即,有一步向前或向后跳的能力。vector、string和deque都提供随机访问迭代器。指进数组的指针可以作为数组的随机访问迭代器。 重载了函数调用操作符(即,operator())的任何类叫做仿函数类。从这样的类建立的对象称为函数对象或仿函数。STL中大部分可以使用函数对象的地方也都可以用真函数,所以我经常使用术语“函数对象”来表示C++函数和真的函数对象。 函数bind1st和bind2nd称为绑定器。 STL的一个革命性方面是它的复杂度保证。这些保证约束了任何STL操作允许表现的工作量。这极好,因为它可以帮你确定同一问题不同方法的相对效率,不论你使用的是什么STL平台。不幸的是,如果你不了解计算机科学的行话,在复杂度保证后面的专有名词可能会把你弄糊涂。这里有一个关于我在本书里使用的复杂度术语的快速入门。每个都引用了它作为n的函数做一件事情要多久,n是容器或区间的元素数目。 以常数时间执行的操作的性能不受n的改变而影响,例如,向list中插入一个元素是一个常数时间操作。不管list有一个还是一百万个元素,插入都花费同样数量的时间。 不要太照字面理解占用“常数时间”。 它不意味着做某些事情所花费时间的数量是字面上的常数,它只表明不被n影响。例如,两个STL平台可能花费非常不同数量的时间执行相同的“常数时间”操作。如果一个库比另一个有更复杂的实现,或如果一个编译器执行了充分的更积极优化的时候,这就会发生。 常数时间复杂度的一个变体是分摊常数时间。以分摊常数时间运行的操作通常是常数时间的操作,但偶尔它们花的时间也取决于n。分摊常数时间操作通常以常数时间运行。 当n变大时,以对数时间运行的操作需要更多的时间运行,但它需要的时间以与n的对数成正比的比率增长。例如,在一百万个项上的一次操作预计花费大约在一百个项上三倍的时间,因为log n3 = 3 log n。在关联容器上的大多数搜寻操作(例如,set::find)是对数时间操作。 以线性时间运行的操作需要的时间以与n成正比的比率增长。标准算法count以线性时间运行,因为它必须查看给定区间中的每个元素。如果区间的大小扩大了三倍,它也必须做三倍的工作,而且我们期望它大约花费三倍时间来完成。 通常,常数时间操作运行得比要求对数时间的快,而对数时间操作运行得比线性的快。当n变得足够大时,这总是真的,但对于n相对小的值,有时候更差理论复杂度的操作可能或胜过更好理论复杂度的操作。如果你想对知道更多STL复杂度保证的东西,转向Josuttis的《The C++ Standard Library》[3]。 术语的最后一个要注意的东西是,记住map或multimap里的每个元素都有两个组件。我一般叫第一个组件键,叫第二个组件值。以 map<string, double> m;为例,string是键,double是值。 代码例子 这本书充满了例子代码,当我引入每个例子时我都作了解释。不过仍然值得提前知道一些事情。 你可以从上面map的例子看到我通常忽略#include,而且忽视STL组件在namespace std里的事实。当定义map m,我可以这么写, #include <map> #include <string> using std::map; using std::string; map<string, double> m; 但我喜欢让我们省掉这些噪音。 当我为一个模板声明一个形式类型参数时,我使用typename而不是class。即,不这么写, template<class T> class Widget { ... }; 我这么写: template<typename T> class Widget { ... }; 用这个场景里,class和typename表示完全相同的东西,但我发现typename能更清楚地表示我通常想要说的:T可以是任何类型;不必是一个类。如果你喜欢使用class来声明类型参数,那也可以。在这个场景里是用typename或class完全是风格的问题。 在另一个场景里,这不再是风格问题。为了避免潜在的解析含糊(我将提供给你细节),你被要求在依赖形式类型参数的类型名字之前使用typename。这样的类型被称为依赖类型,一个例子将帮助阐明我所说的。假设你想为函数写一个模板,给定一个STL容器,返回容器中的最后一个元素是否大于第一个元素。这是一种方法: template<typename C> bool lastGreaterThanFirst(const C& container) { if (container.empty()) return false; typename C::const_iterator begin(container, begin()); typename C::const_ierator end(container.end()); return *--end > *begin; } 在这个例子里,局部变量begin和end的类型是C::const_iterator。const_iterator是依赖形式类型参数C的一种类型。因为C::const_iterator是一种依赖类型,你被要求在它之前放上typename这个词。(一些编译器错误地接受没有typename的代码,但这样的代码不可移植。) 我希望你注意到了在上面例子里我对颜色的使用。那是为了让你的注意力集中于特别重要的部分代码。通常,我加亮相关例子之间的差别,正如我在Widget例子里演示两种可能的声明参数T的方法。用于唤起例子中特别值得注意的部分的颜色也延伸到图表。例如,来自条款5的这张图使用颜色来区分当新元素被插入list时受影响的两个指针: 我也为章号使用颜色,但这样的使用完全没有理由。这作为我的第一本两色的书,我希望你能原谅我的一点色彩丰富。 我最喜爱的参数名中的有两个是lhs和rhs。它们分别代表“左手边”和“右手边”,而且当声明操作符时,我发现它们特别有用。 这是来自条款19的一个例子: class Widget { ... }; bool operator==(const Widget& Ihs, const Widget& rhs); 当这个函数在这样的场景下被调用时, if (x == y) ... // 假设x和y是Widgetx,在“==”的左边,在operator==里面被称为lhs,而y被称为rhs。 至于类名Widget,与GUI或者工具无关。这指示我为“做某件事的某个类”使用的名字。有时,正如第7页上的,Widget是一个类模板而不是一个类。在这样的情况里,你可能发现我仍然称Widget为一个类,即使这真的是一个模板。只要对讨论的东西不会产生歧义,忽略类和类模板、结构体和结构体模板、函数和函数模板之间的差别就不会伤害任何人。在可能混淆的情况下,我会分清模板和它们产生的类、结构体和函数。 涉及效率的条款 我考虑过在《Effective STL》中包含一章关于效率的,但我最后决定当前的组织是更好的。仍然,许多项目关注与减少空间和运行期需要。为了方便你的性能提高,这里有一张包含实际上关于效率的章节的表: 条款4:用empty来代替检查size()是否为0 23 条款5:尽量使用区间成员函数代替它们的单元素兄弟 24 条款14:使用reserve来避免不必要的重新分配 66 条款15:小心string实现的多样性 68 条款23:考虑用有序vector代替关联容器 100 条款24:当关乎效率时应该在map::operator[]和map-insert之间仔细选择 106 条款25:熟悉非标准散列容器 111 条款29:需要一个一个字符输入时考虑使用istreambuf_iterator 126 条款31:了解你的排序选择 133 条款44:尽量用成员函数代替同名的算法 190 条款46:考虑使用函数对象代替函数作算法的参数 201 《Effective STL》的方针 构成本书50个条款的方针是基于世界上最有经验的STL程序员的见解和建议。这些方针总结了你应该总是做的——或总是避免做的——以发挥标准模板库的最大功效。同时,它们只是方针。在一些条件下,违反它们是有意义的。例如,条款7的标题告诉你在容器销毁前应该删除容器内new得的指针,但那个条款的正文说明只适用于当容器销毁时被那些指针指向的对象也得跟随而去的情况。情况经常如此,但不永远为真。类似的,条款35的标题恳求你使用STL算法进行简单的忽略大小写字符串比较,但条款的正文指出在一些情况里,你最好使用不仅在STL之外,而且甚至不是标准C++一部分的一个函数! 只有你足够了解你正写的软件,它运行的环境,以及建立它的场景,才能确定违反我提出的方针是否合理。多数时候,不是,而且伴随每个条款的讨论解释了为什么。在一些情况里,它是。对指南奴隶般的盲从是不对的,但骑士般的漠视也不对。在一个人冒险之前,你应该保证你有一个好原因。 回到STLChina.org STL中文站 回到STL交流论坛

2010-08-15

国家集训队整理 搜索算法论文

信息学竞赛中搜索问题的常见优化技巧 探寻深度优先搜索中的优化技巧 一类搜索的优化思想 ——数据有序化 由“汽车问题”浅谈深度搜索的一个方面 参数搜索的应用 搜索顺序的选择 浅谈部分搜索+高效算法在搜索问题中的应用

2010-07-27

全国信息学奥林匹克联赛(NOIP2008)复赛普及组.zip

全国信息学奥林匹克联赛(NOIP2008)复赛普及组.zip

2010-06-20

最小覆盖圆.pdf 英文版

最小覆盖圆.pdf最小覆盖圆.pdf最小覆盖圆.pdf

2010-06-20

王艳平+window程序设计+源代码完整版

王艳平+window程序设计+源代码完整版 ~~完整版

2010-06-20

cena OI及ACM评测软件

一款相当强大的ACM OI的评测软件~~ 非常好~~

2010-06-08

后缀树的实现代码(国外一牛人写的,有注释)

后缀树的实现代码(国外一牛人写的,有注释)

2010-02-25

组合数学 不要错过啊~~~

组合数学 组合数学 组合数学 组合数学 组合数学组合数学

2010-02-08

动态规划专题测试.~~~~~

动态规划专题测试. 动态规划专题测试.动态规划专题测试.动态规划专题测试.

2010-02-08

IOI国家集训队2004论文集

IOI国家集训队2004论文集 吴景岳:《最小生成树算法及其应用》 朱晨光:《优化,再优化!——从《鹰蛋》一题浅析对动态规划算法的优化》 杨思雨:《伸展树的基本操作与应用》 贝小辉:《浅析树的划分问题》 鬲融:《浅谈特殊穷举思想的应用》 何林:《信息学中守恒法的应用》 胡伟栋:《减少冗余与算法优化》 韩文弢:《论C++语言在信息学竞赛中的应用》 黄源河:《浅谈图论模型的建立与应用》 金恺:《极限法——解决几何最优化问题的捷径》 林涛:《线段树的应用》 李锐喆:《细节——不可忽视的要素》 栗师:《转化目标在解题中的应用》 楼天城:《匹配算法在搜索问题中的巧用》 汪汀:《最小生成树问题的拓展》 肖天:《“分层图思想”及其在信息学竞赛中的应用》 薛矛:《解决动态统计问题的两把利刃》 许智磊:《后缀数组》 周源:《浅谈数形结合思想在信息学竞赛中的应用》 朱泽园:《多串匹配算法及其启示》

2010-02-08

搜索算法讲座资料~~~~~

08暑假集训搜索组解题报告 An Introduction to Recursion, Part 1.mht An Introduction to Recursion, Part 2.mht BFS - 参考框架.txt DFS - 参考框架.txt ID - 参考框架.txt n皇后问题位运算版.mht Search in a Graph.mht STL in Searching.mht USACO搜索策略.mht 递归分治课件 - from tju.ppt 浅谈部分搜索+高效算法在搜索问题中的应用.doc 深度优先搜索-bylove8909.doc 搜索基础.pdf 搜索入门 - from hdu.ppt 搜索算法的通用优化方法.pdf 谈搜索算法的剪枝优化.pdf

2010-01-17

算法艺术与信息学竞赛.pdf

算法艺术与信息学竞赛算法艺术与信息学竞赛算法艺术与信息学竞赛算法艺术与信息学竞赛

2009-11-18

传说黑书《算法艺术与信息学竞赛》配套课件

传说黑书《算法艺术与信息学竞赛》配套课件

2009-11-18

prime筛选法三种

第一种:剔除2 3 4 5 6 ... ... 的倍数。 在i从2开始的增一变化过程中,剔除i的倍数即j*i(j是大于等于2的自然数,j的上限是问题规模M) 为了减少重复步骤,可以每当i递增到等于第一个没有被剔除的(素)数时再剔除该数的倍数, 重复上述过程至i到达问题规模m的平方根+1。 需要说明的三个问题: 假设循环到第n个数,如果该数没有被剔除,那么该数不能是前边所有数的倍数,该数更不可能是后边数的倍数,该 数就是素数。 如果该数是合数却没被剔除,那么该数能分解为两个小于该数的数的积的形式,而前边剔除的数包含了所有小于该 数的数之间的积,这是矛盾的。 为什么筛选循环的第一层只循环至问题规模m的平方根+1 因为,对于一个数m,所有大于该数平方根的数的积已经大于该数了,再剔除下去只是多余。 为什么筛选循环的第二层只循环至MAX/i? 因为此时j*MAX/i就等于MAX,此时需要标记为错误的数已经到了问题的规模即MAX,没有必要在标记比MAX大的值不 是素数,此外用来标记i*j不是素数的数组只有MAX+1的容量,这样做是向不是自己申请的内存空间里写数据,是危 险的。 还有代码演示~~~~~~~

2009-11-18

ACM 国际大学生程序设计竞赛试题与解析

第1章专题讲座— 1.1 引言’.… L 2 数据类型 1.3 常用函数 1.4 程序结构 1.5 指针及堆 1.6 文件缓冲 1.7快速操件 1.8 位操作…” L 95B详开关… L10 保护模式 90rUnd Pnx。g高级程序设计技术……………………………… 第2章 AcM国际大学生程序设计竞赛简介 2.1 背景与历史…..……….…………… 2.2 竞赛组织……..………..………….. 2.3 竞赛形式与评分办法……………… L 4 音家奖励信用..………………**…. 2.5 历届竞赛获奖情况…. 第3窜 试题[………………. 3.1 消防车…….….…….. 3.2数字三角形…..…….. 3.3 透视仪*……….*……. 3.4 多米诺效应…..….…. 3.6 悟息解码……。……………………. 3.7 代码生成….....….……………..…. 幂4章试题I…………………………………………‘ 4.1 电子表格计算器·..…...……………………… 4.2 布线…—……….*…..*….……...…………..。 4.3 无线电定向…………………………………… 4.4 扑灭飞蛾……………………………………… 4.5 寻找冗余……………………………………… 4。6 奥赛罗·……………….....*…………………” 4.7 城市正视图…...…………‘ 镶5章试题m……………………‘ 5.1 旅行预算……...……….… R 9 仆训出十他的训仆………, 5.3 寻找堂亲……………… 5.4 黄金图形……………… 5.5 MIDI预处理………… 5.6 腮板……………。—…。 5.7 资源分配……………… 镶6童解答E………………… 6.1 消防车………………… 6.2 数字三角形…………... 6.3 远视仪…………………… L 4 露兴洪钟内……*………u 6.5 医院设备的利用…. 6.6 信息解码……......, 6.7 代码生成…………, 篱7章 解答l……………. 7.I 电子表格计算器…。 7.2 布线”—…。” 7.3 无线电定向‘ 7.4 扑灭飞娥… 7.5 寻找冗余… 7.6 奥赛罗…… 7.7 城市正视图 篱8章 解答n……… 8.1 旅行预算… 8.2 分划中土地的划分…………..., 8.3 寻找堂亲……………………..., 8.4 黄金图形……………………**., 8.5 MIDI预处理 ………………..., 8.6 魔板………..…...………...…., 8.7 资源分配………………………, 46 4949 50535657606265 65 67 7l 75 798485 9l 9l 9600 05 1014 20262629 36 4145 5155

2009-11-18

NPOI导出word 复杂表单 图片 C#

使用NPOI使用C#语言来导出word文档, 包含了完整的导出复杂表单 并且包含图片导出,标题 页眉 页脚等等复杂的操作都有例子。

2023-02-02

.NET 海康云眸SDK文件包

包含了基本的API的封装,基本开发对接已经完全可以使用了。目前公司已经使用了快小2年了,稳定。

2021-05-17

rabbitmq-server的windows版本

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。

2018-05-23

rabbitmq运行环境erlang

Erlang(['ə:læŋ])是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。 http://www.erlang.org/downloads

2018-05-23

dotNetFx40_Full_x86_x64

donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0donet framework4.0

2014-03-25

windows IIS 部署 MVC3.0 web

最近在做一个MVC 3的项目,在部署服务器时破费了一番功夫,特将过程整理下来,希望可以帮到大家! 本文主要介绍在IIS5.1、IIS6.0、IIS7.5中安装配置MVC 3的具体办法! IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196; 4. 添加MVC的解析: 右击IIS中的虚拟目录选择“属性”-“虚拟目录”-“配置”-“映射”-“添加”,配置如下: 可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30196\aspnet_isapi.dll, 扩展名:.* 动作:全部动作 脚本引擎:选中 检查文件是否存在:不选中 IIS6.0 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 设置“Web扩展服务”中的“ASP.NET v4.0.0.30319”为允许 4. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196; 5. 添加MVC的解析: 右击IIS中的网站选择“属性”-“主目录”-“配置”-“映射”-“插入”,配置如下: 可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30196\aspnet_isapi.dll, 确认文件是否存在:不选中 IIS7.5 1. 安装 Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 设置IIS的“ISAPI和CGI限制”中的“ASP.NET v4.0.0.30319”为允许 4. 在IIS中发布网站; 5. 编辑该网站的应用程序池,设置.NET Framework 版本为4.0.30196;

2013-07-13

MFC动态创建控件+对话框滚动条

开发环境windows, VC++2003 使用ON_COMMAND_RANGE绑定控件事件 封装了三种创建控件 CreateDynControl(CTRLT_BUTTON,"我是按钮",10,20,100,40,NULL); CreateDynControl(CTRL_STATIC,"我是静态文本",150,20,100,45,NULL); CreateDynControl(CTRL_EDIT,"我是编辑框",10,100,120,40,NULL); 其他的自己可以创建方便的。 具体还是看代码吧。

2012-12-28

Gif-Recode 录制屏幕成gif动画

我有个癖好,每当我发现很实用的软件的时候我一定上网千方百计的找寻同类的软件并下载做比较,而同样的,我今天推荐的这个软件也是我比较之后最后选择的结果. 比较的结果是,该软件所录制的gif图片不管是图片品质还是图像大小,还是播放流畅度上都是最优秀的,所以我最后选择了这个软件. 该软件原名叫GIF.GIF.GIF,这个名字实在太土了,被我给修改了.这个软件是使用C语言写的,懂得编程的人都应该知道,C写的东西最大的优点就是运行速度快,占用内存小,同样这个软件也具备这些特点.   在使用之前需要对“捕捉选项”作一些设置:首先是 “循环”选项,用于指定所录制的Gif动画是否循环播放; 如果要将gif嵌入网页,当然需要它能够循环播放,建议选取该项。由于动态Gif文件由多帧组成,所以需要设定每秒录制的帧数, 注意:帧数/秒的值越小则生成的文件越小,但动画也会不太连续;帧数/秒的值太大则动画又会太快,容易看不清,所以一般使用“20fps”最佳。 最下方的“录制比例”选项中可选择25%、44%或100%,指的是录制的图像缩放比率,不要选太小的比例,否则会导致录制的gif画面过小,影响观看的效果。   设置完成之后,点击“选择区域”,按住鼠标左键拖拽选择一个范围;如果勾选“显示区域”,则选择的区域就会由一个虚线框表示,便于我们更好地定位。 点击“开始”,屏幕会出现3、2、1的倒计时,提醒我们开始录制,把解决问题的操作步骤按部就班地作一遍吧。 ---------------------- 上文描述来自:http://download.csdn.net/detail/yiwen2011001/4668120 但是上传的软件不是他那下载的,这个软件我已经使用好多次,觉得我这个算是好用,至少能用,欢迎下载。

2012-11-02

TinyXml静态库+演示代码

说明:我的编译工具为VC++2003 当然高版本可以兼容. 读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。 上面一段话引用自他人博客文章:http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html

2012-10-29

3D局域网射击游戏(源代码)

本文主要研究基于Direct3D的3D网络射击游戏设计,对游戏中的矩阵变换、碰撞检测、蒙皮动画、场景渲染以及多种通信机制进行了研究,并进行实现。同时,使用顶点缓存,优化的索引缓存,以及多级渐进纹理来提高游戏性能。本文还实现了一个小型的游戏引擎,包含了mdl与X模型加载、输入、音效、网络、多种字体、摄像机系统、碰撞检测等功能。运用上述技术所实现的游戏可以完成局域网内多人对战,并达到良好的实时效果,游戏场景逼真,并具备良好的扩展性。

2012-09-28

3D局域网射击游戏

本文主要研究基于Direct3D的3D网络射击游戏设计,对游戏中的矩阵变换、碰撞检测、蒙皮动画、场景渲染以及多种通信机制进行了研究,并进行实现。同时,使用顶点缓存,优化的索引缓存,以及多级渐进纹理来提高游戏性能。本文还实现了一个小型的游戏引擎,包含了mdl与X模型加载、输入、音效、网络、多种字体、摄像机系统、碰撞检测等功能。运用上述技术所实现的游戏可以完成局域网内多人对战,并达到良好的实时效果,游戏场景逼真,并具备良好的扩展性。

2012-06-21

MVC3.0 安装程序包

AspNetMVC3Setup.exe AspNetMVC3Setup_CHS.exe AspNetMVC3ToolsUpdateSetup.exe AspNetMVC3ToolsUpdateSetup_CHS.exe EF4.1LanguagePack (zh-CN).msi EF4FeatureCTP5.exe EntityFramework41.exe 全部安装即可 。

2011-11-16

狂人代码生成器

狂人代码生成器+V3.0+最终版狂人代码生成器+V3.0+最终版狂人代码生成器+V3.0+最终版狂人代码生成器+V3.0+最终版

2011-11-16

正则表达式学习教程

目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。 除了作为入门教程之外,本文还试图成为可以在日常工作中使用的正则表达式语法参考手册。就作者本人的经历来说,这个目标还是完成得不错的——你看,我自己也没能把所有的东西记下来,不是吗? 清除格式 文本格式约定:专业术语 元字符/语法格式 正则表达式 正则表达式中的一部分(用于分析) 对其进行匹配的源字符串 对正则表达式或其中一部分的说明 隐藏边注 本文右边有一些注释,主要是用来提供一些相关信息,或者给没有程序员背景的读者解释一些基本概念,通常可以忽略。 正则表达式到底是什么东西? 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

2011-11-16

JS基础学习教程

jQuery入门指南教程 这个指南是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的Hello World的例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。 这个指南包括了很多代码,你可以copy它们,并试着修改它们,看看产生的效果。 内容提要 1.安装 2.Hello jQuery 3.Find me:使用选择器和事件 4.Rate me:使用AJAX 5.Animate me(让我生动起来):使用FX 6.Sort me(将我有序化):使用tablesorter插件(表格排序) 7.Plug me:制作您自己的插件 8.Next steps(下一步) 安装 一开始,我们需要一个jQuery的库,最新的下载可以到这里找到。这个指南提供一个基本包含实例的包供下载. 下载:jQuery Starterkit (译者Keel注:一定要下载这个包,光看文章不实践肯定是不行的。) 下载后解压缩,然后用你最喜欢的文本编辑器打开starterkit.html和custom.js这两个文件。(译者Keel注:这两个就是例子文件,所有的例子都用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开) 现在,我们就已经做好了一切准备来进行这个著名的"Hello world"例子. 本章的相关链接: •Starterkit •jQuery Downloads Hello jQuery 在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了: $(document).ready(function() { // do stuff when DOM is ready });放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert. $(document).ready(function() { $("a").click(function() { alert("Hello world!"); }); });这样在你点击页面的一个链接时都会触发这个"Hello world"的提示。 (译者Keel注:请照此代码修改custom.js并保存,然后用浏览器打开starterkit.html观察效果。) 让我们看一下这些修改是什么含义。$("a") 是一个jQuery选择器(selector),在这里,它选择所有的a标签(译者Keel注:即<a></a>),$号是 jQuery “类”(jQuery "class")的一个别称,因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法. 这里有一个拟行相似功能的代码: <a href="#" onclick="alert('Hello world')">Link</a>不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.

2011-11-16

JQuery权威指南书+书的源代码

JQuery权威指南书+书的源代码 pdf电子书+其源代码

2011-11-16

MVC3.0安装文件

AspNetMVC3Setup.exe AspNetMVC3Setup_CHS.exe 一步安装。。。。。。。。

2011-11-07

directX版的cs_mdlviewer源码

directX版半条命mdl文件查看器 作者:YoungSdikode 真名:诗扬 QQ:24434209 e-mail:[email protected] 操作说明: 1.按上下键可以调整镜头角度 2.左右键或者a,s键切换动画序列 3.菜单中可以打开新的mdl文件,切换包围盒 简介: 本demo参考了hl sdk中的mdlviewer的源代码,并在次基础上加以改进“移植”成directX 做这个demo的出发点除了练手和学习骨骼动画外,现在见到的mdlviewer都是用openGl开发的(至少我 没见过有directX)而我比较喜欢用directx,所以做这个demo,况且里面的模块以后做游戏可以用的 着。 本demo对hl sdk中的mdlviewer的主要改进是实现了数据分离,sdk的版本是每显示一个模块 就必须从硬盘读取整个文件,消耗很多内存而不应直接用在游戏中。所以我把程序分成CMdlcontainer 和CMdlModel两大模块,CMdlcontainer用来读取一种mdl文件并作为共享数据块,CMdlModel用于显示 模型并连接和使用CMdlcontainer中的共享数据。 如果你对本程序有任何疑问或者对游戏制作尤其对fps游戏制做有兴趣的朋友可以随时加我 本人正在制作cs directx版的地图查看器。 本程序可以被任意复制,源码可以随意修改使用,但如果直接使用请注明来源。 2006.3.17

2011-10-16

Mime_邮件格式_MFC

Mime_邮件格式_MFC Mime_邮件格式_MFC Mime_邮件格式_MFC Mime_邮件格式_MFC Mime_邮件格式_MFC Mime_邮件格式_MFC Mime_邮件格式_MFC

2011-08-20

smtp mime格式发送邮件可发附件

简单的控制台程序 主要是为了学习之用 本人花时间编写。为了和大家分享和学习用,如有什么错误或认为本人哪里处理不当 请和我联系~~ 内容: main.cpp 就一个cpp文件 //1.首先需要连接邮件服务器 这里用socket 邮件服务器端口 25 //2.现在就是和服务器对话了 //3.结束 #include #include #include #include #include #include #include #include #include #include #include #include #pragma comment(lib,"WS2_32.lib") using namespace std; /*加附件的版本*/ //base64编码 string Base64Encode(LPCTSTR lpszSrc); //base64解码 string Base64Decode(LPCTSTR lpszSrc); //读文件数据 bool ReadFromFile(const char* pszFilename,string &filename); unsigned char* m_pbText; int main() { //1.首先需要连接邮件服务器 这里用socket 邮件服务器端口 25 WSADATA Wsa; //进行WINSOCK的设置 WSAStartup(0x0101,&Wsa); SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); SOCKADDR_IN sin; LPHOSTENT lphost = gethostbyname("smtp.163.com");//这里是用网易的邮件服务器 也可以修改 if(lphost) sin.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; else { printf("%s\n","获取地址失败"); return 1; } sin.sin_family = AF_INET; //注意邮件服务器的侦听端口 25 sin.sin_port = htons(IPPORT_SMTP); //连接服务器 if(connect(s,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR) { printf("%s\n","连接错误"); return 1; } printf("%s\n","连接成功"); //接收服务器初次回应 char buff[1024]; memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); /////上面已经完成连接了///// string szLine="\r\n";//相当于你按下回车 //2.现在就是和服务器对话了 //问候服务器 string szHelo = "HELO smtp.163.com" + szLine; printf("我说:%s\n",szHelo.c_str()); send(s,szHelo.c_str(),szHelo.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); printf("服务说:%s\n",buff); //请求验证用户密码(需要编码) string szAL = "auth login" + szLine; //发送验证命令 printf("我说:%s\n",szAL.c_str()); send(s,szAL.c_str(),szAL.length(),0); memset(buff,0,sizeof(buff)); recv(s,buff,sizeof(buff),0); // printf("服务说:%s\n",buff); //服务器会回答说 可以输入帐号 //发送帐号 string szUser; .... 具体自己下载运行即可 装个VC6.0 即可

2011-08-20

空空如也

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

TA关注的人

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