博文
一个彻底解释 C#泛型的源代码(2008-08-13 01:19:00)
摘要:using System;
using System.Collections.Generic;
using System.Text;
namespace Iinterface
{
//声明T类型.
public class GenericList<T> : System.Collections.Generic.IEnumerable<T>
{
protected Node head;
protected Node current = null;
// 定义一个Node类,该类也是泛型类型
protected class Node
{
public Node next;
//T类型的成员
private T data;
//构造函数不是泛型类型,参数类型应用了T类型
 ......
编程的一点心得(2008-08-12 22:32:00)
摘要:我写程序至今已经有两年多了,这段时间里,我的收获很大,感触也颇多。实际上我
在三年前便正真的接触到了c++编程,只不过那时候还在学校,忙于功课,没有对c++
进行进一步的研究,只是简单的停留在很是初级的阶段。现在看来,那个时候连
最起码的编译器设置都没有搞清楚,只是会写class类而已,当然是没有经过很好
设计的。应该不算是在编程,fan的成分很大。
工作后,公司时候的编程语言是c++,使用的编译器是vc6.0,这对于一个本来就
对c++编程感兴趣的人来说,实在是一件很好的事情。我这时候的c++学习虽然不
象在学校里可以很安心的拿着书看,但这里你可以实战。你需要有在工作中不停
学习的能力,资源是相当多的,在网上你可以找到几乎所有的资源,更何况还有
数据量n大的msdn,所有的这一切开始的时候可能让你眼花缭乱。我是一个很贪心
的人,对于好的东西,e.g.各种编程书籍的电子版,各种编程心得,etc. 很多很
多,我便“疯狂”的收集,虽然有点夸张,但毕竟到现在我觉得我还是收集了不
少很经典的书籍。现在看来,这样做有两大好处,一是在当时满足了我的收集欲
望,没有将一腔热情放在别处(相对于游戏或者别的什么的,收集还算很不错),
二是有了资料,我便可以查看,学习资料。比较糟糕的一点便是,我对于收集来
的资料,除了那些在工作中可以确实参考的东东以外,其他的就很少去看,扔在
那不管,觉得对不起自己,也对不起这些资料。
说了一堆废话,现在正儿八经的说写程序吧。我暂且在此称为做软件,那就是你
把别人的需求变成了最终别人想要的东西。这句话说的简单,可是要做到却是非
常难的,对一个公司是这样,对于个人来说就更难了。但我这里讲的做软件,绝
对不是有些人认为的写代码,写代码只是做软件过程中的一小部分。既然这里讲
到了过程,我就不得不说一下软件工程。我虽然工作时间和很多人比起来很短,
但我从一开始就认为,要想正真写好程序,最好先将软件工程好好研读一下。它
可以让你知道一些开发的基本规则,(在我的世界观里,世界上的万物存在,都有
各自的存在规则),也许它所介绍的不是最合适的规则,但你仍然是可以参照的,
至少在你还没有发现更好的规则之前。
有人说过一句话,“好的过程才能产生好的产品”,我觉得很合适做软件,软件
工程的作用刚好是......
VC++学习方法及书籍推荐(2008-08-12 17:28:00)
摘要: 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,路已不是原来的路……回家看着书架上的旧书发呆,听着李克勤的旧欢如梦,才发现自已原来太喜欢怀旧.
笔者从事软件开发多年,其中有两年多的时间一直是与Windows底层打交道,涉及到驱动程序,嵌入式OS,Windows应用程序(如GUI,图形图像技术,多线程,组件技术等等)等方面的开发,写了很多很的源代码……也许我的阅读面过于狭小,书架里基本上都是Jeffrey Richter,Charles Petzold,侯捷老师以及潘爱民老师的书,这些书一直陪伴着我,并给我的编程工作带来了很大的帮助,希望我的推荐对你也有帮助。
Windows编程类
Windows 程序设计(第5版)(上、下册)
原书名: Programming Windows (Fifth Edition)
原出版社:Microsoft Press
作者:(美)Charles Petzold
译者:北京博彦科技发展有限责任公司
出版社:北京大学出版社
出版日期:2001-03
页码:1376
定价:160:00RMB
此书被认为是Windows编程最好的导论性读本。在1994年5月,此书的作者Charles Petzold被《Window Magazine》和Microsoft公司授予”Windows Pioneer”奖,以表彰他对Microsoft Windows的成功作出的贡献,可见该书的权威性,以至于“如果对Windows开发有什么问题的话,请翻阅PetZold的著作吧”几乎成了一句至理名言。
本书覆盖了WINDOWS编程的方方面面,将windows编程的每一个元素(如输入,输出及对话框,图形,多媒体,线程,文档与视图,Internet等等)讲解得很清晰、简明,......
第1章 C++的初步知识[2](2008-08-12 17:09:00)
摘要:
#include <iostream>是一个“包含命令”,它的作用是将文件iostream的内容包含到该命令所在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信息。iostream是i-o-stream 3个词的组合,从它的形式就可以知道它代表“输入输出流”的意思,由于这类文件都放在程序单元的开头,所以称为“头文件”(head file)。在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include命令行,然后再对该程序单元进行整体编译。
程序的第2行“using namespace std; ” 的意思是“使用命名空间std”。C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库(此时就需要用#include命令行),就需要用“using namespace std; ”作声明,表示要用到命名空间std中的内容。
在初学C++时,对本程序中的第1,2行可以不必深究,只需知道: 如果程序有输入或输出时,必须使用“#include <iostream>”命令以提供必要的信息,同时要用“using namespace std;” ,使程序能够使用这些信息,否则程序编译时将出错。
例1.2 求a和b两个数之和。
可以写出以下程序:
// 求两数之和 (本行是注释行)
#include <iostream> //预处理命令
using namespace std; //使用命名空间std
int main( )  ......
第1章 C++的初步知识[1](2008-08-12 17:05:00)
摘要:
*1.1 从C到C++
计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推BASIC语言和C语言。
BASIC语言是1964年在FORTRAN语言的基础上简化而成的,它是为初学者设计的小型高级语言。
C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。
但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。
C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保留了C语言原有的所有优点,增加了面向对象的机制。
C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
C++对C的“增强”,表现在两个方面:
(1) 在原来面向过程的机制基础上,对C语言的功能做了不少扩充。
(2) 增加了面向对象的机制。
面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。
不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。
学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计。本书既介绍C++在面向过程程序设计中的应用,也介绍C++在面向对象程序设计中的应用。
*1.2 最简单的C++程序
例1.1 输出一行字符: “This is a C++ program.”。
程序如下:
#include <iostream> &n......
打印三角形 --C#(2008-08-12 16:50:00)
摘要:using System;
public class Hello
{
public static void Main()
{
Console.Write("请输入行数:");
int lines = int.Parse(Console.ReadLine());
Console.WriteLine("");
for(int i=1; i<=lines ; i++)
{
for(int k=1; k<= lines-i; k++)
Console.Write(" ");
for(int j=1; j<=i*2+1; j++)
Console.Write("*");
Console.WriteLine("");
}
Console.ReadLine();
}
}
......
C#传值调用与引用调用 解释(2008-08-12 16:43:00)
摘要:using System;
class MethodCall
{
public static void Main()
{
/*
* 参数类型分为 in, ref, out 三种,默认为 in。
* in 类型在子方法中修改了对应变量后,主方法中的值不会发生改变。
* ref 类型在子方法中修改了对应变量后,主方法中的值也会发生改变。
* out 主方法中对应的变量不需要初始化。
*
*/
int a = 3, b = 4, c;
Console.WriteLine("Before Method Call : a = {0}, b = {1}, c 未赋值", a, b);
AMethod(a, ref b, out c);
Console.WriteLine("After Method Call : a = {0}, b = {1}, c = {2}", a, b, c);
}
public static void AMethod(int x, ref int y, out int z)
{
x = 7;
y = 8;
z = 9;
}
}......
JavaScript精简学习4:表单(2008-08-12 02:02:00)
摘要:43 表单构成
1: <form method=”post” action=”target.html” name=”thisForm”>
2: <input type=”text” name=”myText”>
3: <select name=”mySelect”>
4: <option value=”1”>First Choice</option>
5: <option value=”2”>Second Choice</option>
6: </select>
7: <br>
8: <input type=”submit” value=”Submit Me”>
9: </form>
44 访问表单中的文本框内容
1: <form name=”myForm”>
2: <input type=”text” name=”myText”>
3: </form>
4: <a href='http://www.webjx.com/htmldata/2006-02-06/1139212451.html#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a>
45 动态复制文本框内容
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText”><br>
3: Copy Text: <input type=”text” name=”copyText”>
4: </form>
5: <a href=http://www.webjx.com/htmldata/2006-02-06/”#” onClick=”document.myForm.copyText.value =
6: document.myForm.myText.val......
JavaScript精简学习3:图像(2008-08-12 02:00:00)
摘要:36 读取图像属性
1: <img src=http://www.webjx.com/htmldata/2006-02-06/”image1.jpg” name=”myImage”>
2: <a href=http://www.webjx.com/htmldata/2006-02-06/”# ” onClick=”window.alert(document.myImage.width)”>Width</a>
3:
37 动态加载图像
1: <script language=”JavaScript”>
2: myImage = new Image;
3: myImage.src = “Tellers1.jpg”;
4: </script>
38 简单的图像替换
1: <script language=”JavaScript”>
2: rollImage = new Image;
3: rollImage.src = “rollImage1.jpg”;
4: defaultImage = new Image;
5: defaultImage.src = “image1.jpg”;
6: </script>
7: <a href=http://www.webjx.com/htmldata/2006-02-06/”myUrl” onMouseOver=”document.myImage.src = rollImage.src;”
8: onMouseOut=”document.myImage.src = defaultImage.src;”>
9: <img src=http://www.webjx.com/htmldata/2006-02-06/”image1.jpg” name=”myImage” width=100 height=100 border=0>
39 随机显示图像
1: <script language=”JavaScript”>
2: var imageList = new Array;<......
JavaScript精简学习2:浏览器输出(2008-08-12 01:59:00)
摘要:
26 访问document对象
1: <script language=”JavaScript”>
2: var myURL = document.URL;
3: window.alert(myURL);
4: </script>
27 动态输出HTML
1: <script language=”JavaScript”>
2: document.write(“<p>Here’s some information about this document:</p>”);
3: document.write(“<ul>”);
4: document.write(“<li>Referring Document: “ + document.referrer + “</li>”);
5: document.write(“<li>Domain: “ + document.domain + “</li>”);
6: document.write(“<li>URL: “ + document.URL + “</li>”);
7: document.write(“</ul>”);
8: </script>
28 输出换行
1: document.writeln(“<strong>a</strong>”);
2: document.writeln(“b”);
29 输出日期
1: <script language=”JavaScript”>
2: var thisDate = new Date();
3: document.write(thisDate.toString());
4: </script>
30 指定日期的时区
1: <script language=”JavaScript”>
2: var myOffset = -2;
3: var currentDate = new Date()......