C++面向对象程序设计习题集(5)

2019-04-14 13:58

float price;

static float discount; static float sum; static int n; };

void Product::total() {float rate=1.0;

if(quantity>10) rate=0.98*rate;

sum=sum+quantity*price*rate*(1-discount); n=n+quantity; }

void Product::display() {cout<

cout<

float Product::average() {return(sum/n);}

float Product::discount=0.05; float Product::sum=0; int Product::n=0;

int main() {

Product Prod[3]={

Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5) };

for(int i=0;i<3;i++) Prod[i].total(); Product::display(); return 0; }

16.

有一个学生类student,包括学生姓名、成绩,设计一个友元函数比较两个学生成绩的高低,并求出最高分者和最低分者。 【知识点】:3.6 【参考分】:30分 【难易度】:B 【答案】:

#include #include class student {

char name[10]; int deg; public:

student(char na[],int d) f

strcpy(name,na); deg=d; }

char *getname(){return name;)

friend int compare(student &s1,student &s2) {

if(s1.deg>s2.deg) return 1;

else if(s1.deg==s2.deg) return 0;

else return -1; } };

void main() {

student st[]={student(\王华\李明\ student(\张伟\孙强\ int i,min=0,max=0; for(i=1;i<4;i++) {

if(compare(st[max],st[i])==-1) max=i;

else if(compare(st[min],st[i])==1) min=i; }

cout<<\输出结果:\

cout<<\ 最高分者:\ cout<<\最低分者:\}

17.

有一个学生类Student,包括学生姓名、成绩,设计一个友元函数输出成绩对应的等级:大于等于90为优;80~89为良:70~79为中;60~69为及格;小于60为不及格。 【知识点】:3.6 【参考分】:30分 【难易度】:B 【答案】:

#include #include #include class Student

{

char name(10]; int deg;

char level[7]; public:

Student(char na[],int d) {

strcpy(name,na); deg=d;

char *getname(){return name;} friend void trans(Student &s) {

if(s.deg>=90)

strcpy(s.1evel,\优\ else if(s.deg>=80) strcpy(s.1evel,\良\ else if(s.deg>=70) strcpy(s.level,\中\ else if(s.deg>=60) strcpy(s.1evel,\及格\ else

Strcpy(s.level,\不及格\ }

void disp() {

cout<

void main() {

Student st[]=fStudent(\王华\李明\ Student(\张伟\孙强\ cout<<\输出结果:\

cout<

trans(st[i]); st[i].disp(); } }

18.

设计一个长方体,包含有长、宽和高度私有数据成员,用友元函数的方法求长方体的体积。 【知识点】:3.6

【参考分】:20分 【难易度】:C 【答案】:

#include class Cuboid private:

float Length; //长度 float Width; //宽度 float High; //高度 public:

Cuboid(float l,float w,float h) {

Length=l;Width=w;High=h; }

friend float Volume(Cuboid &); };

float Volume(Cuboid &c)

{ return c.Length *c.Width *c.High; }

void main() {

Cuboid c(2,5,6);

cout<<\长方体积=\}

19.

设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。 【知识点】:3.6 4.2 【参考分】:20分 【难易度】:B 【答案】:在Triangle类中设计一个友元函数operator+(Triangle tl,Triangle t2),它重载运算符“+”,返回tl和t2两个三角形的面积之和。程序如下:

#include #include class Triangle {

int x,y,z; double area; public:

Triangle(int i,int j,int k) {

double s; x=i;y=j;z=k; s=(x+y+z)/2.0;

area=sqrt(s *(s-x)*(s-y)*(s-z)); }

void disparea() {

cout<<\ }

friend double operator+(Triangle t1,Triangle t2) {

return t1.area+t2.area; } };

void main() {

Triangle t1(3,4,5),t2(4,5,6); double s;

cout<<\:\ cout<<\:\ s=t1+t2;

cout<<\总面积=\}

20.

设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求任意多个三角形的面积之和。 【知识点】:3.6 4.2 【参考分】:30分 【难易度】:B 【答案】:对于式子:s=t1+t2+t3,先计算tl+t2,返回一个double数,然后再进行该double数+t3的计算,显然没有这样的重载运算符“+”友元函数,只需添加这样的重载运算符“+”友元函数即可。程序如下:

#include #include class Triangle {

int x,y,z; double area; public:

Triangle(int i,int j,int k) {

double s; x=i;y=j; z=k; s=(x+y+z)/2.0;

area=sqrt(s*(s-x)*(s-y)*(s—z)); }

void disparea() {

cout<<\ }


C++面向对象程序设计习题集(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学生作业鼓励性评语作业评语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: