




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、数据抽象(类、数据成员、成员函数)(4学时) 目的1. 学习类的定义、实例化的方法2. 学习使用构造函数和析构函数3. 学习类成员访问控制的运用4. 学习堆对象的分配、使用与释放5. 体会面向对象程序设计方法6. 熟悉Visual C+的编译连接错误,掌握Visual C+调试工具 作业内容题目设计一个立方体类Box,它能计算并输出立方体的体积和表面积。要求Box类包含三个数据成员a(立方体边长)、volume(体积)和area(表面积),另有两个构造函数以及seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和disp()(输出结果)。 (可给出程序截图,也可给出算法描述)#includeusing namespace std;class Box public:Box() this-a = 0;this-volume = 0;this-area = 0;Box(double a) this-a = a;this-volume = 0;this-area = 0;void setA(double a) this-a = a;void getVolume() volume = a * a * a;void getArea() area = 6 * a * a;void disp() cout 边长: a endl;cout 体积: volume endl;cout 表面积: area endl;private:double a; /边长double volume; /体积double area; /表面积;int main() cout a;Box box(a);box.getArea();/计算表面积box.getVolume();/计算体积box.disp();return 0;算法描述:定义一个Box类以表示一个立方体,他具有一个double类型的成员变量a,用来表示他的边长,另外两个成员变量volume,area用来表示他的体积和表面积,分别在成员函数getVolume和getArea中计算所得,最后调用disp函数以输出这个Box对象的体积和表面积信息 (给出截图) ( 或 )通过这次编程,我理解了数据抽象,并体会了面向对象程序设计方法。题目编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在8089分的学生数据。要求设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在8089分数段的学生数据。在main()函数中定义了一个对象数组,用于存储输入的学生数据。 (可给出程序截图,也可给出算法描述)#include using namespace std;class Stud public:void setData(int no, char *name, int deg) this-no = no;strcpy(this-name, name);this-deg = deg;void disp() if (deg = 80 & deg = 89) cout no name deg endl;private:int no; /学号char name20;int deg; /成绩;int main() Stud stu20;stu0.setData(1, Tom, 34);stu1.setData(2, Jack, 80);stu2.setData(3, stu1, 89);stu3.setData(4, stu2, 85);stu4.setData(5, stu3, 90);for (int i = 0; i 5; i+) stui.disp();return 0; (给出截图) ( 或 )体会了面向对象编程的基本步骤和基本思想,使得我对面向对象程序设计方法的理解更为透彻。存在的问题:对象数组在初始化的时候就为每一个对象申请了空间,使得在数组内元素个数不确定的时候造成了内存的浪费。二、继承与派生类(4学时) 目的1理解继承的含义,掌握派生类的定义方法和实现;2理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员; 作业内容题目编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。要求(1) 写出程序,并调试程序,要给出测试数据和实验结果。(2) 整理上机步骤,总结经验和体会。 (可给出程序截图,也可给出算法描述)#include using namespace std;class Person public:Person() virtual void input() cout 输入编号和姓名: number name;virtual void disp() cout 编号: number 姓名: name;Person() protected:char number20; /编号char name20; /姓名;class Student: public Person public:Student() :Person() void input() Person:input();cout 输入班级和成绩: grade score;void disp() Person:disp();cout 班级: grade 成绩: score;Student() private:char grade20; /班级int score; /成绩;class Teacher: public Person public:Teacher() :Person() void input() Person:input();cout 输入职称和部门: job unit;void disp() Person:disp();cout 职称: job 部门: unit;Teacher() private:char job20; /职称char unit20; /部门;int main() Person *person;cout n;person = new Person*n;for (int i = 0; i n; i+) cout 1.学生 endl 2.老师 flag;personi = NULL;if (flag = 1) personi = new Student; else personi = new Teacher;personi-input();for (int i = 0; i disp();for (int i = 0; i n; i+) delete personi;delete person;return 0; (给出截图)测试数据: 2个类型编号姓名班级/职称成绩/部门Student4238756237845student外国语学院140599Teacher123456789teacher英语老师武汉理工大学 ( 或 )题目编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。(3)定义主函数,求球、圆柱、圆锥的和体积。要求(1) 写出程序,并调试程序,要给出测试数据和实验结果。(2) 整理上机步骤,总结经验和体会。 (可给出程序截图,也可给出算法描述)程序包含6个源文件:Test.cpp : 包含main方法,主要用来测试Circle.h : 定义Circle类的.h文件Circle.cpp : 定义了Circle类的实现Ball.cpp : 公有继承于Circle,用来表示一个球Cylinder.cpp : 公有继承于Circle,用来表示一个圆柱Taper.cpp : 公有继承于Circle,用来表示一个圆锥Test.cpp:#include#include Ball.cpp#include Cylinder.cpp#include Taper.cppusing namespace std;void disp(Circle *);int main() Ball ball(2); /半径为2的球Cylinder cylinder(2, 3); /半径为2,高为3的圆柱Taper taper(2, 3); /半径为2,高为3的圆锥cout 球: endl;disp(&ball);cout endl;cout 圆柱: endl;disp(&cylinder);cout endl;cout 圆锥: endl;disp(&taper);cout endl;return 0;void disp(Circle *c) cout 表面积: getArea() endl;cout 体积: getVolume() r = r;double Circle:getArea() return 3.14 * r * r;double Circle:getVolume() return 0;Ball.cpp#include Circle.hclass Ball: public Circle public:Ball(double r) :Circle(r) double getArea() return 4 * 3.14 * r * r;double getVolume() return 4.0 / 3 * 3.14 * r * r * r;Cylinder.cpp#include Circle.hclass Cylinder: public Circle /圆柱类public:Cylinder(double r, double h) :Circle(r) this-h = h;double getArea() return 2 * 3.14 * r * r + 2 * 3.14 * r * h;double getVolume() return 3.14 * r * r * h;private:double h;Taper.cpp#include Circle.h#include class Taper: public Circle /圆锥类public:Taper(double r, double h) :Circle(r) this-h = h;double getArea() doubl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省会理县第一中学2025年物理高三第一学期期末综合测试试题
- 2025-2026学年江西省赣州市达标名校高三物理第一学期期末监测模拟试题
- 吉林省白城市洮南第十中学2025年高三物理第一学期期末调研模拟试题
- 3.2 自然语言处理 教学设计 2023-2024学年人教中图版(2019)高中信息技术选择性必修4
- 19.2.1 正比例函数第一课时 说课稿-2024-2025学年人教版八年级数学下册
- 推拿治疗学试卷含答案详解(新)
- 第六讲 石雕教学设计-2025-2026学年高中美术人教版必修 艺术欣赏-人教版
- 河北省官方兽医考试系统章节练习题库概要及参考答案详解【典型题】
- 电子数据取证分析师新员工考核试卷及答案
- 偏钨酸铵制备工内部技能考核试卷及答案
- 二年级上学期收心教育
- 矿山买卖居间协议书
- 2025年医师执业资格考试试题及答案
- 并购协议样本3篇
- 社区两委测试卷及答案
- 板房拆除协议书样本
- 行政事务知识培训课件
- 2025年护理文书书写规范
- 2025年中国淄博房地产行业发展现状分析与市场前景预测报告
- 钢结构工程数字化交付标准制定
- 预防出生缺陷健康知识讲座
评论
0/150
提交评论