C++程序设计课件 设计制作:徐龙琴 2
内 容 简 介
?计算机有关知识的介绍(组成、工作
过程以及算法的几种表示形式)
?程序设计的两种方法
?C++的发展,开发过程 及 C++程序的框
架
?学会使用 Visual C++6.0
C++程序设计课件 设计制作:徐龙琴 3
§ 计算机的组成 ——硬件和软件
一,计算机硬件
1 硬件 组成, 由运算器, 控制器, 存储器, 输入设备和输
出设备等五大部分组成, 如图所示 。
C++程序设计课件 设计制作:徐龙琴 4
二,计算机软件
1 软件的 作用, 软件是计算机系统的灵魂,没有配备任何软件
的,裸机,无法使用,没有配备足够的软件,计算机的功
能
将 不能很好地发挥,应用范围也将受到很大的影响 。
2 软件的 组成,
C++程序设计课件 设计制作:徐龙琴 5
3 程序语言的 发展,
正象人与人之间的交流需要自然语言一样,人与计算交流
也需要语言,我们把这种语言称为计算机语言,计算机语言有
多种,C++;C;PB;VB;Java等等
① 计算机语言的发展过程,
机器语言 汇编语言 高级语言
◇ 机器语言,由 0或 1代码组成的且是 计算机唯一能够直接读
懂并能直接执行的语言。
◇ 汇编语言,将机器指令映射为一些可以被人读懂的助记符,
如 ADD,SUB等。
C++程序设计课件 设计制作:徐龙琴 6
◇ 高级语言,屏蔽低级语言硬件细节的语言,各类计算机能通用、接近
人们“自然语言”和,数学语言”的程序设计语言,通用性和
可移植好
翻译系统, 把高级语言编写的程序翻译成用二进制形式表示的机器语言程
序的软件
翻译方式有两种, 编译方式和解释方式
源程序, 用高级语言编写的程序
目的程序,是 翻译后得到的机器语言程序,它是计算机可执行的 程序
程序, 为使计算机完成一个预定的任务而设计的一系列语句或指令。 程序
是 指令的集合 。 计算机的工作是用程序来控制的 。
程序设计, 设计、书写及检查调试程序的过程
C++程序设计课件 设计制作:徐龙琴 7
各种计算机语言的发展演化进程:
FORTRAN FORTRAN 77 FORTRAN90
BASIC ANSI-BASIC QBASIC VISUAL-BASIC
DELPHI
PASCAL
ALGOL ALGOL68
SIMULA67
SMALLTALK
C++
JAVA
C#
BCPL B C
C++程序设计课件 设计制作:徐龙琴 8
§ 计算机的工作过程
一 利用计算机解题的步骤
1,上机前的准备:① 建立数学模型
②确定解题步骤(即 算法 )
③ 用某种计算语言将算法写成程序
2 上机调试运行该程序
3 维护,升级该程序
二 计算机的工作过程
取指令 → 分析指令 → 执行指令
(程序 = 算法 + 数据结构)
C++程序设计课件 设计制作:徐龙琴 9
§ 算法的表示形式
⒈ 用流程图表示算法
?算法, 是程序的灵魂,是 为解决一个问题而采取的方法和步骤,或者说是
解题步骤的精确描述
?算法的主要表示形式:
流程图,用一些框图表示各种操作,且 为提高算法的质量,规定算法
(程序 ) 只能由三种基本结构(顺序、选择和循环)组成。
ANSI( 美国国家标准化协会) 规定了 一些 常用的流程图符号,
起止框 (示算法的开始和结束 )
判断框 (一个入口两个出口,依
给定的条件是否满足决定执行两
条路径中的某一路径 )
C++程序设计课件 设计制作:徐龙琴 10
处理框 (示, 赋值, 等一般处理 )
输入 /输出框 (示输入输出操作 )
流程线 (示流程的方向 )
连接点 (小圆圈,将画在不同地
方的流程线连接起来 )
注释框 (对流程线中某些部分作
必要的说明,不是流程图中的必要
部分,不反映流程和操作 )
例题,求 1+2+3+… 直到其和等于或大于 100为止。用流程图表示其算法
C++程序设计课件 设计制作:徐龙琴 11
分析,和数 用 变量 t 存放,加数 用 变量 i 存放
结束
开始
0 ? t,1 ?i
t+i?t
i+1?i
t?100
输出 t的值
不成立
成立
顺序结构
顺序结构
循环结构
C++程序设计课件 设计制作:徐龙琴 12
⒉ 用 N- S流程图表示算法
a.顺序结构
块 A,B是按
顺序执行的
b,选择结构
(if‥‥‥else )
P 条件成立执
行 A操作,p条件不
成立执行 B操作
A
B
A B
p
成立 不成立
C++程序设计课件 设计制作:徐龙琴 13
c.循环结构
前测试当型循环
当 p1满足
A
前测试直到型循环
直到 p2满足
A
后测试当型循环
当 p1满足
A
后测试直到型循环
直到 p2满足
A
(for,while, do ‥‥‥while)
C++程序设计课件 设计制作:徐龙琴 14
例题, 求 1+2+3… 直到其和等于或大于 100为止,用
N- S图表示其算法
直到 t?100
输出 t
0 ? t,1 ? i
t+i ? t
i+1 ? i
分析,和数 用 变量 t 存放,加数 用 变量 i 存放
int t=0,i=0;
t=t+i;
i=i+1;
do {
}
while(t<100);
cout<<t;
void main() {
#include <iostream.h>
}
C++程序设计课件 设计制作:徐龙琴 15
3 用伪代码(算法描述语言)表示算法
伪代码,用介于自然语言和计算机语言之间的文字和符号来描述算法
特点,书写方便,格式紧凑,便于向程序过渡,适用软件专业人员使用。
例题, 将 x,y中最大的输出
分析,用 伪代码 表示其算法为:
if(x>y)
输出 x
else
输出 y
C++程序设计课件 设计制作:徐龙琴 16
对 复杂 问题如何进行抽象和分解,对程序如何进行组织,使得程序的
可维护性、可读性、稳定性、效率等更好,是 程序设计方法 研究的问题 。
目前,有 两种重要的程序设计方法, 结构化的程序设计 和 面向对象的程序
设计
◇ 结构化程序设计 ( Structured Programming,简称 SP)
主要思想是, 把一个复杂的任务不断进行功能分解,划分成一系列较小
的任务,直到这些子任务小到易于理解和实现。
结构化程序设计两个要点, ① 采用,自顶向下逐步求精” 的设计思想
② 程序 只采用 顺序、循环和选择 三种控制结构
用 C++编写的结构化程序是由许多函数组成的,其程序的结构清晰。
但也有一些 缺点:
§ 程序的设计方法
C++程序设计课件 设计制作:徐龙琴 17
①恰当的功能分解是结构化程序设计的前提。然而对用户来讲,变化最
大的就是功能的改进、添加和删除。结构化程序要 实现这种功能变化
不容易,有时甚至要重新设计整个程序的结构。
②在结构化程序设计中,数据和 对数据的操作(即 函数 ) 分离,函数依
赖于数据类型的表示。 数据 的表示发生 变化,则与之 相关的所有函数
均要修改,使得程序难于维护。
③由于数据结构和函数密切相关,使得程序 代码复用性较差
◇ 面向对象的程序设计
面向对象程序设计是在吸取结构化程序设计的一切优点的基础上
发展起来的,其 程序由对象组成, 对象间通过消息相互作用 。它的本
质 是把数据和处理数据的过程当成一个整体 ——对象。
C++程序设计课件 设计制作:徐龙琴 18
■ 对象,客观世界中 任何 一个 事物 都可以看作一个对象,例如三年级一班。
一个 对象应包括两个因素,一是 数据 (相当于班级中的学生);
二是需要 进行的操作,相当于学生进行的活动:上课、休息、开
会和文娱活动等。对象是由数据和操作代码组成:
■ 类( class),对象的类型叫做类,例如三年级一班、二班、三班是三个
不同的对象,它们具有完全相同的结构和特性故它们属于
同一类。 类代表了 某一批 对象的共性和特征, 类是 对象的
抽象,而 对象是 类的具体实例 。 类是用来定义 对象的一种
抽象数据类型,或者说它是产生对象的模板。
C++程序设计课件 设计制作:徐龙琴 19
■ 封装,有 两个含义,① 把 对象的全部属性 和 全部服务结合在一起,形成一
个不可分割的独立单位(即对象);②第二个涵义也称作“数据隐藏”,
即 尽可能隐蔽对象的内部细节 。例如:声卡是自成一体的,这种自成
一体性称为封装性,无需知道其工作原理就能使用的思想称为数据隐
藏。 在 C++中,封装是通过定义类来实现的 。
■ 继承,类与类之间可以组成继承层次,一个类的定义(子类 或派生类 )可以
定义在另一个已定义类(父类 或超类或基类 )的基础上。 子类可以继
承父类中的属性和操作,也可以定义自己的属性和操作。 继承的主要
益处是可以复用超类的程序代码。
■ 多态性,对象的多态性是指在一般类中定义的属性或操作被特殊类继承之后,
可以具有不同的数据类型或表现出不同的行为。这使得同一个属性
或操作名在一般类及其各个特殊类中具有不同的语义。
C++程序设计课件 设计制作:徐龙琴 20
§ C++语言概述
一,C++的发展 史,
BCPL B C C++CPLALGOL60
二、从 C到 C++:
C语言:是 介于低级汇编语言与高级语言之间的语言 ;C语言既可向汇编
语言一样 直接访问计算机硬件,又 具备高级语言的优点 (面向
用户、容易记忆、清晰灵活),可称之为高级的汇编语言。
常用来 编写系统软件 。然而,C语言也存在一些 缺陷,类型检
查机制较弱,代码的重用率也低。
为了克服 C的缺点并保持其优点,在 1980年贝尔实验实对 C进行了改
进和扩充,构成最早的 C++(又称带类的 C语言)语言。
C++程序设计课件 设计制作:徐龙琴 21
C++语言,保留了 C语言的优点同时也吸收其它面向对象编程语言的长处 。
可以说 C++ 是 C的一个超集,一个 更好的 C语言, C语言的改良
版本,也是建立 C++的基础。 C++既支持传统的 结构化程序设计,
又支持面向对象的程序设计。
三 C++程序开发过程步骤,
1,编 辑
2,编 译
3,连 接
4,运 行
编辑 (.cpp/.h)?编译 (.obj)?联接 (.exe)?运行
C++程序设计课件 设计制作:徐龙琴 22
? 编辑,是指把按照 C++语法规则编写的 程序 代码 通过 编辑器 (如,Visual
C++ 6.0) 输入计算机,并存盘。在存盘时,C++源文件的扩展
名为,CPP。
?编译, 将编辑好的 C++源程序 用编译器进行语法检查并转换为目标代码
文件( OBJ文件) 。即生成该源文件的目标代码。
?链接,将用户程序生成的 (多个 )目标代码文件(,obj)以及系统提供的
库文件 (,lib)中的代码 连接在一起,生成 一个 可执行文件(,exe)
(或动态,静态库,.dll,.lib)。
?执行,运行所生成的可执行文件,用户可以根据运行结果来判断程序是
否出错。如果有输入数据,尝试各种不同的输入是否都能得到正确
结果,
?调试,编码调试是一个循环过程
编辑 编译 链接 执行
C++程序设计课件 设计制作:徐龙琴 23
§ C++程序的框架结构
1.编程显示,This is my first C++ program.
/* ch1_1.cpp
created on 2004-02-10
author 小王
*/
#include <iostream.h>
void main()
{ //下面将输出 This is my first C++ program.
cout<<“This is my first C++ program.\n”;
}
是 iostream.h文件定义的标准输出流设备
是将其右边的数据送到显示设备上
C++程序设计课件 设计制作:徐龙琴 24
#include <iostream.h>
#include <math.h>
double max(double x,double y);
void main()
{
double a,b,c;
cout <<"input two numbers:\n";
cin >>a >>b;
c = max(a,b);
cout <<"the squart of maximum = "
<<sqrt(c);
}
double max(double x,double y)
{
if(x>y)
return x;
else
return y;
}
运行结果为:
2.求较大数平方根的程序,
input two numbers:
2 16
the squart of maximum=4.00000
C++程序设计课件 设计制作:徐龙琴 25
#include <iostream.h>
#include <math.h>
double max(double x,double y)
{
if(x>y)
return x;
else
return y;
}
void main()
{
double a,b,c;
cout <<"input two numbers:\n";
cin >>a >>b;
c = max(a,b);
cout <<"the squart of maximum = "
<<sqrt(c);
}
运行结果为:
3.求较大数平方根的程序,
input two numbers:
2 16
the squart of maximum=4.00000
C++程序设计课件 设计制作:徐龙琴 26
一,结构化程序设计 的 C++程序结构,
编译预处理指令
全局说明
程序的主函数 main( )
用户自定义的子函数
其结构用图表示为右图:
C++程序设计课件 设计制作:徐龙琴 27
① 编译预处理部分 ( 宏定义, 文件包含 和 条件编译,):由井字号,#”引入
的指令为预处理指令,,#include”称为 文件包含预处理指
令,通过该指令系统将其后程序段使用的名称进行了预先
的说明。
◆ #include <iostream.h>的 作用是,将系统定义的一个头文件 iostream.h
包含到该程序中,iostream.h文件 定义了 输入输出流对象
cout与 cin等
② 全局说明部分, 包括程序要用的 全局变量, 类说明, 用户定义函数 的原型
说明 等。
③ 主函数:任何一个 C++程序都有且 只有 一个 主函数 main( ),它可以带参数。
main函数的 返回值有 两种情况:无返回值(返回类型为 void)及
返回值为 整型
C++程序设计课件 设计制作:徐龙琴 28
④ 用户自定义函数,是程序员 为了实现某些特定的操作而编写的一组代码 。
常用的函数一般都带 有 一定数目的 参数 和一个 返回值 。
⑤ 注释部分,多行注释 "/*------*/"或 单行注释 "//-----"
◇ 函数的结构形式:
函 数类型 函 数名(形式参数类型:形式参数)
{ 数据定义
函 数执行
}
例:
double max(double x,double y)
{
if(x>y)
return x;
else
return y;
}
C++程序设计课件 设计制作:徐龙琴 29
二,面向对象程序设计 的 C++程序结构,
编译预处理指令
全局说明
类的说明
类成员函数的定义
用户定义函数
主函数 main( )
C++程序设计课件 设计制作:徐龙琴 30
§ Visual C++6.0开发环境介绍
◇ Visual C++6.0 ( 简称 VC), 是美国微软公司开发的 C++集成开发环境,
它集
源程序的编写、编译、连接、调试、
运
行,以及应用程序的文件管理于一体,
是 当
前 PC机上 最流行的 C++程序开发环境 。
C++的集成环境开发环境有, Visual C++,Turbo-C++,Borland C++,C++
Builder等。
VC的功能较多,应在以后逐步掌握,但是本章应掌握它的基本用法:
C++程序设计课件 设计制作:徐龙琴 31
◇ VC++6.0用户界面简介:
C++程序设计课件 设计制作:徐龙琴 32
? 菜单栏,包含了该系统的 各种功能
? 工具条,由 常用功能按钮 组成 。
? 项目工作区 (workspace):用来 查看和修改项目中的所有元素。
文件项目 和 项目配置 是由 项目工作
区组织起来的 。 项目工作区的 内容
和 设置 通过项目工作区 文件 (,dsw)
来描述 。在建立一个项目工作区文
件的同时,还生成 项目文件 (,dsp)
和 工作区选项文件 (,opt)用来保
存工作区的设置。
C++程序设计课件 设计制作:徐龙琴 33
? 项目 (项目 )——一个程序是一个项目
项目 是 一些相互关联源文件的集合,这些源文件组成一个程序
包含 源程序、头文件、目标文件 等一个项目的所有信息。项目
文件的 扩展名,dsp
dsw和 dsp由系统自动产生。
? 代码编辑窗口,通过该窗口 输入源程序
? 输出窗口,用来 显示 项目创建过程中的 错误信息及运行结果
C++程序设计课件 设计制作:徐龙琴 34
◇ 用 V C开发程序的步骤:
1, 首先 创建一个 C++项目
file/new/workspace
选择 win32 console application
输入项目名称
选择,创建或加入 工作空间
2, 创建 C++源文件
file / new /file
选择 C++ source file.
选择 Add to project 把源文件加入项目。
C++程序设计课件 设计制作:徐龙琴 35
3,编辑,编译,连接、运行程序
编译,build / compile
连接,build / build
运行,build / !execute
C++程序设计课件 设计制作:徐龙琴 36
4:若有错误需 调试程序