指派运算符 的相关问题

LI-O 2014-01-13 05:10:10
#include<stdio.h>
int main(void)
{
int c;
c = 1.6 + 1.7;
printf("first is %f\n",(float)c);
c = 1.6 +1.7;
printf("end is %d\n",(int)c);
return 0;
}

结果
first is 3.000000
end is 3

第一个结果中, 我指定了 C 的类型为 float。 原来的 int 与此冲突?
否则怎么出现个 3.000000?
求解~~
(书上没有介绍此用法)
原来的用法是这样。 【【【【【【【【【【【【【【
#include<stdio.h>
int main(void)
{
int c;
c = 1.6 + 1.7;
printf("first is %d\n",c);
c =(int) 1.6 +(int)1.7;
printf("end is %d\n",c);
return 0;
}
将 1.6 和1.7 指派为 int 类型。 从而截尾,即 c = 1 + 1;
...全文
154 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
孩皮妞野 2014-01-15
  • 打赏
  • 举报
回复
引用 13 楼 w15tp 的回复:
[quote=引用 12 楼 ALNG 的回复:] 这个涉及到float的格式,参考IEEE754标准。但是不管标准为何,我们可以做这样的一个测试,幸运的是float的长度sizeof(float)一般为32位,正好与长整数long的长度相等。下面是我们的测试代码。

#include <stdio.h>

int main()
{
     float f=123.25;
     long  l=*(long*)&f; // 把f所在的存储区域以long解读,并将其值赋给l
     printf("float f is %f; when f's binary representation is interpreted as"
           " a long integer, the value is %ld;"
           " and when the long again is interpreted as a float, we got %f;\n\n"
           "You will notice both floats are the same as expected!\n", 
           f, l, *(float*)&l);
     return 0;
}
能不能通俗点讲?? 下面是对你代码的结果翻译 浮动f为123.250000;当f的二进制表示被解释为一个长整型,该值是1123450880,而当再次长被解释为float,我们得到了123.250000 你的意思是 浮点数此时被解释为长整形?? 我把里面的 123.25 修改成我那个例子的 3.3 , 结果又是这样 浮动f为3.300000;当f的二进制表示被解释为一个长整型,该值是1079194419,而当再次长被解释为float,我们得到3.300000; 所以,还是没懂,~~~[/quote] 内存中的都是二进制串,为了让它们有意义,就需要有一定的解读方式,数据类型(包括用户自定义的数据类型)就是用于解释这些二进制串的。比如我们有一处内存地址,0xf4300, 如果我们说这个地址开始的32位(4字节)是一个long, 那编译器就会为我们生成相应的代码来解读;如果我们说其是一个float, 编译生成的代码又会不同。 float f; 编译器会为f分配一段内存(有起始位置和特定长度)。但特殊情况下我们可能想以另外的方式来解读这段内存,比如我们想分析float的格式,那我们就可以设法把这段内存当成long, 看它每个位是什么..., 这样的取地址(&), 把地址cast成想要的地址类型(long*),再indirect (*), 我们就可以把特定的内存地址以想要的方式来解读。这可以算一种c的常用技巧。
LI-O 2014-01-14
  • 打赏
  • 举报
回复
引用 12 楼 ALNG 的回复:
这个涉及到float的格式,参考IEEE754标准。但是不管标准为何,我们可以做这样的一个测试,幸运的是float的长度sizeof(float)一般为32位,正好与长整数long的长度相等。下面是我们的测试代码。

#include <stdio.h>

int main()
{
     float f=123.25;
     long  l=*(long*)&f; // 把f所在的存储区域以long解读,并将其值赋给l
     printf("float f is %f; when f's binary representation is interpreted as"
           " a long integer, the value is %ld;"
           " and when the long again is interpreted as a float, we got %f;\n\n"
           "You will notice both floats are the same as expected!\n", 
           f, l, *(float*)&l);
     return 0;
}
能不能通俗点讲?? 下面是对你代码的结果翻译 浮动f为123.250000;当f的二进制表示被解释为一个长整型,该值是1123450880,而当再次长被解释为float,我们得到了123.250000 你的意思是 浮点数此时被解释为长整形?? 我把里面的 123.25 修改成我那个例子的 3.3 , 结果又是这样 浮动f为3.300000;当f的二进制表示被解释为一个长整型,该值是1079194419,而当再次长被解释为float,我们得到3.300000; 所以,还是没懂,~~~
孩皮妞野 2014-01-14
  • 打赏
  • 举报
