《XML》教案
第2章 使用XML模式和名称空间
主讲人:×××

回顾上一章: [10分钟] 2
课程知识点讲解: 2
while 循环和do…while 循环的区别:[15分钟] 3
for 循环的使用 :[5分钟] 4
嵌套 for 循环 :[20分钟] 5
本章总结 [10分钟] 6
考核点 6
测试题 6
扩展部分: 7
学员问题汇总: 7
作业: 7

本章主要的目的
创建一个XML模式
在一个XML模式中声明属性
识别XML名称空间的需要
本章重点
XML schema(XML模式)
本章难点
循环结构
回顾上一章:
课程知识点讲解:
变量操作符:
算术操作符
算术赋值操作符
一元操作符
比较运算符
逻辑运算符
条件结构: [15分钟]
XML schema定义:是XML文档的一种描述,它通常采用XML文档的结构和内容来表示。模式定义一个XML文档必须遵循的一组规则,以便可依据该模式视该XML文档为有效XML文档。
名称空间:防止在一个XML文档中声明并存储具有相同名称的两个或更多元素时可能出现的任何冲突。

XML模式定义XML文档中可使用的元素和属性的列表,也指定这些元素在XML文档中出现的顺序以及它们的数据类型。
如何制作XML模式,使用XSD(XML模式定义语言)来定义XML文档的模式。
XML模式中的数据类型
在使用XSD创建XML模式的情况下,每一个元素都必须与一种数据类型相关联.数据类型指定元素可包含的内容的类型。XSD提供一个预定义数据类型列表。可对这些数据类型进行如下分类:
原始
派生
原子
列表
联合

原始数据类型:
派生数据类型:
原子数据类型:
列表数据类型:
联合数据类型:zips=zipName+zipNum

老师提问:

问题1:while和for的区别?
问题2:若条件测试没有为false时,程序将如何运行?
do…while循环: [15分钟]
格式:do{
语句;
}while(条件)
与for和while循环不同的是,该循环在循环的末尾才会检查条件,就是说即使条件已开始就是false,这个循环至少会执行一次
do语句的循环至少执行一次
知识点讲解1
案例讲解

/* 范例名称:的示例
• 源文件名称:do…while.cpp
 • * 要 点:在条件测试执行前执行一次条件变为 False 时,do while 循环终止;
 •1. 控制权传递给紧跟在 while 语句之后的语句
 */
 例题内容: int sum = 0,times = 1;
 do
 {
 sum = sum+2;
 times = times+1;
 }while(times<=1000);
 printf(“Sum = %d \n”,sum);

while 循环和do…while 循环的区别:[15分钟]
while语句是当型循环控制语句,一般形式为:
    while <表达式> 语句;
    语句部分称为循环体,当需要执行多条语句时,应使用复合语句。
    while语句的流程图见图3 - 8,其特点是先判断,后执行,若条件不成立,有可能一次也不执行。

do . . . while是直到型循环的语句,它的一般形式为:
    do 语句while <表达式>
    其中语句通常为复合语句,称为循环体。
其基本特点是:先执行后判断,因此,循环体至少被执行一次。
但需要注意的是,do. . .while与标准的直到型循环有一个极为重要的区别,直到型循环是当条件为真时结束循环,而do. . .while语句恰恰相反,当条件为真时循环,一旦条件为假,立即结束循环,请注意do. . .while语句的这一特点。

知识点讲解1

案例讲解:

老师提问:

问题1:输入1,SUM值为多少,输入11,SUM值为多少?

for 循环的使用 :[5分钟]
for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。它的一般形式为:
    for (<表达式1 >;<表达式2 >;<表达式3>) 语句
    for语句很好地体现了正确表达循环结构应注意的三个问题:
    1) 控制变量的初始化。
    2) 循环的条件。
    3) 循环控制变量的更新。
表达式1:一般为赋值表达式,给控制变量赋初值;
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量。
语句:循环体,当有多条语句时,必须使用复合语句。
    for循环的流程图如图3 - 11,其执行过程如下:
首先计算表达式1,然后计算表达式2,若表达式2为真,则执行循环体;否则,退出for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式2的值为假,退出循环。

计算自然数1到n的平方和。

#include <stdio.h>
 #include <math.h>
 main( )
 {
     int i;
     float s;
     printf(“please input n :”);
     scanf(“%d” ,&n);
     s = 0.0;
     for(i = 1; i<= n; i++)
     s = s + ( float ) (i) * ( float ) (i);
     printf(“11 + 22 +…+%d*%d = %f\n” ,n,n,s ) ;
 }


运行结果如下:
please input n : 5
11 + 22 + … + 5* 5 = 55.000000
for语句的几种格式
for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。

三种语句的选用
    同一个问题,往往既可以用w h i l e语句解决,也可以用do. . .while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句,选用的一般原则是:

  1. 如果循环次数在执行循环体之前就已确定,一般用f o r语句;如果循环次数是由循环体
        的执行情况确定的,一般用while语句或者do. . . while语句。
  2. 当循环体至少执行一次时,用do. . .while语句,反之,如果循环体可能一次也不执行,选用while语句。
    嵌套 for 循环 :[20分钟]
    知识点讲解1
    案例讲解:

/* 范例名称:输出半边*号的菱形

  • 源文件名称:Cpp5.cpp
  • 要 点:

*/
例题内容:

#include <stdio.h>
 void main()
 {
 int num,j,i;
 for (num = 1; num <=5; num++)
 {for (i = 1; i <= num; i++)
		{
			printf("*");
		}
		printf("\n");
	} 
	for (num = 4; num >=1; num--) 
	{ 
		 
		for (j = 1; j <= num; j++)
		{
			printf("*");
		}
		printf("\n");
	} 
}

循环的嵌套
    一个循环的循环体中有另一个循环叫循环嵌套。这种嵌套过程可以有很多重。一个循环外面仅包围一层循环叫二重循环;一个循环外面包围两层循环叫三重循环;一个循环外面包围多层循环叫多重循环。
    三种循环语句for、while、do. . .while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:

do
 {
     …
     for (;😉
     {
         …
     }while( );
 }格式:for(…,…,… ) 要强调中间的逗号不能少。。。
 {
 for(…,…,…)
 }


首先执行第一个for循环语句,接着进入第二个,在第二个for循环没有跳出前,第一个for循环下的语句不会执行,且第二个循环结束后再回到第一个for中,继续执行语句直到第一个for循环也结束才执行以后的语句了。
一个for循环中包含多个for循环,重要的是边界条件!!相互嵌套的2个for循环之间的条件应该多加注意!!
命名空间
概念
URI URN URL区别.

return,goto,break,continue都是无条件转移的语句
exit()函数是程序立即中止,控制权传回操作系统;c语言中不是很支持

本章总结 [10分钟]
理解 C 语言中的 for 循环
使用逗号运算符
理解嵌套循环
理解 while 循环和 do-while 循环
使用 break 和 continue 语句
理解 exit() 函数
考核点
考核点1:理解嵌套循环
考核点2:理解while 循环和 do-while 循环

测试题
测试题1:
测试题2:

扩展部分:
扩展部分1:while 循环和 do-while 循环的区别
扩展部分2:
扩展部分3:
学员问题汇总:
学员问题1:
学员问题2:
作业:
习题1:打印魔方
习题2: 打印复杂的菱形
习题3:求鸡兔公笼的问题
习题4:求5!
习题5:求任意两个数之间的和;