收藏 分享(赏)

中山大学09级C++实验10教材new.docx

上传人:dzzj200808 文档编号:2319441 上传时间:2018-09-10 格式:DOCX 页数:36 大小:372.74KB
下载 相关 举报
中山大学09级C++实验10教材new.docx_第1页
第1页 / 共36页
中山大学09级C++实验10教材new.docx_第2页
第2页 / 共36页
中山大学09级C++实验10教材new.docx_第3页
第3页 / 共36页
中山大学09级C++实验10教材new.docx_第4页
第4页 / 共36页
中山大学09级C++实验10教材new.docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、C+面 向 对 象 技 术 课 程 实 验指 导 用 书课 程 名 称 : 程 序 设 计 ( II) 实 验单 位 : 中 山 大 学 软 件 学 院编 写 : 张 锋2010 年 2 月 (第 六 版 )1一 、 目 的 与 要 求 :通 过 上 机 实 验 理 解 C+程 序 的 执 行 过 程 , 掌 握 C+语 言 的 语 法特 征 ; 熟 练 掌 握 在 Visual C+开 发 环 境 下 独 立 编 写 和 调 试 C+程序 ; 掌 握 面 向 对 象 程 序 和 泛 型 程 序 设 计 思 想 和 技 术 , 建 立 起 用 面 向 对象 思 维 和 泛 型 思 维 进 行

2、问 题 分 析 和 程 序 设 计 的 习 惯 ; 掌 握 用 C+语 言 解 决 实 际 问 题 的 方 法 , 建 立 优 秀 的 面 向 对 象 编 程 和 泛 型 编 程 风 格 ,为 进 行 大 型 程 序 设 计 和 科 研 编 程 打 下 基 础 。二、学时分配6 个实验共 36 学时实 验 名 称 学 时 分 配实 验 一 、 C+程 序 设 计 基 础 与 开 发 环 境 4实 验 二 、 类 与 对 象 6实 验 三 、 运 算 符 重 载 6实 验 四 、 继 承 机 制 、 虚 基 类 、 虚 函 数 与 运 行 时 多 态 8实 验 五 、 模 板 、 STL 与 泛

3、 型 编 程 8实 验 六 、 异 常 处 理 、 C+ I/O 流 423三 、 实 验 目 的 和 实 验 内 容实 验 一 、 C+程 序 设 计 基 础 与 开 发 环 境【 实 验 目 的 】1 通 过 实 验 体 会 C+在 面 向 过 程 程 序 设 计 方 面 与 C 的 异 同2 初 步 了 解 C+的 程 序 设 计 风 格3 掌 握 函 数 重 载 和 命 名 空 间4 进 一 步 熟 悉 Visual C+集 成 开 发 环 境【 实 验 内 容 】1 编 写 一 个 完 整 的 面 向 过 程 风 格 的 C+程 序 , 满 足 以 下 条 件 :1) 三 个 重 载

4、 函 数 , 分 别 接 收 两 个 整 数 、 两 个 浮 点 数 和 两 个 字 符 串 做参 数 (引 用 类 型 ), 实 现 两 个 数 互 相 交 换 。2) 在 主 函 数 中 输 入 交 换 前 和 输 出 交 换 后 的 两 个 数 , 实 现 两 数 值 交 换 。3) 主 函 数 应 给 出 必 要 的 输 入 提 示 。2 有 以 下 namespace 定 义 ,namespace mynspaceconst int SIZE = 100;int ASIZE;int mode(int , int);mode 函 数 的 功 能 是 输 出 数 组 中 的 众 数 ,

5、及 其 出 现 的 次 数 , 其 返 回 值是 众 数 的 个 数 。 完 成 mynspace 的 定 义 , 并 在 main 函 数 中 写 出 完 整程 序 , 演 示 函 数 的 功 能 (将 mynspace:A 作 为 实 参 传 给 mode 函 数 )。3 分 别 写 C 和 C+程 序 , 将 文 本 文 件 old.txt 中 的 所 有 内 容 拷 贝 到 新 文件 new.txt 中 。 4 输 入 下 面 的 程 序 , 用 编 译 器 的 单 步 调 试 功 能 观 察 其 输 出 , 说 明 为 什 么 ?如 果 把 注 释 语 句 中 的 注 释 符 号 “