回复
这个涉及到float的格式,参考IEEE754标准。但是不管标准为何,我们可以做这样的一个测试,幸运的是float的长度sizeof(float)一般为32位,正好与长整数long的长度相等。下面是我们的测试代码。

#include <stdio.h>

int main()
{
     float f=123.25;
     long  l=*(long*)&f; // 把f所在的存储区域以long解读,并将其值赋给l
     printf("float f is %f; when f's binary representation is interpreted as"
           " a long integer, the value is %ld;"
           " and when the long again is interpreted as a float, we got %f;\n\n"
           "You will notice both floats are the same as expected!\n", 
           f, l, *(float*)&l);
     return 0;
}
LI-O 2014-01-14
  • 打赏
  • 举报
回复
引用 8 楼 ALNG 的回复:
想要取整后再相加,可以 c=(int)1.6+(int)1.7; 想要相加后取整,可以 c=1.6+1.7, 或这样c=(int)(1.6+1.7); 我不知道你理解的行为是什么,如果是把整型变量c所在的内存区域 按浮点数来解读,c里面可以这样 *(float*)&c
最后疑问~~~ 我按照你说的 修改代码为 #include<stdio.h> int main(void) { int c = 0; c = (float)1.6 +(float)1.7; printf(" now is %f\n",*(float*)&c); return 0; } 结果是 now is 0.000000 求解~~~
LI-O 2014-01-14
  • 打赏
  • 举报
回复
引用 9 楼 wenpinglaoyao 的回复:
1#说的对,博主自学么?
算是吧~~ 打发时间用的。 所以我只学了语法~~~
纹枰老妖 2014-01-13
  • 打赏
  • 举报
回复
1#说的对,博主自学么?
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
想要取整后再相加,可以 c=(int)1.6+(int)1.7; 想要相加后取整,可以 c=1.6+1.7, 或这样c=(int)(1.6+1.7); 我不知道你理解的行为是什么,如果是把整型变量c所在的内存区域按浮点数来解读,c里面可以这样 *(float*)&c
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
你的意思可能是重新解读,C++里面倒确实有个reinterpret_cast<>, 在这种情况下的行为未定义,但你确实可以 写 printf("%f", reinterpret_cast<float&>(c)); 但得到的结果通常不是你预期或想要的。 上面的代码的c等价物是 printf("%f", *<float*>&c); 这个才是你意味中的重定义该内存区域的解读方式。有时这是有用的技巧。
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
c = 1.6 + 1.7; printf("first is %f\n",(float)c); 这里面的 (float)c 不是已经对 C 重新定义了吗??也就是说 此时 c 的类型是 float~~ 怎么无效果?? =========================== 不存咋重定义的问题。是cast, 你可以理解为中间引入了一个临时变量,与下面的代码语义等价 c=1.6+1.7; float tmp=c; printf("first is %f\n", tmp); cast前后c本身的类型和值都不会发生任何变化。
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
而且 float f=(int)1.6+(int)1.7; f得到3.0而非3.3. ============================ 郑重更正,应该是 f得到2.0,而非3, 更不是3.3。
LI-O 2014-01-13
  • 打赏
  • 举报
回复
引用 1 楼 ALNG 的回复:
c = 1.6 + 1.7; // 上面一行右边先运算,得到3.3(大致)的浮点数结果,在赋值给左边的整型变量是,后面的小数被切掉,c得到了3。只知道3,你原来是从3.0001还是3.99999还是3LL赋值给它的都成了无关紧要的历史。c管不了,编译器也不会帮你记住... printf("first is %f\n",(float)c); 上面你从整型cast成浮点数,它里面的值(3)被赋给新生的无名变量,并被压入堆栈,printf函数在运行中会根据前面格式船中的%f找它并正确的使用,打印出3.0。 前面的3.3, 正如我们讨论过的一样,永远成为没有现实影响的历史。 c = 1.6 +1.7; printf("end is %d\n",(int)c); 从int cast到int,没有必要但也不算错,得到3的打印结果,名实相符,皆大欢喜。如果不这样这满版的人就要哭了。
c = 1.6 + 1.7; printf("first is %f\n",(float)c); 这里面的 (float)c 不是已经对 C 重新定义了吗??也就是说 此时 c 的类型是 float~~ 怎么无效果??
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
将 1.6 和1.7 指派为 int 类型。 从而截尾,即 c = 1 + 1; =================================== 在加运算发生的时候,只要加号两边的操作数有一个是浮点数(另一个为某种整型), 编译器就会自动帮你升级为浮点数的运算。比如 3+1.67 1.67+'c' 1.58+5ull 你说的情形要类似这样子才会得到: c=(int)1.6+(int)1.7; 而且 float f=(int)1.6+(int)1.7; f得到3.0而非3.3.
孩皮妞野 2014-01-13
  • 打赏
  • 举报
