C++面向对象程序设计上机实践指导.doc
文本预览下载声明
东华理工大学软件学院
面向对象程序设计
上机实践指导
2016-4-10
目 录
《C++语言基础》实践项目(一) 2
《C++语言基础》实践项目(二) 5
《C++语言基础》实践项目(三) 8
《C++语言基础》实践项目(四) 12
《C++语言基础》实践项目(五) 18
《C++语言基础》实践项目(六) 26
《C++语言基础》实践项目(七) 33
《C++语言基础》实践项目(八) 36
《C++语言基础》实践项目(九) 38
《C++语言基础》实践项目(十) 42
《C++语言基础》实践项目(十一) 44
《C++语言基础》实践项目(十二) 50
《C++语言基础》实践项目(一)
——初识对象
【项目1 - 旱冰场造价】 有一个圆形的旱冰场地,场地内抹水泥,造价为每平方米M元,围栏用木条围成,每米造价N元,输入旱冰场半径,用程序计算出其造价。
一级提示: 先定义类,确定其数据成员和成员函数。在这里要定义的旱冰场类,实际我们只关心其面积和周长,根据面积计算场地内抹水泥的造价,根据周长计算围栏的造价。有了类的定义,在main函数中定义该类对象,调用成员函数即可以完成求解。
二级提示:
实际上,对于旱冰场,我们只关心它就是一个圆。这就是设计中抓住了本质。于是,设计一个Circle(圆)类,数据成员为圆的半径,Circle类还提供计算圆的面积和边长的成员函数。在main函数中,定义一个Circle类的对象,调用成员函数求出旱冰场的造价。
三级提示: 请在下面提示的基础上完成程序,其中需要做的工作包括:(1)在类声明中声明相关的公共成员函数;(2)在类声明和main()函数之间,定义声明的成员函数。
const?int?M=20;???//水泥场地每平米造价??
const?int?N=35;???//围栏每米造价??
class?Circle??
{??
//下面声明需要的成员函数(从已经提供的main函数中可以找出需要哪些成员函数)??
public:
private:??
????double?radius;??
};??
//下面定义需要的成员函数??
??
??
int?main()??
{??
????double?r;??
????cout请输入旱冰场的半径:?;??
????cinr;??
????Circle?c;??
????c.setRadius(r);??
????cout旱冰场的造价为?M*c.area()+N*c.circumference()元。endl;??
????return?0;??
}??
【项目2 - 长方柱类】 编写基于对象的程序,求3个长方柱(Bulk)的体积。数据成员包括长(length)、宽(width)、高(heigth)、体积,要求设计成员函数实现下面的功能: (1)由键盘输入3个长方柱的长、宽、高; (2)计算长方柱的体积(volume)和表面积(areas); (3)输出这3个长方柱的体积和表面积;
【项目3 - 时间类】阅读、运行程序后,按要求扩充类的功能
#include iostream
using namespace std;
class Time
{
public:
void set_time( );
void show_time( );
private:
bool is_time(int, int, int); //这个成员函数设置为私有的,是合适的,请品味
int hour;
int minute;
int sec;
};
void Time::set_time( )
{
char c1,c2;
cout请输入时间(格式hh:mm:ss);
while(1)
{ cinhourc1minutec2sec;
if(c1!=:||c2!=:)
cout格式不正确,请重新输入endl;
else if (!is_time(hour,minute,sec))
cout时间非法,请重新输入endl;
else
break;
}
}
void Time::show_time( )
{
couthour:minute:secendl;
}
bool Time::is_time(int h,int m, int s)
{
if (h0 ||h24 || m0 ||m60 || s0 ||s60)
return false;
return true;
显示全部