




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计面向对象程序设计 实验指导书实验指导书 第一部分第一部分 实验教学大纲实验教学大纲 课程名称 面向对象程序设计实验 12 16 周 16 周提交实验报告 24 学时 本课件共给出 5 个实验 在做完要求的 5 个实验外 要求 每个同学自己增加一道课堂教学中要求完成的作业题 编写程 序 并能调试通过 得到正确结果 一 课程简介及基本要求一 课程简介及基本要求 面向对象的程序设计是一门实践性很强的课程 每个学生 必须完成一定数量的上机作业 通过上机作业进一步加深对课 程基本内容的理解 同时 在程序设计方法及上机操作等基本 技能和科学作风方面受到比较系统的 严格的训练 由于学生编程和上机的熟悉程度往往差别较大 本大纲所 要求的实验为每个学生必须完成的实验 即最低要求 其它上 机内容由学生在教师指导下自选 内容可以是习题中编写的程 序 也可以是学生解决实际问题中所编写的程序 二 实验课程目的与要求二 实验课程目的与要求 实验课是对学生的一种全面综合训练 是与课堂听讲 自 学和练习相辅相成的必不可少的一个教学环节 本课程使学生 熟悉 C 的语法特性 了解 C 与 C 的区别和兼容性 理解面 向对象程序设计的基本原理 包括类 对象 抽象 封装 继 承和多态性等关键要素以及其关键语法特性 类 掌握用 C 编写面向对象程序的一般方法 了解 VC 编程环境 三 主要仪器设备三 主要仪器设备 每人一台计算机 基本配置 奔腾 III 600MHZ 以上 40G 60G 硬盘 128M 内存 装有 C builder 或 Visual C 或 其他的 C 编译软件 四 实验方式与基本要求四 实验方式与基本要求 实验分两类 基本实验和综合性实验 基本实验是按章节进 行 根据教学大纲要求 有针对性地练习 综合性实验往往跨 单元处理问题 学生上机时 按要求填写实验报告和回答思考 题 要求把每次实验的程序文本和运行结果存入到本人的用户目 录下或专用软盘上供指导老师检查 五 考核与报告五 考核与报告 本课程实验考试课程实验考试方式是考查 按一般课程考试方式进行 主 要内容包括实验操作和实验报告 实验成绩占该课程形成性考 核成绩的 10 20 实验报告的规范 实验报告的规范 实验完成后填写统一的实验报告单 给出实验内容题目 年级 姓名 学号 指导教师 完成日期 并详细填写 实验目的 实验程序 实验结果及分析 存在的问题 实验一 实验一 C 开发环境应用 开发环境应用 4 学时 学时 1 实验目的 实验目的 1 了解 C 开发工具的特点 2 熟悉 C 开发环境 2 学习用 C 编写标准的 C 程序 2 实验任务 实验任务 使用 C 来建立一个非图形化的标准 C 程序 编译 运 行下例程序 include void main void cout Hello n cout Welcome to C n 3 实验步骤 实验步骤 1 启动 Visual C 开发环境 2 创建一个项目 a 单击 File 菜单中的 New 选项 显示示新建对话框 b 选择 Win32 Console Application VC c 选择项目所在路径及输入项目的名称 d 依次按 下一步 直至完成为止 3 至此 已经建立好工程相关的文件 在生成的 main 函 数中写入必要的内容即可 4 继续下面的步骤 a 建立 C 源程序文件 选菜单命令 Project Add to Project New 弹出 New 对 话框 在 New 对话框的 Files 选项卡中选择 C Source File 并填入文件名称 单击 OK 按钮 完成新建 C 源程 序文件 b 编辑 C 源程序文件 在文件编辑窗口中输入代码 完成后 选择菜单 File Save 保存这个文件 c 建立并运行可执行程序 选择菜单命令 Build 建立可执行程序 如果你正确输入了源程序 此时便成功地生成了 可执行程序 如果程序有语法错误 则屏幕下方的状态窗口中会 显示错误信息 根据这些错误信息对源程序进行修改后 重新选择菜单命令 Build 建立可执行程序 选择菜单命令 Run 运行程序 观察屏幕显示 内容 d 关闭工作空间 选择菜单命令 File Colse WorkSpace 关闭工作空间 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 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 常用编辑命令 虽然许多编辑命令可以通过菜单和工具栏实现 但大量的编辑 命令都可以通过键盘实现 以下命令通常用键盘实现 撤消前一次操作 当你进行了一次错误的操作时 可以通过 敲击键盘上的 Ctrl Z 完成 重复前一次操作 通过敲击 Ctrl Y 实现 剪切一行 用 Ctrl L 来删除一行并将它放到剪切板中 剪切 将选中的文本删除并将它放到剪切板中 用 Ctrl X 实 现 复制 将选中的文本复制到剪切板中 用 Ctrl C 实现 粘贴 将剪切板中的内容放到编辑器中文本的当前位置处 由光标指示 用 Ctrl V 实现 要想了解关于键盘操作命令的完整列表 可以选择 Help 菜单下 的 Keyboard Map 你没有必要记住所有的命令 有些根本不常 用 3 保存你的源文件 单击工具栏中的 save 图标 或者选择 File Save 来保存你的文 件 C 源文件的扩展名为 cpp 扩展名非常重要 Developer Studio 根据文件的扩展名来区分文件类型 并且根据文件类型提供相 应的编辑帮助 如正确的语法高亮显示 4 编译 连接得到可执行程序 编辑结束后 仔细检查你输入的内容 看有无错误 确认没有 错误之后 选择主菜单的 Build Build Hello exe 来编译你的项目 也可以按功能键 F7 如果你输入的内容没有错误 那么 在屏幕下方的输出窗口将会显示 hello exe 0 error s 0 warning s 如果在编译时得到错误或警告 是你的源文件出现错误 再次 检查你的源文件 看是否有错误 改正它 5 改正源程序中的错误 编译的错误会在 Developer Studio 的下方的输出窗口显示出来 逐个查看这些错误的内容 用鼠标双击 光标可以自动移动到 发生错误的源程序的相应地点 仔细检查你的源程序 改正发 生错误的地方 注意是否否遗留了分号 引号或括号等 改正 后 再重复步骤 4 的操作 直到编译连接通过为止 调试命令调试命令 有关调试的命令分散在 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 菜单 6 运行你的第一个程序 你可以有三种方式运行你的程序 在开发环境中运行程序 选择 Build Execute hello exe 或者 Ctrl F5 在开发环境中执行 你的程序 程序运行以后将显示一个类似于 DOS 的窗口 在窗 口中输出一行 hello 紧接着在下面显示 Press any key to continue 这句话是系统提示你按任意键退出当前运行的程序 回到开发环境中 按任意键 窗口关闭 退回到 Visual C 开 发环境 我们实验中将用这种方式运行程序 在 DOS 环境下运行程序 打开 DOS 窗口 改变工作路径到项目目录 该目录是你在创建 目录时指定的 如果你不记得了 可以在 Developer Studio 中的 工作区窗口中选择项目名称 这里是 hello files 然后选择菜 单 View Properties 将可以显示出项目路径 切换到 debug 子目录下 运行 hello exe 程序将输出 hello 实验二 分支与循环 实验二 分支与循环 4 学时 学时 1 实验目的 实验目的 1 学会编写简单的 C 程序 2 练习使用简单的输入输出 3 熟悉各种流程控制语句的功能 2 实验任务 实验任务 1 输入并运行程序 用 do while 语句编程 求自然数 1 10 之和 程序正确运行之后 去掉源程序中的 include 语句 重新编译 观察会有什么问题 2 do while 语句用 for 语句代替 完成相同的功能 3 编程计算图形的面积 程序可计算圆形 长方形 正 方形的面积 运行时先提示用户选择图形的类型 然后 对圆 形要求用户输入半径值 对长方形要求用户输入长和宽的值 对正方形要求用户输入边长的值 计算出面积后将其显示出来 3 实验步骤 实验步骤 1 建立一个控制台应用程序项目 lab2 1 向其中添加一 个 C 源文件 lab2 1 cpp 输入程序 检查一下确认没有输入 错误 选择菜单命令编译源程序 再选择 Execute 运行程序 观察输出结果 2 程序正确运行之后 在源程序第一行 include 前面加注释标记 使之成为注释行 重新编译 观察编译的结果 3 另建立一个项目 lab2 2 包含一个 C 源程序 lab2 2 cpp 将 do while 语句用 for 语句代替 完成与实验任务 1 相同的功能 4 建立项目 lab2 3 计算图形面积 圆形的面积计算公 式为 S PI r r 长方形的面积计算公式为 S a b 正方形的面 积市场计算公式为 S a a 程序中定义一个整型变量 iType 表示 图形的类型 用 cout 语句输出提示信息让用户选择图形的型 用 cin 读入 iType 的值 然后 使用 switch 语句判断图形的类型 分别提示用户输入需要的参数值 计算出面积的值后用 cout 语 句显示出来 最后编译运行程序 实验三 函数与重载 实验三 函数与重载 4 学时 学时 1 实验目的 实验目的 1 掌握函数的定义和调用方法 2 练习重载函数使用 3 练习函数模板的使用 4 练习使用系统函数 2 实验任务 实验任务 1 编写一个函数把华氏温度转换为摄氏温度 转换公式为 C F 32 5 9 2 编写重载函数 Max1 可分别求取两个整数 三个整数 两个双精度数 三个双精度数的最大值 3 使用函数模板重新实现上小题中的函数 Max1 4 使用系统函数 pow x y 计算 xy的值 注意包含头文件 math h 5 用递归的方法编写函数求 Fibonacci 级数 观察递归调 用的过程 3 实验步骤 实验步骤 编写函数 float Convert float TempFer 参数的返回值都为 float 类型 实现算法 C F 32 5 9 在 main 函数中实现输入 输出 程序名为 lab3 1 cpp 1 分别编写四个同名函数 max1 实现函数重载 在 main 函数中测试函数功能 程序名 lab3 2 cpp 2 使用函数模板实现求任意类型数的最大值 针对不同 的参数个数 编写两个同名函数模板 max1 其参数个数不同 实现函数重载 在 main 函数中测试函数的功能 和序名 lab3 3 cpp 3 在 main 函数中提示输入两个整数 x y 使用 cin 语句 得到 x y 的值 调用 pow x y 函数计算 x 的 y 次幂的结果 再显 示出来 程序名 lab3 4 cpp 4 编写递归函数 int fib int n 在主程序中输入 n 的值 调用 fib 函数计算 Fibonacci 级数 公式为 fib n fib n 1 fib n 2 n 2 fib 1 fib 2 1 使用 if 语句判断函数的出口 在程序中用 cout 语句输出提示信息 程序名 lab3 5 cpp 实验四 类的定义与使用实验四 类的定义与使用 4 学时学时 1 实验目的 实验目的 1 掌握类的定义和使用 2 掌握类的定义和对象的声明 3 复习具有不同访问属性的成员的访问方式 4 观察构造函数和析构函数的执行过程 5 学习类的聚集使用方法 2 实验任务 实验任务 1 定义一个 CPU 类 包含等级 rank 频率 frequency 电压 voltage 等属性 有两个公有成员函数 run stop 其中 rank 为枚举类型 CPU Rank 定义为 enum CPU Rank P1 1 P2 P3 P4 P5 P6 P7 frequency 为单位为 MHz 的整型数 voltage 为浮点型的电压值 观察构造函数和析构函 数的调用顺序 2 定义一个简单的 Computer 类 有数据成员芯片 cpu 内存 ram 光驱 cdrom 等等 cpu 为 CPU 类的一个对象 ram 为 RAM 类的一个对象 cdrom 为 CDROM 类的一个对象 定义并实现这个类 3 设计一个用于人事管理的 People 人员 类 考虑到 通用性 这里只抽象出所有类型人员都具有的属性 number 编 号 sex 性别 birthday 出生日期 id 身份证号 等等 其中 出生日期 定义为一个 日期 类内嵌子对象 用成员函数 实现对人员信息的录入和显示 要求包括 构造函数和析构函 数 拷贝构造函数 内联成员函数 3 实验步骤 实验步骤 定义枚举类型 CPU Rank 例如 enum CPU Rank P1 1 P2 P3 P4 P5 P6 P7 再定义 CPU 类 包含等级 rank 频率 frequency 电压 voltage 等私有数据成员 定义成员函数 run stop 用来输出提示信息 在构造函数和析构函数中也可 以输出提示信息 在主程序中定义一个 CPU 类的对象 调用其 成员函数 观察类对象的构造与析构顺序 以及成员函数的调 用 程序名 lab4 1 cpp 实验五 类的继承与多态性 实验五 类的继承与多态性 4 学时学时 1 实验目的 实验目的 1 学习定义和使用类的继承关系 定义派生类 2 熟悉不同继承方式下对基类成员的访问控制 3 学习利用虚基类解决二义性问题 4 掌握运算符重载的方法 5 学习使用虚函数实现动态多态性 2 实验任务 实验任务 1 定义一个基类 Animal 有私有整型成员变量 age 构 造其派生类 dog 在其成员函数 SetAge int n 中直接给 age 赋值 看看会有什么问题 把 age 改为公有成员变量 还会有问题吗 编程试试看 2 定义一个基类 BaseClass 有整型成员变量 Number 构造其派生类 DerivedClass 观察构造函数和析构函数的执行情 况 3 定义一个车 vehicle 基类 具有 MaxSpeed Weight 等成员变量 Run Stop 等成员函数 由此派生出自行车 bicycle 类 汽车 motorcar 类 自行车类有高度 height 等属性 汽车类有座位数 SeatNum 等属性 从 bicycle 和 motorcar 派生 出摩托车 motorcycle 类 在继承过程中 注意把 vehicle 设置为 虚基类 如果不把 vehicle 设置为虚基类 会有什么问题 编程 试试看 4 从实验七中的 people 人员 类派生出 student 学生 类 添加属性 班号 char classNo 7 从 people 类派生出 teacher 教师 类 添加属性 职务 char principalship 11 部 门 char department 21 从 student 类派生出 graduate 研究生 类 添加属性 专业 char subject 21 导师 teacher adviser 从 graduate 类和 teacher 类派出 TA 助教生 类 注意虚基类的使 用 重载相应的成员函数 测试这些类 5 定义 Point 类 有坐标 x y 两个成员变量 对 Point 类 重载 运算符 实现对坐标值的改变 6 定义一个车 vehicle 基类 有 Run Stop 等成员函数 由此派生出自行车 bicycle 类 汽车 motorcar 类 从 bicycle 和 motorcar 派生出摩托车 motorcycle 类 它们都有 Run Stop 等成员函数 观察虚函的作用 7 前面实验中的 People 类重载 运算符和 运 算符 运算符判断两个 People 类对象的 id 属性是否相等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网球场基础施工方案
- 2025年供应链物流管理面试问题及答案
- 2025年人力资源管理师招聘考试要点及预测题
- Module 1 My First Day at Senior High说课稿-2025-2026学年高中英语外研版必修一-外研版2004
- 2023三年级数学下册 四 绿色生态园-解决问题第2课时说课稿 青岛版六三制
- 2025年产后恢复师高级职位求职攻略与模拟题解答
- 1.1 空间几何体教学设计-2025-2026学年高中数学必修2苏教版
- 2025年XX行业求职必-备专业招聘面试模拟题集与答案详解
- 广东省中山市2025年-2026年小学六年级数学阶段练习(下学期)试卷及答案
- 2025年中级会展项目经理考试模拟题与答案解析
- 污水处理站运行记录台账范本
- 2025年消毒供应室业务学习考试试题(附答案)
- 无人机地下结构探测技术-洞察及研究
- 校园基孔肯雅热防控措施课件
- 图像特征提取讲解
- 多彩贵州地方课程课件
- 劳技自制收纳盒课件
- 《管理学基础与实务》 课件全套 曾宪达 第1-11章 管理与管理者- 管理创新
- 2025年复工复产考核试题及答案
- 快餐公司门店设备夜间关闭管理制度
- 【公路监理大纲】公路工程监理大纲(含桥隧工程)
评论
0/150
提交评论