已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计 实验指示书 1 前前 言言 本书是电大本科课程 面向对象程序设计 的实验指示书 一般人员也可以使用它作 为学习 C 语言的上机指导 因为选择以 Microsoft 公司的 C 开发环境 Visual C 作为实 验环境 因此书的前一部分介绍了 Visual C 的一些基本知识 并且在实验进行的过程中 穿插介绍使用 Visual C 的一些技巧 书的内容分为两大部分 第一部分介绍 Visual C 实验环境 第二部分是具体的实验 安排 书中共安排了八次实验 每个实验 3 个学时 具体安排是 实验序号实验序号实验内容实验内容 1熟悉实验环境 2简单程序开发 3函数与程序结构 4复杂数据类型 5结构和类 6继承与虚函数 7重载与文件 I O 8面向对象程序设计 其中第一个实验和最后一个实验是有关 Visual C 实验环境的 其他每个实验与 C 语言的一个重要知识点对应 每个实验都列出了实验目的 实验要求以及思考问题 一些 实验还列出了测试数据 本书的实验有配套的答案软盘 电大的学生可以到指导教师那里寻求帮助 使用本书前 请先阅读以下内容 使用本书前 请先阅读以下内容 1 C 语言实验环境配置要求 硬件配置硬件配置 586 以上 PC 兼容机或品牌机 配有彩色显示器 鼠标 键盘 内存不小于 20MB 硬盘自由空间不少于 60MB 推荐配置推荐配置为内存 32MB 或 64MB 或以上 硬盘自 由空间 500MB 以上 软件配置软件配置 操作系统 Windows95 Windows98 Windows NT3 51 以上版本 开发集成环境开发集成环境 Microsoft Visual C 5 0 以上版本 2 建立自己的工作目录 你需要在计算机上先建立自己的工作目录 所有的实验都在该工作目录下进行 使用 Visual C 建立新项目时 需要指定该目录作为项目所在的目录 本书中假设你的工作目 录为 c student your name 具体的实验目录由你的指导教师指定 3 安装 Visual C Visual C 6 0 和 Visual C 5 0 最大的不同是在联机帮助系统上做了很大改变 Visual C 5 0 的帮助系统直接集成在开发环境之中 在安装 Visual C 5 0 时就可以选择 安装帮助内容 而 Visual C 6 0 的联机帮助系统采用了 MSDN Microsoft Developer Network 库 在安装 Visual C 6 0 时 只安装了 MSDN 的索引 实际的内容在光盘上 如果希望能脱离光盘使用帮助系统 需要在安装了 Visual C 6 0 以后 再运行 MSDN 的 安装程序 把完整的库装到硬盘上 2 目 录 第一部分第一部分 VISUAL C 实验环境介绍实验环境介绍 3 一 Visual C 简介 3 二 项目开发过程 4 三 集成开发环境 Developer Studio 4 四 常用功能键及其意义 7 第二部分第二部分 实验实验 8 实验一熟悉实验环境 8 实验二简单程序开发 15 实验三函数与程序结构 17 实验四复杂数据类型 20 实验五结构和类 23 实验六继承与虚函数 28 实验七重载与文件I O 32 实验八面向对象程序设计 34 3 第一部分第一部分 Visual C 实验环境介绍实验环境介绍 一 一 Visual C 简介简介 Visual C 是 Microsoft 公司的 Visual Studio 开发工具箱中的一个 C 程序开发包 VisualStudio 提供了一整套开发 Internet 和 Windows 应用程序的工具 包括 VisualC Visual Basic Visual Foxpro Visual InterDev Visual J 以及其他辅助工具 如代 码管理工具 Visual SourceSafe 和联机帮助系统 MSDN Visual C 包中除包括 C 编译器 外 还包括所有的库 例子和为创建 Windows 应用程序所需要的文档 从最早期的 1 0 版本 发展到最新的 6 0 版本 Visual C 已经有了很大的变化 在 界面 功能 库支持方面都有许多的增强 最新的 6 0 版本在编译器 MFC 类库 编辑器 以及联机帮助系统等方面都比以前的版本做了较大改进 Visual C 一般分为三个版本 学习版 专业版和企业版 不同的版本适合于不同类型 的应用开发 实验中可以使用这三个版本的任意一种 VisualVisual C C 集成开发环境 集成开发环境 IDEIDE 集成开发环境集成开发环境 IDE 是一个将程序编辑器 编译器 调试工具和其他建立应用程序的 工具集成在一起的用于开发应用程序的软件系统 Visual C 软件包中的 DeveloperDeveloper StudioStudio 就是一个集成开发环境 它集成了各种开发工具和 VC 编译器 程序员可以在不离 开该环境的情况下编辑 编译 调试和运行一个应用程序 IDE 中还提供大量在线帮助信 息协助程序员做好开发工作 Developer Studio 中除了程序编辑器 资源编辑器 编译器 调试器外 还有各种工具和向导 如 AppWizard 和 ClassWizard 以及 MFC 类库 这些都 可以帮助程序员快速而正确地开发出应用程序 向导向导 Wizard Wizard 向导是一个通过一步步的帮助引导你工作的工具 Developer Studio 中包含三个向导 用来帮助程序员开发简单的 Windows 程序 它们是 AppWizardAppWizard 用来创建一个 Windows 程序的基本框架结构 AppWizard 向导会一步步向 程序员提出问题 询问他所创建的项目的特征 然后 AppWizard 会根据这些特征自动生成 一个可以执行的程序框架 程序员然后可以在这个框架下进一步填充内容 AppWizard 支 持三类程序 基于视图 文档结构的单文档应用 基于视图 文档结构的多文档应用程序和 基于对话框的应用程序 也可以利用 AppWizard 生成最简单的控制台应用程序 类似于 DOS 下用字符输入输出的程序 ClassWizardClassWizard 用来定义 AppWizard 所创建的程序中的类 可以利用 ClassWizard 在项 目中增加类 为类增加处理消息的函数等 ClassWizard 也可以管理包含在对话框中的控 件 它可以将 MFC 对象或者类的成员变量与对话框中的控件联系起来 ActiveXActiveX ControlControl WizardWizard 用于创建一个 ActiveX 控件的基本框架结构 ActiveX 控 件是用户自定义的控件 它支持一系列定义的接口 可以作为一个可再利用的组件 MFCMFC 库库 4 库 library 是可以重复使用的源代码和目标代码的集合 MFC Microsoft Fundamental Casses 是 Visual C 开发环境所带的类库 在该类库中提供了大量的类 可以帮助开发人员快速建立应用程序 这些类可以提供程序框架 进行文件和数据库操作 建立网络连接 进行绘图和打印等各种通用的应用程序操作 使用 MFC 库开发应用程序可 以减少很多工作量 二 项目开发过程二 项目开发过程 在一个集成的开发环境中开发项目非常容易 一个用 C 开发的项目的通用开发过程 可以用左图表示 建立一个项目的第一步是利用编辑编辑器建立程序代码文件 包括头文件 代码文件 资 源文件等 然后 启动编译程序 编译程序首先调用预处理预处理程序处理程序中的预处理命令 如 include define 等 经过预处理程序处理的代码将作为编译程序的输入 编译对编译对用户 程序进行词法和语法分析 建立目标文件 文件中包括机器代码 连接指令 外部引用以 及从该源文件中产生的函数和数据名 此后 连接连接程序将所有的目标代码和用到的静态连 接库的代码连接起来 为所有的外部变量和函数找到其提供地点 最后产生一个可执行文 件 一般有一个 makefile 文件来协调各个部分产生可执行文件 可执行文件分为两种版本 Debug 和 Release Debug 版本用于程序的开发过程 该版 本产生的可执行程序带有大量的调试信息 可以供调试程序使用 而 Release 版本作为最 终的发行版本 没有调试信息 并且带有某种形式的优化 学员在上机实习过程中可以采 用 Debug 版本 这样便于调试 选择是产生 Debug 版本还是 Release 版本的方法是 在 Developer Studio 中选择菜单 Build Set Active Configuration 在弹出的对话框中 选择所要的类型 然后选择 OK 关 闭对话框 Visual C 集成开发环境中集成了编辑器 编译器 连接器以及调试程序 覆盖了的 开发应用程序的整个过程 程序员不需要脱离这个开发环境就可以开发出完整的应用程序 5 三 集成开发环境三 集成开发环境 DeveloperDeveloper StudioStudio 进入进入 Developer Studio 如果你使用的是 Visual C 6 0 则要进入 Developer Studio 需要单击任务栏中 开开 始始 后选择 程序程序 找到 Microsoft Visual Studio 6 0 文件夹后 单击其中的 Microsoft Visual C 6 0 图标 则可以启动 Developer Studio 如果你使用的是 Visual C 5 0 则要进入 Developer Studio 需要单击任务栏中 开开 始始 后选择 程序程序 找到 Microsoft Visual C 5 0 文件夹后 单击其中的 Microsoft Visual C 5 0 图标 则可以启动 Developer Studio Developer Studio 的界面的界面 Developer Studio 用户界面是一个由窗口 工具条 菜单 工具及其他部分组成的一个 集成界面 通过这个界面 用户可以在同一环境下创建 测试 调试应用程序 VC5 和 VC6 的 Developer Studio 的初始化界面有一些小的差异 VC5 的界面如下 主要部分介绍如下 主要部分介绍如下 工具条和菜单 用于提供用户操作的命令接口 菜单以文字和层次化的方式提供命令 接口 工具条由一系列按钮组成 这些按钮用一系列小的位图标志 工具条以图标方 式提供快速的命令选择 菜单和工具条在开发的不同进程有不同显示内容 当第一次 打开 Developer Studio 时 标准的工具条和菜单就会显示出来 随着开发的不同步骤 不同的工具条就会自动显示出来 菜单也会有所变化 工具条有很多种 你可以显示 任意多的工具条 只要屏幕空间允许 工具条可以任意移动 也可以放大缩小 工具 条和菜单条功能基本相同 唯一的区别是 菜单条总占据一行 并且一般不能隐藏 工作区窗口 这个窗口包含关于正在开发的这个项目的有关信息 在没有开发任何项 目时 该窗口显示系统的帮助目录 当打开一个项目以后 工作区窗口将会显示关于 当前项目的文件信息和类的信息 下图是打开一个项目 hello 以后的工作区窗口 假设 6 该项目由两个文件 cpp1 cpp cpp2 cpp 组成 文档窗口区 这个区域可以显示各种类型的文档 如源代码文件 头文件 资源文件 等 可以同时打开多个文档 输出窗口 输出窗口用来显示几种信息 可以通过选择不同的标签显示不同的信息 这些信息包括 编译连接结果信息 Build 标签 调试信息 Debug 标签 查找结果 信息 Find in Files 标签 其中查找结果信息有两个标签 可以显示两次在文件中查 找指定内容的结果 VC6 因为在联机帮助系统上比 VC5 做了很大改进 所以在工作区窗口中没有 VC5 的 InfoView 初始化界面的其他部分都与 VC5 相似 Deleveloper Studio 使用 Microsoft Developer Network MSDN 库作为它的联机帮助系统 其界面如下 总的来说 窗口和命令接口 包括工具条和菜单条 是构成界面的最主要组成部分 通常有两种窗口 文档窗口和可附着 docking 窗口 文档窗口显示在文档窗口区 用于 显示和编辑文档 其的大小和位置可以随其所处的 Developer Studio 窗口的改变而改变 可 以最大化和最小化 可附着窗口可以附着于应用程序窗口的边界 也可以浮在屏幕上的任 何位置 可附着窗口有 工作区 workspace 窗口 输出 output 窗口 调试窗口 包 括 variable watch local 等窗口 等 文档窗口的位置 大小及是否可见和它所在的项目有关 docking 窗口的位置 大小及 是否可见则与项目进行的状态以及各种编辑和调试的操作有关 各种窗口和各种工具条以及菜单构成了界面的布局 一旦用户决定了一种界面布局 7 系统就会为一直为用户保持这种布局 直到用户下一次改变该布局为止 获得帮助信息获得帮助信息 大多数时候 你可以通过按 F1 得到上下文帮助 如在编辑文件时按 F1 可以得到有关 编辑的帮助 在编译连接错误信息上按 F1 可以得到关于该错误的帮助信息 如果想系统 地获得帮助 在 VC5 中可以单击工作区窗口的 InfoView 标签 从其中选择要想了解的内 容 要想查找关于某个话题的帮助 可以选择菜单 Help Search 在查询对话框中进行查找 VC6 中 可以通过选择菜单 Help Contents 来启动 MSDN 查阅器 MSDN 查阅器是一个功 能强大的程序 可以方便地浏览 查找信息 要想知道具体如何使用 MSDN 查阅器 可以 在 MSDN 查阅器中选菜单 Help 下的命令 Visual C 的编辑器的编辑器 Developer Studio 包含一个功能强大的编辑器 可以编辑将被编译成 Windows 程序的 Visual C 源文件 这个编辑器有点象字处理器 但是没有字处理器具备的复杂的排版 文本格式等功能 它注重的是如何帮助程序员快速高效地编制程序 它具有以下特点 自动语法 用高亮度和不同颜色的字来显示不同的语法成分 如注释 关键字和 一般代码用不同的颜色显示 自动缩进 帮助你排列源代码 使其可读性更强 参数帮助 在编辑时用到预定义的 windows 函数时 可以自动为你显示函数参数 集成的关键字帮助 能够使你快速得到任何关键字 MFC 类或 Windows 函数的 帮助信息 按 F1 即可 拖放编辑 能够用鼠标选择文本并自由拖动到任意位置 自动错误定位 能自动将光标移动到有编译错误的源代码处 当你打开一个源代码文件时 就可以利用编辑器对其进行编辑 源代码文件在文档显 示区显示 每个文件有独立的显示窗口 如果你选择用其他编辑器编辑源文件 必须将它 以纯文本的方式保存 VC 的编译器不能处理其中有特别格式字符的文件 四 常用功能键及其意义四 常用功能键及其意义 为了使程序员能够方便快捷地完成程序开发 开发环境提供了大量快捷方式来简化一 些常用操作的步骤 键盘操作直接 简单 而且非常方便 因而程序员非常喜欢采用键盘 命令来控制操作 下面是一些最常用的功能键 希望学员在实验中逐步掌握 操作类型功能键对应菜单含义 文件操作Ctrl NFile New创建新的文件 项目等 Ctrl OFile Open打开项目 文件等 Ctrl SFile Save保存当前文件 编辑操作Ctrl XEdit Cut剪切 Ctrl CEdit Copy复制 Ctrl VEdit Paste粘贴 Ctrl ZEdit Undo撤消上一个操作 Ctrl YEdit Redo重复上一个操作 Ctrl AEdit Select All全选 DelEdit Del删除光标后面的一个字符 8 建立程序操作Ctrl F7Build Compiler current file编译当前源文件 Ctrl F5Build Run exe运行当前项目 F7Build Build exe建立可执行程序 F5Build Start Debugging启动调试程序 调试F5Debug Go继续运行 F11Debug Step into进入函数体内部 shift F11Debug Step out从函数体内部运行出来 F10Debug Step over执行一行语句 F9设置 清除断点 Ctrl F10Debug Run to cursor运行到光标所在位置 shift F9Debug QuickWatch快速查看变量或表达式的值 Shift F5Debug Stop debugging停止调试 第二部分第二部分 实验实验 注意事项 1 每次实验以前 需要详细阅读实验目的 实验要求和实验提示 以便能准确地理 解实验要求 达到实验的目的 有测试数据要求的 需要给出测试结果 有要求回答 问题的 需要给出问题的回答 每次实验都有几个题目 要求为每个题目创建不同的 项目 以便于检查 2 有的实验前后有联系 需要先完成前面的实验再进行后面的实验 如类和继承的 实验 请务必按照先后顺序完成实验 3 辅导老师那儿有关于实验的详细解答 如果有疑问 可以请教辅导老师 实验一实验一 熟悉实验环境熟悉实验环境 实验目的实验目的 了解和使用 VC 集成开发环境 熟悉 VC 环境的基本命令和功能键 熟悉常用的功能菜单命令 学习使用 VC 环境的帮助 学习完整的 C 程序开发过程 理解简单的 C 程序结构 了解用 Visual C 开发 Windows MFC 应用程序的过程 实验内容实验内容 本次实验你将学习有关 Visual C 开发环境的一些知识 并尝试实现一个简单的 DOS 程序和 Windows 程序 通过本次实验 你可以了解用 Visual C 开发 C 应用程序的过程 9 1 熟悉 Visual C 实验环境 实验步骤实验步骤 1 启动 Developer Studio 看看初始化界面由哪些部分组成 2 查看各菜单项 看看都有哪些子菜单和命令 3 将鼠标放置于各工具条图标上 系统会自动显示该图标代表的命令含义 了解一下都 有哪些命令 4 在任意工具条上单击鼠标右键 弹出式菜单上将显示所有可用的工具条 选择其中没 有对号 的项 看看有什么效果 再选择有对号的项 又有什么效果 5 将鼠标移动到任意工具条上 将鼠标放到图标间隙 按下鼠标左键不放 移动鼠标到 屏幕中间 有什么现象发生 再将它拖回到原来位置 有什么现象发生 6 将鼠标移动到左边的工作区窗口 按下鼠标左键不放 移动鼠标到屏幕中间 有什么 现象发生 再将它拖回到原来位置 有什么现象发生 7 将鼠标移动到下边的输出窗口 按鼠标右键 弹出一个菜单 选择其中的菜单项 Hide 结果如何 要重新显示该窗口 选择菜单 View Output 窗口是不是又显示出来了 8 学习使用帮助系统 如果你用的是 Visual C 5 0 则在工作区窗口的 InfoView 中选 择你感兴趣的内容 双击它 在文档区显示具体的帮助信息 如果你用的是 Visual C 6 0 选择菜单 Help Contents 启动 MSDN 联机帮助系统 学习使用该帮助系统 联机 帮助系统是一个相对独立的程序 它和 Developer Studio 是两个程序 但是它的启动和停止 都受 Developer Studio 影响 MSDN 联机帮助系统运行的前提条件是 Developer Studio 在运 行 9 选 File Exit 退出 Developer Studio 2 控制台应用 用 AppWizard 建立一个控制台应用 在终端上输出 Hello 术语 控制台应用程序 是一个在 DOS 窗口中运行的基于字符的程序 由于这种模 式的应用程序比 Windows 程序简单 我们先选择利用 Visual C 来建立这样一个应用 这 样使得我们可以将精力先投入到学习使用 C 编程语言 而不需要把过多的精力投入到学 习复杂的 Windows 编程中去 实验步骤实验步骤 1 创建第一个应用创建第一个应用 首先创建一个项目 project 项目将代表你的应用 存放你应用的所有信息 包括源 文件 资源文件 编译连接设置等 创建项目的步骤为 1 启动 Developer Studio 2 从主菜单中选择 File New 将显示出 New 对话框 3 选择 Projects 标签 并从列表中单击 Win32 Console Application 4 在 Location 编辑框中输入你的工作目录名称 如 c student your name 问你 的指导教师 5 在对话框的右上角的 project name 编辑框内键入项目的名字 如 Hello 系 统将自动为你的项目分配一个默认的目录 6 单击 OK 继续 7 如果是 VC 6 0 系统将显示一个询问项目类型的程序向导 选择 an empty 10 project 8 单击 Finish 或 OK 结束配置 创建应用程序 这时系统为你创建一个新的项目 并且在左边的工作区窗口中将出现你项目的名字 工作区窗口除原来的 InfoView 标签外又增加了两个标签 如果是 Visual C 6 0 则没有 InfoView 标签 ClassView 和 FileView ClassView 从类的角度显示项目中建立的各个类 双击某个类名将会在右边的文档显示区显示类的定义文件并把文件的当前位置定位到所选 的类 FileView 显示构成项目的各个文件 选择某一文件将会在右边的文档显示区显示文 件内容 InfoView 是 VC5 的帮助文件目录 在这里可以选择所要获取帮助的标题 在右边 将显示帮助内容 2 编辑你的第一个编辑你的第一个 C 源程序源程序 用下面的方法在你创建的项目中添加一个文件 1 在主菜单上选择 File New 2 在 New 对话框中选择 File 标签 单击 C Source File 3 选中 Add to Project 复选框 4 在右边的 File name 编辑框中为文件指定一个名字 如 Hello 系统将自动为你加 上后缀 cpp 新的空白文件将自动打开 显示在文档显示区 在文件中输入以下内容 不包括上下 两条横线 hello world example include int main cout hello TextOut 50 50 Hello World 5 按 Ctrl s 或者选菜单 File Save 来保存所作的修改 5 编译连接并运行编译连接并运行 重新编译连接该项目 运行程序 你可以用 Ctrl F5 直接运行程序 系统将询问你是 否重新编译该项目 回答 是 Yes 如果有编译错误 仔细检查你加的一句话 是否 有错 当编译连接通过后 系统会自动运行该程序 结果与上面有什么不同 经过上述修改后 程序可以输出一行文字 Hello World 这是你实现的第一个 Windows 程序 是不是很简单 不要担心有很多不懂的地方 后面的实验中你会慢慢理 解 现在你应该会觉得 哦 原来 Windows 程序的开发这么简单 4 编写简单的计算程序 输入圆的半径 计算圆的周长和面积并输出 测试数据测试数据 14 输入 2 输出 The perimeter of the circle 12 5664 The area of the circle 12 5664 输入 10 输出 The perimeter of the circle 62 8318 The area of the circle 314 159 实验步骤实验步骤 1 创建一个控制台项目创建一个控制台项目 选择菜单 File New 在 Projects 标签下选择 Windows32 Console Application 输入项目 名称 circle 然后按 OK 2 在项目中增加一个文件在项目中增加一个文件 选择菜单 File New 在 Files 标签下选择 C C Source File 输入文件名称 circle 然后按 OK 3 在文件中输入以下内容在文件中输入以下内容 该程序让用户输入圆的半径 Radius 输出圆的周长 Perimeter 和面积 Area include include const double PI 3 14159 定义一个常量 PI int main int radius double perimeter area cout radius perimeter 2 PI radius 周长 2 R area PI pow radius 2 面积 R2 cout The perimeter of the circle perimeter endl cout The area of the circle area endl return 0 注 power radius 2 表示求radius的平方 power x y 是系统预定义的函数 该函数计 算x的y次方 该函数的原型在文件math h中说明 4 编译 连接并运行程序编译 连接并运行程序 如果你输入的程序有误 用下面的方法定位并修改错误 直到编译连接通过 运行程 序 测试数据 编译和连接错误定位编译和连接错误定位 开发环境下方的输出窗口 Output 显示编译和连接过程中出现的错误 错误信息包 括 错误出现的文件名 行号 错误代码 如果不懂错误消息 将光标移动到该错误信息 按 F1 就可以显示该错误的帮助信息 15 在 output 窗口 双击错误或者选择该错误再按 ENTER 键 系统自动将光标移动到发生 错误的源程序行 你然后就可以改正错误 F4 键可以选择并定位下一个错误 思考问题思考问题 1 程序中为什么要将头文件 math h 包含进来 2 建立控制台应用程序的通用步骤是怎样的 实验二实验二 简单程序开发简单程序开发 实验目的实验目的 了解基本数据类型的字节宽度和范围表示 理解并掌握程序的分支 循环结构 提高程序可读性 学习过程化程序设计方法 进一步学习掌握查找与修改编译错误的方法 初步学习调试方法 实验内容实验内容 1 基本数据类型的长度 编写一个程序 输出基本数据类型 char short int long float double 和指针类型 void char short int long float double 的数据类型的长度 实现要求实现要求 搞清你所使用系统上运行的 C 编译器中每个基本数据类型的长度 实现提示实现提示 利用函数sizeof 数据类型名 来得到各个数据类型的长度 编辑技巧 Visual C 编辑器功能非常强大 它具有许多优点 你可以在不断的探索中对其了解 下面的特点你可能已有所体会 自动语法 用高亮度和不同颜色的字来显示关键字和注释内容 自动缩进 帮助你排列源代码 使其可读性更强 参数帮助 显示预定义的 windows 函数的参数 集成的关键字帮助 能够使你得到任何关键字 MFC 类或 Windows 函数的帮 助信息 按 F1 即可 拖放编辑 自动错误定位 能自动将光标移动到有编译错误的源代码处 拖放编辑拖放编辑在本次实验中非常有效 因为你需要写很多类似的代码行 借助于拖放功 能 你可以方便地实现代码的移动或复制 具体操作方式为 1 将鼠标放置在要复制的内容的开始部分 按下鼠标左键不放 拖动鼠标 直到要 复制内容的结束部分 放开鼠标 此时你选的部分成为反显 16 2 将鼠标放在选中内容的任意部位 按下鼠标左键 此时鼠标右下方出现一个虚的 长方形标志 该标志就表示你将要拖动的内容 如果你想复制所选的内容 则再按住 Ctrl 键 缺省为移动操作 此时鼠标右下方的长方型标志中间出现了一个十字形 3 按住鼠标左键不放 拖动鼠标 你会看到一个虚的光标跟随鼠标移动 将它移动 到想要放代码的新位置 松开鼠标左键 如果按了 Ctrl 键 在松开鼠标以后再松开按 键 4 你所选的代码就可以移动 或复制 到新的位置 思考问题思考问题 为什么所有的指针长度一样 2 循环与分支结构 编写一个程序 循环从标准输入读入某雇员的工作时间 以小时计 和每小时的工资 数 计算并输出他的工资 若雇员月工作小时超过40小时 则超过部分按原工资的1 5倍的 加班工资来计算 若雇员月工作小时超过50小时 则超过50的部分按原工资的3 倍的加班 工资来计算 而40到50小时的工资仍按照原工资的1 5倍的加班工资来计算 测试数据测试数据 输入 30 4 输出 120 输入 45 4 5 输出 213 75 输入 60 5 输出 425 输入 0 0 程序结束 实现要求实现要求 1 分别用三种循环 for while do while 完成程序要求 2 要求有输入提示和输出提示 如要输入雇员的工作时间和每小时的工资值时 可 以提示 Please input employee s work time and wage per hour 输出时 提示 The employee s wage 3 循环在用户输入的工作时间为 0 时结束 4 为你的程序加上注释 使得其清晰可读 5 尝试利用调试程序来修改你程序的逻辑错误 实现提示实现提示 1 可以利用永久循环 while 1 加 break 语句的方式控制程序流程 调试 debugging Visual C 内置了强大的调试功能 调试发生在你已经成功地进行了编译 连接 得 到了可执行程序 但是程序执行的结果不正确的情况下 调试是修改你的代码以便它能够 正确工作的过程 Developer Studio 提供了许多工具帮助你跟踪和定位错误 调试系统提 供特殊的菜单 窗口 对话框等来为开发者提供帮助 调试命令调试命令 17 有关调试的命令分散在 Build Debug View 和 Edit 菜单中 Build 菜单包含一个 Start Debug 子菜单 其中的命令是 Debug 菜单命令的子集 包括 启动调试过程 Go 单步跟踪 Step Into 和运行到光标处 Run To Cursor 当启动调试进程后 Build 菜单会被 Debug 菜单代替 Debug 菜单包含各种控制程序执行的命令 如单步执行 进入 函数体 从函数体中出来 运行到光标所在位置等 View 菜单包含一些命令 可以控制显 示各种与调试有关的窗口 如变量窗口 Variables window 调用栈窗口 Call Stack window 等 Edit 菜单下的 Breakpoints 命令可以打开一个对话框 在其中可以插入 删 除 启动 停止各个断点 设置断点设置断点 你可以控制程序直接运行到指定地点 然后查看运行到这个地方时程序的状态 如变 量的值 调用栈的情况等 你可以通过设置断点来达到这一目的 设置断点的方式是 将 光标移到要设置断点的地方 按 F9 这时会有一个红的圆点出现在代码行的左边 如果你想取消断点 将光标移动到设置断点的代码行 按 F9 启动调试启动调试 按 F5 或者在 Build 菜单中 选择 Start Debug 然后选择 Go 就可以启动调试程序 程序会一直运行到需要用户输入或者有断点的代码处 查看变量值查看变量值 查看变量值有多种方式 你可以选择你喜欢的方式进行 1 你可以将鼠标移动到程序 的变量名处 系统会自动为你显示变量的值 2 复杂变量 如对象 可以通过 QuickWatch 查看 方法是 将光标定位到所要查看值的变量处 按鼠标右键 选择 QuickWatch 菜单 就可以看到变量值 3 启动调试程序后 屏幕下方将会出现两个输出窗口 一个是 Watch 另一个是 Variable Watch 窗口显示变量名和变量值 你可以在 Watch 窗口中加上 你想观察值的变量名 也可以直接从源代码中选择变量名 并把它拖动到 Watch 窗口中 Variable 窗口显示程序当前运行上下文涉及的变量的值 控制程序执行控制程序执行 你可以控制程序单步执行 F10 跟踪到一个函数内部 F11 从一个函数运行出来 shift F11 运行到光标所在位置 Ctrl F10 以便方便地调试程序 这些命令用于在 某个局部范围详细地调试程序 你也可以通过设置断点 F9 然后用直接运行 GO 或者 F5 来控制程序直接运行到断点位置 如果你设置了多个断点 程序将会在遇到的第一个 断点处停下来 要从断点处继续运行 可以用上面所说的各种命令 F5 F10 F11 Shift F11 Ctrl F10 结束调试结束调试 要结束调试 可以按 shift F5 或者选择菜单 Debug Stop Debugging 当结束调试后 所有调试窗口会自动关闭 Debug 菜单也会自动还原为 Build 菜单 思考问题思考问题 1 哪种循环语句最适合本应用 如果已经知道要计算的雇员的数目 如 5 个 用 哪种循环方便 2 本实验能否用 switch 语句完成对输入值的判断 实验三实验三 函数与程序结构函数与程序结构 实验目的实验目的 18 掌握函数声明 定义和使用的方法 掌握函数递归调用的方法 掌握全局变量 局部变量 静态变量的使用方法 掌握内联函数 重载函数及默认函数参数的使用方法 掌握自定义头文件的方法 学会建立和调试多文件程序 实验内容实验内容 1 分析程序运行结果 输入下列程序 运行它 分析得到的结果 include int n 0 int func int x 10 void main int a b a 5 b func a cout nlocal a a endl local b b endl global n n endl a b func a cout nlocal a a endl local b b endl global n n endl func int func int x int a 1 static int b 10 a b x n cout nlocal a a endl local b b endl parameter x x 1 并且 n r 4 上面的测试数据能得到正确结果 实验步骤实验步骤 1 利用一个非递归函数 fn int n 计算 n 利用另一个函数 Cnr int n int r 计算 Cnr 在该函数中调用 fn 问题 你打算用什么样的变量类型来存放n 函数返回的值 注意各种数据类型 的内存字长不同 整数能存放的数据范围有限 你如何解决 2 利用一个递归函数实现 实现时利用公式 C n r C n r 1 n r 1 r 递归实现 实现提示实现提示 1 可以用 double 数据类型来存放函数的计算结果 2 递归结束条件 如果 r 0 则 C n r 1 如果 r 1 则 C n r n 思考问题思考问题 1 你对各种数据类型的字长是否有了新的认识 2 递归函数的书写要点是什么 C n rnr n r 20 3 你觉得递归和非递归函数哪种好些 3 将上面的程序改成多文件结构 实验要求实验要求 将上面用非递归方式写成的程序改成用多文件结构表示 要求将 main 函数放在一个 文件中 将另外两个函数放在另一个文件中 将函数原型说明放在一个头文件中 建立一 个项目 将这三个文件加到你的项目中 编译连接使你的程序正常运行 实验步骤实验步骤 1 新建一个项目 命名为 multifile 2 用 File New 创建一个新的 C Source File 命名为 main cpp 3 用 File New 创建一个新的 C Source File 命名为 func cpp 4 用 File New 创建一个新的 C C Header File 命名为 func h 5 用 File Open 打开你前面实验中用非递归方式求 C n r 的 C 源程序文件 将其中的主 函数部分拷贝到 main cpp 中 将其中的两个函数实现放到 func cpp 中 再将两个函数的原 型写到 func h 中 6 在 main cpp 中包含进头文件 include func h 7 编译连接该项目 运行它 你得到的结果应该和上一个实验一样 思考问题思考问题 1 多文件结构中头文件的作用是什么 2 将程序划分为多个文件有什么好处 实验四实验四 复杂数据类型复杂数据类型 实验目的实验目的 学习数组的定义 初始化 赋值和使用的方法 学习给函数传递数组的方法 学习指针和引用的定义和使用方法 学习字符串的使用方法 学习用指针和引用给函数传递参数 实验内容实验内容 1 数组排序 从键盘读入若干整数 将它们按由低到高排序输出 测试数据测试数据 程序先输出 Please input array number 用户输入 5 程序再输出 Please input all the integer 用户输入 300 700 600 450 500 程序输出 300 450 500 600 700 实现要求实现要求 21 1 用一个数组存放各个整数 2 在主函数 main 中实现数据的输入和输出操作 并用一个函数实现对数组元素的 排序操作 3 排序函数调用另一个函数 swap 实现两个数组元素的交换 可以使用指针 引用 两种方式实现函数参数的传递 swap int pa int pb swap int 实现提示实现提示 排序可以用最简单的选择排序法 选择排序法 选择排序法 1 从 n 个数中选择最小的一个 把它和第一个数组元素交换 2 从剩下的 n 1 个数中选择最小的一个 把它和第二个数组元素交换 3 依此类推 直到从最后两个元素中选出倒数第二小的元素并把它和倒数第二 个元素交换为止 如要按选择排序法对数组 30 50 21 39 20 排序 则各趟排序后的结果如下所示 带下划线的数表示参加交换的数 开始 30 50 21 39 20 第一趟排序 20 50 21 39 30 第二趟排序 20 21 50 39 30 第三趟排序 20 21 30 39 50 第四趟排序 20 21 30 39 50 实验步骤实验步骤 1 用数组实现程序要求 说明 用一个长度为 10 的数组存放待排序的数据 数组的定义为 int iArray 10 数组排序函数的原型为 void sort int num int iArray 其中 num 表示数组元素的个数 iArray 是数组 2 用动态申请空间的方式实现程序要求 说明 使用指针来实现前面数组的功能 int piArray piArray new int num 其中数组的大小 num 需要由用户预先输入 思考问题思考问题 1 上面两种实现方式对程序的改动大吗 2 尝试用不同的方式访问数组中的元素 iArray i iArray i piArray i piArray i 3 iArray 和 piArray 有何共同点 2 字符排序 修改上面的程序 将数组的操作改为对字符串操作 即从键盘输入一串字符 将它们 存放在字符数组中 形成一个字符串 然后对字符数组中的各个字符排序 22 测试数据测试数据 输入内容 kapdobc 输出内容 abcdkop 实现要求实现要求 1 用字符数组代替上一个实验的整数数组 2 不要先输入字符串的长度 在程序中自动计算出字符串的长度 实现提示实现提示 1 字符串的输入输出操作可以简化 不用一个字符一个字符的输入输出 2 字符的长度可以借助于预定义的函数 strlen 求出 该函数所在的库函数名为 string h 思考问题思考问题 对字符的比较遵循什么样的约定 为什么字符 a 比字符 b 小 3 字符串操作 要求和上面类似 但数组中的元素变为字符串 程序对已有的字符串进行排序 并输出排序后的结果 字符串数组中的元素为 January February March April May June July September 测试数据测试数据 程序直接输出排序后的结果 May July June April March January Februrary September 实现要求实现要求 1 排序的规则为 先比较两个字符串的长度 长度短的字符串排在前面 如果长度 相等 则比较字符串的值 按从小到大排序输出 2 用字符串数组存放各字符串 并在定义数组时对其进行初始化 3 利用库函数 qsort 实现排序操作 实现提示实现提示 1 使用库函数 qsort 必须包含头文件 2 qsort 的函数原型为 void qsort void base 所要排序的数组第一个元素的地址 size t nelem 要排序的元素的个数 size t width 要排序的元素的宽度 int fcmp const void const void 用于比较元素大小的函数名字 其中 比较数组元素大小的函数原型为 int fcmp const void const void 其两个参数分别指向两个要比较的数 结果用小于零 等于零和大于零分别表示第一个数 小于 等于和大于第二个数 你需要定义自己的字符串比较函数 其原型和上面的一样 函数的定义如下 23 int sort function const void a const void b if strlen char a strlen char b return strlen char a strlen char b return strcmp char a char b 思考问题思考问题 如果让你来实现 qsort 函数的功能 如何实现 实验五实验五 结构和类结构和类 实验目的实验目的 学习结构的定义和使用 学习使用结构构建链表式数据结构 理解结构与指针的关系 学习类的定义 实例化的方法 学习使用构造函数和析构函数 学习类成员访问控制的运用 学习使用静态成员 内联成员函数 学习堆对象的分配 使用与释放 体会面向对象程序设计方法 进一步熟悉 Visual C 的编译连接错误 掌握 Visual C 调试工具 实验内容实验内容 1 用结构构建链表 设计一个单向链表 从标准输入读取若干整数 建立链表 每次读入的数放入链表结每次读入的数放入链表结 尾尾 当用户输入 0 时 结束链表的建立工作 然后从前往后依次输出链表节点中的内容 链表的结构类似于下图 每个节点包含两个值 一个是真正存放的整数值 另一个为指向链表中下一个节点的 指针 链表中最后一个节点不指向任何节点 所以指针为空 NULL 表头指针和表尾指 针分别指向链表的头节点和尾节点 测试数据测试数据 程序输出 Please input integers to build the link 0 TO END 用户输入 3 4 5 6 7 8 9 0 程序输出 Link elements 3 4 5 6 7 8 9 实现要求实现要求 1 用链表存放输入的整数 链表节点空间动态申请链表节点空间动态申请 链表节点结构和链表数据类型 的参考定义为 表尾指针表头指针 1156434 24 定义链表节点类型 typedef struct node int elem struct node next No
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026新疆塔里木文旅集团有限公司招聘(2人)笔试备考题库及答案详解
- 2026泉州石狮市第五实验小学市聘合同教师招聘若干人考试参考题库及答案详解
- 2026年黄山风景区管委会公开招聘编外聘用工作人员9人考试参考题库及答案详解
- 2026云南怒江州福贡县紧密型县域医共体总院、分院招聘编外专业技术人员18人考试参考题库及答案详解
- 2026四川师范大学附属高新菁蓉小学社会招聘员额教师6人考试模拟试题及答案详解
- 2026新疆天宜养老有限责任公司招聘1人笔试模拟试题及答案详解
- 2026年南阳市县以下事业单位(方城县)联考招聘108人考试模拟试题及答案详解
- 中国银河证券2027届暑期实习项目招聘考试模拟试题及答案详解
- 2026重庆医科大学编外聘用人员招聘10人(第10轮)考试参考题库及答案详解
- 2026广东潮州市档案馆属下事业单位招聘2人考试参考题库及答案详解
- MOOC 商务智能-西南财经大学 中国大学慕课答案
- 临床检验危急值培训课件
- 临床实习的基本要求和指导
- 北京版八年级数学下册全册课件【完整版】
- 小鸟科技拼接处理器产品
- 幼儿园公开课《我不挑食》PPT
- Quantum软件培训手册
- 常微分方程一阶微分方程的初等解法公开课一等奖市赛课获奖课件
- 公务用车管理办法
- 全国三维数字化创新设计大赛全国总决赛一等奖
- GB/T 21144-2023混凝土实心砖
评论
0/150
提交评论