首页计算机大学计算机 05 第五章 计算机程序.pptx

05 第五章 计算机程序.pptx

页数:128页文件大小:484.3 KB来源: 大学计算机ppt课件

本课件介绍计算机程序的分类、程序设计语言的发展与程序的编译运行过程,讲解C语言的数据类型、运算符、表达式与控制结构,进而引入类与对象的面向对象思想,并说明文件、数据库与SQL等数据存储方式以及Web应用与传统程序的差异。

计算机程序课件封面,标示《大学计算机—计算的思想和方法》课程名称与本章主题
课程简介页,说明课程定位为计算机公共教学核心课程、授课对象为非计算机类各专业本科生,并引出本章计算机程序的教学目标
第5章 计算机程序章节导览页,列出计算机程序概述、C/C++程序设计语言、类与对象等小节,本节知识要点涵盖计算机程序、编译型程序、解释型程序等概念
查看本课件的文字版(共 128 页,供检索与复制)

第1页:大学计算机—计算的思想和方法课程封面

《大学计算机—计算的思想和方法》课程封面,标示教材名称、第3版与编著者信息。

第2页:课程简介

  • 课程定位核心通识课,计算机基础教学公共核心基础课程
  • 授课对象非计算机专业本科生
  • 教学目标
    • 深入理解计算科学在科学研究和知识创新中的地位和作用。
    • 全面培养个人的信息素养和计算思维能力。
    • 了解计算发展的基本过程,理解发展中的主要发明
    • 掌握问题求解的一般思想和方法,理解常用的问题求解算法。
    • 理解数据的概念,理解数据结构的含义和作用
    • 理解计算机程序、计算机程序设计语言的概念,理解程序编写和程序运行的基本内涵
    • 理解通信和计算机网路的思想,了解常用的网络设备及其功能,理解主要的互联网应用
    • 了解目前计算机学科的发展前沿,体会学科交叉在科研中的价值和意义
      • 第1章绪论
      • 第2章计算与计算机
      • 第3章问题求解与算法
      • 第4章数据与数据结构
      • 第5章计算机程序
      • 第6章计算机网络
      • 第7章计算科学前沿

第3页:第5章 计算机程序

  • 5.1 计算机程序概述
  • 5.2 C/C++程序设计语言
  • 5.3 类与对象
  • 5.4 数据存储与管理
  • 5.5 Web应用

知识要点:计算机程序,编译型程序,解释型程序,计算机程序设计语言,机器语言汇编语言高级语言软件开发环境,程序编译,程序连接,函数库,动态连接库(DLL)

第4页:5.1 计算机程序概述

  • 计算机程序及其分类
  • 程序设计语言
    • 程序设计语言的分类
    • 程序设计语言与编程思想
    • 常见计算机程序设计语言
  • 计算机软件系统开发

第5页:计算机程序及其分类

  • 计算机程序,是指用户为了达到某种目的而编写的可以控制计算机运行的一组指令序列。
  • 程序的分类
    • 按源程序能否直接运行分类
      • 解释型程序
      • 编译型程序
    • 按程序运行环境分类
      • Dos程序、Windows程序、Unix程序、Linux程序,以及MacOS程序,Android程序等
      • 虚拟机运行环境,如Java程序
      • Web程序

第6页:程序设计语言

  • 程序设计语言(Programming Language),就是用于编写计算机程序的语言,由一组基本符号和一组语法规则构成。
    • 基本符号定义了程序中能够出现的字符和词汇,并赋予它们特定的含义。
    • 语法规则定义了构成程序的基本符号、符号之间的组合规则,这些规则可以描述数据及其操作,以及各种程序语句及程序流程控制。
  • 程序设计语言的分类
    • 机器语言
    • 汇编语言
    • 高级语言

第7页:程序设计语言与编程思想

  • 软件危机,20世纪60年代末,出现了软件工程的概念
  • 结构化编程思想
    • 如果问题比较复杂,将问题分解为几个相对简单的子问题,如果某个子问题还比较复杂,进一步划分,直到分解后的每个问题都是相对简单的。
    • 1970年,出现了第一个结构化程序设计语言Pascal。
  • 面向对象编程(Object Oriented Programming,OOP)
    • 20世纪80年代
    • 数据和操作的封装,消息映射在事件和函数之间进行关联
    • 降低了函数的偶合度,提高系统的可扩充性和代码重用的层次,极大的增强了软件系统的可扩展性和灵活性。

第8页:高级程序设计语言的发展

  • 1951年,美国IBM公司的约翰·贝克斯[1]针对汇编语言的缺点着手研究开发一种新的计算机程序设计语言,这就是FORTRAN语言
  • LISP语言(1958年)、ALGOL语言(1958年)、COBOL语言(1959年),Basic(1964)
  • 20世纪70年代
    • Pascal(1971)
    • C语言(1972年)、Smalltalk语言(1972年)、Prolog语言(1972年)
  • 20世纪80年代
    • C++语言(1980年)
    • Ada语言(1983年)
    • Perl(1987)
  • 20世纪90年代
    • Python(1991年)、可视化编程语言VisualBasic(1991年)、具有跨平台特征的面向对象语言Java(1995年)、Delphi(1995年)、C#(2001年)

第9页:常见计算机程序设计语言

  • 编程语言流行度的评估

本页主体为图片内容,文字版要点待对照原课件补充。

第10页:计算机软件系统开发

  • 软件开发的基本步骤
    • 需求分析
    • 系统设计,包括功能设计、用户界面设计、算法设计、数据库设计等
    • 系统实施
    • 系统测试
    • 运行和维护
  • 软件开发环境
    • 语言规范,编译器
    • 库
    • 编辑器、编译、连接、调试

第11页:程序的编译连接和运行

  • 编译型计算机程序开发过程

本页主体为图片内容,文字版要点待对照原课件补充。

第12页:5.1 计算机程序概述

  • 5.1 计算机程序概述
  • 5.2 C/C++程序设计语言
  • 5.3 类与对象
  • 5.4 数据存储与管理
  • 5.5 Web应用

知识要点:c语言,c程序结构,c语言字符集,转义字符,关键字(保留字),标识符,数据类型,定点数,浮点数,运算符,表达式,赋值语句,输入/输出语句,分支语句,重复语句,构造类型,类型定义,结构化编程,函数,局部变量,全局变量。

第13页:5.2 C/C++程序设计语言

  • C语言及C程序结构
  • C语言基本符号
  • 数据与数据类型
  • 运算符与表达式
  • 赋值语句和输入/输出
  • 分支语句
  • 循环控制语句
  • 函数

