面向对象实验指导书福州大学阳光学院精品课程

上传人:博****1 文档编号:496938281 上传时间:2022-09-25 格式:DOC 页数:56 大小:279KB
返回 下载 相关 举报
面向对象实验指导书福州大学阳光学院精品课程_第1页
第1页 / 共56页
面向对象实验指导书福州大学阳光学院精品课程_第2页
第2页 / 共56页
面向对象实验指导书福州大学阳光学院精品课程_第3页
第3页 / 共56页
面向对象实验指导书福州大学阳光学院精品课程_第4页
第4页 / 共56页
面向对象实验指导书福州大学阳光学院精品课程_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《面向对象实验指导书福州大学阳光学院精品课程》由会员分享,可在线阅读,更多相关《面向对象实验指导书福州大学阳光学院精品课程(56页珍藏版)》请在金锄头文库上搜索。

1、第一章 类与对象的概念与设计概述实验目的(1)掌握类和对象的定义和引用(2)掌握类和对象的基本应用实验案例定义时钟类实验内容()定义图书类()定义商品类及其应用 实验案例定义时钟类 问题的提出在我们的现实生活中,时间无时无刻不在伴随着我们,而时钟却是时间的一个主要载体。为了对面向对象的程序设计方法有一个初步的认识,我们将举时钟类来作进一步的说明。 问题的分析不管什么样的时钟,也不管各种时钟是如何运行的,它都具有时、分、秒个属性。除了运行、显示时间的基本功能外,还有设置(调整)时间、设置闹钟等功能。将时钟的这些属性与功能抽象出來,用面向对象的程序来实现对时钟的模拟。 程序代码#include u

2、sing namespace std;class Clock private: int H,M,S; public: void SetTime(int h, int m, int s) /设置时间 H=(h=0&h=0&m=0&s60)?s:0; void ShowTime( ) /显示时间 coutH”:”M”:”Sendl; ;int main( ) Clock myclock; myclock.ShowTime( ); myclock.SetTime(8,30,30); myclock.ShowTime( ); return 0;程序解释:程序中利用面向对象的程序设计方法将时钟的属性和功

3、能抽象于一个时钟类Clock中,可以看到,在该类中定义了两个成员函数SetTime( )和ShowTime( )和三个数据成员(H时,M分,S秒),请运行该程序,并思考程序运行结果。 实验内容定义图书类 题目要求设图书包括书名、作者。出版社和定价等属性,要求定义一个类,能定义图书对象,能为对象数据成员赋值,能输出图书属性。 分析参考案例,图书类应当包括下列数据成员:书名、作者、出版社和单价等,单价为实型,其余均为字符串。根据题目要求,本题图书类应当包含个成员函数:图书赋值和图书输出。主函数的作用是,定义若干图书对象,调用图书赋值函数为图书对象赋值,确定其书名、作者等信息,然后按行输出图书对象。

4、按行输出对象的含义是每行一个对象,每个对象包含个属性。思考这样定义的图书类,其各个属性一旦定义便不能修改,可否设计一个用以修改图书属性的成员函数,该函数调用次能修改图书对象的一个属性(共个属性)。 定义商品类题目要求设商品包括下列属性:商品名(字符串)、单价(实型)、数量(整型)和金额(实型)。商品的商品名和单价属性在定义商品时给定。考虑商品的销售情况,对于某个已定义的商品,给定其数量,应能自动计算出金额。分析若将商品定义为类,根据题目要求,应当包括下列数据成员:商品名(字符数组)、单价(实型)、数量(整型)和金额(实型)。成员函数应当包括定义商品(用以确定商品的商品名称和单价)、销售商品(给

5、定数量计算出金额)和输出商品信息。商品对象有种形态:已定义商品对象但未定义商品(未确定商品的品名和单价)、已定义商品但还没有销售(未确定销售数量和销售金额)以及已销售商品。商品输出函数应能区分这种形态。例如对未定义商品的对象,输出时指出其为未定义对象;对已定义商品但未销售的对象,应该输出其基本属性后指出其为未销售商品;对已销售商品,输出其全部信息。设商品可以反复销售,即可以重新给定数量,给定数量后重新计算其销售金额。未定义的商品是不能销售的,即未确定商品名和单价的商品对象,不能使用销售函数为其确定数量并计算金额。定义商品和定义对象不同。定义对象时,对象的各个属性(商品名、单价、数量和金额)的值

6、均是随机的。定义商品是在已经定义了对象的基础上进行的,就是要先有商品对象,才可以为其确定商品名和单价。对于同一个商品对象,可以反复定义商品。定义商品函数的原型可以是:void commodity:def(char name ,float price);commodity为商品类的类名。 销售商品函数的原型可以是: void commodity:sell(float quantity); 输出商品函数的原型可以是: void commodity:print( );主函数定义商品对象,定义商品(对同一对象定义多次)、销售商品并输出锁定义的商品。 第二章 构造函数定义与使用概述 实验目的() 掌握构

