C++ 程 序 设 计 1. 课 程 性 质 (1) C++ 是 面 向 过 程 ( 第 1 学 期 ) 与 面 向 对 象 ( 第 2 学 期 ) 程 序 设 计 语 言 ; (2) C++ 程 序 设 计 是 计 算 机 专 业 的 一 门 骨 干 专 业 基 础 课 程 2. 课 程 任 务 (1) 使 学 生 了 解 C++ 中 的 数 据 类 型 变 量 表 达 式 程 序 结 构 程 序 语 句 数 组 函 数 指 针 结 构 体 链 表 等 基 本 概 念, 掌 握 其 使 用 方 法 即 面 向 过 程 的 程 序 设 计 方 法 (2) 使 学 生 了 解 面 向 对 象 程 序 设 计 中 有 关 类 对 象 继 承 重 载 多 态 性 输 入 输 出 流 类 体 系 文 件 操 作 的 基 本 概 念, 初 步 学 会 面 向 对 象 的 程 序 设 计 方 法 (3) 为 学 习 数 据 结 构 可 视 化 程 序 设 计 VC++ 程 序 设 计 Delphi 程 序 设 计 Jav 课 程 打 下 理 论 基 础 3. 能 力 培 养 目 标 (1) 具 备 使 用 VC++ 程 序 集 成 环 境 对 C++ 源 程 序 进 行 编 辑 编 译 调 试 与 运 行 的 能 力 ; (2) 具 备 使 用 C++ 程 序 设 计 语 言 编 写 简 单 应 用 程 序 的 能 力 ; (3) 具 备 继 续 学 习 数 据 结 构 可 视 化 程 序 设 计 等 课 程 的 能 力 4. 学 习 要 求 (1) 课 前 预 习 ( 提 高 自 己 的 自 学 能 力 ); (2) 课 堂 认 真 听 讲, 做 好 笔 记 ( 教 师 应 考 虑 如 何 简 练 板 书 能 让 学 生 记 笔 记 ); (3) 课 后 认 真 复 习, 独 立 完 成 作 业 ; (4) 重 视 上 机 实 验 课, 认 真 准 备 实 验 内 容, 上 机 编 辑 编 译 运 行 实 验 程 序 ; (5) 教 考 分 离 课 程, 通 过 省 二 级 考 试, 不 过 二 级 不 能 毕 业 5. 参 考 书 籍 Visual C++ 程 序 设 计 基 础 陈 华 生 主 编 程 序 设 计 基 础 逻 辑 编 程 及 C++ 实 现 陆 虹 主 编 C 程 序 设 计 谭 浩 强 编 著 清 华 大 学 出 版 社 C 语 言 程 序 设 计 徐 建 民 编 著 电 子 工 业 出 版 社 第 1 章 C++ 概 述 教 学 内 容 : 1.C++ 的 起 源 ( 用 时 10 分 钟 ) 2.C++ 特 点 ( 用 时 5 分 钟 ) 3.C++ 程 序 结 构 ( 用 时 30 分 钟 ) 教 学 要 求 : 1. 了 解 C++ 语 言 的 起 源 及 其 特 点 2. 掌 握 C++ 程 序 的 基 本 结 构, 会 编 写 极 简 单 的 C++ 程 序 教 学 方 法 1.C++ 起 源 与 特 点 基 本 用 口 述 方 式, 板 书 为 各 点 小 标 题 2. 简 单 C++ 程 序 实 际 上 讲 的 是 C++ 程 序 的 基 本 结 构, 所 以 采 用 黑 板 右 侧 举 例, 左 侧 进 行 程 序 结 构 归 的 讲 课 方 法 教 学 时 数 :1 学 时 file:///f / 网 络 课 程 /C++ 程 序 设 计 / 第 1 章 C++ 概 述.htm( 第 1/5 页 )2007-9-5 14:11:10 娜 娜
1.1 C++ 的 起 源 (1)1967 年,BCPL 语 言 Martin Richards 为 编 写 操 作 系 统 软 件 和 编 译 程 序 开 发 了 BCPL 语 言 (Basic Combined Programming Language); (2)1970 年,B 语 言 Ken Thompson 在 继 承 BCPL 语 言 的 许 多 优 点 的 基 础 上 开 发 了 实 用 的 B 语 言 ; (3)1972 年,C 语 言 ( 编 UNIX 操 作 系 统 ) 贝 尔 实 验 室 的 Dennis Ritchie 在 B 语 言 的 基 础 上, 作 了 进 一 步 的 充 实 和 完 善, 开 发 出 了 C 语 言 C 语 言 具 有 许 多 优 点, 比 如 语 言 简 洁 灵 活 ; 运 算 符 和 数 据 类 型 丰 富 ; 具 有 结 构 化 控 制 语 句 ; 程 序 执 行 效 率 高 ; 同 时 具 有 高 级 语 言 和 汇 编 语 言 的 优 点 等 与 其 他 高 级 语 言 相 比,C 语 言 具 有 可 以 直 接 访 问 物 理 地 址 的 优 点, 与 汇 编 语 言 相 比 又 具 有 良 好 的 可 读 性 和 可 移 植 性 因 此,C 语 言 得 到 了 极 为 广 泛 的 应 用 (4)1980~1983 年,C++(C Plus Plus) C 语 言 是 一 种 面 向 过 程 的 编 程 语 言, 不 能 满 足 面 向 对 象 开 发 软 件 的 需 要 为 支 持 面 向 对 象 的 程 序 设 计, 1980 年 由 贝 尔 实 验 室 的 Bjarne Stroustrup 创 建 了 C++ 程 序 设 计 语 言,C++ 的 重 要 目 标 就 是 面 向 对 象 的 程 序 设 计, 因 此 在 C++ 中 引 入 了 类 的 机 制 1983 年 正 式 命 名 为 C++(C Plus Plus) 以 后 经 过 不 断 完 善, 形 成 了 目 前 的 C++ 当 前 运 用 得 较 为 广 泛 的 C++ 有 Microsoft 公 司 的 Visual C++( 简 称 V C++) 和 Borland 公 司 的 Borland C++ ( 简 称 BC++) 本 书 以 Microsoft Visual C++ 6.0 集 成 环 境 为 例 介 绍 C++ 语 言 1.2 C++ 的 特 点 C++ 语 言 的 主 要 特 点 表 现 在 两 个 方 面, 一 是 全 面 兼 容 C 语 言, 二 是 支 持 面 向 对 象 的 程 序 设 计 方 法 (1) 全 面 兼 容 C 语 言 C++ 是 一 个 更 好 的 C, 它 保 持 了 C 语 言 的 优 点, 大 多 数 的 C 程 序 代 码 略 作 修 改 或 不 作 修 改 就 可 在 C++ 的 集 成 环 境 下 调 试 和 运 行 这 对 于 继 承 和 开 发 当 前 已 在 广 泛 使 用 的 软 件 是 非 常 重 要 的, 可 以 节 省 大 量 的 人 力 和 物 力 (2) 支 持 面 向 对 象 C++ 是 一 种 面 向 对 象 的 程 序 设 计 语 言 它 使 得 程 序 的 各 个 模 块 的 独 立 性 更 强, 程 序 的 可 读 性 和 可 移 植 性 更 强, 程 序 代 码 的 结 构 更 加 合 理, 程 序 的 扩 充 性 更 强 这 对 于 设 计 编 制 和 调 试 一 些 大 型 的 软 件 尤 为 重 要 1.3 简 单 C++ 程 序 C++ 集 成 环 境 支 持 C++ 程 序 与 C 程 序 的 编 译 和 调 试,C++ 集 成 环 境 约 定 : (1) 源 程 序 文 件 扩 展 名 为.c 时, 则 为 C 程 序 ; (2) 源 程 序 文 件 扩 展 名 为.cpp 时, 则 为 C++ 程 序 本 书 中, 所 有 例 题 程 序 的 文 件 扩 展 名 均 为.cpp 例 1.1 文 本 的 原 样 输 出 文 件 名 为 example1_1.cpp // 文 本 原 样 输 出 程 序 { cout<<"welcome to C++!\n"; Welcome to C++! file:///f / 网 络 课 程 /C++ 程 序 设 计 / 第 1 章 C++ 概 述.htm( 第 2/5 页 )2007-9-5 14:11:10 娜 娜
例 1.2 求 两 个 整 数 的 和 /* 求 两 个 整 数 的 和 程 序 */ { int x,y,sum; // 说 明 变 量 x,y,sun 为 整 型 数 cout<<"input first integer:"; // 显 示 提 示 信 息 cin>>x; // 从 键 盘 上 输 入 变 量 x 的 值 cout<<"input second integer:"; // 显 示 提 示 信 息 cin>>y; // 从 键 盘 上 输 入 变 量 y 的 值 sum=x+y; // 求 和 cout<<"sum is "<<sum<<endl; // 输 出 结 果 Input first integer:5 Input second integer:4 Sum is 9 该 程 序 中 的 语 句 :int x,y,sum; 用 来 说 明 变 量 x y sum 为 int( 整 型 ) 变 量 程 序 中 的 语 句 :sum=x+y; 是 一 个 赋 值 语 句, 表 示 将 x 和 y 的 值 相 加, 其 结 果 送 给 变 量 sum 在 /* 和 */ 之 间 的 部 分 也 表 示 注 释 endl 是 换 行 符, 相 当 于 \n 例 1.3 输 入 两 个 整 数 a 和 b, 输 出 其 中 较 大 的 一 个 数 { int max(int x,int y); int a,b,m; cout<<"input a,b:"; cin>>a>>b; m=max(a,b); cout<<"max="<<m<<endl; int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); Input a,b:3 5 max=5 该 程 序 由 两 个 函 数 组 成 : 主 函 数 main() 和 被 调 用 函 数 max() 函 数 max() 的 作 用 是 找 出 x 和 y 中 的 较 大 者, 并 通 过 return 语 句 返 回 给 主 函 数 主 函 数 用 来 输 入 两 个 变 量 a 和 b 的 值, 调 用 max 函 数 找 出 其 中 的 较 大 者, 并 输 出 结 果 通 过 以 上 例 题, 可 以 看 出 C++ 程 序 的 结 构 有 以 下 特 点 : (1)C++ 程 序 由 一 个 或 多 个 函 数 组 成 ( 即 函 数 是 C++ 程 序 的 基 本 构 成 单 位 ) 其 中 至 少 有 一 个 主 函 数 main(), 程 序 从 主 函 数 开 始 执 行, 由 主 函 数 来 调 用 其 他 函 数 被 调 用 的 其 他 函 数 可 以 是 系 统 提 供 的 库 函 数, 也 可 以 是 用 户 自 定 义 的 函 数 例 如, 例 1.3 的 C++ 程 序 就 是 由 主 函 数 main() 和 用 户 自 定 义 函 数 max() 组 成 的 file:///f / 网 络 课 程 /C++ 程 序 设 计 / 第 1 章 C++ 概 述.htm( 第 3/5 页 )2007-9-5 14:11:10 娜 娜
(2)C++ 函 数 组 成 1 函 数 说 明 部 分 : 函 数 名 函 数 类 型 函 数 参 数 ( 形 式 参 数 ) 及 其 类 型 函 数 类 型 为 函 数 返 回 值 的 类 型 2 函 数 体 {: 变 量 定 义 和 执 行 语 句 两 部 分 在 某 些 情 况 下 可 以 没 有 变 量 定 义, 甚 至 可 以 既 无 变 量 定 义 又 无 执 行 语 句 ( 即 空 函 数 ) 例 如 :void dump(void ) { (3) 语 句 和 数 据 说 明 以 分 号 结 束 分 号 是 C++ 语 句 的 必 要 组 成 部 分 例 如 :int z; 又 例 如 :return(z); (4) 程 序 书 写 规 则 1 同 一 层 语 句 同 列 书 写 同 一 层 次 的 开 花 括 号 必 须 与 对 应 的 闭 括 号 在 同 一 列 上 2 内 层 语 句 缩 进 两 个 字 符 的 位 置 3 函 数 定 义 第 一 列 书 写 (5)C++ 输 入 / 输 出 通 过 流 cin 和 cout 来 实 现 的 例 如 : cin>>a>>b; 用 来 输 入 变 量 a 和 b 的 值 又 例 如 : cout<<"max="<<m<<endl; 用 来 输 出 变 量 m 的 值 (6) 严 格 区 分 字 母 的 大 小 写 例 如 :int a,a; 表 示 定 义 两 个 不 同 的 变 量 a A (7) 注 释 1 /* 注 释 内 容 */ 2 // 注 释 内 容 它 表 示 从 此 开 始 到 本 行 结 束 为 注 释 内 容 例 如 :// 说 明 变 量 x,y,sun 为 整 型 数 (8) 编 译 预 处 理 命 令 以 # 开 头 的 行 称 为 编 译 预 处 理 命 令 例 如 : 表 示 本 程 序 包 含 有 头 文 件 iostream.h 以 上 所 述 的 有 关 函 数 输 入 / 输 出 流 等 概 念 将 在 以 后 的 章 节 中 详 细 介 绍 讲 述 方 法 : 采 用 边 讲 例 题 边 归 纳 总 结 上 述 C++ 程 序 结 构 特 点 的 讲 课 方 法 本 章 小 结 C++ 程 序 的 基 本 结 构 1.C++ 程 序 通 常 由 一 个 或 多 个 函 数 组 成, 函 数 是 构 成 C++ 程 序 的 基 本 单 位 C++ 程 序 中 至 少 要 包 含 一 个 主 函 数 main(), 一 个 C++ 程 序 总 是 从 主 函 数 开 始 执 行 的 2.C++ 的 函 数 由 函 数 的 说 明 部 分 和 函 数 体 两 部 分 组 成 (1)C++ 中 每 个 语 句 和 数 据 说 明 必 须 以 分 号 结 束, 分 号 是 C++ 语 句 的 必 要 组 成 部 分 (2)C++ 语 言 没 有 专 门 的 输 入 / 输 出 语 句, 输 入 / 输 出 操 作 是 通 过 输 入 / 输 出 流 cin 和 cout 来 实 现 的 (3) 程 序 的 书 写 必 须 规 范, 以 便 于 程 序 的 阅 读 修 改 和 相 互 交 流 (4) 在 C++ 中, 严 格 区 分 字 母 的 大 小 写 (5) 在 C++ 程 序 的 任 何 位 置 处 都 可 以 插 入 注 释 信 息 作 业 1.1 简 述 C++ 语 言 程 序 的 结 构 特 点 1.3 设 计 一 个 C++ 程 序, 输 出 以 下 信 息 : file:///f / 网 络 课 程 /C++ 程 序 设 计 / 第 1 章 C++ 概 述.htm( 第 4/5 页 )2007-9-5 14:11:10 娜 娜
*************** Hello! *************** 1.4 设 计 一 个 C++ 程 序, 输 入 三 个 学 生 的 成 绩, 求 其 总 成 绩 1.5 设 计 一 个 C++ 程 序, 输 入 a b 二 个 整 数, 输 出 其 中 的 最 小 数 file:///f / 网 络 课 程 /C++ 程 序 设 计 / 第 1 章 C++ 概 述.htm( 第 5/5 页 )2007-9-5 14:11:10 娜 娜