北大面向对象程序设计上机考题mxdx

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1//超市管理系统(2)/*请实现一个简单的超市商品管理系统,超市有三个货架,分别放着日常用品、食品和家电。本题要求完成:(1)实现描述超市的类Supermarket,其中定义了增加商品的函数Add(可以增加新的商品,也可以增加已有商品的数量),按照//商品名称//卖出商品的函数Sale(如果商品现有数量少于卖出数量,则不能继续卖出商品,并给出提示信息),按照//商品类别//查询商品情况的函数Search,并显示查询结果(每类商品中有哪些商品,每种商品的名称和现有数量)。(2)定义商品类Goods,包含属性名称、和商品现有数量,以及纯虚函数ShowMe。(3)从基类Goods中派生日常用品类DailyGoods、食品类Food和家电类ElectricalAppliance,其中食品类商品拥有保质期属性,家电类商品拥有颜色属性,具体实现上述纯虚函数ShowMe,显示商品的名称、现有数量和食品类商品的保质期,以及家电类商品的颜色。(4)重载输入“”*作符,使得可以通过cin直接读入上述日常用品类、食品类和家电类的对象值。(5)编写main函数,测试上述所要求的各种功能,即可以根据菜单命令增加、卖出和查询各类商品,其中的商品可以是日常用品、食品和家用电器。提示:虚拟基类Goods的定义至少包括以下纯虚函数ShowMe,classGoods{//……public:virtualvoidShowMe()=0;//……};*/#includeiostream.h#includestring.h//*************************商品类定义**************************classGoods{protected:char*Name;intNum;intType;//0代表是日常用品类,1代表食品类,2代表家电类public:Goods();virtualvoidShowMe()=0;char*GetName(){returnName;}intGetNum(){returnNum;}intGetType(){returnType;}voidAddNum(intn){Num+=n;}voidDecNum(intn){Num-=n;}virtual~Goods();};//**************************日常用品类定义************************classDailyGoods:publicGoods{public:DailyGoods::DailyGoods(){Type=0;}voidShowMe();2friendistream&operator(istream&is,DailyGoods&d);};//***************************食品类定义***************************classFoods:publicGoods{private:char*ProtectedTime;public:Foods(){Type=1;ProtectedTime=newchar[10];}voidShowMe();friendistream&operator(istream&is,Foods&f);};//****************************家电类定义************************classElectricalAppliance:publicGoods{private:char*Color;public:ElectricalAppliance(){Type=2;Color=newchar[10];}voidShowMe();friendistream&operator(istream&is,ElectricalAppliance&ele);};//****************************类Suppermerket的定义******************classSuppermarket{private:Goods*goods[1000];intnum;public:Suppermarket();voidAdd(Goods*);voidSale();voidSearch();};//**********************商品类的函数定义**********************Goods::Goods(){Name=newchar[20];Num=0;Type=-1;}Goods::~Goods(){deleteName;}//*******************日常用品类的函数定义**********************voidDailyGoods::ShowMe(){cout商品名称:Nameendl;cout现有商品数量:Numendl;}istream&operator(istream&is,DailyGoods&d){cout请输入要增加的商品名称:;cind.Name;3cout请输入增加商品的数量:;cind.Num;returnis;}//********************食品类的函数定义*****************************voidFoods::ShowMe(){cout商品名称:Nameendl;cout现有商品数量:Numendl;cout商品的保质期:ProtectedTimeendl;}istream&operator(istream&is,Foods&f){cout请输入要增加的商品名称:;cinf.Name;cout请输入增加商品的数量:;cinf.Num;cout请输入增加商品的保质期:;cinf.ProtectedTime;returnis;}//******************家电类的函数定义*******************************voidElectricalAppliance::ShowMe(){cout商品名称:Nameendl;cout现有商品数量:Numendl;cout商品的颜色是:Colorendlendl;}istream&operator(istream&is,ElectricalAppliance&ele){cout请输入要增加的商品名称:;cinele.Name;cout请输入增加商品的数量:;cinele.Num;cout请输入增加商品的颜色:;cinele.Color;returnis;}//****************************类Suppermarket的函数定义*******************Suppermarket::Suppermarket(){num=0;for(inti=0;i1000;i++)goods[i]=NULL;}voidSuppermarket::Add(Goods*g){inti=0;while(inum){if(!strcmp(goods[i]-GetName(),g-GetName()))break;else4i++;}if(i==num){if(num==1000){cout超市里的商品已满,不能再增加了.endlendl;return;}else{goods[num]=g;goods[num]-ShowMe();num++;cout新商品增加成功!endlendl;}}else{cout增加的是已有商品,结果是:endlendl;goods[i]-AddNum(g-GetNum());goods[i]-ShowMe();}}voidSuppermarket::Sale(){charname[20];inti=0,n;cout请输入售出商品的名称:;cinname;cout请输入售出商品的数量:;cinn;while(inum){if(!strcmp(goods[i]-GetName(),name))break;elsei++;}if(i==num){cout超市里没有该商品,请核对!endlendl;return;}if(ngoods[i]-GetNum()){cout超市里剩余的商品不够售出的数量.endlendl;return;}goods[i]-DecNum(n);cout售出商品后的信息是:endlendl;goods[i]-ShowMe();}voidSuppermarket::Search(){inti;5charchoice='1';while(choice!='4'){cout请输入要查询的商品种类:endl;cout1----日常用品类(DailyGoods)endl;cout2----食品类(Foods)endl;cout3----家电类(ElectricalGoods)endl;cout4----退出该级菜单endlendl;cinchoice;switch(choice){case'1':cout日常用品类的信息是:endlendl;for(i=0;inum;i++)if(goods[i]-GetType()==0)goods[i]-ShowMe();break;case'2':cout食品类的信息是:endlendl;for(i=0;inum;i++)if(goods[i]-GetType()==1)goods[i]-ShowMe();break;case'3':cout家电类的信息是:endlendl;for(i=0;inum;i++)if(goods[i]-GetType()==2)goods[i]-ShowMe();break;case'4':break;default:cout输入有误,请重新输入!endlendl;break;}}}//*******************************主函数**********************************intmain(){charchoice;charch;DailyGoods*dai;Foods*food;ElectricalAppliance*ele;Suppermarket*sup;sup=newSuppermarket;cout*************欢迎进入超市管理系统***************endl;while(choice!='4'){cout请选择(1----4):endl;cout1-----增加商品.endl;cout2-----销售商品.endl;6cout3-----查询商品情况.endl;cout4-----退出.endlendl;cinchoice;switch(choice){case'1':cout请选择(c----e):endl;coutc----增加日常用品类商品.endl;coutd----增加食品类商品.endl;coute----增加家电类商品.endl;cinch;switch(ch){case'c':dai=newDailyGoods;cin*dai;sup-Add(dai);break;case'd':food=newFoods;cin*food;sup-Add(food);break;case'e':ele=newElectricalAppliance;cin*ele;sup-Add(ele);bre

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功