7、造函数、重载构造函数的定义和使用方法。() 理解缺省构造函数的概念、定义及使用方法。 实验案例学生类的声明及其对象的初始化 实验内容() 日期类的声明和对象的定义。() 集合类的声明和对象的定义。() 职工类的声明和对象的定义。实验案例学生类的声明及其对象的初始化 问题的提出学生类有数据成员:包括学号、姓名、性别、年龄、+成绩。要求有如下成员函数:构造函数、修改成绩的函数、输出所有成员的函数。main()完成对象的定义和有关成员函数的测试。 分析数据成员的确定方法:学号一般有纯数字组成,可以确定为整型数;但当学号中包含有字母、汉字或起始学号由开始时,应使用字符数组表示。姓名应该用字符数组表示。

8、性别可用字符数组表示汉字“男”或“女”,也可以用数字表示(如表示“男”,表示“女”,可以自己事先约定)或布尔值表示;而年龄用int类型,考虑到成绩可能会出现小数,所以用float表示。成员函数的确定方法:构造函数其作用是完成对对象的数据成员初始化。一般情况下,上述说明的数据成员,在不能通过计算得到时,其数据成员都需要通过构造函数实现初始化。构造函数可以重载,考虑到定义对象时,没有提供初始化所需的数据,定义了缺省的构造函数。为保证数据安全,类中数据成员一般都限定为私有访问权限,所以类中需要定义输出数据的成员函数,当需要访问私有数据成员时,需通过具有共有访问权限的成员函数公共接口完成。 程序代码#

9、include #include using namespace std; class Student /学生类的声明 int Id; /学号 char Name20; /姓名 char Sex4; /性别 int Age; /年龄 float Cpp; /C+成绩public: Student( ) /缺省的构造函数 Id=Age=Cpp=0; Name0=Sex0=0;Student(int i, char *n, char *s,int a ,float c) /构造函数 Id=i; strcpy(Name,n); strcpy(Sex,s); Age=a; Cpp=c;void Set

10、Cpp(float c) Cpp=c; void print( ) cout”学号:”Id”t姓名:”Name”t性别:”Sex; cout”t年龄:”Age”C+成绩:”Cppn;void main( ) Student S1(240800123,”张三”,”男”,20,86); S1.print( ); S1.SetCpp(92); S1.print( ); Student S2; S2.print( ); S2=S1; S2.print( ); 思考() 当类中没有定义缺省的构造函数时,是否会出现语法错误?() 当缺省的构造函数的函数体为空时,输出对象的数据成员时,会出现什么结果? 实验

11、内容 日期类的声明和对象的定义题目要求声明一个日期类,有数据成员:年、月、日;有成员函数:构造函数实现对所有数据成员的初始化;输出的成员函数,要求输出格式为:年月日。mian()函数完成对象的定义和输出成员函数的测试。分析数据成员年、月、日应该为整型数,并限定为私有访问权限;成员函数限定为公有访问权限。构造函数实现对所有数据成员的初始化,所以构造函数的形参个数和类型与数据成员的个数和类型一致。值得注意的是:构造函数实现数据成员初始化时,赋值号的左边是成员名,右边是形参名。请完成程序代码的编写、调试,并得到正确结果。思考如果考虑输入的年、月、日数据是合法数据(即不允许出现月、日等),构造函数应如

12、何处理?集合类的声明和对象的定义题目要求声明一个集合类,有数据成员: int a10;有成员函数:构造函数(要求完成对数组a中所以元素的初始化);输出的成员函数,要求每行输出5个数;判断一个数是否在数组中的函数,如果在数组中,返回数组中下标的值。主函数完成对象的定义和相关函数的测试。分析构造函数要求完成对数组中所有元素的初始化,其形参应该提供一个具有个数据的数组或指向该数组的指针变量。如:构造函数名( int b ) int i; for(i=0;i10;i+) ai=bi; 判断一个数是否在数组中的成员函数,其函数返回值为数组元素的下标,函数的返回值类型应该是整型,考虑到下标的范围应在09之

13、间,因此当数组中不存在所找数据时,返回的值应该不在下标范围内,可设定返回1。 int Find(int x) int i; for(i=0;i10;i+) if(ai=x) return i; return -1; 请完成程序代码的编写、测试,并得到正确结果。思考在类中增加数组排序的成员函数,并进行相应的测试。职工类的声明和对象的定义题目要求声明一个职工类,有数据成员:工号、姓名、性别、基本工资、奖金、总工资;要求有如下成员函数:构造函数、修改基本工资和奖金的函数、输出所有成员的函数。主函数完成对象的定义和有关成员函数的测试。分析构造函数中,总工资可以通过计算得到,所以不需要通过形式参数对总工资进行初始化。请完成程序代码的编写、测试,并得到正确结果。第三章 构造函数和析构函数概述实验目的()掌握拷贝构造函数的定义和使用方法。()理解深拷贝和浅拷贝的含义。()理解析构函数的定义和使用。实验

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号