龙门镖局为2归来完整版:高分悬赏,一道C++题!

来源:百度文库 编辑:高考问答 时间:2024/05/07 08:23:05
构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1~5,将price初始化为qu的10倍.显示每个对象的qu*price值.

#include<iostream.h>
int gInt=0;
class book
{
private:
int qu;
int price;
int iIndex;
public:
book()
{
iIndex=gInt++;
qu=iIndex+1;
price=qu*10;
}
void print()
{
cout<<"第"<<iIndex+1<<"个值是"<<price<<endl;
}
};
int main()
{
book s[5];
for(int i=0; i<5; i++)
{
s[i].print();
}
return 0;
}

#include <iostream.h>
class book
{
private: //私有数据
int qu;
int price;
public:
void setqu(int i);//给qu赋值,因为它是私有的
void printInfo(); //显示结果
};
void book::setqu(int i)//函数体
{
qu=i;
price=qu*10;
}
void book::printInfo()
{
cout<<qu*price<<endl;
}

int main(int argc, char* argv[])
{
book b[5];//定义数组
int i;
for (i=0;i<5;i++)
{
b[i].setqu(i+1);//赋值,
b[i].printInfo();//输出
}

return 0;
}

#include <iostream.h>
class book
{
private: //私有数据
int qu;
int price;
public:
void setqu(int i);//给qu赋值,因为它是私有的
void printInfo(); //显示结果
};
void book::setqu(int i)//函数体
{
qu=i;
price=qu*10;
}
void book::printInfo()
{
cout<<qu*price<<endl;
}
int main(int argc, char* argv[])
{
book b[5];//定义数组
int i;
for (i=0;i<5;i++)
{
b[i].setqu(i+1);//赋值,
b[i].printInfo();//输出
}

return 0;
}

#include <iostream.h>

class book
{
private:
int qu;
int price;
public:
void setqu(int i)
{
qu=i;
price=qu*10;
}
void print()
{
cout<<qu*price<<endl;
}
};
void main()
{
book a[5];
for (int i=0;i<5;i++)
{
a[i].setqu(i+1);
}
for(int j=0;j<5;j++)
{
a[i].print();
}
}

#include<iostream>
using namespace std;

class book
{
public:
void setqu(double a) //给qu赋值的函数
{
qu =a;
}

void setprice(double p) //给price赋值的函数
{
price =p;
}

void show() //输出函数
{
cout<<price*qu;
}
private:
double qu, price;
};

int main()
{
book b[4];
for(int i=0; i<=4; ++i) //给qu逐个赋值
{
b[i].setqu(i+1);
}

for(int i=0; i<=4; ++i) //给price逐个赋值并输出
{
b[i].setprice( (i+1)*10);
b[i].show();
}
return 0;
}

这里我认为price和qu的关系不应该在class中就固定住,否则的话class的可扩展性会很差.所以在main中我牺牲一个循环来给price赋值

#include<iostream>
using namespace std;

class book
{
public:
book()
//构造函数
{
qu = 0;
price = 0;
}
~book()
//析构
{
}
void setQu(double qu_)
//给qu赋值的函数
{
qu =qu_;
}

void setPrice(double price_)
//给price赋值的函数
{
price = price_;
}

double getQu()
//取qu的值
{
return qu ;
}

double getPrice(void)
//取price的值
{
return price;
}
private:
double qu, price;
};

int main()
{
const int MAX = 5;
const int TIMES = 10;
//如果以后数目变了,只要改这里就可以(代码改动最小)
book b[MAX];
for(int i=0; i < MAX; ++i)
//给qu逐个赋值
{
b[i].setQu( i+1 );
b[i].setPrice( b[i].getQu()*TIMES);
cout<<b[i].getPrice()*b[i].getQu()<<endl;
}
return 0;
}

(1)写代码的时候,最好不要在函数里面输出结果,而是返回一个结果就可以了。(因为有可能其他的函数它仅仅要price,但是又不想要输出)
(2)没必要循环两次
(3) 常量定义为const方便以后代码改动
(4)函数命名规则最好遵循
set+变量名字/get+变量名字(第一字母大写)
或者
set+ _变量名字/get+_变量名字
也就是set_price get_price