已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 10 页 北京电子科技学院 北京电子科技学院 BESTIBESTI 实验报告 课程 课程 面向对象程序设计班级 班级 1243 姓名 姓名 孟愫愫 学号 学号 124308 成绩 成绩 指导教师 指导教师 徐日实验日期 实验日期 2013 12 3 实验密级 实验密级 预习程度 预习程度 实验时间 实验时间 下午 3 30 6 00 仪器组次 仪器组次 B23 必修必修 选修 选修 选修实验序号 实验序号 5 实验名称 实验名称 继承与派生 实验目的与要求 实验目的与要求 1 使学生掌握 C 语言类的继承和派生的基础编程 2 培养学生具有运用 C 语言编程解决问题的能力 提高学生 的计算机编程能力 3 引导和培养学生具有认真严谨的实验态度和勇于实践的学习 精神 实验仪器 实验仪器 名称名称型号型号数量数量 微机 TOSHIBA L800 1 第 2 页 共 10 页 一 一 实验内容实验内容 1 类类 Point 类 类 Circle 和和 Cylinder 首先定义类 Point 然后定义类 Point 的公有派生类 Circle 再定义类 Circle 的公有派生类 Cylinder 类 Point 有数据成员 int 型的 x 和 y 用于表示点的坐标位置 有成员函数 p show 构造函数和析构函数 p set p show 用于显示输出点的坐标 p set 用于设置 x 和 y 的值 类 Circle 有新增私有数据成员 float 型的 r 和 double 型的 s 表示圆的半径和面 积 有成员函数 c area 用于计算圆的面积并对 s 赋值 有成员函数 c set 用于 对成员 r 赋值 有成员函数 c show 用于显示输出半径 r 和面积 s 有成员函数 getr 用于获取半径 r 的值 有构造函数和析构函数 类 Cylinder 有新增数据成员 float 型的 h 和 double 型的 bs v 分别表示 圆柱体的高 表面积 体积 有对成员 h 赋值的成员函数 cy set 有计算表 面积并对 bs 赋值的成员函数 cy area 有计算体积并对 v 赋值的成员函数 volume 有成员函数 cy show 用于显示输出高 h 表面积 bs 和体积 v 有构 造函数和析构函数 在主函数 main 中分别定义 Point Circle Cylinder 类的对象 观察并记录各 类所属的构造函数和析构函数的执行情况 然后在 main 函数中通过调用成员 函数对各类的对象的所有数据成员 包括继承所得 赋值并输出显示其值 要求 本程序中所有函数都要有明确的执行信息输出 例如 Point 类的构造函数 执行时应输出 执行类 Point 的构造函数 各类定义时 数据成员都是私有属性 成员函数都是公有属性 第 3 页 共 10 页 各构造函数都有参数 无默认形参值 并用参数对相应的数据成员初始化 编程设计思想编程设计思想 根据题目要求 一点一点的编写代码即可 首先定义点坐标的类 然后定义类 Point 坐标的公有派生类 Circle 再定义 类 Circle 的公有派生类 Cylinder 1 类 Point 坐标定义私有数据成员 x 和 y 用于表示点的坐标 成员函数 p set 用于设置 x 和 y 的值 p show 用于显示输出点的坐标 2 类 Circle 作为类 Point 的公有派生类 新增私有数据成员 float 型的 h 和 double 型的 s 表示圆的半径和面积 成员函数 c area 用于计算圆的面积并对 s 赋值 c set 用于对成员 r 赋值 getr 用于获取半径 r 的值 c show 用于显示 半径 r 和圆面积 s 3 类 Cylinder 作为类 Circle 的公有派生类 和类 Point 坐标是间接继承关系 新增私有数据成员有 float 型的 h 和 double 型的 bs v 分别表示圆柱体的高 表面积 体积 成员函数 cy set 对成员 h 赋值 cy area 计算表面积并对 bs 赋 值 volume 计算体积并对 v 赋值 cy show 显示输出高 h 表面积 bs 和体积 v 源代码源代码 include class Point private int x y public Point int a int b void p show void p set int a int b Point 第 4 页 共 10 页 Point Point int a int b x a y b cout 执行类 Point 的构造函数 endl void Point p show cout 执行类 Point 的函数 p show 输出坐标值 x y endl void Point p set int a int b x a y b cout 执行类 Point 的函数 p set endl Point Point cout 执行类 Point 的析构函数 endl class Circle public Point private float r double s public Circle int a int b float c double d void c show void c set float void c area float getr Circle Circle Circle int a int b float c double d Point a b 派生类 Circle 的构造函数 r c s d cout 执行类 Circle 的构造函数 endl void Circle c show cout 执行类 Circle 的函数 c show 输出值 r s endl void Circle c set float a 第 5 页 共 10 页 r a cout 执行类 Circle 的函数 c set endl void Circle c area 面积函数 面积为 r2 cout 执行类 Circle 的函数 c area endl s r r 3 14159 float Circle getr cout 执行类 Cricle 的函数 getr endl return r Circle Circle cout 执行类 Circle 的析构函数 endl class Cylinder public Circle private float h double bs v public Cylinder int a int b float c double d float e double f double g void cy show void cy set float a void cy area void volume Cylinder Cylinder Cylinder int a int b float c double d float e double f double g Circle a b c d 派生类 Cylinder 的构造函数 h e bs f v g cout 执行类 Cylinder 的构造函数 endl void Cylinder cy area bs 2 3 14159 Circle getr h Circle getr Circle getr 3 14159 2 cout 执行类 Cylinder 的函数 cy area endl void Cylinder cy set float a h a 第 6 页 共 10 页 cout 执行类 Cylinder 的函数 cy set endl void Cylinder cy show cout 执行类 Cylinder 的函数 cy show 输出值 h bs v endl void Cylinder volume v 3 14159 Circle getr Circle getr h cout 执行类 Cylinder 的函数 volume endl Cylinder Cylinder cout 执行类 Cylinder 的析构函数 endl void main int x y float r h Point a1 0 0 a1 p show cout 请输入类 Point 对象的 cin x y a1 p set x y a1 p show Circle a2 1 1 1 0 a2 p show a2 c show cout 请出入类 Circle 对象的 cin x y r a2 Circle p set x y a2 c set r a2 c area a2 Point p show 加基类名和作用域运算符 避免二义性 更可以清楚的知道使用的 是哪个类里的函数 a2 c show Cylinder a3 10 10 1 0 1 0 0 a3 Point p show a3 Circle c show a3 cy show cout 请输入类 Cylinder 对象的 cin x y r h a3 Point p set x y a3 Circle c set r a3 Circle c area 第 7 页 共 10 页 a3 cy set h a3 cy area a3 volume a3 Point p show a3 Circle c show a3 cy show 执行结果执行结果 展示对不同大小数据的处理 第 8 页 共 10 页 第 9 页 共 10 页 二 实验感想二 实验感想 1 通过本次实验 首先是熟悉了类和对象的定义 加强了类内 构造函数和析构函数的应用 对类的数据成员的类内访问和类外访问 有了进一步了解 2 总的来说 本次实验相对难度不大 因为可以根据详细的题 目要求一步一步写出程序 其次是通过对输出结果样例的分析 确定 哪些值是程序应该给定的初始值 然后在程序的相应位置进行附初值 第 10 页 共 10 页 3 由于自己的马虎 存在漏写括号及分号的现象 需要进一步 认真 杜绝不必要的马虎现象 4 编程过程中 运用的思想 都是徐老师上课讲的内容 通过 反复阅读课本 翻阅笔记 了解了老师讲的内容的精髓 并结合进本 编程里 成功并不困难 三 思考题三 思考题 1 请举例或结合实验 说明类的数据成员请举例或结合实验 说明类的数据成员 含继承所得数据成员含继承所得数据成员 如如 何访问 何访问 如果是在类内 可以直接通过成员函数访问 如果是类的公有 继承 则基类中公有成员和保护成员仍可以访问 而私有成员和不可 访问成员则不可访问 如果是私有继承 则基类的私有成员和保护成 员变成保护成员 基类的私有和不可访问成员是不可访问的 如果是 私有继承 则基类中的公有成员和保护成员变成私有成员 基类的私 有成员和不可访问成员是不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 10922-202555°非密封管螺纹量规
- 2025年后勤主管年终总结(园区运维+员工福利)
- 消防安全宣传画绘制技巧
- 2026中国工商银行青岛市分行秋季校园招聘备考题库附答案详解(巩固)
- 2025年台州市工会社会工作者招聘16人备考题库含答案详解(b卷)
- 2025舟山岱山县衢山镇人民政府公开招聘专职网格员4人备考题库含答案详解(轻巧夺冠)
- 2025重庆丰都工业园区管理委员会公益性岗位招聘1人备考题库附答案详解
- 2026年交通银行校园招聘备考题库及答案详解(有一套)
- 2026招商银行长沙分行校园招聘备考题库附答案详解(基础题)
- 2025辽宁沈阳市和平区招聘社区工作者61人备考题库附答案详解(巩固)
- 短期护工劳务协议书模板
- 10S507 建筑小区埋地塑料给水管道施工
- B级英语词汇表修改版
- 《病历书写基本规范》课件
- 机关单位工作人员文明礼仪规范-课件
- 超滤系统施工方案
- 小学英语时态复习专练
- 数据分析与决策支持
- 理光复印机维修手册大全
- “以唱促说”在小学英语课堂的教学案例分析 论文
- 简明英语语音语调知到章节答案智慧树2023年榆林学院
评论
0/150
提交评论