第14页:高级程序设计语言的发展

  • 1950年代由John Backus领导的一个小组研制的FORTRAN语言,从此揭开了计算机高级程序设计语言发展的序幕。
  • 20世纪50年代后期,ALGOL语言、COBOL语言相继问世
  • 在60年代的十年间,人们研制了多达200种的高级程序设计语言,包括Basic
  • 20世纪70年代,Pascal语言问世
  • 在Pascal基础上,Ada语言问世

第15页:C语言的产生和发展

  • 在ALGOL 60的基础上,1963年英国剑桥大学推出了CPL(Combined Programming Langurage)语言
  • 1970年美国贝尔实验室的肯·汤普逊以BCPL语言为基础,作了进一步的简化,设计出了简单且接近硬件的B语言(取BCPL的第一个字母),并用B语言写出了第一个UNIX操作系统。
  • 1972年至1973年间,美国贝尔实验室的丹尼斯•里奇(Dennis Ritchie)在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

第16页:Ken Thompson

  • 肯·汤普逊(Kenneth Lane Thompson,1943年2月4日-),一般称之为Ken Thompson,为美国计算机科学学者,与丹尼斯·里奇共同发明了Unix和C语言,于1983年共同获得图灵奖,理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”。
  • 后门,
    • 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。Bell Lab里的科学家发现Ken总是具有最高权限,分析了UNIX代码,找到后门,修改代码,然后重新编译了整个UNIX。他们发现Ken还是轻而易举地拿到他们的帐户权限。
    • 14年,直到Ken道出个中缘由。原来,代码里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken的C编译器无法显示该图片。

第17页:Dennis Ritchie

  • 丹尼斯·里奇(Dennis Ritchie,1941年9月9日~2011年10月9日),美国计算机科学家,对C语言和其他编程语言、Multics和Unix等操作系统的发展做出了巨大贡献,1983年同KenThompson一起获得图灵奖。
  • 1978年与布莱恩·科尔尼干(Brian W.Kernighan)一起出版了名著《The CProgramming Language》,成为C语言方面最权威的教材之一。无法显示该图片。

