天天看点

2013级C++第5周(春)项目——用构造函数初始化

  有同学总结:老二说用数组法做给了我思路,真是有兄弟,不孤单。做了这道题才发现以前没用数组法做的那个判断第几天的程序结果存在错误。

  我评论:每个人身边都有一帮子兄弟。靠兄弟,就不用靠老师。兄弟总在身边,弟兄们一起长大!

  还有,实践中感受到的,就是真正学习到的。在学习中,只有将直接的体验与老师的讲解、看过的书交融起来,才能真正将知识成为自己的一部分。

【项目1-三角形类的构造函数】

  设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化,可以由下面的类声明开始,需要自己实现相关的成员函数,以及增加要求的构造函数

  本项目将包括多个版本,开始写程序前,保证搞清楚何为带参数的构造函数、默认构造函数、有默认参数的构造函数、参数初始化表。

  (1)使用带参数构造函数,即triangle(double x, double y, double z),三边长在调用时由实参直接给出。需要的测试函数是:

  (2)设计默认构造函数,即不指定参数时,默认各边长为1。需要的测试函数是:

  (3)使用有默认参数的构造函数,不给定实参时,默认边长为1;注意——这个版本也只需要一个构造函数即可。需要的测试函数是:

  (4)在构造函数中使用参数初始化表对数据成员初始化,这是一种更加提倡的写法。测试函数同(1)。

【项目1拓展(选做)】

  请自行设计一个矩形类,可以计算矩形的面积、周长、对象线,判断是否是正方形。请用上类似的构造函数,自己设计main()函数,对设计的类进行测试。

【项目2-分数类的雏形】

  c++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。我们可以自定义类支持这些数据类型。

  本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。

  分数类的声明为:

  项目要求:完成分数类的设计,并在main()函数中自行定义对象,调用各成员函数,完成基本的测试。

  实践策略:(1)不建议一次实现所有成员函数后再调试,而是实现一个,测试一个;(2)本项目的实现及测试顺序可以是:先构造函数和输出output函数(可以先只实现一种输出方式),再set函数,再input函数,等等。

  以后我们还将能够:(1)定义了int i,j,能用cin>>i>>j;在键盘上输入i和j的值。以后,定义了cfraction c1, c2,可以用cin>>c1>>c2;输入分数,用cout<<c1<<c2;输出分数。(2)i+j完成两个整型数的相加,我们可以通过自行定义成员函数,用c1+c2、c1/c2、c1>c2等,实现分数的四则运算、比较、求倒数等。

【项目3-对象数组操作长方柱类】

  编写基于对象的程序,求5个长方柱的体积和表面积。长方柱类bulk的数据成员包括长(length)、宽(width)、高(heigth)等。

  对照已经给出的代码,要做的工作及要求有:

需要你定义长方柱类

代码中已经给出由5个长方柱对象构成的对象数组b;

b数组中的前3个对象b[0]、b[1]、b[2]直接参数初始了,需要定义构造函数,而初始化中,各对象提供的参数数目不同,需要有默认参数的构造函数(未给出的参数默认为1.0)

第4个对象b[3]用默认构造函数初始化;

第5个长方柱b[4]定义时不初始化,设计成员函数get_value,由键盘输入长、宽、高;

设计成员函数output,在main中调用输出这5个长方柱的体积和表面积;

【项目4-指向学生类的指针】

  设计一个学生类student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set、get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索)。在main函数中,要做到:

建立一个对象数组,通过初始化,设置5个学生的数据,要求:

用指针指向数组首元素,输出第1、3、5个学生的信息;

设计一个函数int max(student *arr);,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并返回值其学号。

  下面给出部分程序,在此基础上完成项目:

  

2013级C++第5周(春)项目——用构造函数初始化

<a target="_blank" href="http://book.douban.com/subject/25837646/">豆瓣</a>

==================== 迂者 贺利坚 csdn博客专栏=================

======== 为it菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======

    

继续阅读