6、/”去 掉 , 程 序 能 运 行 吗 ? 试 解 释 原 因 。#include using namespace std;namespace alipint ai=16, aj=15, ak=23;int aj=0;4void mainip()/cout,()三 个 运 算 符 。 试 完成 类 定 义 , 使 得 类 vectorContainer 的 对 象 VC 表 现 出 以 下 行 为 :VCi; /打 印 VC 中 第 i 个 向 量 的 所 有 元 素 , i 为 整 数 ,下 同VC-output();/打 印 VC 中 某 个 向 量 所 有 元 素 及 其 元 素 和 ,

7、 该 向量的 元 素 和 在 所 有 向 量 元 素 和 中 是 最 大 的VC(); /把 VC 中 的 向 量 按 照 其 元 素 和 大 小 排 序 , 然 后 顺 序 输 出 向量 及 其 元 素 和VC(i); /把 VC 中 的 向 量 按 照 其 元 素 和 由 小 到 大 排 序 , 然 后 输 出第 i 个 向 量 所 有 元 素 及 其 元 素 和7VC(i, j);/输 出 第 i 个 向 量 的 第 j 个 元 素 。思 考 以 下 问 题 :Vector 类 和 vectorContainer 类 有 良 好 的 “封 装 性 ”吗 ?如 果 vectorContai

8、ner 不 是 Vector 的 友 元 , 代 码 应 如 何 改 动 ? class Vectorfloat v4;/friend class vectorContainer;public:Vector(float ve)for (int i=0; i();void operator()();Vectorfloat;实 验 四 、 继 承 机 制 、 虚 基 类 、 虚 函 数 与 运 行 时 多 态【 实 验 目 的 】1 学 习 类 的 继 承 关 系 , 声 明 派 生 类2 熟 悉 不 同 继 承 方 式 下 派 生 类 对 基 类 成 员 的 访 问 限 制3 学 习 多 继 承

9、 的 原 理 , 虚 基 类 的 用 途 及 其 使 用 方 法4 虚 函 数 的 功 能 , 虚 函 数 支 持 面 向 对 象 多 态 机 制 的 工 作 原 理5 学 习 纯 虚 函 数 与 抽 象 基 类 的 定 义 以 及 其 作 用 , 理 解 抽 象 基 类 和 具 体 类的 区 别 。6 基 类 与 派 生 类 构 造 函 数 和 释 构 函 数 的 调 用 顺 序 。7 理 解 基 本 的 设 计 模 式【 实 验 内 容 】1 编 写 一 个 基 类 , 声 明 有 public、 protected、 private 成 员 , 然 后 使 用public 继 承 , p

10、rotected 继 承 , private 继 承 分 别 生 成 派 生 类 , 观 察 派生 类 对 基 类 不 同 类 型 成 员 的 访 问 , 验 证 以 下 继 承 规 则 :1) A public member is accessible from anywhere within a program. 2) A private member can be accessed only by the member functions and friends of its class. 3) A protected member behaves as a public member

11、to a derived class, and behaves as a private member to the rest of the program. 2 有 类 定 义class basepublic:virtual void iam() coutclass Mammalpublic:Mammal():itsAge(2),itsWeight(5)cout #include using namespace std;class list public:struct listelem; /forward declarationsclass iterator;friend iterator;