回复
c = 1.6 + 1.7; // 上面一行右边先运算,得到3.3(大致)的浮点数结果,在赋值给左边的整型变量是,后面的小数被切掉,c得到了3。只知道3,你原来是从3.0001还是3.99999还是3LL赋值给它的都成了无关紧要的历史。c管不了,编译器也不会帮你记住... printf("first is %f\n",(float)c); 上面你从整型cast成浮点数,它里面的值(3)被赋给新生的无名变量,并被压入堆栈,printf函数在运行中会根据前面格式船中的%f找它并正确的使用,打印出3.0。 前面的3.3, 正如我们讨论过的一样,永远成为没有现实影响的历史。 c = 1.6 +1.7; printf("end is %d\n",(int)c); 从int cast到int,没有必要但也不算错,得到3的打印结果,名实相符,皆大欢喜。如果不这样这满版的人就要哭了。
LI-O 2014-01-13
  • 打赏
  • 举报
回复
..
ok.就是说,里面得 ,(float) c. 只是相当于创建了临时定义应为,也就是相当于局域变量的那种性质,如果想达到我理解的那种效果,还有另外的语法可以用???对不对??
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 §1 LINGO快速入门 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO中求解如下的LP问题: 在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 单 位 销地 运 价 产地 B1 B2 B3 B4 B5 B6 B7 B8 产量 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38 使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮 即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 §2 LINGO中的集 对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、交通工具和雇工等等。LINGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。 现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规模较大的模型。 2.2 什么是集 集是一群相联系的对象,这些对象也称为集的成员。一个集可能是一系列产品、卡车或雇员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属性值可以预先给定,也可以是未知的,有待于LINGO求解。例如,产品集中的每个产品可以有一个价格属性;卡车集中的每辆卡车可以有一个牵引力属性;雇员集中的每位雇员可以有一个薪水属性,也可以有一个生日属性等等。 LINGO有两种类型的集:原始集(primitive set)和派生集(derived set)。 一个原始集是由一些最基本的对象组成的。 一个派生集是用一个或多个其它集来定义的,也就是说,它的成员来自于其它已存在的集。 2.3 模型的集部分 集部分是LINGO模型的一个可选部分。在LINGO模型中使用集之前,必须在集部分事先定义。集部分以关键字“sets:”开始,以“endsets”结束。一个模型可以没有集部分,或有一个简单的集部分,或有多个集部分。一个集部分可以放置于模型的任何地方,但是一个集及其属性
中文名: Visual Basic 6大学教程 原名: Visual Basic 6 How to Program 作者: Harvey M. Deitel译者: 于伟 王刚 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社书号: 7505381377发行时间: 2003年01月 地区: 大陆 语言: 简体中文 简介: 内容简介    本书深入浅出地介绍了Visual Basic 6语言的基本概念和编程技术,包括对象、属性、方法、语句、函数、结构等基本问题,以及面向对象编程、数据库管理和网络编程等高级课题。全书共分为21章,系统地讨论了Visual Basic 6的编程技巧及应用,并且提供了大量实用和有趣的实例和习题。读者通过学习本书,可以在较短时间内掌握基本的和最新的程序设计技术。本书所配的“多媒体教室”光盘更是独具特色,通过交互式环境,使学习过程更加生动有趣。 目 录 第1章 计算机的概念 1 1.1 简介 1 1.2 什么是计算机 2 1.3 计算机的组成 2 1.4 操作系统的变革 3 1.5 个人计算、分布式计算与客户/服务器计算 3 1.6 机器语言、汇编语言和高级语言 4 1.7 Visual Basic的历史 5 1.8 其他高级语言 5 1.9 结构化编程 6 1.10 什么是Visual Basic 6 1.11 关于Visual Basic和本书的一般性提示 7 1.12 本书概览 7 小结 12 自测练习 14 自测练习答案 15 练习 15 第2章 集成开发环境 17 2.1 简介 17 2.2 集成开发环境综述 17 2.3 Project窗口 19 2.4 工具箱 20 2.5 Form Layout窗口 21 2.6 Properties窗口 21 2.7 菜单栏和工具栏 22 2.8 一个简单的程序:显示一行文本 22 小结 28 自测练习 31 自测练习答案 32 练习 33 第3章 Visual Basic 编程入门 35 3.1 简介 35 3.2 可视化编程和事件驱动编程 35 3.3 一个简单程序:在窗体上打印一行文本 36 3.4 另一个简单的程序:整数相加 40 3.5 内存的概念 44 3.6 算术运算 45 3.7 运算符的优先级 46 3.8 进行判断:比较运算符 48 小结 53 自测练习 55 自测练习答案 57 练习 59 第4章 控制结构(一) 62 4.1 简介 62 4.2 算法 62 4.3 伪代码 63 4.4 介绍控制结构 63 4.5 If/Then 选择结构 65 4.6 If/Then/Else选择结构 66 4.7 While/Wend循环结构 69 4.8 Do While/Loop循环结构 70 4.9 Do Until/Loop循环结构 70 4.10 构造算法:示例1(计数器控制循环) 71 4.11 自顶向下、分步求解的算法:示例2(标志控制循环) 73 4.12 自顶向下、分步求解的算法:示例3(嵌套控制结构) 78 小结 82 自测练习 84 自测练习答案 85 练习 87 第5章 控制结构(二) 92 5.1 简介 92 5.2 计数器控制循环的基础知识 92 5.3 For/Next 循环结构 93 5.4 使用For/Next循环结构的例子 96 5.5 Select Case多项选择结构 100 5.6 Do/Loop While循环结构 105 5.7 Do/Loop Until循环结构 106 5.8 Exit Do和Exit For语句 108 5.9 Boolean数据类型 109 5.10 常量变量 111 5.11 逻辑运算符 112 5.12 结构化编程总结 114 5.13 Visual Basic数据类型 119 小结 120 自测练习 120 自测练习答案 122 练习 123 第6章 子过程与函数过程 128 6.1 简介 128 6.2 窗体模块 128 6.3 Sub过程 129 6.4 Function 过程 134 6.5 按值调用与按引用调用 137 6.6 Exit Sub 和Exit Function 141 6.7 存储类 143 6.8 作用域规则 145 6.9 生成随机数 147 6.10 范例:一个机会游戏 153 6.11 递归与阶乘函数 157 6.12 另一个递归例子:Fibonacci序列 160 6.13 递归与迭代 162 6.14 可选参数 163 6.15 命名参数 164 6.16 Visual Baisc 数学函数 166 6.17 代码模块 167 小结 169 自测练习 171 自测练习答案 173 练习 174 第7章 数组 182 7.1 简介 182 7.2 数组 182 7.3 声明数组 183 7.4 使用数组的例子 184 7.5 给过程传递数组 190 7.6 数组排序 193 7.7 查找数组:线性查找和二分查找 196 7.8 多维数组 201 7.9 控件数组 203 7.10 动态数组 205 7.11 变长参数表:ParamArray 211 7.12 Array函数 212 小结 213 自测练习 214 自测练习答案 214 练习 215 第8章 字符串、日期和时间 224 8.1 简介 224 8.2 字符与字符串基础知识 224 8.3 String数据类型 225 8.4 利用 & 和 + 连接字符串 225 8.5 比较字符串 226 8.6 Like运算符 229 8.7 操作字符串中的单个字符:Mid$ 230 8.8 Left$、 Right$和InStr 232 8.9 使用InStr和 InStrRev函数在字符串里搜索子字符串 234 8.10 LTrim$、RTrim$和Trim$ 235 8.11 String$和 Space$ 236 8.12 使用Replace 函数替换子字符串 237 8.13 使用StrReverse函数反转字符串 237 8.14 转换字符串的大小写 238 8.15 转换函数 239 8.15.1 Asc 和Chr$ 239 8.15.2 IsNumeric、 Val 和Str$ 240 8.15.3 Hex$和Oct$ 241 8.15.4 类型转换函数 241 8.16 格式化字符串 243 8.16.1 Format$ 函数和命名数字化格式 243 8.16.2 Format$函数和用户定义数字化格式 245 8.16.3 FormatNumber函数 249 8.16.4 FormatCurrency函数 251 8.16.5 FormatPercent函数 253 8.17 处理日期和时间 254 8.18 格式化日期和时间 262 8.19 String数组 267 8.19.1 模拟洗牌与发牌 269 小结 272 自测练习 274 自测练习答案 274 练习 275 特殊小节:高级字符串操作练习 278 特殊小节:关于字符串操作的工程 280 第9章 图形 281 9.1 简介 281 9.2 坐标系 281 9.3 绘图方法 283 9.4 绘图属性 289 9.5 Line控件和Shape控件 292 9.6 颜色 294 9.7 图像 301 9.8 Printer对象 303 小结 304 自测练习 305 自测练习答案 305 练习 305 第10章 基本图形用户界面 307 10.1 简介 307 10.2 控件 307 10.3 TextBox控件 309 10.4 MaskEdit控件 311 10.5 ComboBox控件 314 10.6 ListBox控件 318 10.7 滚动条 322 10.8 Slider控件 324 10.9 菜单 325 10.10 弹出菜单 328 10.11 MsgBox函数 329 小结 333 自测练习 335 自测练习答案 335 练习 335 特殊小节:建立自己的计算机 337 第11章 高级图形用户界面 344 11.1 简介 344 11.2 多文档界面(MDI) 344 11.3 多窗体 352 11.4 模板窗体 356 11.5 RichTextBox 控件 360 11.6 UpDown 控件 364 11.7 ImageList 控件 367 11.8 ImageCombo 控件 370 11.9 FlatScrollBar 控件(专业版和企业版) 373 11.10 机器代码编译(专业版和企业版) 375 小结 376 自测题 378 自测练习答案 378 练习 379 第12章 鼠标和键盘 382 12.1 简介 382 12.2 改变鼠标指针的形状 382 12.3 鼠标事件 384 12.4 鼠标键 387 12.5 Shift、Ctrl和Alt键 389 12.6 拖放 391 12.7 键盘事件 396 12.8 KeyPreview属性 399 小结 400 自测练习 401 自测练习答案 402 练习 402 第13章 错误处理与调试 404 13.1 简介 404 13.2 何时使用错误处理 405 13.3 简单的错误处理例子:除数为0 405 13.4 嵌套的On Error语句 407 13.5 Err对象 409 13.6 Resume语句 411 13.7 错误处理程序和调用堆栈 414 13.8 重新引发错误 418 13.9 中断模式、Immediate窗口和Debug对象 420 13.10 防止程序错误的第一步 422 13.11 调试策略 422 13.12 调试器 424 13.12.1 Debug菜单和工具栏 424 13.12.2 Locals窗口 428 13.12.3 Watch窗口 429 13.12.4 Call Stack 窗口 430 13.13 调试器和错误处理程序 431 小结 431 自测练习 434 自测练习答案 434 练习 434 第14章 顺序文件处理 435 14.1 简介 435 14.2 DirListBox、FileListBox、DriveListBox控件 435 14.3 数据分层 438 14.4 文件系统对象 440 14.5 建立一个顺序存取文件 450 14.6 从顺序文件内读取数据 454 14.7 更新顺序存取文件 457 小结 458 自测练习 459 自测练习答案 460 练习 460 第15章 记录和随机存取文件 462 15.1 简介 462 15.2 随机存取文件 462 15.3 记录用户自定义类型 463 15.3.1 用户自定义类型的定义 463 15.3.2 操作用户自定义类型的成员 464 15.4 建立随机存取文件 465 15.5 向随机存取文件写入数据 469 15.6 从随机存取文件中按顺序读取数据 471 15.7 从随机存取文件中随机读取数据 474 15.8 范例:事务处理程序 477 小结 482 自测练习 483 自测练习答案 484 练习 484 第16章 面向对象编程 487 16.1 简介 487 16.2 数据抽象与信息隐藏 488 16.3 利用类实现一个时间抽象数据类型 489 16.4 类成员 493 16.5 合成:将对象作为其他类的实例变量 499 16.6 简介面向对象编程 503 16.7 带有部件的软件工程 506 16.8 类型域和 Select Case语句 506 16.9 多态性 507 16.10 Visual Basic接口 507 16.11 多态性举例 508 16.12 范例:IShape、CPoint、CCircle 509 16.13 范例:使用多态的支付系统 512 16.14 范例:图形的多态处理 518 16.15 利用接口继承和指派模拟实现继承 522 16.16 Object Browser 527 16.17 事件和类 528 小结 530 自测练习 532 自测练习答案 532 练习 532 第17章 ActiveX 536 17.1 简介 536 17.2 部件、COM和DCOM 536 17.3 ActiveX 控件类型 540 17.4 ActiveX 控件的生存期和事件 541 17.5 UserControl对象 542 17.6 创建包含构造控件的ActiveX控件 542 17.7 ActiveX 控件举例:Clock控件 549 17.8 ActiveX控件界面向导 554 17.9 属性页和属性页向导(Property Page Wizard) 563 17.10 ActiveX DLL 567 17.11 ActiveX EXE 570 17.12 Friend访问 575 小结 577 自测练习 579 自测练习答案 580 练习 580 第18章 数据库管理 582 18.1 简介 582 18.2 数据库系统 582 18.2.1 数据库系统的优点 582 18.2.2 数据独立 583 18.2.3 数据库语言 583 18.2.4 分布式数据库 583 18.3 关系数据库模型 583 18.3.1 关系数据库 584 18.4 介绍Microsoft ADO Data Control 6.0 585 和Microsoft DataGrid Control 6.0 18.5 关系数据库概览:Biblio.mdb数据库 588 18.6 结构化查询语言 590 18.6.1 基本的SELECT查询 591 18.6.2 WHERE从句 591 18.6.3 ORDER BY从句 592 18.6.4 使用INNER JOIN 从多个表中合并数据 593 18.6.5 Biblio.mdb中的全标题查询 593 18.7 再次讨论ADO数据控件和DataGrid控件 595 18.8 Hierarchical FlexGrid控件 597 18.9 DataList和DataCombo控件 598 18.9.1 范例:使用DataList和DataCombo控件 598 18.9.2 使用BoundColumn属性 602 18.10 使用Data Environment Designer 604 18.11 Recordset的其他程序化功能 607 18.12 事务处理 607 小结 608 自测练习 609 自测练习答案 610 练习 610 参考文献 611 第19章 网络、Internet和WWW 612 19.1 简介 612 19.2 Visual Basic Internet控件 613 19.3 WebBrowser控件 613 19.4 Internet Transfer控件 617 19.4.1 超文本传输协议(HTTP)连接 617 19.4.2 文件传输协议(FTP)连接 619 19.5 Internet Transfer控件的其他属性、方法和事件 621 19.6 Winsock控件 622 19.6.1 建立一个简单的服务器(使用TCP协议) 622 19.6.2 建立一个简单的客户(使用TCP协议) 624 19.7 范例:使用Winsock控件的客户/服务器交互 625 19.7.1 一个简单的基于TCP的服务器 625 19.7.2 一个简单的基于TCP的客户 627 19.7.3 客户/服务器交互的输出 630 19.8 Winsock控件和基于UDP的客户/服务器计算 631 19.8.1 一个简单的基于UDP的服务器 632 19.8.2 一个简单的基于UDP的客户 633 19.8.3 客户/服务器交互的输出 635 19.9 Winsock 控件的其他属性、方法和事件 636 19.10 Visual Basic Script(VBScript):综述 636 小结 645 自测练习 648 自测练习答案 648 练习 649 第20章 多媒体:图像、动画和音频 651 20.1 简介 651 20.2 Microsoft Agent 控件 652 20.3 多媒体MCI控件 658 20.3.1 多媒体MCI控件形成的CD播放器 660 20.3.2 一个多媒体MCI控件AVI文件播放器 661 20.4 Animation 控件 663 20.5 RealAudio ActiveX控件库 665 20.6 Marquee控件库 667 20.7 Microsoft ActiveMovie 控件 670 小结 672 自测练习 674 自测练习答案 674 练习 674 第21章 数据结构、集合和词典 676 21.1 简介 676 21.2 Variant类型 676 21.3 自引用类 677 21.4 动态内存分配 678 21.5 链表 679 21.6 堆栈 688 21.7 队列 691 21.8 树 693 21.9 Collection对象 699 21.10 Dictionary对象 701 小结 705 自测练习 706 自测练习答案 707 练习 707 附录A 运算符优先级表 713 附录B ANSI字符集 714 附录C Internet和WWW上的Visual Basic资源 715 附录D 数值系统 722

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