博文

C++入门 7.1.2 结构体类型变量的定义方法及其初始化(2008-10-16 09:43:00)

摘要:  前面只是指定了一种结构体类型,它相当于一个模型,但其中并无具体数据,系统也不为之分配实际的内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。 1. 定义结构体类型变量的方法 可以采取以下3种方法定义结构体类型的变量。 (1) 先声明结构体类型再定义变量名 如上面已定义了一个结构体类型Student,可以用它来定义结构体变量。如 Student   student1, student2;   以上定义了student1和student2为结构体类型Student的变量,即它们具有Student类型的结构。如图7.2所示。
  图7.2 在定义了结构体变量后,系统会为之分配内存单元。例如student1和student2在内存中各占63个字节(4+20+1+4+4+30=63)。   (2) 在声明类型的同时定义变量 例如: struct Student               //声明结构体类型Student { int num;                 char name[20];           char sex;                int age;                 float score;  &nbs......

阅读全文(4725) | 评论:0

C++入门 第7章    7.1.1 结构体概述(2008-10-16 09:40:00)

摘要:  在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C和C++允许用户自己指定这样一种数据类型,它称为结构体。它相当于其他高级语言中的记录(record)。 例如,可以通过下面的声明来建立如图7.1所示的数据类型。 struct Student               //声明一个结构体类型Student { int num;                 //包括一个整型变量num char name[20];           //包括一个字符数组name,可以容纳20个字符 char sex;                //包括一个字符变量sex int age;                 //包括一个整型变量age float score;             //包括一个单精度型变量 char addr[30];           //包括一个字符数组addr,可以容纳30个字符 };              &nbs......

阅读全文(2175) | 评论:0

C++入门 第7章  自定义数据类型(2008-10-16 09:39:00)

摘要:  7.1  结构体类型 7.2  共用体 7.3  枚举类型 7.4  用typedef声明类型   C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。因此C++允许用户根据需要自己声明一些类型,例如第5章介绍的数组就是用户自己声明的数据类型。此外,用户可以自己声明的类型还有结构体(structure)类型、共用体(union)类型、枚举(enumeration)类型、类(class)类型等,这些统称为用户自定义类型(user-defined type,UDT)。 本章介绍结构体类型、共用体类型和枚举类型,第8章将介绍类类型。   7.1 结构体类型
  7.1.1 结构体概述 有时需要将不同类型的数据组合成一个有机的整体,以供用户方便地使用。这些组合在一个整体中的数据是互相联系的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,都是这个学生的属性。见图7.1。 ......

阅读全文(2776) | 评论:0

XForms 和 XPath(2008-10-14 00:22:00)

摘要: XForms 使用 XPath 对数据急性寻址。这个过程被称为绑定。 XForms 绑定 XForms 使用两个部分来定义数据:XForms 模型和 XForms 用户界面。 XForms 模型是针对数据的一个 XML 模板(实例),而 XForms 用户界面是对数据输入和显示的描述。 XForms 使用 XPath 来定义这个两个部分的连接。这被称为绑定(binding)。 XPath XPath 用于定义 XML 文档的各部分的 W3C 标准语法。 XPath 使用路径表达式来标示 XML 文档中的节点。这些表达式与您在计算机系统中看到的文件路径表达式非常类似。 XPath 表达式:/person/fname 对 XML 文档中的 fname 节点进行寻址:<person> <fname>David</fname> <lname>Smith</lname> </person> 在我们的 XPath 教程 中学习更多有关 XPath 的知识。 使用 Ref 进行绑定 XForms 模型是这样的:<instance> <person> <name> <fname/> <lname/> </name> </person> </instance> XForms 用户界面可使用 ref 属性来捆绑 <input> 元素:<input ref="name/fname"> <label>First Name</label> </input> <input ref="name/lname"> <label>Last Name</label> </input> 上面例子中的 ref="name/fname" 属性是一个指向实例模型中 <fname> 元素的 XPath 表达式。它可将输入域捆绑到正从表单收集数据的 XML 文档(实例)中的 <fnam......

阅读全文(896) | 评论:0

XForms 实例(2008-10-14 00:21:00)

摘要:过 Internet Explorer 进行测试 您可以使用 Internet Explorer 5 或更高的版本来测试这个例子。 请点击例子下面的链接。 一个 XForms 实例 请看这个使用 XForms 的文档:<xforms> <model> <instance> <person> <fname/> <lname/> </person> </instance> <submission id="form1" method="get" action="submit.asp"/> </model> <input ref="fname"> <label>First Name</label></input><br /> <input ref="lname"> <label>Last Name</label></input><br /><br /> <submit submission="form1"> <label>Submit</label></submit> </xforms> 页面会显示为这样: 在您的计算机上测试这个例子......

阅读全文(965) | 评论:0

XForms 命名空间(2008-10-14 00:19:00)

摘要: 您应当在 HTML 和 XHTML 1.0 中使用一个 XForms 命名空间。 但是很有可能在 XHTML 2.0 中不再需要了。 XForms 命名空间 官方的 XForms 命名空间是:http://www.w3.org/2002/xforms 如果您需要在 HTML(或者 XHTML 1.0) 中使用 XForms,就必须通过一个 XForms 命名空间声明所有的 XForms 元素。 XForms 预计会成为 XHTML 2.0 的标准组成部分,这样就不再需要 XForms 命名空间了。 这个例子使用的 XForms 命名空间:<html xmlns:xf="http://www.w3.org/2002/xforms"> <head> <xf:model> <xf:instance> <person> <fname/> <lname/> </person> </xf:instance> <xf:submission id="form1" method="get" action="submit.asp"/> </xf:model> </head> <body> <xf:input ref="fname"> <xf:label>First Name</xf:label></xf:input> <br /> <xf:input ref="lname"> <xf:label>Last Name</xf:label></xf:input> <br /> <br /> <xf:submit submission="form1"> <xf:label>Submit</xf:label></xf:submit> </body> </html> 在上面的例子中,我使用了针对 XForms 命名空间的 xf......