第18页:C程序结构

  • 一个简单的C程序
  • #include <stdio.h>
  • ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • //计算一个正整数n的阶乘,并返回该阶乘
  • int fact(int n)
  • {
  • int i,res=1;
  • for (i=1;i<=n;i++)
  • res *= i;
  • return res;
  • }
  • ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • //输入一个正整数,求它的阶乘,并输出
  • main()
  • {
  • int x,y;

    第19页:C语言基本符号

    • 字符表
      • 基本字符
      • 转义字符,不可打印的字符,它以反斜线字符“\”开始
        • \r表示回车(CR),将当前位置移到本行开头,ASCII值为13;\n表示换行(LF),将当前位置移到下一行开头,ASCII值为10
      • 运算符号
    • 关键字(保留字)
      • 固定含义的单词
    • 标识符
      • 表示常量、变量、类型、函数等名称的符号。
    • 注释
      • 形式上:单行注释和多行注释
      • 功能上:序言性注释和描述性注释

    第20页:ANSI C语言关键字列表(1)

    ANSI C语言关键字列表(1)

    本页主体为图片内容,文字版要点待对照原课件补充。

    第21页:ANSI C语言关键字列表(2)

    ANSI C语言关键字列表(2)

    本页主体为图片内容,文字版要点待对照原课件补充。

    第22页:ANSI C语言关键字列表(3)

    ANSI C语言关键字列表(3)

    本页主体为图片内容,文字版要点待对照原课件补充。

    第23页:数据与数据类型

    • 常量
      • 直接常量(又称字面常量)和符号常量
      • 符号常量定义
        • #define <常量名>常量
        • 例如:#define PI 3.14
      • 为什么要定义常量?
    • 变量
      • 变量定义
        • auto | static | register | extern <类型> <变量名表>;
        • 例如:int a,b;

    第24页:数据类型

    • 数据类型的性质
      • 存储空间
      • 取值范围
      • 操作运算
    • C语言的数据类型

    第25页:字符类型

    • 类型名为char
    • 可打印字符
    • 转义字符,ASCII码字符集中不可打印的控制字符和特定功能的字符

    第26页:整数类型

    • C标准将整数类型分成有符号整数和无符号整数
    • 每一种整数,又分成标准整型(int)、短整型(short)和长整型(long)。

    第27页:实数类型

    • 实数是指带有小数点的数据

    本页主体为图片内容,文字版要点待对照原课件补充。

    第28页:枚举类型

    • 当一个变量的取值仅有少数几种可能时,可以使用枚举类型。
    • 枚举类型定义的一般形式
      • enmu <枚举类型名> {<枚举常量表>};
        • 举例:enum weekday {sun,mon,tue,wed,thu,fri,sat};
      • 定义该类型的变量
        • enum weekday workday,freeday;
    • 说明
      • 枚举元素均为常量,不能当作变量赋值。
      • 枚举元素作为常量,从左到右对应的序号值为0,1,2,…。
      • 枚举元素的值(序号)可由用户指定,如:enum weekday{sun=7,mon=1,tue,wed, thu,fri,sat};
      • 枚举类型数据可以作关系运算。
      • 不能将一个整数赋给枚举类型变量

    第29页:数组

    • 数组是由固定数量的、相同类型的元素构成,数组类型是一种构造数据类型。
    • 数组元素在内存中占用连续的存储空间
    • 数组有一维数组、二维数组和多维数组。

    第30页:一维数组

    • 定义的一般形式
      • <类型标识符> <数组变量名>[常量表达式];
    • 数组元素
      • 数组变量名[下标]
    • 变量说明时可以初始化
      • int x[10] = {21,16,55,106,75,80,92,31,100,11};
      • int x[10] = {21,16, ,106,75}
      • int a[] = {50,28,31,56,11,66};

    第31页:二维数组

    • 如果一维数组的元素类型为数组类型,即构成二维数组。
    • 二维数组定义的一般形式
      • <类型标识符> <数组变量名>[常量表达式] [常量表达式]
      • int xx[3][2];说明一个3
      • 2的整数数组,分3行2列共6个元素。
    • 元素的引用
      • 数组变量名[下标] [下标]
    • 初始化
      • int x[3][2] = {{21,16},{55,106},{75,80}}
      • 对数组中的部分元素赋初值,如:int x[3][2] = {{21},{,106},{75}}

    第32页:字符数组

    • 元素类型为字符(char)类型的数组为字符数组。字符数组具有许多其它类型的数组不具有的特性
    • 在字符数组初始化时,若字符个数小于数组长度,则未赋值元素自动定为空字符(‘\0’)
    • 在C语言中,将字符串作为字符数组处理,每个字符串的结尾都隐式的包含一个字符串结束标志('\0')。例如"Hello World"共11个字符,但在内存中占12个字节。

    第33页:结构体

    • 结构体是一种构造型数据类型,一般是由前面的简单类型(又称基本类型)数据构造而成。主要用于描述具有多个属性的数据对象,如一个学生(包括姓名、性别、出生年月等属性)。
    • 声明结构体类型的一般形式为

    第34页:结构体举例

    结构体举例

    本页主体为图片内容,文字版要点待对照原课件补充。

    第35页:结构体变量的操作

    • 对于结构体,对成员的访问是通过结构体变量名和成员名完成
    • 一般形式
      • 结构体变量名.成员
    • 举例

    第36页:指针类型

    • 指针可以看作是内存地址
    • 指针类型变量定义的一般形式
      • 基类型*指针变量名;
    • 内存空间
      • malloc分配内存空间,
      • free释放内存空间
    • 用户不能直接为一个指针变量赋值,但可以将一个变量的地址赋给指针变量,或者通过malloc函数为指针变量申请内存空间,或者将一个指针变量的赋给另一个指针变量
      • int *p1,*p2,*p3;
      • int x;
      • 下列语句是正确的:
      • p1=(int *)malloc(sizeof(int));
      • p2= &x;
      • p3= p1;
    • 指针变量的值和地址内的值概念不同,指针变量的值为地址。

    第37页:类型定义

    • 用户可以为一个构造型数据类型的定义命名,一般形式
      • typedef类型<类型名>;
    • 举例1:
      • typedef float Dollars;
      • Dollars salary,fee;
    • 举例2:
      • typedef struct d{
      • int year;
      • int month;
      • int day;
      • } MyDate;

    第38页:运算符

    • 算术运算符
      • 加法(+)、减法(-)和乘法(*)
      • 整除(/)、模除(%)
        • 若操作数均为整数
        • 如果一个操作数为float
    • 关系运算符
      • <、<=、>、=、= =(等于)和!=(不等于)
    • 逻辑运算符
      • &&(逻辑与),||(逻辑或)和!(逻辑非),
      • 运算结果为True(非0值)或False(0值)。
    • 自增、自减运算符
      • i++,i--(在使用i之后,将i的值加1或减1)
      • ++i,--i(在使用i之前,将i的值加1或减1)
    • 强制类型转换
      • (<类型名>)(表达式)
      • 例如(double) x将x转换成double类型

    第39页:表达式

    • 表达式是指常量、变量、函数、运算符和括号连接而成的式子
    • 表达式的分类
      • 算术表达式(结果为整数、实数)
      • 字符表达式(结果为字符,或字符串)
      • 逻辑表达式(结果为True或False,在C语言中,0代表False,非0的数代表True)。

    第40页:赋值运算符(=)和赋值表达式

    • 赋值运算
      • 将一个表达式的值赋给一个变量
      • <变量名> = <表达式>
    • 赋值表达式
      • 赋值运算符(=)将一个变量和一个表达式连接而成的式子
      • 赋值表达式,表达式都有一个值,如a=5是一个赋值表达式,表达式的值为5(变量a的值也为5)
    • 类型转换
      • 若等号左边的变量为整数类型,右边表达式为实数类型(float、double和long double),则自动舍弃表达式的小数部分。反之,左边的变量为实数类型,右边表达式为整数类型,则将表达式的值以实数形式存储到变量中。
      • 当将一个字符赋给一个整型变量时,将字符的8位值存放到整型变量的低8位,高位字节全0或由字符的最高位决定。反之,将int、short或long int数据赋值给一个char变量时,取整型数据的低8位。

    第41页:复合赋值运算符

    • 二目(两个操作数)运算符,都可以和赋值号(=)构成复合赋值符。如:+=,-=,*=,/=,<<=,>>=,&=,^=,|=等
    • 例如:a += 6等价于a = a+6,x *= (y+1)等价于x =x* (y+1)。

    第42页:逗号运算符和逗号表达式

    • 逗号运算符
    • 逗号表达式
      • 表达式1,表达式2,…,表达式n
    • 计算顺序
      • 先计算表达式1,然后计算表达式2,..,表达式n.。逗号表达式的值为表达式n的值。
      • 例如,x=(a=1,2*3)的结果为6。

    第43页:赋值语句

    • 赋值语句的基本功能是为变量赋值。赋值语句由赋值表达式加一个分号构成。
    • 一般形式
      • <变量名> = <表达式>;
    • 赋值语句的基本功能是将赋值号(=)右边表达式的值赋给左边的变量
    • 举例:if ((a=b)>0) c=1;

    第44页:输入/输出

    输入/输出

    本页主体为图片内容,文字版要点待对照原课件补充。

    第45页:分支语句(1)

    • 一般形式
      • if (<表达式>)
      • <语句>;
    • 逻辑功能

    第46页:例5-2

    • 输入两个整数x,y,一个字符ch,根据字符ch的值分别对x和y做加(+)、减(-)、乘(*)、除(/)运算,并输出运算结果
    • #include <stdio.h>
    • void main(void)
    • {
    • int x,y,z;
    • char ch;
    • scanf("%d%d%c",&x,&y,&ch);
    • if (ch=='+')
    • z=x+y;
    • if (ch=='-')
    • z=x-y;
    • if (ch=='*')
    • z=x*y;
    • if (ch=='/')
    • z=x/y;
    • printf("z=%d",z);
    • }

    第47页:分支语句(2)

    • if-else语句
    • 一般形式
      • if (<表达式>)
      • <语句1>;
      • else
      • <语句2>;
    • 逻辑功能

    第48页:分支语句(3)

    • switch语句
    • 一般形式
      • switch (<条件表达式>)
      • {
      • case表达式1:
      • 语句1;
      • [break;]
      • case表达式2:
      • 语句2;
      • [break;]
      • ……
      • case表达式n:
      • 语句n;
      • [break;]
      • [default:
      • 语句n+1;
      • ]
      • }

    第49页:例5-2b

    • scanf("%d%d%c",&x,&y,&ch);
    • switch (ch)
    • {
    • case '+':
    • z=x+y;
    • break;
    • case '-':
    • z=x-y;
    • break;
    • case '*':
    • z=x*y;
    • break;
    • case '/':
    • z=x/y;
    • break;
    • }
    • printf("z=%d",z);

    第50页:条件运算符

    • 条件运算符(?:)
      • 表达式1?表达式2:表达式3
    • 逻辑功能
      • 计算表达式1的值,如果为真,则条件表达式取表达式2的值,否则取表达式3的值
    • 例如if (a<b)min = a;elsemin = b;可以写成下面的条件表达式:min = (a<b) ? a:b

    第51页:循环控制语句(1)

    • while语句
    • 一般形式
      • while (<表达式>)
      • <语句>;
    • 逻辑功能

    第52页:例5-3

    • 输入一个正整数,计算正整数的位数。
    • #include <stdio.h>
    • void main(void)
    • {
    • int x,width=0;
    • scanf("%d",&x);
    • while (x>0)
    • {
    • width++;
    • x = x/10;
    • }
    • printf("wid=%d",width);
    • }

    第53页:循环控制语句(2)

    • do-while语句
    • 一般形式
      • do {
      • 语句(循环体)
      • } while(<表达式>);
    • 逻辑功能

    第54页:例5-4

    • 输入一串十六进制字符(0~9,a~f)计算对应的十进制值,并输出。
    • #include <stdio.h>
    • void main(void)
    • {
    • char ch;
    • int x=0;
    • do {
    • scanf("%c",&ch);
    • if (ch>='0' && ch<='9')
    • x= x*16 + ch-'0';
    • else
    • if (ch>='a' && ch<='f')
    • x= x*16 +(ch-'a')+10;
    • else
    • if (ch>='A' && ch<='F')
    • x= x*16 +(ch-'A')+10;
    • } while ((ch>='0' && ch<='9') || (ch>='a' && ch<='f') ||(ch>='A' && ch<='F'));
    • printf("x=%d",x);
    • }

    第55页:循环控制语句(3)

    • for语句
    • 一般形式
      • for (表达式1;表达式2;表达式3)
      • <语句>;
    • 执行过程
      • (1)计算表达式1。
      • (2)计算表达式2,如果为真,则执行循环体,然后转步骤(3)。否则,结束循环。
      • (3)计算表达式3
      • (4)无条件转步骤(2)
      • (5)循环结束

    第56页:例5-5

    • 输出杨辉三角形前10行的内容
    • 分析
      • (1)第i行有i个数字。
      • (2)对于每一行的第一个和最后一个数均为1,其他的任何一个数等于上一行对应的数和前面数的和。

    第57页:程序代码

    • #include <stdio.h>
    • void main(void)
    • {
    • int a[10];

      第58页:例5-6

      • 问题
      • 分析

      本页主体为图片内容,文字版要点待对照原课件补充。

      第59页:程序代码

      • #include <stdio.h>
      • main()
      • {
      • float x,t=1,sum=0;
      • int n;
      • scanf("%f%d",&x,&n);
      • for (int i=1;i<=n;i++)
      • {
      • t *= x/i;
      • sum += t;
      • }
      • printf("sum=%5.2f",sum);
      • }

      第60页:其他控制语句

      • break语句
        • 用于跳出最近的循环
      • continue语句
        • 跳过本次循环中下面尚未执行的语句,接着进入下一次是否执行循环的判断

      第61页:例5-7

      • 输入一系列正整数,分别计算正数和负数的和,输入0结束。
      • #include <stdio.h>
      • main()
      • {
      • int x,sum1=0,sum2=0;
      • while (1)
      • {
      • scanf("%d",&x);
      • if (x==0)
      • break;
      • if (x>0)
      • sum1 += x;
      • else
      • sum2 += x;
      • }
      • printf("sum1=%6d,sum2=%6d\n",sum1,sum2);
      • }

      第62页:函数

      • 结构化编程
      • 函数定义的一般形式类型标识符函数名(形式参数表){声明部分语句部分}
      • 说明
        • 返回值,return语句,void
        • 函数名
        • 形式参数
        • 声明部分
        • 语句部分

      第63页:函数调用

      • 一般形式
        • 函数名(<实际参数表>)
      • 函数调用的一般过程
        • (1)参数传递,在进入函数前,根据函数定义,首先为函数的形式参数分配临时内存空间。然后,对于函数中的每一个形式参数,分别将对应的实际参数的值或地址赋给形式参数。
        • 如果形式参数为指针类型,则对应的实际参数必须为变量,此时,将实际参数的地址赋给形式参数;如果形式参数不是指针,则将对应的实际参数的值赋给形式参数。
        • (2)申请局部变量,参数传递完成后,进入函数内部,如果函数包含局部变量声明,则为每一个局部变量分配临时内存空间。
        • (3)执行函数的语句部分,当为函数的局部变量分配空间结束后,接下来开始执行函数的语句部分。
        • (4)当函数的语句部分执行结束后,释放进入函数时所申请的所有临时变量空间,这包括形式参数和局部变量两个部分。
        • (5)函数执行结束,返回函数调用语句的下面一条语句,继续执行下面的语句。

      第64页:例5-8

      • 编写一个C函数,判断一个数是否为素数。如果是素数,返回1,否则返回0。
      • 分析

      第65页:代码清单

      • int prime(int x)
      • {
      • int i, isprime=1;
      • if (x==1)
      • return 0;
      • for (i=2;i<x-1;i++)
      • {
      • if (x % i==0)
      • {
      • isprime=0;
      • break;
      • }
      • }
      • return isprime;
      • }

      第66页:局部变量和全局变量

      • 局部变量
        • 在函数内部定义的变量,只在函数内部使用
        • 变量声明也可以出现在语句块(在{}内)中,此时变量的有效范围为其所在的语句块,离开该语句块,变量所占内存单元被释放。
      • 全局变量
        • 在函数的外部可以定义变量
        • 全局变量的有效范围是从定义变量的位置到文件结束。

      第67页:例5-9:函数、局部变量和全局变量示例

      例5-9:函数、局部变量和全局变量示例

      本页主体为图片内容,文字版要点待对照原课件补充。

      第68页:变量的存储类别

      • 从变量值(所占空间)存在的时间上讲,变量的存储方法分成静态存储和动态存储两大类,四个类别,分别是auto,static, register和extern。
      • auto变量。函数中的局部变量,如不特别声明为static,即为自动(auto)变量。
      • static变量。如果希望局部变量的值在函数调用结束后仍然存在,即局部变量所占的存储单元不被释放。
      • register变量。无论是auto还是static变量,数据都存储在内存中。当程序使用该变量时,控制器通过机器指令将数据传到运算器,运算结束数据被送回内存储器。
      • extern变量。外部变量(全局变量)是在函数外部定义的变量,其作用域是从变量的定义处开始直到文件的结束。
        • extern[类型名]外部变量名;

      第69页:5.2 C/C++程序设计语言

      • 5.1 计算机程序概述
      • 5.2 C/C++程序设计语言
      • 5.3 类与对象
      • 5.4 数据存储与管理
      • 5.5 Web应用

      知识要点:面向对象的思维方式,类,对象,成员变量(属性),成员函数(方法),构造函数,析构函数,基类,派生类,面向对象编程。

      第70页:5.3 类与对象

      • 面向对象的思维方式
      • 类及其定义
      • 类的继承性与派生类
      • 对象的创建及操作

      第71页:面向对象的思维方式

      • 建立了类和对象的概念
        • 自然界中的物理对象软件对象
        • 通过消息映射在事件和函数之间进行关联,函数之间的联系不再是显式的调用,降低了函数的偶合度。
        • 对于复杂系统面向对象技术可以提高系统的可扩充性和代码重用的层次

      第72页:类及其定义

      • 类(Class)是包含数据和处理这些数据的过程的数据结构。
      • 类的定义class <类名>{private:成员变量和成员函数;public:成员变量和成员函数;protected:成员变量和成员函数;};

      第73页:成员访问级别

      • (1)关键词public,声明成员为公有(public)成员。类中所有public成员构成类的接口,它们是类的抽象性的表现。(2)关键词private,声明成员为私有(private)成员。类中的private成员只能被类的成员函数、友元类或外部友元函数访问。从而实现类的封装性。在默认状态下,所有的成员都是私有的。
      • (3)关键词protected,声明成员为保护型(protected)成员。在面向对象技术中,派生是类的重要性质。类的private成员将不能被派生类中的成员访问,这就大大限制了类的灵活性。类的protected成员可以被类的派生类成员访问。

      第74页:成员变量与成员函数

      • 成员变量,用于说明一个类的属性,它存储了类对象中涉及的数据。
      • 成员函数,定义了对类中成员变量的的操作,又称方法。
      • 构造函数(Constructor)
        • 一种特殊的成员函数,用来在内存中建立具体的对象。用于申请内存空间,将内存转化为具体的对象,初始化成员变量等。
        • 构造函数的名称和类名称相同,有默认构造函数和用户自定义构造函数两类,默认构造函数没有形式参数。用户可以定义一个或多个具有不同参数的用户自定义构造函数。
        • 构造函数也不是由用户显式调用(Call)
        • 当创建一个类对象时,默认构造函数或相应的构造函数被自动执行
      • 析构函数(Destructor)
        • 一种当对象取消时才被调用的特殊成员函数。
        • 每个类只能拥有一个析构函数,函数名为在类名前加一字符“~”。
        • 当操作系统释放对象时,类的析构函数激活,通常是执行释放对象所占的内存空间等操作。

      第75页:例5-10定义一个学生类

      例5-10定义一个学生类:CStudent

      • 例5-10定义一个学生类CStudent
      • class CStudent {
      • private:
      • char myname[15];
      • float myheight;
      • public:
      • int myid;
      • public:
      • CStudent ();

        第76页:VC++中类的定义举例

        • VC++开发环境

        本页主体为图片内容,文字版要点待对照原课件补充。

        第77页:类的继承性与派生类

        • 事物之间存在层次关系
          • 例如:动物、哺乳动物之间,交通工具、和飞机、火车、轿车之间,都存在层次关系
        • 继承,就是在已有类基础上,建立一种新的类型,使它继承原有类的特点和功能。
          • 基类(Base class),已存在的用来派生新类的类
          • 派生类,由已存在的类派生出的新类
        • 从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

        第78页:单继承

        • 定义格式class <派生类名>:<继承方式><基类名>{<派生类新定义成员>};
        • 继承方式
          • public(公有派生)
          • private(私有派生)
          • protected(保护派生)
        • 派生类可以对基类作如下变化
          • 增加新的成员变量
          • 增加新的成员函数
          • 重新定义已有的成员函数
          • 改变现有成员函数的属性
        • 例如class B : public A {//派生类B的成员说明};

        第79页:基类和派生类成员访问特性

        基类和派生类成员访问特性

        本页主体为图片内容,文字版要点待对照原课件补充。

        第80页:对象及其创建

        • 对象(Object)是用类来声明的数据结构,如果将类比作数据类型,对象就是相应数据类型的变量。
        • 对象的创建
          • 一般对象
            • <类标识符> <对象名表>;
            • 通过new函数来动态创建
          • 类属对象
        • 例如CStudent s1;

          第81页:对象成员的访问

          • 一般形式
            • <对象名>. <成员变量|成员函数(参数)>;
          • 访问类成员的方式
            • 由成员的属性决定(public,private,pritected)
          • 例如s1.myid= 20090323;s1.myheight= 165;

            第82页:5.3 类与对象

            • 5.1 计算机程序概述
            • 5.2 C/C++程序设计语言
            • 5.3 类与对象
            • 5.4 数据存储与管理
            • 5.5 Web应用

            知识要点:文件,文本文件,二进制文件,数据库,数据表,数据库管理系统(DBMS),结构化查询语言(SQL),T-SQL,数据查询,聚合查询,分组查询,连接查询(多表查询),数据更新。

            第83页:5.4 数据存储与管理

            • 数据文件及其操作
            • 数据库与数据库管理系统
              • 数据管理的发展
              • 数据库管理系统
              • 数据库
              • 数据模型中的有关概念
            • 结构化查询语言SQL
              • 数据查询
              • 数据的插入
              • 修改数据记录
              • 删除数据记录

            第84页:数据文件

            • 文件管理是操作系统的主要功能
            • 文件分类
              • 文本文件
                • 是指由若干行字符文本构成的文件,每一行有一系列的字符组成。
                • 字符编码,存储的是每一个字符的字符编码
              • 二进制文件
                • 指按照特定的数据类型来存储数据的二进制值,而不是每个字符的字符编码。
            • 举例
              • 存储整数123

            第85页:文件操作

            • ANSI C有关文件操作

            本页主体为图片内容,文字版要点待对照原课件补充。

            第86页:例5-11文本文件操作

            • 从键盘输入一系列数字,将这些数字保存到C盘根目录下的文件“mydata1.dat”中
            • #include <stdio.h>
            • #include <stdlib.h>
            • void main(void)
            • {
            • FILE *fp;
            • int x;
            • //打开一个文本文件准备写
            • fp=fopen("c:\\mydata1.dat","w");
            • if (fp==NULL)
            • {
            • printf("can't create file.");
            • exit(0);

              第87页:例5-12二进制文件操作示例

              • 从键盘输入5个员工数据,将用户输入数据保存到一个磁盘文件“employee.dat”中。
              • #include <stdio.h>
              • #define MAXNUM 10
              • typedef struct e {
              • char ID[18];
              • char name[10];
              • int age;
              • float salary;
              • } EmployTypeemployee_lists[MAXNUM];
              • //保存文件函数
              • void save(int num)
              • {
              • File *fp;
              • int i;
              • if ((fp = fopen("employee.dat","wb")==NULL) {

                第88页:数据库与数据库管理系统

                • 数据管理的发展
                • 数据库管理系统
                • 数据库
                • 数据模型中的有关概念

                第89页:数据管理的发展

                • 什么是数据管理(DataManagement)?
                  • 对数据必须进行高效地组织、编目、分类、定位、排序、存储、检索和维护等
                • 人工管理阶段,约20世纪50年代中期之前
                • 文件系统管理阶段,在20世纪50年代后期到60年代中期
                • 数据库系统管理阶段,20世纪60年代后期以来

                第90页:数据管理的发展(续)

                • 数据库系统管理阶段,20世纪60年代后期以来

                第91页:数据库管理系统

                • 数据库管理系统(Data Base Management System,DBMS)是指负责数据库的建立、维护和管理系统软件,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
                • DBMS的组成
                  • 数据定义语言(Data Definition Language,DDL),主要用于建立、修改数据库的库结构
                  • 数据操作语言(Data Manipulation Language,DML),定义对数据库数据的基本操作,如:添加、查找、修改、删除数据等操作
                    • 宿主型DML
                    • 自含型DML,提供交互式命令语言,又称查询语言,可单独使用。
                  • 数据库管理控制程序
                  • 通信功能程序

                第92页:数据库

                • 数据库(Data Base,DB)是指在DBMS的支持下以一定组织方式将相关数据组织在一起所形成的能够为多个用户共享与应用程序相互独立的数据集合。数据库以文件的形式存储在外部存储设备上,为数据库应用系统提供数据。
                • 数据模型是描述数据库数据结构的模式,是对客观事物及其联系的抽象化描述。
                  • 层次模型
                  • 网状模型
                  • 关系模型

                第93页:关系型数据库

                • 数据表

                本页主体为图片内容,文字版要点待对照原课件补充。

                第94页:数据模型中的有关概念

                • 实体、记录与数据项,数据是对现实世界实体的数据描述,在数据模型中,把描述一个实体的数据称为一条记录;把描述实体属性的数据称为数据项或字段。
                • 型与值
                • 数据表

                第95页:结构化查询语言SQL

                • SQL的组成与T-SQL语言
                • 简单数据查询
                • 聚合查询
                • 分组查询
                • 连接查询
                • 查询输出
                • 插入数据记录
                • 修改数据记录
                • 删除数据记录

                第96页:结构化查询语言SQL

                • 结构化查询语言SQL(Structured Query Language)是关系数据库管理系统的标准语言,用于数据库的创建、数据查询、数据更新等操作。
                • 标准的SQL语言由三个部分组成
                  • 数据定义语言(Data Definition Language,DDL)
                  • 数据操作语言(Data Manipulation Language,DML)
                    • 用于完成数据查询和数据更新操作。其中数据更新指对数据进行插入、删除和修改操作。
                    • 最常使用的DML语句是SELECT、INSERT、UPDATE和DELETE命令。
                  • 数据控制语言(Data Control Language,DCL)

                第97页:Transact-SQL

                • Transact-SQL(T-SQL)是微软遵循ANSI SQL-92标准在Microsoft SQL Server系统中使用的语言,它是在SQL标准的增强和扩展。
                • T-SQL增加了数据库编程功能
                  • 标识符、变量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言、注释等所有的程序设计语言成分。
                  • 在T-SQL中,还定义了大量的标准函数,包括:聚合函数、数学函数、字符串函数、日期和时间函数、系统函数、游标函数和元数据函数,从而使得SQL具有强大的编程能力,对数据库的操作更加方便和灵活。

                第98页:数据查询

                • 查询语句用来对已经存在于数据库中的数据按照特定的组合、条件表达式或者一定次序进行检索,并得到一个结果集。
                • 在SQL中,数据查询是通过SELECT语句完成SELECT<select_list>[INTO <new_table> ]FROM<table_list>[WHERE <search_condition> ][GROUP BY <group_by_expression> ][HAVING <search_condition> ][ORDER BY <orderby_expression> [ASC | DESC]][COMPUTE { {AVG | COUNT | MAX | MIN | SUM } (expression) }[ BY expression]]

                第99页:SELECT语句(1)

                • SELECT子句
                  • SELECT[ALL | DISTINCT][TOP <n>[PERCENT]]<select_list>
                • 关键字
                  • ALL:返回结果集中的所有行,是系统默认值
                  • DISTINCT:指明结果集中如果有相同的行,则只显示其中的一行
                  • TOP <n>[PERCENT]:指明仅返回结果集中的前n行,如果有[PERCENT],则返回结果集中的百分之n行记录
                • 参数select_list

                第100页:例5-13

                • 假定有一个数据表student,存储学生的基本信息,包含的字段有sno, sname,ssex, sdept, sbirthday
                • 查询1:查询所有学生的详细信息,查询语句为:SELECT sno,sname,ssex,sdept, sbirthdayFROM student或SELECT * FROM student
                • 查询2:查询有过选课记录的学生的学号,消除取值重复的行,查询语句为:SELECT DISTINCT snoFROM sc
                • 查询3:查询所有学生的学号,姓名和所在院系,并修改结果集中列的名称,语句如下:SELECT '学号'=sno, '姓名'=sname,sdept AS '院系'FROM student

                第101页:SELECT语句(2)

                • FROM子句,指明SELECT语句所使用的表、视图等数据源,多个数据源之间用逗号分开。

                第102页:SELECT语句(3)

                • WHERE子句
                  • WHERE <search_condition>
                • 查询条件

                第103页:SQL中的通配符

                • 谓词LIKE进行字符串的匹配
                • [NOT]LIKE ‘<匹配串>’,<匹配串>可以是一个完整的字符串,也可以含有通配符。

                第104页:例5-14

                • 使用条件查询
                • 查询1:查询性别为“女”的学生的学号、姓名和系别。SELECT sno,sname,sdeptFROM studentWHERE ssex=N'女'
                • 在数据库管理系统中,如果是中文字符,需要在汉字前加N,字符串用英文单引号。
                • 查询2:查询成绩在80到100之间的学生及课程信息。SELECT *FROM scWHERE grade BETWEEN 80 AND 100
                • 查询3:查询出生日期不在1990年到1992年之间的学生的姓名、性别和所属系。SELECT sname,ssex,sdeptFROM studentWHERE sbirthday NOT BETWEEN '1990-01-01' AND '1992-01-01'
                • 查询4:查询信管系、会计系、营销系学生的姓名和性别。SELECT sname,ssexFROM studentWHERE sdept IN ( N'信管系',N'会计系',N'营销系');
                • 查询5:查询姓“张”的学生姓名。SELECT snameFROM studentWHERE sname LIKE N'张%'
                • 查询6:查询信管系的女生的学号、姓名。SELECT sno,snameFROM studentWHERE (sdept=N'信管系' )AND(ssex=N'女')

                第105页:SELECT语句(4)

                • ORDER BY子句
                  • 用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,空值被视为最低的可能值。
                • 查询所有男生的学号、姓名和出生日期,并按照出生日期降序排列;若出生日期相同,则按学号升序排列。SELECT sno,sname,sbirthdayFROM studentWHERE ssex=N'男'ORDER BY sbirthday DESC,sno

                第106页:聚合查询

                • 聚合查询是指在查询中通过聚合函数汇总来自多行的信息,聚合函数可以对一组行中的某列执行计算,并返回单个值。
                • 聚合函数经常与SELECT语句的GROUP BY子句一同使用

                第107页:聚合函数

                • SQL Server中,常用的聚合函数

                第108页:SELECT子句中的聚合

                • 在SELECT子句中可以使用聚合函数进行运算,运算结果作为新列出现在结果集中。
                • 查询1:统计所有的学生人数。SELECT COUNT(*) AS学生人数FROM student该查询的结果集包含一条记录,记录有一个字段,字段名为“学生人数”。
                • 查询2:统计有选课记录的学生人数。SELECT COUNT(DISTINCT sno) AS有选课记录的学生人数FROM sc在选课数据表sc中,一名同学可能选修了多门课,即对应多条记录,因此统计人数时需要指定DISTINCT sno。
                • 查询3:统计选修“c01”课程的平均成绩、最高成绩和最低成绩。SELECT AVG(grade) AS平均成绩,MAX(grade) AS最高成绩, MIN(grade) AS最低成绩FROM scWHERE cno='c01'对查询结果进行汇聚计算,分别求课程的平均成绩、最高成绩和最低成绩。结果集只包含一条记录,有三个字段:平均成绩、最高成绩和最低成绩。

                第109页:COMPUTE子句中的聚合

                • 在SELECT子句中出现聚合函数时,结果集中的数据全是聚合值,没有明细值。
                • COMPUTE子句不仅可以使用聚合函数计算聚合值,而且可以依然保持原有的明细值,新的聚合值作为附加的汇总列出现在结果集的最后。
                • 例如:查询信管系学生的学号、姓名和年龄,最后汇总出该系学生的总人数和平均年龄。SELECT sno,sname,year(getdate( ))-year(sbirthday) as年龄FROM studentWHERE sdept=N'信管系'COMPUTE COUNT(sno),AVG(year(getdate( ))-year(sbirthday))该查询结果集包含sno,sname和“年龄”三列。同时,COMPUTE子句产生额外的汇总行,其列标题是系统自定的,COUNT函数的结果是cnt列,AVG函数的结果是avg列。

                第110页:分组查询

                • 分组,就是按某个字段进行分组,字段值相同的算一组。
                • GROUP BY子句对查询结果按照一定条件进行分组,分组子句通常与SQLServer提供的聚合函数一起使用。
                • 分组后聚合函数将作用于每一个组
                • SELECT语句后的输出列只能是聚合函数和分组列
                • 例如:统计所有被选过的课程的课程号及被选过的次数。SELECT cno,count(*) AS被选次数FROM scGROUP BYcno
                • 如果要统计被选过2次和2次以上的课程的课程号及被选过的次数,则需要使用HAVING子句SELECT cno,count(*) AS被选次数FROM scGROUP BY cnoHAVING COUNT(*)>=2

                第111页:连接查询

                • 若一个查询同时涉及两个或两个以上的表,并且每一个表中的数据往往作为一个单独的列出现在结果集中,则称之为连接查询。
                • 指定多表连接查询是通过FROM子句实现

                第112页:连接方式

                • 交叉连接
                  • 交叉连接不使用任何连接条件来限制结果集合,而是对两个数据源中的行以所有可能的方式进行组合,也就是做广义笛卡儿积。
                  • 交叉连接在查询结果集中,包含了所连接的两个表中所有行的全部组合,其结果的行数等于两个表行数之积,列数等于两个表列数之和。
                  • 交叉连接一般没有有意义的语义,实际中应用不多,但是交叉连接是理解内连接和外连接的基础。交叉连接不能有条件,且不能带WHERE子句。
                • 内连接
                • 外连接

                第113页:内连接

                • 内连接是用比较运算符比较表中列值,返回符合连接条件的数据行,从而将两个表连接成一个新表。
                • 等值连接
                  • 例如:查询工商系有选课记录的学生的全部信息以及他们的选课信息。SELECT student.*,sc.*FROM student,scWHERE student.sdept=N'工商系' AND student.sno=sc.sno
                • 自然连接。若在等值连接中,把目标列中重复的字段去掉则称为自然连接,它是一种特殊的等值连接。
                • 非等值连接。表之间的连接,如果使用除了“=”之外的连接符连接起来的查询称为非等值连接。
                • 自连接。连接可以是一个表与其自身进行的,这样的连接称为自连接。
                  • 要求根据课程信息查询每门课的间接先行课(即先行课的先行课)SELECT A.cno,A.cname,B.pre_cnoFROM course as A,course as BWHERE A.pre_cno=B.cno

                第114页:外连接

                • 实际需求
                • 外连接只能用于两个表中。两个表有主次之分,以主表的每行数据去匹配从表的数据列,符合连接条件的数据将直接返回到结果集中,对那些不符合连接条件的列将被赋予NULL值后再返回到结果集中。
                • 根据两个表的主次关系,外连接分为左外连接、右外连接、完全外连接。

                第115页:查询结果输出

                • 可以使用INTO子句将查询后的数据存储到一个新的表中
                • 可以将结果集存储到当前数据库的基本表中,也可以存储到一个临时数据表中SELECT *INTO student-gsFROM studentWHERE sdept=N'工商系‘
                • 如果查询结果存储到临时表中,则需要在表名前加“#”字符。临时表不存储在当前数据库内,而是存储在系统数据库tempdb内

                第116页:插入数据记录

                • 插入一条记录INSERTINTO [database_name. ] < table_name > [ ( <column_name>[ ,…n ] ) ]VALUES (<constant> [ ,…n ])
                  • 举例INSERT INTO student(sno, sname)VALUES ('201125011001', N'许宏')
                • 插入子查询结果INSERTINTO [database_name. ] < table_name > [ (< column_name>[ ,…n ] ) ]SELECT <select_list>

                第117页:修改数据记录

                • 使用UPDATE语句更新表中已经存在的数据。UPDATE语句可以一次更新一行数据、多行数据,甚至可以一次更新表中的全部数据行。
                • UPDATE语句的语法格式UPDATE [ database_name. ] < table_name >SET {<column_name> = <expression>}[ ,…n ][WHERE <search_condition >]

                第118页:例5-15

                • 修改student表中的数据,将201125011001号同学的名字改为“许小雅”,性别改为“女”,成绩加10分。UPDATE studentSET sname=N'许小雅', sname=N'女',grade=grade+10WHERE sno='201125011001'

                第119页:删除数据记录

                • 使用DELETE语句可以从表中删除一行或多行记录。
                • DELETE命令的语法DELETE FROM [database_name.] <table_name>[WHERE <search_condition>]
                • 举例
                  • 删除student数据表中2008级所有学生的记录,语句为:DELETE FROM studentWHERE sno LIKE '2008[0-9][0-9]%'

                第120页:5.5 Web应用

                • 5.1 计算机程序概述
                • 5.2 C/C++程序设计语言
                • 5.3 类与对象
                • 5.4 数据存储与管理
                • 5.5 Web应用

                知识要点:客户/服务器(C/S)计算模式,终端网络,浏览器/服务器(B/S)计算模式,Web应用,Web应用与传统程序的区别。

                第121页:5.5 Web应用

                5.5 Web应用:U5.4数据存储与管理

                • U5.4数据存储与管理
                • 计算机应用模式的演变
                  • 集中式计算模式
                  • 客户/服务器(C/S)计算模式
                  • 浏览器/服务器(B/S)计算模式
                • Web应用及其优势

                第122页:计算机应用模式的演变(1)

                • 集中式计算模式,20世纪70年代以前
                • 国军方建立的半自动地面防空系统SAGE(Semi-Automatic Ground Environment)
                  • 计算机与通信网络结合的开始
                  • 后来被看作是终端网络

                第123页:计算机应用模式的演变(2)

                • 客户/服务器(C/S)计算模式,20世纪80年代
                  • C/S模式是一种典型的两层计算模式,它将应用一分为二
                • 客户机,一般使用微型计算机,几乎所有的应用逻辑都在客户端进行和表达,客户机完成与用户的交互任务,具有强壮的数据操纵和事务处理能力。
                • 服务器,可以使用各种类型的主机,服务器负责数据管理,提供数据库的查询和管理、大规模的计算等服务。
                • 优点
                  • 实现了文件和数据库层次的异种平台的集成,能够协调现有的各种IT基础结构;
                  • 实现分布式计算和管理,充分发挥客户端PC的处理能力,且可脱机操作
                • 不足
                  • 它必须在客户端安装大量的应用程序(客户端软件),维护复杂,升级麻烦;
                  • 依赖于局域网,不能更好的适应互联网等。

                第124页:计算机应用模式的演变(3)

                • 浏览器/服务器(B/S)计算模式

                本页主体为图片内容,文字版要点待对照原课件补充。

                第125页:Web应用及其优势

                • Web应用
                  • 一个Web站点是由一个主目录、子目录及其包含的网页文件、图片文件及其它各类文件,以及相关的数据库构成的。网页文件通常包含客户端脚本程序和服务端脚本程序,并通过超链接连接在一起,形成特定的应用逻辑,可见,Web站点也是一种程序。
                • Web应用和传统的应用程序
                  • 程序构成不同,传统的应用程序通常是由一个exe文件和相关的dll库构成,而Web应用则是由一个主目录及其包含的子目录和大量网页文件构成。
                  • 运行环境不同,传统应用程序在操作系统上运行。而Web应用中网页中的程序包含了服务端的脚本程序和客户端脚本程序,服务端的脚本程序在Web服务器上运行,客户端脚本程序在Web浏览器中运行。
                  • 应用界面不同,传统的程序通常由特定的用户界面,有窗口、菜单、工具按钮、对话框等概念;而Web应用由一系列的网页构成,页面设计没有统一标准,页面之间通过超链接等方式打开。

                第126页:本章小结

                5.1 计算机程序概述计算机程序
                ,编译型程序,解释型程序,计算机程序设计语言,软件开发环境,程序编译,程序连接,函数库,动态连接库(DLL)。
                5.2 C/C++程序设计语言c语言
                ,c程序结构,c语言字符集,转义字符,关键字(保留字),标识符,数据类型,定点数,浮点数,运算符,表达式,赋值语句,输入/输出语句,分支语句,重复语句,构造类型,类型定义,结构化编程,函数,局部变量,全局变量。
                5.3 类与对象面向对象的思维方式,类
                ,对象,成员变量(属性),成员函数(方法),构造函数,析构函数,基类,派生类,面向对象编程。
                5.4 数据存储与管理文件,文本文件
                ,二进制文件,数据库,数据表,数据库管理系统(DBMS),结构化查询语言(SQL),T-SQL,数据查询,聚合查询,分组查询,连接查询(多表查询),数据更新,插入数据记录,修改数据记录,删除数据记录。
                5.5 Web应用客户/服务器
                (C/S)计算模式,终端网络,浏览器/服务器(B/S)计算模式,Web应用,Web应用与传统程序的区别。重点—蓝色难点—红色

                第127页:问题思考

                • 你如何理解程序,结合计算机的硬件组成、操作系统,简述程序的编写和运行过程.
                • 简述你对结构化编成和面向对象编程的理解。OOP有何优势?
                • 你如何看待网站是一个Web应用,它和传统的应用程序有何不同?

                第128页:本章结束

                本章结束:Unit 1 Web基础谢谢大家

                • Unit 1 Web基础谢谢大家
顶部目录