C++高手进来呀!!

【要求】按以下描述和要求建立两个类goods和store:classgoods{//商品类friendclassstore;private:intid;//商品代号flo... 【要求】按以下描述和要求建立两个类goods和store :
class goods{ //商品类
friend class store;
private:
int id; //商品代号
float price; //价格
int num; //库存数量
void AddNum(int x){num+=x;} //增加库存数量x个
};
class store{ //商店类
private:
goods s[10]; //存放商品信息,最多可有10种商品
int n; //数组中已写入数据的元素个数(商品种类数)
public:
store(){n=0;} //商品表构造函数
void newgd(int a,float b,int c); //在数组s中添加一种新商品
//(为goods类对象的数据成员赋值)
void list(); //屏幕打印库存商品清单和商品种类数
int MaxPrice(); //找出价格最高的商品,输出其代号、价格和数量,
//返回该商品在数组s中的位置
};
请完成以上未定义函数体的成员函数。
(1) 在主程序中定义一个store对象G。
(2) 调用成员函数newgd()输入不少于5种的商品数据,存入数组s中作为测试数据。
(3) 调用成员函数list()打印商品清单.
(4) 调用成员函数MaxPrice()出价格最高的商品。
每个成员函数至少被使用一次。通过多次的函数调用来测试你的程序功能是否达到要求。

【注意】 将源程序以文件名"学号F2.cpp"存入K盘自己的目录中。*/
展开
 我来答
tiancaixiaohui
推荐于2016-10-11 · 超过26用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
#include<fstream>
using namespace std;
class goods{ //商品类
friend class store;
private:
int id; //商品代号
float price; //价格
int num; //库存数量
void AddNum(int x){num+=x;} //增加库存数量x个
};
class store{ //商店类
private:
goods s[10]; //存放商品信息,最多可有10种商品
int n; //数组中已写入数据的元素个数(商品种类数)
public:
store(){n=0;} //商品表构造函数
void newgd(int a,float b,int c); //在数组s中添加一种新商品
//(为goods类对象的数据成员赋值)
void list(); //屏幕打印库存商品清单和商品种类数
int MaxPrice(); //找出价格最高的商品,输出其代号、价格和数量,
//返回该商品在数组s中的位置
};
void store::newgd(int x,float y,int z )
{
s[n].id=x;
s[n].price=y;
s[n].num=z;
n++;
}
void store::list()
{ int i=0;
cout<<" "<<"库存有"<<n<<"种商品:"<<endl;
cout<<endl;
cout<<"商品代码"<<" "<<"价格"<<" "<<"数量"<<endl;
for(;i<n;i++)
cout<<s[i].id<<" "<<s[i].price<<" "<<s[i].num<<endl;
cout<<endl;
}
int store::MaxPrice()
{float key;
int i,temp=0;
for(i=0,key=s[0].price;i<n;i++)
if(key<s[i].price) { key=s[i].price;temp=i;}
cout<<"最高价格在数组中第"<<temp<<"个位置"<<endl;
cout<<"商品代号: "<<s[temp].id<<endl;
cout<<"商品价格: "<<s[temp].price<<endl;
cout<<"商品数量: "<<s[temp].num<<endl;
cout<<endl;
return temp;
}
main()
{int i;
char ch;
ifstream infile("10.cpp"); //你默认存档文件文件的地址,及文件名称,你修改下
ofstream out("E:\\学号F2.cpp");
store G;
G.newgd(10001,18.3,99);
G.newgd(10002,15.2,11);
G.newgd(10003,25.6,32);
G.newgd(10004,96.2,66);
G.newgd(10005,56.2,88);
G.list();
i=G.MaxPrice();
while(infile.get(ch))
out.put(ch);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式