模拟超市的收银系统

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

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

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

资源描述

-1-模拟超市的收银系统一、系统分析与设计。随着计算机的发展,计算机技术已经融入到社会生活的各个角落,把人们从以前繁琐的手工操作中解放出来,从而使信息的管理大大简便起来。超市日常有大量的数据需要进行处理,包括收银员收银时输入的消费者购买信息、管理员输入的入库商品信息、管理员输入的人员信息、日常销售额的统计等等。面对如此大的信息量,就需要有相应的计算机管理系统来提高工作的效率和系统管理的安全性。通过这样的系统,超市就可以由收银员方便的在收银柜台进行销售额的录入,管理员也可以方便地进行管理,从而减小手工操作的工作量,本设计就是为了模拟超市的收银系统。从需求分析的角度来看,这个超市管理系统的需求如下所示:该系统的功能主要是模拟超市的收银的过程,所以不需要设计数据库,当进入系统,就会显示仓库里的所有货物,当管理员输入货物编号(索引号)时,就会提示你需要买的数量,输入完成就会提示你购买成功。再就是付款。根据系统需求,这个版本的超市管理系统是一个简单的管理系统,三、主要程序清单(见附录)//************************************************************************//*main.cpp系统主文件//************************************************************************#includecounter.h//创建一个商店CStore*PrepareStore(){//创建一个空商店CStore*pStore=newCStore();//为商店配货CGoods*pGoods=newCGoods(1,西瓜,4.50);pStore-AddGoods(pGoods,1000);pGoods=newCGoods(2,鸡蛋,5.00);pStore-AddGoods(pGoods,1000);pGoods=newCGoods(3,牛肉,12.00);pStore-AddGoods(pGoods,1000);pGoods=newCGoods(4,香蕉,4.10);-2-pStore-AddGoods(pGoods,1000);pGoods=newCGoods(5,空调,3000.00);pStore-AddGoods(pGoods,100);pGoods=newCGoods(6,大米,1.00);pStore-AddGoods(pGoods,10000);pGoods=newCGoods(7,葡萄,5.00);pStore-AddGoods(pGoods,1000);pGoods=newCGoods(8,面包,6.00);pStore-AddGoods(pGoods,1000);pGoods=newCGoods(9,火腿,15.00);pStore-AddGoods(pGoods,1000);returnpStore;}voidusage(){cout\n\n;cout.width(35);cout.fill('*');coutrightUSAGE;cout.width(35);coutleft*endl;cout*请您按照请示来购买商品,祝您消费愉快!\n;cout*输入\-1\,完成购买,去收银台\n;cout.width(35);cout.fill('*');coutrightUSAGE;cout.width(35);coutleft*endl;cout.fill('');cout\n\n;-3-}voidmain(){//准备超市储藏室、购物篮、收银台CStore*pStore=PrepareStore();//给超市配货CStore*pBasket=newCStore();CCounterCounter(pBasket);doubledCash=0.0;cout------------------------欢迎光临\美特好\超市------------------------\n\nendl;cout*******************本超市共有以下商品,欢迎您的选购*******************endl;//打印商店的现有商品pStore-Print();usage();//iIndex---用户欲购买商品的索引,iNum----用户欲购买商品的数目intiIndex=0,iNum=0;do{cout请输入商品索引号:;//非法输入if(!(ciniIndex)){cout\n\n你键入了非法的索引号,程序即将退出\n\n;gotoCELEAN;}//购买完毕,退出if(iIndex==-1){break;}//获取iIndex所对应的商品PSTOREELEMENTpSE=pStore-GetGoods(iIndex);-4-//没有此类商品if(pSE==NULL){cout\n很抱歉,本商店没有索引号为\iIndex\的商品\n\n;continue;}//购买数量cout请输入要购买数量:;//非法输入if(!(ciniNum)){cout\n\n你键入了非法的购买数目,程序即将退出\n\n;gotoCELEAN;}//商品查询intiStoreNum=pStore-QueryGoods(iIndex);if(iStoreNum=0){cout很抱歉,你要购买的\pSE-pGoods-GetName()\商品已经售完,请下次再来购买!\n;}else{if(iNumiStoreNum){cout很抱歉,本商店目前仅有\pSE-pGoods-GetName()\iStoreNum件,暂时先购买这么多吧\n;CGoods*pMyGoods=pSE-pGoods-Clone();pBasket-AddGoods(pMyGoods,iStoreNum);//加入购物篮pSE-iNum=0;//卖光了}else{cout恭喜你,成功购买:\n;cout商品:pSE-pGoods-GetName()件数:iNum\nendl;CGoods*pMyGoods=pSE-pGoods-Clone();pBasket-AddGoods(pMyGoods,iNum);//加入购物篮pSE-iNum=iStoreNum-iNum;//超市剩余}}-5-}while(true);if(pBasket-GetAllGoods()-size()==0){cout\n\n嗨,什么都没买到,白来一趟;(\n\n;gotoCELEAN;}else{cout\n\n购买完毕,今天收获不小啊,购买了如下商品:\n\n;pBasket-Print();}cout\n\n您好,您本次共计消费Counter.Bill()元\n;cout请交钱:;cindCash;while(Counter.Count(dCash)0){cout还差:-Counter.Count(0)元\n;cout请交钱:;cindCash;}cout\n\n共收取您现金:Counter.GetCash()元\n;cout应交纳金额:Counter.Bill()元\n;cout应找零:Counter.Count(0)元\n\n;cout**********************欢迎您再次光临本店**********************\n;CELEAN:deletepStore;deletepBasket;return;//counter.cpp:implementationofthesupermarketclass.////////////////////////////////////////////////////////////////////////#includecounter.h#includeassert.h//************************************************************************-6-//*商品类的成员函数定义//************************************************************************CGoods::CGoods(intiIndex,stringstrName,doubledUnitPrice){//初始化商品m_iIndex=iIndex;m_strName=strName;m_dUnitPrice=dUnitPrice;}CGoods::~CGoods(){}//attributesandoperationsintCGoods::GetIndex(void)const{returnm_iIndex;}stringCGoods::GetName(void)const{returnm_strName;}doubleCGoods::GetUnitPrice(void)const{returnm_dUnitPrice;}voidCGoods::SetUnitPrice(doubledUnitPrice){m_dUnitPrice=dUnitPrice;}CGoods*CGoods::Clone(){returnnewCGoods(m_iIndex,m_strName,m_dUnitPrice);}-7-//************************************************************************//*商品类的成员函数定义结束//************************************************************************//************************************************************************//*储藏室类的成员函数定义//************************************************************************CStore::CStore(){}CStore::~CStore(){DeleteAllGoods();}//往储藏室种添加货物boolCStore::AddGoods(CGoods*pGoods,intiNum){assert(pGoods!=NULL);intsize=m_vStore.size();boolbIsExist=false;for(inti=0;isize;i++){PSTOREELEMENTpSE=m_vStore[i];assert(pSE!=NULL);//假如已经有了同类商品在储藏室,那么增加此商品的数目if(pSE-pGoods!=NULL&&pSE-pGoods-GetIndex()==pGoods-GetIndex()){bIsExist=true;pSE-iNum+=iNum;break;}}-8-//储藏室没有同类商品,直接增加此类商品if(!bIsExist){PSTOREELEMENTp=newSTOREELEMENT;p-pGoods=pGoods;p-iNum=iNum;m_vStore.push_back(p);}returntrue;}//清空整个储藏室voidCStore::DeleteAllGoods(){intsize=m_vStore.size();for(inti=0;isize;i++){PSTOREELEMENTpSE=m_vStore[i];a

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

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

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

×
保存成功