[抛砖引玉]我不认同“程序=算法+数据结构”
我不认同“程序=算法+数据结构”
我以为:
软件=程序+文挡
程序=代码实现+功能实现
代码实现=微观级代码编写+宏观级代码框架
微观级代码编写=算法+数据结构
宏观级代码框架:结构化程序设计、面向对象程序设计、设计模式(类/接口的划分,继承关系……的一些技巧)
功能实现:对 编程平台、操作系统/BIOS、CPU指令/IO端口 的熟悉/理解
或者是这样的树型结构:
0 软件
1 ├程序
2 │├代码实现
3 ││├微观级代码编写
4 │││├算法
4 │││└数据结构
3 ││└宏观级代码框架
2 │└功能实现
1 └文挡
=========================================================================
很多界面效果的原理是很简单的:坐标计算+事件响应+绘图操作
可是有很多人受拖拉控件的设计思想影响
就是想不到这儿来
现在的编程书籍好像只有三大类:
1.算法、数据结构
2.常用编程工具(VB、VC、Delphi……)的基本使用、应用层次的数据库开发
3.专业方面:Win32 API、计算机图形学、数字图像处理……
从来没有一本书联系起来讲
空白区域太多了
(比如第二类书,只讲了事件在什么时候触发,没说过可以怎样处理)
坐标计算:数学功底是必需的
事件响应:取得:控件的事件时一定要弄清楚地。有时为了一些VB没有封装事件(如鼠标滚轮),就得用API了
处理:对于某些复杂的界面交互效果(如Word所见即所得的编辑环境),那就是要很好的算法/数据结构水平
绘图操作:VB的绘图操作太鸡肋了,Win32API的GDI函数集是唯一选择
现在外面的关于API的书要么讲单个函数什么用、有么只抄例子,很少有系统讲解的
Win32 API本来是就是一些底层函数,单个单个用没什么大作用(可VB连这些基本功能都没完全封装),只有配合使用才有威力
那些只抄例子只是一些少见的招式,只能唬唬菜鸟。
当你看到系统讲解类的书的时候,千万不能犹豫。虽然看起来很枯燥,但这是修练内功
=========================================================================
如果要我写书的话:
《VB基础全盘掌握》
《VB专业开发:数据库》
《VB专业开发:网络》
《VB专业开发:Win32 API》
《VB专业开发:数字图像处理》
-------------------------------------------------------------------------------------
《VB基础全盘掌握》
第一部分 基础语法
一、从零开始
.1 VB简介
.2 传统程序(QB)编写方法
.3 MsgBox与InputBox
二、数据类型与运算符
.1 常量与变量
.2 数据类型一览
.4 算术运算符
.5 关系运算符
.6 逻辑运算符
.7 枚举
三、程序流程控制
.1 顺序
.2 分支
.2.1 单行If语句
.2.2 多行If语句
.2.3 Select语句
.3 循环
.3.1 For语句
.3.2 While语句
.3.3 Do语句
.4 过程
.4.1 Sub语句
.4.2 Function语句
.4.3 访问权限
.4.4 ByRef与ByVal
.4.5 可却省参数
.4.6 *不限定参数个数
.5 *非结构化流程控制
.5.1 GoTo与标号
.5.2 GoSub
四、字符串
.1 基本字符串处理(联接/字符串常数)
.2 查找和比较
.3 字符串截取
.4 Chr与Asc/大小写转换
.5 格式化字符串
.6 *ANSI+DBCS与UniCode
五、数组
六、结构体
七、调试技巧/异常处理
八、文件
第二部分 可视化编程
九、OOP精神
十、窗体
十一、基础控件
十二、PictureBox与图形绘制
十三、ActiveX控件
.1 通用对话框
.2 Windows通用控件
十四、杂项
.1 拖曳
.2 自适应窗体大小
.3 拆分条
.4 列表同步
.5 历史纪录
第三部分 高级内容
十五、编译预处理/工程属性
十六、VB的面向对象设计能力
十七、工程组与ActiveX Dll
十八、编写自定义控件(ActiveX Ocx)
十九、编写外接程序
【附录】
一、MSDN的使用
-------------------------------------------------------------------------------------
《VB专业开发:数字图像处理》
零、入门须知
.1 为什么这么慢
.2 API/代码量
.3 怎样进行算法优化
.4 位运算心法
一、基础概念
.1 什么是图像
.2 色彩格式
二、初入DIB
.1 DIB的构成
.2 位图信息
.3 DIB位图数据
.4 DIB操作函数
.5 简单DIB使用
三、模拟指针
.1 VB6的隐藏函数
.2 数组的本质
.3 简单的模拟指针
.4 实用的模拟指针
四、深入DIB
.1 DIBSection的特点
.2 DIBSection的使用
.3 将DIBSection封装成类
五、点处理
.1 将彩色图转为灰度图
.2 亮度调整
.3 对比度调整
.4 通用色彩通道调整
.5 色彩直方图
.6 透明合成
六、卷积处理
.1 卷积处理的特性
.2 模糊
.3 锐化
.4 中值滤波
七、缩放处理
.1 最临近插值
.2 双线性插值
.3 三次卷积插值
.4 关于缩小的问题
八、数字形态学
.1 腐蚀与膨胀
.2 开与闭
.3 高级形态学运算
.4 *二值图形态学运算
九、色彩抖动(半色调)
.1 有序抖动
.2 扩展的的有序抖动
.3 误差分散
.4 带调色板的DIB
.5 八叉树
十、文件格式
.1 PCX文件格式
.2 GIF文件格式
.3 GIF_LZW压缩算法
.4 实际GIF_LZW压缩算法