今年“双11”期间,5所高校争夺谁花费最多,请你实现编程。要求(1)设计一个类School,有3个私有数据成员,编号(id),学校名称(name)和花费(cost),还有相应的读入和输出这些数据成员的函数:getid() putid() getname() putname() getcost() putcost();(2)另外设计一个类Maxshool,构造函数从文件中aa.txt中读入5个学校的信息(文件格式见下,每行的三个数据分别表示编号、学校名、花费),另一函数求出花费最大的学校,并输出相应信息。
1001 北京大学 120.5
1002 清华大学 135.4
1003 浙江大学 156.8
1004 浙江工业大学 97.6
1005 复旦大学 95.3
2条回答 默认 最新
- kinghero123456 2018-04-27 06:15关注
#include
#include
#include
#include
using namespace std;class School
{
public:
int getid()
{
return id;
}
void putid(int idtmp)
{
id = idtmp;
}string getname() { return name; } void putname(string nametmp) { name = nametmp; } double getcost() { return cost; } void putcost(double costtmp) { cost = costtmp; }
private:
int id;
string name;
double cost;
};class Maxschool
{
public:
Maxschool( )
{
ifstream in("aa.txt");
if( in.is_open() )
{
while(!in.eof())
{
int id;
string name;
double cost;
in >> id >> name >> cost;
School s;
s.putid(id);
s.putname(name);
s.putcost(cost);
ss.push_back(s);
}
}
}
void GetMax()
{
School s;
for(size_t i = 0 ; i < ss.size(); ++i)
{
if( i == 0 )
{
s = ss[i];
}
else
{
if(s.getcost() < ss[i].getcost())
{
s = ss[i];
}
}
}
cout << s.getid() <<" " << s.getname()<< " "<< s.getcost()<< endl;
}
private:
std::vector ss;
};int main()
{
Maxschool max;
max.GetMax();
return 0;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报