12、list():h(0), t(0) /construct the empty listlist(size_t n_elements, char c);list(const listlist(iterator b, iterator e);list() release(); iterator begin()const return h; iterator end()const return t;void push_front(char c);void pop_front();charchar11bool empty()const return h = 0;void release();frien

13、d ostream;charoperator listelem*()return ptr; /conversionprivate:listelem* ptr;/current listelem or 0;private:listelem* h, *t; /head and tail;list:list(size_t n_elements, char c)assert(n_elements 0);h = t = 0;for(size_t i = 0; i prev = temp;temp - next = h;h = temp;else /was an empty listh = t = tem

14、p;void list:pop_front()listelem* temp = h;if (h != 0) /was a nonempty listh = h - next;delete temp;else /was an empty listcout next;return *this;list:iterator list:iterator:operator+(int)assert(ptr != 0);iterator temp = *this;ptr = ptr - next;return temp;int main()list l1;l1.push_front(A);l1.push_fr

15、ont(F);l1.push_front(C);l1.push_front(z);l1.push_front(l);cout container. Compute and print the median value. What was expected? Compute the frequencies of each value; in other words, how many 0s were generated, how many 1s were generated, and so forth. Print the value with greatest frequency. Use a

16、 vector to store the frequencies. Be noticed that you should use algorithm, function object and function adapter.14实 验 六 、 异 常 处 理 、 C+ I/O 流【 实 验 目 的 】1 理 解 C+语 言 的 异 常 抛 出 处 理 机 制2 学 习 异 常 处 理 的 声 明 和 执 行 过 程3 学 习 C+中 的 格 式 化 I/O4 掌 握 C+文 件 I/O 流【 实 验 内 容 】1 编 写 计 算 整 数 阶 乘 的 程 序 , 用 异 常 抛 出 处 理 机

17、 制 进 行 输 入 、 溢 出 时 异 常 的处 理 。 在 主 程 序 中 设 置 不 同 条 件 , 观 察 程 序 的 处 理 流 程 。2 Suppose you are given line-oriented data in a file formatted as follows:Australia5E56,7667230284,Langler,Tyson,31.2147,0.000421173612B97,7586701,Oneill,Zeke,553.429,0.00746730531560654D75,7907252710,Nickerson,Kelly,761.612,0.

18、0102762769F2,6882945012,Hartenbach,Neil,47.9637,0.0006471644Austria480F,7187262472,Oneill,Dee,264.012,0.003562260400131B65,4754732628,Haney,Kim,7.33843,0.000099015948475DA1,1954960784,Pascente,Lester,56.5452,0.00076295293F18,1839715659,Elsea,Chelsy,801.901,0.010819887645BelgiumBDF,5993489554,Oneill,

19、Meredith,283.404,0.00382391275AC6,6612945602,Parisienne,Biff,557.74,0.00752547276AD,6477082,Pennington,Lizanne,31.0807,0.00041935444D0E,7861652688,Sisca,Francis,704.751,0.00950906238Bahamas37D8,6837424208,Parisienne,Samson,396.104,0.00534455E98,6384069,Willis,Pam,90.4257,0.001220095640592461462,1288

20、616408,Stover,Hazal,583.939,0.0078789705615FF3,8028775718,Stromstedt,Bunk,39.8712,0.0005379741095,3737212,Stover,Denny,3.05387,0.0000412052488837428,2019381883,Parisienne,Shane,363.272,0.00490155The heading of each section is a region, and every line under that heading is a seller in that region. Ea

21、ch comma-separated field represents the data about each seller. The first field in a line is the SELLER_ID which unfortunately was written out in hexadecimal format. The second is the PHONE_NUMBER (notice that some are missing area codes). LAST_NAME and FIRST_NAME then follow. TOTAL_SALES is the sec

22、ond to the 15last column. The last column is the decimal amount of the total sales that the seller represents for the company. You are to format the data on the terminal window so that an executive can easily interpret the trends. Sample output is given below.Australia-*LastName* *FirstName* *ID* *P

23、hone* *Sales* *Percent* Langler Tyson 24150 766-723-0284 31.24 4.21E-02Oneill Zeke 11159 XXX-758-6701 553.43 7.47E-013 有 磁 盘 文 件 student.txt, 文 件 记 录 格 式 为 :学 号 姓 名 性 别 出 生 年 月 生 源 地 高 考 成 绩修 改 实 验 五 (3)的 链 表 结 构 , 使 其 结 点 能 存 储 student.txt 的 记 录 。 并在 相 应 成 员 函 数 里 加 入 异 常 抛 出 处 理 代 码 。 用 student.tx

24、t 的 所 有 数 据初 始 化 列 表 。 列 表 能 实 现 按 照 高 考 程 序 排 序 , 排 序 后 的 所 有 学 生 纪 录 输 出到 student_sort.txt 中 。附 录 VC 程 序 调 试 (本 部 分 录 自 网 上 资 料 )在 开 发 程 序 的 过 程 中 , 经 常 需 要 查 找 程 序 中 的 错 误 , 这 就 需 要 利 用 调 试 工具 来 帮 助 你 进 行 程 序 的 调 试 , 当 然 目 前 有 许 多 调 试 工 具 , 而 集 成 在 VC中 的 调 试 工 具 以 其 强 大 的 功 能 , 一 定 使 你 爱 不 释 手 。

25、下 面 我 们 先 来 介 绍 VC 中 的调 试 工 具 的 使 用 。1 VC 调 试 工 具11 调试环境的建立在 VC 中 每 当 建 立 一 个 工 程 (Project)时 ,VC 都 会 自 动 建 立 两 个 版 本 :Release 版 本 ,和 Debug 版 本 ,正 如 其 字 面 意 思 所 说 的 , Release 版 本 是 当程 序 完 成 后 ,准 备 发 行 时 用 来 编 译 的 版 本 ,而 Debug 版 本 是 用 在 开 发 过 程 中进 行 调 试 时 所 用 的 版 本 。DEBUG 版 本 当 中 , 包 含 着 MICROSOFT 格 式

26、 的 调 试 信 息 , 不 进 行 任 何 代码 优 化 , 而 在 RELEASE 版 本 对 可 执 行 程 序 的 二 进 制 代 码 进 行 了 优 化 , 但 是 其中 不 包 含 任 何 的 调 试 信 息 。在 新 建 立 的 工 程 中 , 你 所 看 到 是 DEBUG 版 本 , 若 要 选 择 RELEASE 版本 , 可 以 选 择 菜 单 PROJECT 中 的 SETTING 命 令 , 这 时 屏 幕 上 面 弹 出PROJECT SETTEING 对 话 框 , 在 SETTING FOR 下 拉 列 表 中 选 择RELEASE, 按 OK 退 出 ,如 图

27、 4.1。16图 4.1在 调 试 程 序 的 时 候 必 须 使 用 DEBUG 版 本 , 我 们 可 以 在 Project Setting 对 话 框 的 C/C+页 中 设 置 调 试 选 项 。17图 4.2各 个 选 项 的 含 意 如 下 : Program Database 表 示 产 生 一 个 存 储 程 序 信 息 的 数 据 文 件 (.PDB),它 包 含 了 类 型 信 息 和 符 号 化 的 调 试 信 息 ; Line Numbers Only 表 示 程 序 经 过 编 译 和 链 接 产 生 的 .OBJ 或 .EXE文 件 仅 仅 包 含 全 局 和 外

28、 部 符 号 以 及 行 号 信 息 ; C7 Compatible 表 示 产 生 一 个 .OBJ 或 .EXE 文 件 行 号 信 息 以 及 符 号化 的 调 试 信 息 ; None 表 示 不 产 生 任 何 调 试 信 息 。12 调试的一般过程调 试 , 说 到 底 就 是 在 程 序 的 运 行 过 程 的 某 一 阶 段 观 测 程 序 的 状 态 ,而在 一 般 情 况 下 程 序 是 连 续 运 行 的 , 所 以 我 们 必 须 使 程 序 在 某 一 地 点 停 下 来 。 所以 我 们 所 做 的 第 一 项 工 作 就 是 设 立 断 点 。 其 次 ,再 运

29、行 程 序 ,当 程 序 在 设立 断 点 处 停 下 来 时 ,再 利 用 各 种 工 具 观 察 程 序 的 状 态 。 程 序 在 断 点 停 下 来 后 ,有 时 我 们 需 要 按 我 们 的 要 求 控 制 程 序 的 运 行 , 以 进 一 步 观 测 程 序 的 流 向 , 所 以下 面 我 们 依 次 来 介 绍 断 点 的 设 置 , 如 何 控 制 程 序 的 运 行 以 及 各 种 观 察 工 具 的 利用 。13 如何设置断点在 VC 中 , 你 可 以 设 置 多 种 类 型 的 断 点 , 我 们 可 以 根 据 断 点 起 作 用 的 方 式 把这 些 断 点

30、分 为 三 类 :1、 与 位 置 有 关 的 断 点 ; 2、 与 逻 辑 条 件 有 关 的 断 点3、 与 WINDOWS 消 息 有 关 的 断 点 下 面 我 们 分 别 介 绍 这 三 类 断 点 。首 先 我 们 介 绍 与 位 置 有 关 的 断 点 。181、 最 简 单 的 是 设 置 一 般 位 置 断 点 , 你 只 要 把 光 标 移 到 你 要 设 断 点 的 位 置 ,当 然 这 一 行 必 须 包 含 一 条 有 效 语 句 的 ; 然 后 按 工 具 条 上 的add/remove breakpoint 按 钮 或 按 快 捷 键 F9; 这 时 你 将 会

31、在 屏幕 上 看 到 在 这 一 行 的 左 边 出 现 一 个 红 色 的 圆 点 表 示 这 二 设 立 了一 个 断 点 。图 4.32 、 有 的 时 候 你 可 能 并 不 需 要 程 序 每 次 运 行 到 这 儿 都 停 下 来 , 而 是 在 满 足一 定 条 件 的 情 况 下 才 停 下 来 , 这 时 你 就 需 要 设 置 一 种 与 位 置 有 关 的 逻 辑 断 点 。要 设 置 这 种 断 点 我 们 只 需 要 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时Breakpoint 对 话 框 将 会 出 现 在 屏 幕 上 。 选 中

32、Breakpoint 对 话 框 中 的LOCATION 标 签 , 使 LOCATION 页 面 弹 出 , 如 图 4.419图 4.4单 击 condition 按 钮 , 弹 出 Breakpoint 对 话 框 , 在 Expression 编辑 框 中 写 出 你 的 逻 辑 表 达 式 , 如 X=3 或 a+b25,最 后 按 OK 返 回 。图 4.5这 种 断 点 主 要 是 由 其 位 置 发 生 作 用 的 , 但 也 结 合 了 逻 辑 条 件 , 使 之 更 灵 活 。3、 有 时 我 们 需 要 更 深 入 地 调 试 程 序 , 我 们 需 要 进 入 程 序

33、的 汇 编 代 码 , 因 此我 们 需 要 在 在 汇 编 代 码 上 设 立 断 点 : 要 设 立 这 种 断 点 我 们 只 需 从 View菜 单 中 选 Debug window 命 令 ,20图 4.6再 选 Disassembly 子 命 令 , 这 时 汇 编 窗 口 将 会 出 现 在 屏 幕 上 。图 4.7在 图 4.7 中 的 汇 编 窗 口 中 你 将 看 到 对 应 于 源 程 序 的 汇 编 代 码 , 其 中 源 程 序是 用 黑 体 字 显 示 , 下 面 是 且 对 应 的 汇 编 代 码 。 要 设 立 断 点 , 我 们 只 需 将 光 标 移到 你

34、想 设 断 点 处 然 后 点 击 工 具 条 上 的 Insert/Remove Breakpoints 按 钮 ,此 后 你 将 会 看 到 一 个 红 圆 点 出 现 在 该 汇 编 代 码 的 右 边 。21图 4.8上 面 所 讲 的 断 点 主 要 是 由 于 其 位 置 发 挥 作 用 的 , 即 当 程 序 运 行 到 设 立 断 点 的地 方 时 程 序 将 会 停 下 来 。 但 有 时 我 们 设 立 只 与 逻 辑 条 件 有 关 的 断 点 , 而 与 位 置无 关 。 所 以 下 面 介 绍 一 下 与 逻 辑 条 件 有 关 的 断 点 。( 1) 逻 辑 条 件

35、 触 发 断 点 的 设 置 : 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时 屏 幕 上 将 会 出 现Breakpoint 对 话 框 。图 4.9 选 中 Breakpoint 对 话 框 中 的 DATA 标 签 , 对 应 的 页 面 将 会 弹 出2324图 4.10 在 图 4.10 的 DATA 页 面 中 的 Expression 编 辑 框 中 写 出 你 的 逻 辑表 达 式 , 如 (X=3);图 4.11 最 后 按 OK 返 回 。其 他 几 种 断 点 的 设 置 的 方 法 都 与 之 类 似 。 我 们 一 一 加 以 说 明 。

36、( 2) 监 视 表 达 式 发 生 变 化 断 点 : 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时 屏 幕 上 将 会 出 现Breakpoint 对 话 框 。 选 中 Breakpoint 对 话 框 中 的 DATA 标 签 , 对 应 的 页 面 将 会 弹 出 在 Expression 编 辑 框 中 写 出 你 需 要 监 视 的 表 达 式 最 后 按 OK 键 返 回 。( 3) 监 视 数 组 发 生 变 化 的 断 点 : 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时 屏 幕 上 将 会 出现 Breakpoi

37、nt 对 话 框 。 选 中 Breakpoint 对 话 框 中 的 DATA 标 签 , 对 应 的 页 面 将 会 弹 出 在 Expression 编 辑 框 中 写 出 你 需 要 监 视 数 组 名 ; 在 Number of Elements 编 辑 框 输 入 你 需 要 监 视 数 组 元 素 的 个数 ; 按 OK 键 返 回 。( 4) 监 视 由 指 针 指 向 的 数 组 发 生 变 化 的 断 点 : 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时 在 屏 幕 上 将 会 出 现Breakpoint 对 话 框 。 选 中 Breakpo

38、int 对 话 框 中 的 DATA 标 签 ; 在 Expression 编 辑 框 中 输 入 形 如 *pointname,其 中*pointname 为 指 针 变 量 名 ; 在 Number of Elements 编 辑 框 输 入 你 需 要 监 视 数 组 元 素 的 个数 ; 按 OK 键 返 回 。( 5) 监 视 外 部 变 量 发 生 变 化 的 断 点 : 从 EDIT 菜 单 中 选 中 breakpoint 命 令 这 时 屏 幕 上 将 会 出 现Breakpoint 对 话 框 ;25 选 中 Breakpoint 对 话 框 中 的 DATA 标 签 ;

39、在 Expression 编 辑 框 中 输 入 变 量 名 ; 点 击 在 Expression 编 辑 框 的 右 边 的 下 拉 键 头 ; 选 取 Advanced 选 项 , 这 时 Advanced Breakpoint 对 话 框 出 现 ; 在 context 框 中 输 入 对 应 的 函 数 名 和 (如 果 需 要 的 话 )文 件 名 ; 按 OK 键 关 闭 Advanced Breakpoint 对 话 框 。 按 OK 键 关 闭 Breakpoints 对 话 框 。( 6) 在 讲 了 位 置 断 点 和 逻 辑 断 点 之 后 我 们 再 讲 一 下 与 W

40、INDOWS 消息 有 关 的 断 点 。注 意 : 此 类 断 点 只 能 工 作 在 x86 或 Pentium 系 统 上 。 从 EDIT 菜 单 中 选 中 breakpoint 命 令 , 这 时 屏 幕 上 将 会 出 现Breakpoint 对 话 框 ; 选 中 Breakpoint 对 话 框 中 的 MESSAGE 标 签 , 对 应 的 页 面 将 会 弹出 ; 在 Break At WndProc 编 辑 框 中 输 入 Windows 函 数 的 名 称 ; 在 Set One Breakpoint From Each Message To Watch 下 拉列 表

41、 框 中 选 择 对 应 的 消 息 ; 按 OK 返 回 。14 控制程序的运行上 面 我 们 讲 了 如 何 设 置 各 类 断 点 , 下 面 我 们 来 介 绍 如 何 控 制 程 序 的 运 行 。 当我 们 从 菜 单 Build 到 子 菜 单 Start Debuging 选 择 Go 程 序 开 始 运 行 在Debug 状 态 下 , 程 序 会 由 于 断 点 而 停 顿 下 来 后 , 可 以 看 到 有 一 个 小 箭 头 , 它 指向 即 将 执 行 的 代 码 。26图 4.12随 后 , 我 们 就 可 以 按 要 求 来 控 制 程 序 的 运 行 : 其 中

42、 有 四 条 命 令 :Step over, step Into , Step Out ,Run to Cursor。图 4.13在 图 4.13 中 :Step over 的 功 能 是 运 行 当 前 箭 头 指 向 的 代 码 (只 运 行 一 条 代 码 )。Step Into 的 功 能 是 如 果 当 前 箭 头 所 指 的 代 码 是 一 个 函 数 的 调 用 , 则 用Step Into 进 入 该 函 数 进 行 单 步 执 行 。Step Out 的 功 能 是 如 当 前 箭 头 所 指 向 的 代 码 是 在 某 一 函 数 内 , 用 它 使 程 序运 行 至 函

43、数 返 回 处 。Run to Cursor 的 功 能 是 使 程 序 运 行 至 光 标 所 指 的 代 码 处 。2715 查看工具的使用调 试 过 程 中 最 重 要 的 是 要 观 察 程 序 在 运 行 过 程 中 的 状 态 , 这 样 我 们 才 能 找出 程 序 的 错 误 之 处 。 这 里 所 说 的 状 态 包 括 各 变 量 的 值 , 寄 存 中 的 值 ,内存 中 的 值 , 堆 栈 中 的 值 , 为 此 我 们 需 要 利 用 各 种 工 具 来 帮 助 我 们 察 看 程 序 的状 态 。 弹 出 式 调 试 信 息 泡 泡 (Data Tips Pop_u

44、p Information)。当 程 序 在 断 点 停 下 来 后 , 要 观 察 一 个 变 量 或 表 达 式 的 值 的 最 容 易 的 方 法 是利 用 调 试 信 息 泡 泡 。 要 看 一 个 变 量 的 值 , 只 需 在 源 程 序 窗 口 中 , 将 鼠 标 放 到 该变 量 上 ,你 将 会 看 到 一 个 信 息 泡 泡 弹 出 , 其 中 显 示 出 该 变 量 的 值 。图 4.14要 查 看 一 个 表 达 式 的 值 , 先 选 中 该 表 达 式 , 仍 后 将 鼠 标 放 到 选 中 的 表 达 式 上 ,同 样 会 看 到 一 个 信 息 泡 泡 弹 出

45、以 显 示 该 表 达 式 的 值 如 图 4.15 所 示 。28图 4.15 变 量 窗 口 (VARIABLE WINDOW)。在 VIEW 菜 单 , Debug window 选 Variables window; 变 量 窗 口 将 出现 在 屏 幕 上 。 其 中 显 示 着 变 量 名 及 其 对 应 的 值 。 你 将 会 看 到 在 变 量 观 察 窗 口 的下 部 有 三 个 标 签 : AUTO ,LOCAL,THIS 选 中 不 同 的 标 签 , 不 同 类 型 的 变 量 将会 显 示 在 该 窗 口 中 。图 4.16 观 察 窗 口 (WATCH WINDOW

46、):29在 VIEW 菜 单 , 选 择 Debug window 命 令 , Watch window 子 命 令 。这 时 变 量 窗 口 将 出 现 在 屏 幕 上 。图 4.17在 图 4.17 的 观 察 窗 口 中 双 击 Name 栏 的 某 一 空 行 , 输 入 你 要 查 看 的 变 量名 或 表 达 式 。图 4.18回 车 后 你 将 会 看 到 对 应 的 值 。 观 察 窗 口 可 有 多 页 , 分 别 对 应 于 标 签Watch1,Watch2,Watch3 等 等 。 假 如 你 输 入 的 表 达 式 是 一 个 结 构 或 是 一 个 对 象 ,你 可

47、以 用 鼠 标 点 取 表 达 式 右 边 的 形 如 + , 以 进 一 步 观 察 其 中 的 成 员 变 量 的值 如 图 4.19。30图 4.19 快 速 查 看 变 量 对 话 框 (quick watch);在快速查看变量对话框中你可以象利用观察窗口一样来查看变量或表达式的值。但我们还可以利用它来该变运行过程中的变量,具体操作如下:( 1) 在 Debug 菜 单 , 选 择 Quick Watch 命 令 , 这 时 屏 幕 上 将 会 出 现Quick Watch 对 话 框 ;图 4.20( 2) 在 Expression 编 辑 框 中 输 入 变 量 名 , 按 回 车 ;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报