一道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盘自己的文件夹中。 展开
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盘自己的文件夹中。 展开
展开全部
/*【题目要求】
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盘自己的文件夹中。
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询