阅读全文(813) | 评论:0

XForms 模型(2008-10-14 00:16:00)

摘要:模型为集中于表单中的数据定义了一个模板。 XForms 框架 HTML 表单的作用是搜集数据。XForms 的作用是相同的。 通过 XForms,输入数据被描述在两个不同的部分中: XForms 模型(描述数据和逻辑) XForms 用户界面(显示和输入数据) XForms 模型定义了什么是表单,它包含什么数据,以及它应该做什么。 XForms 用户界面定义了输入域,以及它们如何被显示。 XForms 模型 XForms 模型用于描述数据。 数据模型是 XML 文档的一个实例(一个模板)。 XForms 模型定义了一个 <model> 元素内部的一个数据模型:<model> <instance> <person> <fname/> <lname/> </person> </instance> <submission id="form1" action="submit.asp" method="get"/> </model> 从上面的例子,您可以看到 XForms 模型使用 一个 <instance> 元素来为需要收集的数据定义 XML 模板,并使用一个 <submission> 元素来描述如何提交数据。 <submission> 模型没有表达任何有关表单可见部分(用户界面)的信息。 XForms 命名空间 假如您忽略了这些例子中的 XForms 命名空间,或者假如您不清楚命名空间的概念,我们会在下一节介绍这个内容。 <instance> 元素 XForms 模型 <instance> 元素来定义数据收集的数据。 XForms 是为某个 XML 文档进行数据收集的。在这个 XForms 模型中的 <instance> 元素定义了这个 XML 文档。 在上面的例子中,表单为其收集数据的数据实例(XML 文档)类似这样:<person> <fname/> <lname/> </person> 在数据收集完毕后......

阅读全文(1035) | 评论:0

XForms 简介(2008-10-14 00:13:00)

摘要: XForms 是下一代的 HTML 表单。 XForms 使用 XML 来创建 web 上的输入表单。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML HTML 表单 XHTML XML 如果您希望首先学习这些项目,请在 首页 访问这些教程。 什么是XForms? XForms 是下一代的 HTML 表单 XForms 与 HTML 表单相比更完善,更灵活 XForms 将在 XHTML 2.0 种成为表单标准 XForms 独立于平台和设备 XForms 可从表现分离数据和逻辑 XForms 使用 XML 来定义表单数据 XForms 可存储和传输 XML 文档中的数据 XForms 含有诸如计算以及表单验证等特性 XForms 可减少或根除对脚本的需求 XForms 是 W3C 标准 XForms 是 HTML 表单的继任者 在今天,表单是许多 web 应用程序的重要组成部分。HTML 表单使 web 应用程序从用户那里接收数据成为可能。 今天,在 HTML 表单成为 HTML 标准的组成部分的十年后,网络用户所进行的复杂事务正在超越标准的 HTML 表单的能力极限。 XForms 提供了一种更完善、更安全并独立于设备的方法来处理网络输入。我们应当期待未来的网络解决方案要求使用支持 XForms 的浏览器(所有未来的浏览器均应支持 XForms)。 XForms 可从表现分离数据和逻辑 XForms 使用 XML 来进行数据定义,而 HTML 或 XHTML 用于数据显示。XForms 可把表单的数据逻辑与其表现分离。XForms 数据的定义方式独立于最终用户与应用程序相交互的方式。 XForms 使用 XML 来定义表单数据 通过 XForms,可使用 XML 来表达描述和验证数据的规则。 XForms 使用 XML 来存储和传输数据 通过 XForms,显示在表单中的数据可存储在 XML 文档中,并且从表单提交的数据使用 XML 在因特网上传输。 数据以 Unicode 进行编码和传输。 XForms 独立于设备 把数据与表现分离使得 XForms 独立于设备,因为数据模型可被用于所有的设备。表......

阅读全文(963) | 评论:0

C++入门第6章6.9.3 引用作为函数参数(2008-10-12 08:45:00)

摘要:  有了变量名,为什么还需要一个别名呢?C++之所以增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能。 到目前为止,本书介绍过函数参数传递的两种情况。 (1) 将变量名作为实参和形参。这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化,并不传回给实参。因为在调用函数时,形参和实参不是同一个存储单元。 例6.18 要求将变量i和j的值互换。下面的程序无法实现此要求。   #include <iostream> using namespace std; int main( ) { void swap(int,int);                 //函数声明 int i=3,j=5; swap(i,j);                          //调用函数swap cout<<i<<″ ″<<j<<endl;              //i和j的值未互换 return 0; } void swap(int a,int b)      //企图通过形参a和b的值互换,实现实参i和j的值互换 { int temp; temp=a;                     &nb......

阅读全文(2873) | 评论:0

C++入门第6章6.9.2 引用的简单使用(2008-10-12 08:44:00)

摘要:  例6.17 引用和变量的关系。 #include <iostream> #include <iomanip> using namespace std; int main( ) { int a=10; int &b=a;                  //声明b是a的引用 a=a*a;                     //a的值变化了,b的值也应一起变化 cout<<a<<setw(6)<<b<<endl; b=b/5;                     //b的值变化了,a的值也应一起变化 cout<<b<<setw(6)<<a<<endl; return 0; }   a的值开始为10,b是a的引用,它的值当然也应该是10,当a的值变为100(a*a的值)时,b的值也随之变为100。在输出a和b的值后,b的值变为20,显然a的值也应为20。 运行记录如下: 100 100             (a和b的值都是100) 20 20              (a和b的值都是20) ......

阅读全文(1860) | 评论:1