当前位置:首页 » 编程软件 » visualcmfc编程实例

visualcmfc编程实例

发布时间: 2022-07-27 03:30:28

① Visual C++网络编程经典案例详解的目录

第1篇 Visual C++网络编程基础
第1章 Visual C++网络编程概述(教学视频:21分钟)
1.1 网络基础知识
1.1.1 OSI七层网络模型
1.I.2 TCP/IP协议
1.1.3 C/S编程模型
1.2 网络编程基础
1.2.1 Sockets套接字
1.2.2 网络字节顺序
1.3 WindowsSockets介绍
1.3.1 CAsyncSocket类
1.3.2 CSocket类
1.4 小结
第2章 Socket套接字编程(教学视频:73分钟)
2.1 寻址方式和字节顺序
2.1.1 寻址方式
2.1.2 字节顺序
2.1.3 Socket相关函数
2.2 Winsock网络程序开发流程
2.2.1 VC中创建工程的步骤
2.2.2 Winsock编程流程
2.2.3 基于UDP的Sockets编程
2.2.4.基于UDP的Sockets编程
2.3 网络程序实例应用
2.3.1 TCP客户端程序
2.3.2 TCP服务器程序
2.4 小结
第3章 多线程与异步套接字编程(教学视频:116分钟)
3.1 多线程技术
3.1.1 基本概念
3.1.2 创建线程
3.2 实现线程同步
3.2.1 临界区对象
3.2.2 事件对象
3.2.3 互斥对象
3.3 进程间通信
3.3.1 邮槽
3.3.2 命名管道
3.3.3 匿名管道
3.3.4 小结
3.4 设置I/O模式
3.4.1 异步I/O模式
3.4.2 WSAAsyncSelect方法
3.5 小结
第2篇 Visual C++网络编程典型应用
第4章 FTP浏览器(教学视频:95分钟)
4.1 FTP工作原理
4.1.1 FTP数据结构
4.1.2 FTP数据传输模式
4.1.3 服务器进行连接
4.1.4 登录验证
4.1.5 关闭数据连接
4.1.6 FTP常用命令
4.1.7 数据校验与重发控制
4.2 登录FTP服务器
4.2.1 连接FTP服务器
4.2.2 登录FTP服务器
4.3 FTP文件处理
4.3.1 CSocketFile类的使用
4.3.2 使用CArchive类进行串行化
4.3.3 获取FTP服务器文件信息
4.3.4 上传文件
4.3.5 下载文件
4.4 创建客户端
4.4.1 建立工程
4.4.2 定义CFtp类
4.4.3 使用CFtp类编程
4.5 小结
第5章 网页浏览器(教学视频:72分钟)
5.1 HTTP请求
5.1.1 GET方式
5.1.2 POSI方式
5.1.3 请求消息
5.2 HTTP响应
5.2.1 响应状态信息
5.2.2 响应标题字段信息
5.2.3 实体标题字段信息
5.2.4 实体数据
5.3 制作个性化界面
5.3.1 工具栏编程
5.3.2 添加消息响应
5.3.3 如何实现收藏夹的功能
5.5.4.使用MicrosoftWeb浏览器控件
5.4.1 建立MFC工程
5.4.2 添加控件
5.4.3 控件对象属性方法
5.5 CHtmlView类
5.5.1 CHtmlView类
5.5.2 建立继承关系
5.5.3 地址栏消息响应
5.5.4 实现查看源文件功能
5.5.5 实现刷新功能
5.6 小结
第6章 网络通信器(教学视频:58分钟)
6.1 通信原理
6.1.1 通信连接
6.1.2 发送接收
6.2 发送端程序
6.2.1 创建连接套接字
6.2.2 创建发送套接字
6.2.3 实现发送功能
6.3 接收端程序
6.3.1 监听端口
6.3.2 接收数据
6.4 界面美化编程
6.4.1 界面初始化
6.4.2 设置服务器窗口图标
6.4.3 显示服务器启动时间
6.4.4 服务器状态栏编程
6.5 ,J、结
第7章 邮件收发器(教学视频:107分钟)
7.1 调用Windows自带的邮件发送程序
7.1.1 调用Windows进程
7.1.2 CreateProcess(1函数
7.2 SMTP会话过程
7.2.1 怎么连接服务器
7.2.2 SMTP命令
7.2.3 发送命令与接收响应
7.3 发送邮件
7.3.1 界面设计
7.3.2 界面初始化代码
7.3.3 添加服务器设置对话框
7.3.4 使用服务器设置对话框
7.3.5 记录程序配置信息
7.3.6 设置并连接服务器
7.3.7 构造邮件
7.3.8 发送邮件
7.3.9 发送邮件实例
7.4 接收邮件
7.4.1 POP3简介
7.4.2 接收邮件实例界面
7.4.3 使用接收邮件对话框
7.4.4 接收邮件
7.4.5 实现接收邮件功能
7.4.6 封装客户端发送与接收功能
7.4.7 显示邮件数据
7.4.8 代码分析
7.5 小结
第8章 网络文件传输器(教学视频:87分钟)
8.1 CFile类
8.1.1 构造函数
8.1.2 读写文件
8.1.3 文件关闭
8.1.4 文件定位
……
第9 实用播放器(教学视频:120分钟)
第10 P2P网络播放器(教学视频:107分钟)
第11 Q版聊天软件(学视频:60分钟)
第3篇 Visual C++串口通信
第12 串口通信基础(教学视频:22分钟)
第13 串口通信编程应用(教学视频:69分钟)
第14 VC发送手机短信(教学视频:73分钟)

② 基于MFC编程实例书籍

不推荐直接看MFC,要是想学扎实些,还是先看看WIN32的知识先,推荐经典书
Programming Windows,书虽然有点厚,但不用全看完,主要了解下Windows下的消息机制先。
接下来可以选择候俊杰的《深入浅出MFC》(第二版),虽然书介绍的是VC5.0但是作者也专门再网上说明因为和6.0差别不大,不会初第三版,本书是学MFC的绝对经典,可以看看。
要是侯捷(候俊杰)那本不太对胃口,可以选择VisualC++6.0技术内幕(第五版),别被名字吓到,这也是一本经典的入门书,前身是大名顶顶的Inside Visual C++,例子多,全面。
经典的书可以读很多遍,建议你购买,不过可以先去CSDN或是迅雷里下电子版读一读,对胃口了,再去买~再给你推荐十二本与MFC相关的书籍,有些跟上面的重复了。1、C++程序设计教程(钱能主编)
本书可以说是C++的入门教程!不仅对C++的基础知识的说明很到位,对C不是很过硬的人来说,还可以好好复习一下!我学习到MFC时,都还有时没时的看看这本书,看一下以前的一些问题!作为C程序员,基础很重要,所以这本书不可不看!
难度:3*
推荐:9*
2、Visual C++.net完全手册(Chris H.Pappas/William H.Murray着)
不要被.net吓到了,本书和上面的差不多,但更多的是说明一些细节的语法问题!很多的理论知识,不能做为教材,只是作为一个全面了解从c到C++再到C#的过程,书中说明的一些历史性的东西还是很有意思的!最后也说到了一些VC方面的东西,但都是点水似的过了。本书能做一般性的参考书。
难度:4*
推荐:5*
3、Visual C++程序设计培训教程(熊歆斌着)
难得的一本VC入门好书(是我从二手书店找到的)。正如书中说的:读好书,不求甚解!其中所讲的例子很是生动实用,对初学者的心理把握的很新人准,十分适合从C++到VC的学习!本书也是中央电视台电视教学的教材!绝对的难得一见的入门经典好书!(不是这本书的入门,我可能就不会学MFC了!)
难度:5*
推荐:10*
4、Visual C++6.0技术内幕(第五版)(David J.Kruglinski/Geerge Shepherd着)
本书适合VC的各个级别的学习者,内容丰富,例子全面,也很到位!读这书有时候有一种得来不费功夫的感觉!本书也是全世界程序员(VC)学习的一本好书,含盖面广,见解独到精辟!可惜作者已故!(目前本人没能看完)
难度:7*
推荐:8*
5、精通MFC(刘晓华)
本书结构安排的不是很合理!有些感觉是路虎!但知识点深入,讲解穿插着API及windwos底层的些知识。不难看出,本书是作者自己的一些学习经验的总结!回路有些跳跃,对.net也有些说明!例子比较深入,适合中及入门者。(目前正在学习)
难度:6*
推荐:8*
6、Visual C++6.0MFC类库参考手册
如其名,程序员的必备参考手册!本书其实就是VC的MSDN的中文文档。但简单一些,也有一些偷工减料的嫌疑!不怎样,作为一本难得的参考手册,特别是身边没有电子文档的时间,这可就成了救命稻草了!还少了开快译的麻烦了!
难度:5*
推荐:6*
7、深入浅出MFC(本人手头没有的书)
我没有这本书,但为什么写上来呢?其实我很想要这本书,上次在二手书店回为价格问题没有买下来的!后来在网上看到关于本书的简介,说是一本不错的MFC学习的书。而且作者是华人。所以觉得这本书应该不错,有空把它找回来看看!
难度:?*
推荐:?*
8、MFC windows程序设计(第2版)(Ieff Prosise着)
"在32位windows平台上进行面向对象程序设计的首选参考书","要理解如何利用MFC库中提供的成千上万个预编译,预测试的代码的优点,本书--及其作者--将是您独一无二的选择"。这是本书的封面和封底上的原文,多的我就不说了!确实不错,目前正在学习!!!
难度:8*
推荐:9*
9、Windows API for 2000/XP实例精解(王强等着)
不用说,学习一段时间的MFC,不知道API是什么那才怪了!想知道AIP到底是什么吗??还有它与MFC到底是什么关系呢?这本书做了很好的解答!在多媒体编程时,这本书可就是老大了!不过有个电子版的PAI全解,相信那个更好!但这本书还有些实例,也很不错!
难度:7*
推荐:7*
10、windows环境下32位汇编语言和程序设计(罗云彬 着)
本书是难得一见的好书!正如书中说的,汇编过实了吗?针对这个问题书中作了深入的说明!就我个人而言,并不是说要学什么汇编!但如果了解一下程序的运行底层关系,是不是很有意思呢!书中的一些编程思想很值得学习!作者也是专心的说明了一些学习经验和编程体会!
难度:8*
推荐:5*
11、MS的一套(五本)培训教程(目前我只有三本,英方版)
想考一下自己学的怎样了吗?这几本书够你受的了,每一节后的练习都是针对性很强的东西!没有看完,主要是英文不很好!
难度:8*
推荐:5*
12、其它的书
有几本我很想要,但由于目前还没有学习到那一步,也没有时间看,所以没收集相关的书!以上这些书都只是学习很有用的!至于再深入的学习体具到某些专业性很强的方面(如网络,图象等)那就另当别论了!有一本专业MFC图象编程的书,主要说的是一些算法,而且很多有错误,也没仔细看了!

祝你学习愉快~

③ 我是学VC6.0的

VC6从入门到精通-基础篇 VC6从入门到精通-VC与INTERNET Visual C++ 使用指南
Visual C++知识库 Visual C++ MFC入门教程 Visual C++ 6 参考大全
跟我学 VISUAL C++ 6.0 Visual C++ 6.0语言参考手册 Visual Lisp开发人员手册
Visual C++ 从入门到精通 Visual J++ 6.0 WFC 类库手册 Visual InterDev 从入门到精通
Visual C++ 6.0用户开发手册 VC编程指南 VC++6.0 类库参考手册
VC++database编程大全 VC6.0 运行库参考手册 Visual C++6.0运行库参考手册
VC++6.0模板库手册 VC++面向对象入门 VC新手学堂
Visual C++ 6.0预处理器参考手册 VC5.0开发人员参考手册 VC6中文版程序员开发指南
Visual J++ 6.0 WFC类库参考手册一 VC6 模板库参考手册 VC++编程指南
Visual J++ 6.0 WFC类库参考手册二 VC6.0 MFC类库参考手册 VC6从入门到精通-VC与数据库管理
MS VC++ 6.0 MFC类库参考手册 一 MS VC++ 6.0 MFC类库参考手册 二 走进Visual C++
实例篇
Visual C++ 实践与提高-图形图像编程篇 Visual C++ 数字图像处理 VC-MFC编程实例
Visual C++实践与提高_环境剖析IDE篇 Visual C++程序设计:基础与实例分析 Visual C++ 6.0实例
Visual C++课程设计案例精编 Visual C++ 6.0开发与实例 VISUAL C++扩展编程实例
Visual C++6.0高级编程技巧与实例 VC++扩展编程实例 Visual C++编程技巧与范例
战胜Visual C++必做练习50题 Visual C++6.0编程与实例解析 VC-MFC扩展编程实例
MFC资源大全 精通Visual C++ 6.0 Visual C++程序模块集锦
Visual C++_Turbo C串口通信编程 Visual C++ 6.0应用编程150例 Visual C++ 6.0实例教程电子教案
教程篇
MFC Windows程序设计 Visual C++网络通信协议分析 VC6.0数据库编程
Visual C++ 学习教程 Visual_C++_新起点—6.0实用教程 Visual C++ 6-24学时学习教程
Visual C++ 6.0 21天自学教程 VC++网络教程 Visual C++ MFC 简明教程
VC 数据库编程三部教学 Visual C++ 6.0 数据库编程大全 VC新手学堂简明教程
Visual C++ 6.0 开发宝典 Visual C++ 6.0 教程 Visual C++ 6.0 高级编程
VC++6.0培训教程 Visual J++ 6.0 即学即用 Visual C++与面向对象程序设计教程
Visual C++6.0高级开发教程 Visual C++.NET 宝典 Visual C++5.0 程序设计
技术与应用
VC++6.0 用户界面制作技术与应用实例 深入浅出WINDOWS MFC程序设计 Visual C++ 角色扮演游戏程序
Visual C++6.0程序设计提高篇 VC++编程资料 VC++ 函数经典
VC++与Matlab混合编程的快速实现 Visual C++ 5.0易学活用 VISUAL C++ 设计WIN32应用程序
Visual C++入门与应用 Visual C++6.0开发宝典 Visual C++6.0技术内幕
VC++6编程方法 深入VC编程内幕 VC编程经验总结
用VC++编写USB接口通信程序 用VC开发CGI 疯狂VC技巧集
VC6开发宝典 Visual C++经典 Visual C++ 6 轻松进阶
VC编程常用捷径 MFC技术内幕 VC深入编程
参考资料:www.chinaitlab.com

④ 高分悬赏visual c++编程题

long factorial(int m) //用于求阶乘
{
if(m==0||m==1)
return 1;
else return m*factorial(m-1);
}
long forSum(int n) //用于求阶乘之和
{
int i=0;
long y=0;
for(i=1;i<=n;i++)
{
y+=factorial(i);
}
return y;
}
#include <stdio.h>
int main()
{
long y=0;
int n=0;
printf("请输入一个 n:");
scanf("%d",&n);
printf("y=%d\n",forSum(n));
printf("n=%d\n",n);
return 0;
}

第二题:
int weiShu(int x) //用于判断数x是几位数
{
int flag=0;
do
{
x=x/10;
flag++;
}while(x!=0);
return flag;
}
#include <stdio.h>
{
int flag=0,x=0,i=0;
int sum=0;
printf("请输入一个数 x=");
scanf("%d",&x);
flag=weiShu(x);
for(i=1;i<=flag;i++)
{
sum+=x%10;
x=x/10;
}
printf("%d各个位上数字之和是%d\n",x,sum);
}

c语言的经典编程例子


程序员》推荐C++ 图书三人谈

主持人:熊节(透明),《程序员》杂志编辑,C-View成员
嘉 宾:孟岩(梦魇),联想公司掌上设备事业部应用开发处任职,C-View成员。与侯捷先生合译《C++ Standard Library》一书
金尹(恶魔),上海天宇公司CTO,在《程序员》连载有“自由与繁荣的国度”系列文章

透明:“学C++用哪本书入门”,这是被问得最多的一个问题。但是哪一本书是最好的入门书?似乎很难找到答案。《C++ Primer》太厚,《Effective C++》对读者要求比较高,《Essential C++》又常常被批评为“太浅”。
其实说穿了:no silver bullet。想从一本书学会C++,那是不可能的。有朋友问我如何学C++,我会建议他先去找本数据结构书,把里面的习题全部用C++做一遍,然后再去看《Effective C++》。myan经常说“要在学习初期养成好习惯”,我对此颇不以为然。
个人认为,《Essential C++》适合作教材,《C++ Primer》适合作参考书,《Effective C++》适合作课外读物。

恶魔:很后悔当初买了《C++ Primer》。因为从我个人角度来看,它的功能效用基本是和《The C++ Programming Language》重合。当然对于入门来说,它还是很不错的。但是《C++ Primer》太厚,一来导致看书极其不方便,二来系统学习需要花比较长的时间。对于目前这个越来越快餐化的时代来说,的确有很多不适合的地方,不过可以作为初学者的参考书。现在我以一块K3 CPU的代价把它借给了别人,希望我那位同事能够从中得到一些益处。
如果已经具备了C基础,我建议看国内的书,例如钱能的《 C++大学教程(第二版) 》。(如果没有C的基础还是看谭浩强的C语言)。这本书对C讲得还算比较清晰,有很多习题值得一做,特别是最后的struct和union两个部分。其中的一些算法比较拖沓和繁琐(比如树和链表的遍历算法),读者可以尝试修改这些例子,作为最后对C语言的一些总结测试。

梦魇:这个问题让我想起四五年前的情形。今天对于C++有一点认识的人,多半是从那几年就开始学C++了。那时根本没有品牌观念。从书店里找一本C++书,如果看着还算明白,就买下来。我记得那时候宛延闿、张国锋、麦中凡教授的书都受到很高的赞誉。我个人最早的一本C++书是Greg Perry的一本书,今天想起来,其实是一本打着C++旗号的C语言教程。对我作用最大的一本书是国防科技出版社出版的一本书,书名记不得了,作者叫斯蒂芬·布莱哈。
透明:还记得以前曾批评过一本C++书,是北航出的,整本书就没有出现过class关键字。那本书,说穿了其实只是介绍了C语言和iostream库的用法,根本不能算C++。而当时我常常推荐的一本书是电子科技大学张松梅老师的C++教程。那本书,直到今天来看也没有太大的问题,唯一的缺憾就是由于年代久远,许多东西已经过时了。而对于一本技术书籍来说,“过时”是最不可接受的。
总体来说,那时使用C++的人真是在“盲人摸象”。不过这也有好处,就是对C++的很多细节能搞清楚,以后看到经典好书时比较容易理解;当然坏处就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什么不一样。

梦魇:整个90年代,其实大部分人对于C++的认识都似是而非。一开始是等同于Borland C++,后来是等同于Visual C++和MFC。所以一般来说,打着BC和VC旗号的书卖得很好,人们觉得这就是C++。而我比较幸运,布莱哈的那本书虽然从现在的眼光来看谈不上高超,但基本路子是对的。可能是因为原书是给UNIX程序员的培训教材,所以没有让我一开始就形成“C++ == VC++”的认识。
其实一直到1996年,我们那里搞计算机的都是唯Borland C++马首是瞻的,到了VC 4.0出来,一下子格局全变了。1997年VC5推出之后,书店里MFC书铺天盖地,学MFC的人,头抬得都比别人高一些。不过现在看来,那时候大部分的MFC书都是三流货色。我曾经有一段时间认为,那一批程序员中间有不少被误导了。根本原因就是相对的封闭。

透明:我觉得一本书的价值有两方面:第一,教给你实用的技术;第二,促使你去思考。对于一本介绍VC(或者说MFC)使用方法的书,我根本不希望它能促使我有什么思考,所以我就一定要求它在技术上精益求精完美无瑕。我刚开始用VC的时候,买的第一本书就是潘爱民老师翻译的《VC技术内幕》(第四版),没有受到那些“三流货色”的误导,应该说是很幸运的。

梦魇:1999年机械工业出版社开始出版“计算机科学丛书”,其中的《Thinking in C++》第一版受到了广泛的欢迎。其实我一直不认为这本书很出色,虽然拿过一次大奖。然而我们都得承认,这本书在C++书籍领域里第一次建立了品牌观念,很多初学者开始知道,不是随便买哪一本都一样的。再往后就是2000年的《 深入浅出MFC(第二版) 》第二版,以及侯先生在《程序员》上发表的那一篇《C++/OOP大系》,加上整个大环境的变化,品牌观念深入人心,C++书籍市场终于开始逐渐与世界同步。
回想往事,我的感觉是,那个需要战战兢兢选择入门书的时代已经过去,今天的C++初学者,大可以放心地买口碑好、自己读起来思路顺畅的书,入门不再是太大的问题。还有一些程序员已经学了几年C++,但看到今天出版的一些新书,感觉比较陌生,这也不是什么问题。侯先生经常说“凡走过必留下足迹”,所谓“走弯路”,未必不是一件好事。
至于具体的推荐表,就不好一概而论了。总之在我的印象里,《Essential C++》、《C++ Primer》、钱能教授的C++教程,都不错。甚至有人一上来就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜欢,也没什么不可以。

透明:我同意你的观点。不管怎么说,编程是门实践性非常强的学问。要想对C++对象模型有深入的了解,最好的办法就是写一串程序去看结果;要想学会OOP,也只能从项目中学。对于初学者,最好的学习方法就是不停地写程序,写真正有用的程序,写到有问题的时候就去查书,于是自然就会知道哪本书好哪本书不好。不过我们的教育制度能不能让大学里的学生们有这样的学习机会,我表示怀疑。
以我的经验,学C++有两个门槛:入门和使用。完全看不懂C++,这是一个门槛,但是只要有一本合适的入门书,很快就能跨过。要想真正用上C++,却不是件很容易的事情。尤其对于学生来说,接触到的东西多是“玩具”,很难有实战的机会。所以经常看见有人问“C++到底能做什么”,这是C++学习中一个比较麻烦的问题。我们都是做了相当长时间的C++程序之后才看到一些真正经典的书,也正是因为走了相当长的弯路之后才知道这些书的经典之所在。所谓弯路,我想也是一种必须的积累。就算一开始就看《Essential C++》和《C++ Primer》,没有两三年的时间恐怕还是难有所得。

恶魔:有两句十分有道理的话,一是我大学的C语言老师说的“写程序不如说是抄程序”,另一句是一网友说的“好的设计来自借鉴,天才的设计来自剽窃”。对于我这个理性批判主义者来说,这两句话的确不太适合。但是无论从哪个角度来讲,对于初学者来说,剽窃大师的作品是通向成功的最快捷径。
我个人认为,对于C++的初学者来说,首先要确定自己专业领域内主要使用的特性的方向。因为C++的特性如此众多,初学者想贪多基本是不可能成功的。C++的编程范式基本可以分为ADT+PP、GP和OO三个方向。对于ADT+PP范式来说,初学者的主要问题不是学习C++,而是学习C的使用。对于这样的初学者,国内的几本书还是写得比较清楚,符合中国人的习惯,比如谭浩强的《C语言教程》、钱能的《C++语言大学教程》。这两本书我首推第一本,因为这一本我潜心研究了一年,这本书当中很多程序是可以剽窃的,而且可以对这些程序进行加工和提升。比如结构这一章中,它所给出的用struct来实现链表、二叉树的算法是相当蹩脚的。学习ADT+PP的初学者将这本书揣摩透以后可以尝试修改这两个程序。另外这本书的第二版稍微涉及了一些关于“类”的内容。学习ADT+PP的初学者,可以不被OO中的一些专有特性扰乱自己的思路,对于类层次扁平、无继承、无多态的程序编写是有很大好处的。

透明:你好象比较推崇国内教授写的书。现在社会上有种不好的风气:一捧就捧上天,一贬就贬下地。就好象对待谭教授的书,前几年是奉为经典,这几年又有很多人使劲批评。学C++更是有点“崇洋媚外”,总是觉得初学就应该看《Essential C++》。我看这种观点也是片面的。

恶魔:当然《Essential C++》也值得看看。但是我个人觉得这本书没有谭浩强的《C语言教程》来得好。主要原因是:第一,C++的所有特性都点到了,但是不深,看了以后会三心二意没有方向;第二,可以抄袭借鉴的例子太少。《C语言教程》中有很多有趣的问题,比如猴子吃桃、汉诺塔等等,这些例子对于刚刚涉及C/C++语言编程的人来说是学习编程很好的例子。《Essential C++》只能是前两本书看透以后,作为学习C++特性的一个过渡性的书籍。让读者真正领略到什么是C++的编程、和C编程的不同点在哪里。

透明:我发现一个很有趣的现象:初学者往往喜欢问“哪本书比较好”,这让我很是不解。这有点像一个刚学打篮球的人问“王治郅和科比谁比较厉害”。当然科比更厉害一些。但如果你是想学打篮球,这两个人都非常非常有资格教你,你跟谁学都能学得很强——关键不是在于你选哪个老师,而是在于你自己用多少功夫去学。

透明:回到原来话题。学会了C++的语法,能看懂C++代码之后,必须有些书来指导进阶(或者叫指点迷津)。我觉得《设计模式》很好,能够让读者看到一些精妙的用法。不过正如我经常说的,模式带来的麻烦和好处一样多,甚至麻烦还要更多。而且,C++本身的问题使得在C++中使用GoF模式愈加麻烦。

梦魇:《Design Patterns》这本书绝对是不可以没有的,而且中英文版都不可少。最初我看中文版,说实话看不懂,但是也不觉得人家翻译得不好,所以就想,大概是原文就很难懂,加上自己水平有限。于是总是想着再找几本patterns的书来看。后来找到几本书,口碑还不错,不过水平高下,一比就出来了,还是那本《Design Patterns》最经典,最耐看。英文版出来之后,两个版本对照看,明白多了。现在觉得,其实就设计模式来讲,把这本看明白了就很不错了,不用再花费很多心思找其他的书。我现在的包里始终夹着这本书,随身携带,有备无患。
至于说设计模式的副作用,和可能带来的弊端,我的体会也挺多。不过是这样,我们想一想,究竟什么情况下设计模式可以用得很好呢?一种是有经验丰富的人引导,比如要是Robert Martin带队,你在某个地方用错了设计模式,他就会指出来,说这里不对,将来会产生什么样的弊端。对于他来说,丰富的实践经验足以支持他进行“预测型”设计。但是大部分人没这个能力,因此我们只好走第二条路和第三条路,就是“试探型”设计和“重构型”设计。遇到一个问题,你觉得用某种模式挺合适的,就大胆地用了,成功是积累经验,发现不好,出了问题了,只好改回来,那也是积累教训。这叫做“试探型”。至于重构,应该算是最有组织、成功率最高的工程化方法。先把问题“quick and dirty”地解决了,所有的暗礁都暴露出来,然后再根据实际情况采用合适的模式优化设计。现在XP和UP都高度重视refactory,UP在Elaboration和Construction阶段都鼓励抽出专门的iterations进行重构。所以说如果组织快速的软件开发,当然比较倾向于这条路——打成功率嘛。

透明:讲到重构,我顺便说说《Refactoring》这本书的影响。从工程本身的角度来说,你所谓的“重构型设计”是没有什么问题的。但中国的开发者(也包括我在内)往往比较冲动,比较容易相信银弹的存在。曾经有那么一段时间,我在Java中尝试过了重构的方法之后,又拿到C++中去尝试。结果发现,在Java中速度非常快的重构过程,到C++中就被减慢了。究其原因,就是因为C++和Java的约束条件不同。拿着Java中成功的案例直接套C++,不失败才怪。
所以,我必须说:《Refactoring》这本书很有价值。但对于C++程序员来说,它的价值是让你思考,思考这种方法的可行性。如果一个C++程序员没有打算迁移到Java,那么我必须告诉他:《Refactoring》这本书不是让你照着它用的,甚至不是让你去相信它的。对于C++程序员,《Refactoring》全书可以放心相信的只有第13章,其他的部分,都必须非常谨慎地对待。

梦魇:我还要就“试探型”的方法多说两句,我觉得对于个人发展来讲,“试探”也是必不可少的,撞墙不可怕,高水平的人不都是撞出来的吗?你失败了一次,就知道这个模式有什么潜在的问题,下次再用,就会多看几步,像下棋似的。撞的多了,路数就出来了。
我不知道你们是否有这个感觉:用错了模式,吃了亏,再回过头去翻翻《Design Patterns》,看到人家早就指出来这个问题,不过就是那么几句话,原来看上去干巴巴的,现在觉得句句都讲到心坎上,GoF的形象马上就高大起来,还带着光环,感觉是既兴奋又懊悔。

透明:现在回头来看,我更欣赏myan推荐给我的《Designing Object-Oriented C++ Applications Using Booch Method》。这本书能够帮助C++程序员理清思路培养习惯,可惜国内没有引进。相比后来商业味浓厚的UML系列书籍,我觉得这本书对于面向对象的阐释精辟独到,至今未有能出其右者。

梦魇:刚才我们两人都说到Robert Martin,他可是我的榜样。那本1995年的《Designing Object Oriented C++ Application》,我觉得是每一个C++软件工程师都应该反复研读的书。可惜不仅国内没有引进,在国外的名气也不大。如果你觉得面向对象的那些道理你好像都明白,可就是一遇到实际问题就使不上劲,那这本书就是你的最佳导师。
提到理清思路,还有一本书不得不提,就是Andrew Koenig的《Ruminations On C++》。每个人都应该问自己,我学了这么多年的C++,究竟什么是C++最基本的设计理念?遇到问题我第一个直觉是什么?第一个试探型的解决方案应该具有那些特点?如果你不能给出明确的答案,就应该认真地去读这本书,读完了你就有了“主心骨”。

透明:插一句话,谈谈“推荐书”的问题。入门书基本上是放之四海而皆准的,所以推荐的意义也不大。而入门后的发展方向,每个人不同,这个时候就需要“高人”的指点。举个例子:我学C++的时候,myan还不认识我,所以也没有给我推荐书,我还是学过来了,所以即使你当时向我推荐了《Essential C++》或者《C++ Primer》,我也不会太感谢你;但在我认真研究OO的时候,你推荐Robert Martin那本书给我,对我帮助就特别大,而且我从别的地方也很难找到类似的推荐,所以我就很感谢你。
一个程序员,必须有framework的意识,要学会用framework,还要主动去分析framework(在这方面,《Design Patterns》能有一定的帮助)。但是,真正高质量、成气候的framework的书恐怕也就只有针对MFC的。从这个角度来说,MFC纵有千般不是,C++程序员都非常有必要先去用它、熟悉它、研究它,甚至借助《深入浅出MFC》这样的书来剖析它。不然,很难有framework的意识和感觉。
当然,另一个framework也很好,那就是STL。不管用不用MFC、STL,对这两个东西的掌握和理解都是极有帮助的。最近我又在看《深入浅出MFC》,虽然已经不用MFC编程了,但帮助是一定有的。

梦魇:MFC和STL方面,我还是比较推崇侯先生的两本书《深入浅出MFC》和《STL源码解析》。
《深入浅出MFC》这本书,名气自然是大得不得了,不过也有不少人批评。其实书也没有十全十美的,批评当然是少不了的,不过有的时候我看到有人评论这本书,把它跟Inside VC相比,真的是牛头不对马嘴。
你刚才其实说得很对,程序员应该有一点framework意识。而这本《深入浅出MFC》与其说是在讲MFC编程,不如说通篇是在拿MFC为例分析Application Framework的架构和脉络。所以无论你对于MFC本身是什么态度,这本书对每一个C++程序员都有很大的益处。

透明:是的。《VC技术内幕》会告诉你“DYNAMIC_CREATE这个宏怎么用”,《深入浅出MFC》则告诉你“DYNAMIC_CREATE这个宏是怎么实现的”。所以,如果你只需要在VC下写一些小应用程序,《深入浅出MFC》的价值并不太大;但是,如果你需要设计一个稍微大一点的东西(不一定是framework),MFC的设计思想就会有所帮助。

梦魇:另外,我觉得对于MFC也应该有一个公允的评价。过去是吹捧得天上有地下无,书店里铺天盖地都是MFC的书,搞得大家只知有MFC,不知有C++,甚至直到现在还有人问:“我是学MFC呢,还是学C++?VC++是不是比C++更高级的语言?”MFC成了一尊神像,阻碍了人们的视线。所以得把它从神坛上拉下来。这就是过去一两年有很多人,包括我在内批评MFC的一个目的。可是现在大家视野开阔了,.NET也出来了,MFC不再是神像了,少数人就开始以贬损MFC为乐了。我觉得这种态度是不对的。
什么叫好的框架?我觉得在十几年的时间能够象MFC这样保持稳定并且不断进步的框架就是好的框架。可能我们在一些具体的设计问题上有不同看法,觉得“这个地方这么设计不是更漂亮吗?”很多时候是的,但是这不重要,重要的是MFC成熟稳定、有十几年的成功经验,这是最了不起的东西。
另外一点,MFC中间包括着学习Win32 API编程的最佳资料。这是除了其framework方面之外的另一个亮点。我现在使用Win32 API开发,但是经常参考MFC的源代码,收获很大。

透明:STL方面,我对于剖析它的源代码兴趣并不大,毕竟里面源代码多是算法问题。所以,《STL源码剖析》我也只是随便翻翻就束之高阁了。我觉得这本书用来做计算机系的数据结构和算法教材不错,不知道有没有老师乐意这样做。
对于STL,我的态度一向都是“应用至上”。不过,我一直认为SGI STL本身就是一本精彩的书,一本数据结构和算法的经典参考书,同时也是泛型技术的参考书。想知道一个算法是如何实现的,看看STL源代码就行;想知道如何使用type traits,STL源代码里面也有例子。看别人写的书,总觉得隔着一层纱,有点挠不到痒处的感觉。SGI STL的代码写得非常漂亮,一个C++程序员如果不看看这本书,实在是可惜。

梦魇:至于STL,除了《STL源码解析》之外,我举贤不避亲,强烈推荐侯先生与我合译的那本《The C++ Standard Library》。这本书质量之高是无需怀疑的。我现在手边常备此书,随时查阅,对我帮助很大。

透明:C++和Java相比,最大的优势就是它没有一个专门的公司来管它,最大的弱点也是它没有一个专门的公司来管它。Java程序员在学会简单的语法之后,立刻进入SUN提供的framework,一边用这个现成的framework做实际开发,一边在开发过程中继续学习Java一些幽深的特性。而这个时候,C++程序员恐怕还在问“VC和BCB哪个好”呢。这无疑是浪费时间。

梦魇:刚才你说Java和C++的优劣,这个话题已经成了我们这个年代永不消失的声波了。我也不想再谈这个。不过有一点我得说清楚:现在我们很多用C++的人吃了不少苦头,探过脖子去看看Java,觉得它真是太可爱了,这种印象是不准确的。另外,Java也不简单,而且会越来越庞大复杂。在很多场合,Java还不具有竞争力。至于将来如何,我看有些Java爱好者也过分乐观了,似乎计算机科学界几十年解决不了的问题都可以借着Java的东风解决掉,恐怕没那么容易。

透明:那当然。我再次强调:No Silver Bullet。读书很重要,但古人说“行万里路,读万卷书”,还是把“行路”放在“读书”前面。尤其对于技术书籍,如果它不能帮我解决问题、不能给我带来非常实际的利益,那么我是不会去读它的。恶魔说得对,我们这个社会很快餐,我们这个行业尤其很快餐,我们也只能努力适应它。

⑥ mfc网络编程中,我的自己的电脑上输入IP怎么不能连接上

言,汇编语言,高级语言三大类。

电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。

计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

[NextPage]

学习编程,从何入手

如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
==============================================
方案一 Basic语言 & Visual Basic

优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。

综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

Basic/Visual Basic简介
==============================================
方案二 Pascal语言 & Delphi

优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。

缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。

综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

Pascal语言简介
Delphi简介
==============================================
方案三 C语言 & Visual C++

优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。

缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。

综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

C语言简介
==============================================
方案四 C++语言 & C++ Builder

优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。

缺点
由于推出的时间太短,关于它的各种资料还不太多。

综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。

C语言简介
==============================================
方案五 SQL语言 & Power Builder

对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

[NextPage]
JSP简介

在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。

JSP与ASP的简单比较

JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。

此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。

运行环境

执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 即可打开缺省页面。

在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是" work "子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用"查看源文件"菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的" examples "页面提供。

Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。

[NextPage]
SQL语言简介

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

Structured Query Language包含4个部分:

数据查询语言DQL-Data Query Language SELECT
数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP
数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

SQL的历史

在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:

● 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”
● 美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前,所有主要的关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准。

SQL的优点

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

(1) 非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

(2) 统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

(3) 是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。

[NextPage]
Java语言简介

一. Java的由来

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

二. Java的定义

Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

三. Java的特点

1. 平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2. 安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问

3. 面向对象

Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通 过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。

4. 分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5. 键壮性

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。

四. Java与C/C++语言

Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。

Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。

Java去掉了以下几个C和C++功能:
指针运算
结构
typedefs
#define
需要释放内存

这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。

面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。

五. Java与Internet

我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。

Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java 是一种面向对象语言。Java 语言类似于 C++ 语言,所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java 程序需要编译。实际上有两种 Java 程序:一种 Java 应用程序是一个完整的程序,如 Web 浏览器。一种 Java 小应用程序是运行于 Web 浏览器中的一个程序.

Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。

当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题,通常大的部门应设置防火墙,阻止非法侵入。

电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能 与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。

Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。

[NextPage]
PowerBuilder简介

PowerBuilder的产生

PowerBuilder是美国着名的数据库应用开发工具生产厂商PowerSoft推出的成功产品,其第一版于1991年6月正式投入市场。它是完全按照客户/服务器体系结构研制设计的,采用面向对象技术,图形化的应用开发环境,是数据库的前端开发工具。

PowerBuilder的特点

它支持应用系统同时访问多种数据库,其中既包括Oracel,Sybase之类的大型数据库,又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具,它提供了大量的控件,大大加快了项目的开发速度,也使开发者更容易掌握数据库的开发。

它使用的编程语言叫做工PowerScripr,它也是一种高级的,结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言,这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发,又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具。

PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序,由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为是一个图形工具。

在客户/服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力。特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什麽地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。

使用PowerBuilder,可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具。

PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件。开发人员可以使用所有标准
参考资料:

⑦ Microsoft Visual C++ 6.0的使用指南

中国IT实验室 www. chinaitlab .com 很多计算机相关书籍 喜欢的朋友可以去瞧瞧;(不过顶一下再走,呵呵) 给出部分书的名称: 精通Visual C++图像编程 MFC中文帮助 MFC程序员的WTL指南 VC6从入门到精通-开发者眼中的VC VC6从入门到精通-附录 MS VC++6.0程序员指南 VC6从入门到精通-基础篇 VC6从入门到精通-VC与INTERNET Visual C++ 使用指南 Visual C++知识库 Visual C++ MFC入门教程 Visual C++ 6 参考大全 跟我学 VISUAL C++ 6.0 Visual C++ 6.0语言参考手册 Visual Lisp开发人员手册 Visual C++ 从入门到精通 Visual J++ 6.0 WFC 类库手册 Visual InterDev 从入门到精通 Visual C++ 6.0用户开发手册 VC编程指南 VC++6.0 类库参考手册 VC++database编程大全 VC6.0 运行库参考手册 Visual C++6.0运行库参考手册 VC++6.0模板库手册 VC++面向对象入门 VC新手学堂 Visual C++ 6.0预处理器参考手册 VC5.0开发人员参考手册 VC6中文版程序员开发指南 Visual J++ 6.0 WFC类库参考手册一 VC6 模板库参考手册 VC++编程指南 Visual J++ 6.0 WFC类库参考手册二 VC6.0 MFC类库参考手册 VC6从入门到精通-VC与数据库管理 MS VC++ 6.0 MFC类库参考手册 一 MS VC++ 6.0 MFC类库参考手册 二 走进Visual C++ 实例篇 Visual C++ 实践与提高-图形图像编程篇 Visual C++ 数字图像处理 VC-MFC编程实例 Visual C++实践与提高_环境剖析IDE篇 Visual C++程序设计:基础与实例分析 Visual C++ 6.0实例 Visual C++课程设计案例精编 Visual C++ 6.0开发与实例 VISUAL C++扩展编程实例 Visual C++6.0高级编程技巧与实例 VC++扩展编程实例 Visual C++编程技巧与范例 战胜Visual C++必做练习50题 Visual C++6.0编程与实例解析 VC-MFC扩展编程实例 MFC资源大全 精通Visual C++ 6.0 Visual C++程序模块集锦 Visual C++_Turbo C串口通信编程 Visual C++ 6.0应用编程150例 Visual C++ 6.0实例教程电子教案 教程篇 MFC Windows程序设计 Visual C++网络通信协议分析 VC6.0数据库编程 Visual C++ 学习教程 Visual_C++_新起点—6.0实用教程 Visual C++ 6-24学时学习教程 Visual C++ 6.0 21天自学教程 VC++网络教程 Visual C++ MFC 简明教程 VC 数据库编程三部教学 Visual C++ 6.0 数据库编程大全 VC新手学堂简明教程 Visual C++ 6.0 开发宝典 Visual C++ 6.0 教程 Visual C++ 6.0 高级编程 VC++6.0培训教程 Visual J++ 6.0 即学即用 Visual C++与面向对象程序设计教程 Visual C++6.0高级开发教程 Visual C++.NET 宝典 Visual C++5.0 程序设计 技术与应用 VC++6.0 用户界面制作技术与应用实例 深入浅出WINDOWS MFC程序设计 Visual C++ 角色扮演游戏程序 Visual C++6.0程序设计提高篇 VC++编程资料 VC++ 函数经典 VC++与Matlab混合编程的快速实现 Visual C++ 5.0易学活用 VISUAL C++ 设计WIN32应用程序 Visual C++入门与应用 Visual C++6.0开发宝典 Visual C++6.0技术内幕 VC++6编程方法 深入VC编程内幕 VC编程经验总结 用VC++编写USB接口通信程序 用VC开发CGI 疯狂VC技巧集 VC6开发宝典 Visual C++经典 Visual C++ 6 轻松进阶 VC编程常用捷径 MFC技术内幕 VC深入编程

求采纳

⑧ MFC界面编程-多窗口

你说的还是文档与视图,比如CEditView,CFormView等,还有视图的分割,这些东西都是继承CView而来的

⑨ ~~~MFC~~总是找不着门~~~

你要是觉得自己C++的基础已经很扎实了的话就耐心地看某一本书吧。另外可以看一些具体实例的书。看的时候要记住,并要多想想。
Edit有一个EN_CHANGE消息,你可以试试用这个消息。
你可以为你的Edit控件设置一个CString类型的变量m_In,为你的Static控件也设置一个CString类型的m_Out,响应EN_CHANGE时,
UpdateData(TRUE);//将屏幕上的值传给变量
m_Out=m_In;//将Edit里的传给Static
UpdateData(FALSE);//将变量在屏幕在显示
就可以实现了

热点内容
安卓如何设置桌面返回键 发布:2025-02-06 13:58:15 浏览:48
bi可视化php 发布:2025-02-06 13:50:15 浏览:931
shell写脚本文件 发布:2025-02-06 13:47:32 浏览:231
健身器材脚本 发布:2025-02-06 13:46:36 浏览:856
怎么从手机里卸载存储卡 发布:2025-02-06 13:35:04 浏览:644
诛仙青云志2ftp 发布:2025-02-06 13:34:48 浏览:34
mill91编程 发布:2025-02-06 13:10:27 浏览:294
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:482
php查询结果数组 发布:2025-02-06 12:31:05 浏览:717
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498