一道C++的编程题,求助 非常感谢!

【题目要求】1.下面的程序片段通过注释的方式给出了功能描述。classGOODS//商品类{private:charName[20];//货物名字floatprice;/... 【题目要求】
1.下面的程序片段通过注释的方式给出了功能描述。

classGOODS //商品类
{
private:
char Name[20];//货物名字
float price;//单价
float totalnum;//重量
public:
float getprice()
{ return price; }
float getnum()
{ return totalnum; }
void Set(char* goodsname, floatgoodsprice, float goodsnum);
GOODS(char* goodsname=0,float goodsprice=0,float goodsnum=0){}; //构造函数
friend ifstream& operator>>(ifstream &is, GOODS &goods);
};
classSTORE //商店
{
private:
GOODS goods[20];
int nums;
public:
STORE();
float TotalValue(); //计算商店所有商品的总价值
void AddGoods(char* goodsname,floatgoodsprice,float goodsnum);
void LoadFile(char* filename); //从文件中读取商品信息
};
voidmain()
{
STORE store;
store.LoadFile("data.txt");
store.AddGoods(“矿泉水”,1.2,100);
cout<<store.TotalValue()<<endl;
}

2. 该类描述中的所有函数在类的外部给予实现。
3. GOODS类对运算符 >>重载,实现从流中获取商品信息
4. STORE类的LoadFile函数通过调用GOODS类的运算符 >>重载函数,实现商品信息的加载。加载文本文件(data.txt,此文件需要考生自己在当前文件夹下建立。)内容如下:
5
方便面 2.05 150
饼干 12 100
可乐 3 500
牙膏 4 800
牙刷 5 400
其中: 第一行,表示实际有多少个商品,下面各行分别给出各个商品的信息,第一列是名称,第二列是单价,第三列是数量。
5.最终提交完整的程序源代码,运算结果为8327.5。
【注意事项】将源程序以文件名“学号_2.cpp”存入Z盘自己的文件夹中。
展开
 我来答
扈怀炜4h
推荐于2017-08-16 · TA获得超过6038个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1320万
展开全部
/*【题目要求】
1.下面的程序片段通过注释的方式给出了功能描述。
 */
#include <iostream.h>
#include <fstream.h>
 
class GOODS    //商品类
{
private:
      char Name[20];//货物名字
      float price;//单价
      float totalnum;//重量
public:
      float getprice()    //获取单价
      { return price; }
      float getnum()    //获取重量
      { return totalnum; }
      void Set(char* goodsname, floatgoodsprice, float goodsnum);  //
      GOODS(char* goodsname=“”,float goodsprice=0,float goodsnum=0){};    //构造函数
      friend ifstream & operator>>(ifstream &is, GOODS &goods);
};
 
//2. 该类描述中的所有函数在类的外部给予实现。
void GOODS::Set(char* goodsname, float goodsprice, float goodsnum)
{
  strcpy(Name,goodsname);
  price=goodsprice;
  totalnum=goodsnum;

  GOODS::GOODS(char* goodsname=“”,float goodsprice=0,float goodsnum=0)
  {
  strcpy(Name,goodsname);
  price=goodsprice;
  totalnum=goodsnum;
  }    //构造函数
  
  ifstream & operator>>(ifstream &is, GOODS &goods)
  {
     is>>goods.Name>>goods.price>>goods.totalnum;
     return is;
  }
// 3. GOODS类对运算符 >>重载,实现从流中获取商品信息
class  STORE     //商店
{
private:
      GOODS goods[20];
      int nums;   //定义成静态变量更好
public:
      STORE(){};  //或者干脆去掉,没有意义
      float TotalValue();   //计算商店所有商品的总价值
      void AddGoods(char* goodsname,floatgoodsprice,float goodsnum);
      void LoadFile(char* filename);  //从文件中读取商品信息
};
float STORE::TotalValue()
{
  float sum=0;
  for(int i=0;i<nums;i++)
    sum=sum+goods[i].getprice()*goods[i].getnum();
  return sum;  
}
void STORE::AddGoods(char* goodsname,float goodsprice,float goodsnum)
{
  goods[nums].set( goodsname, goodsprice, goodsnum);
  nums++;
}
void STORE::LoadFile(char* filename)
{
  ifstream fs;
  if((fs=open(filename,ios::in))==NULL)
  {
     cerr<<"打开文件失败";
     exit(1);
  }
  nums=0;
  while(!fs.eof())
  {
    fs>>goods[nums];
    nums++;
  }
}

//4. STORE类的LoadFile函数通过调用GOODS类的运算符 >>重载函数,
//实现商品信息的加载。加载文本文件(data.txt,此文件需要考生自己在当前文件夹下建立。)内容如下:

voidmain()
{
      STORE store;
      store.LoadFile("data.txt");
      store.AddGoods(“矿泉水”,1.2,100);
      cout<<store.TotalValue()<<endl;
}
/*5
方便面   2.05     150
饼干      12  100
可乐      3    500
牙膏      4    800
牙刷      5   400
其中: 第一行,表示实际有多少个商品,下面各行分别给出各个商品的信息,第一列是名称,第二列是单价,第三列是数量。
5.最终提交完整的程序源代码,运算结果为8327.5。
【注意事项】将源程序以文件名“学号_2.cpp”存入Z盘自己的文件夹中。
*/
溺水的鱼_117
2015-07-03 · TA获得超过299个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:175万
展开全部
帮做,20微信红包就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式