模拟超市的收银系统.doc_第1页
模拟超市的收银系统.doc_第2页
模拟超市的收银系统.doc_第3页
模拟超市的收银系统.doc_第4页
模拟超市的收银系统.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模拟超市的收银系统一、 系统分析与设计。随着计算机的发展,计算机技术已经融入到社会生活的各个角落,把人们从以前繁琐的手工操作中解放出来,从而使信息的管理大大简便起来。超市日常有大量的数据需要进行处理,包括收银员收银时输入的消费者购买信息、管理员输入的入库商品信息、管理员输入的人员信息、日常销售额的统计等等。面对如此大的信息量,就需要有相应的计算机管理系统来提高工作的效率和系统管理的安全性。通过这样的系统,超市就可以由收银员方便的在收银柜台进行销售额的录入,管理员也可以方便地进行管理,从而减小手工操作的工作量,本设计就是为了模拟超市的收银系统。从需求分析的角度来看,这个超市管理系统的需求如下所示:该系统的功能主要是模拟超市的收银的过程,所以不需要设计数据库,当进入系统,就会显示仓库里的所有货物,当管理员输入货物编号(索引号)时,就会提示你需要买的数量,输入完成就会提示你购买成功。再就是付款。根据系统需求,这个版本的超市管理系统是一个简单的管理系统,三、主要程序清单(见附录)/*/*main.cpp 系统主文件/*#include counter.h/创建一个商店CStore* PrepareStore()/创建一个空商店CStore *pStore = new CStore();/为商店配货CGoods *pGoods = new CGoods(1, 西瓜, 4.50);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(2, 鸡蛋, 5.00);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(3, 牛肉, 12.00);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(4, 香蕉, 4.10);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(5, 空调, 3000.00);pStore-AddGoods(pGoods, 100);pGoods = new CGoods(6, 大米, 1.00);pStore-AddGoods(pGoods, 10000);pGoods = new CGoods(7, 葡萄, 5.00);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(8, 面包, 6.00);pStore-AddGoods(pGoods, 1000);pGoods = new CGoods(9, 火腿, 15.00);pStore-AddGoods(pGoods, 1000);return pStore;void usage()coutnn;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( );coutnn;void main() /准备超市储藏室、购物篮、收银台 CStore *pStore = PrepareStore(); /给超市配货 CStore *pBasket = new CStore(); CCounter Counter(pBasket); double dCash = 0.0; cout-欢迎光临 美特好 超市-nnendl; cout*本超市共有以下商品,欢迎您的选购*Print(); usage(); / iIndex-用户欲购买商品的索引, iNum-用户欲购买商品的数目 int iIndex = 0, iNum = 0; do coutiIndex) ) coutGetGoods( iIndex ); /没有此类商品 if (pSE = NULL) coutn很抱歉,本商店没有索引号为 iIndex 的商品nn; continue; /购买数量 coutiNum) ) coutQueryGoods( iIndex ); if (iStoreNum = 0) cout很抱歉,你要购买的pGoods-GetName() iStoreNum ) cout很抱歉,本商店目前仅有pGoods-GetName()iStoreNumpGoods-Clone(); pBasket-AddGoods( pMyGoods, iStoreNum ); /加入购物篮 pSE-iNum = 0; /卖光了 else cout恭喜你,成功购买:n; cout商品: pGoods-GetName() 件数: iNumnpGoods-Clone(); pBasket-AddGoods( pMyGoods, iNum ); /加入购物篮 pSE-iNum = iStoreNum - iNum;/超市剩余 while(true); if (pBasket-GetAllGoods()-size() = 0) coutnn嗨,什么都没买到,白来一趟;(nn; goto CELEAN; else coutPrint(); coutnn您好,您本次共计消费 Counter.Bill()元n; coutdCash; while ( Counter.Count(dCash) 0 ) cout 还差: -Counter.Count(0) 元n; cout dCash; coutnn共收取您现金:Counter.GetCash()元n; cout 应交纳金额:Counter.Bill()元n; cout 应找零:Counter.Count(0)元nn; cout*欢迎您再次光临本店*n;CELEAN: delete pStore; delete pBasket; return;/ counter.cpp: implementation of the supermarket class./#include counter.h#include /*/*商品类的成员函数定义/*CGoods:CGoods( int iIndex, string strName, double dUnitPrice )/ 初始化商品m_iIndex = iIndex;m_strName = strName;m_dUnitPrice = dUnitPrice;CGoods:CGoods()/attributes and operationsint CGoods:GetIndex(void) const return m_iIndex;string CGoods:GetName(void) constreturn m_strName;double CGoods:GetUnitPrice(void) const return m_dUnitPrice;void CGoods:SetUnitPrice(double dUnitPrice)m_dUnitPrice = dUnitPrice;CGoods *CGoods:Clone()return new CGoods(m_iIndex, m_strName, m_dUnitPrice);/*/*商品类的成员函数定义结束/*/*/*储藏室类的成员函数定义/*CStore:CStore()CStore:CStore()DeleteAllGoods();/往储藏室种添加货物bool CStore:AddGoods(CGoods *pGoods, int iNum)assert( pGoods != NULL );int size = m_vStore.size();bool bIsExist = false;for(int i=0; ipGoods != NULL & pSE-pGoods-GetIndex() = pGoods-GetIndex() )bIsExist = true;pSE-iNum += iNum ; break;/储藏室没有同类商品,直接增加此类商品if ( !bIsExist )PSTOREELEMENT p = new STOREELEMENT;p-pGoods = pGoods;p-iNum = iNum;m_vStore.push_back( p ); return true;/清空整个储藏室void CStore:DeleteAllGoods()int size = m_vStore.size();for(int i=0; ipGoods != NULL )delete pSE-pGoods; /删除商品pSE-pGoods = NULL;delete pSE; /删除储藏室元素pSE = NULL;/删除名为strName的货物,iNum为删除数量int CStore:DeleteGoods(const string &strName, int iNum)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetName() = strName )if ( iNum iNum pGoods;pSE-iNum = 0;delete pSE; /删除储藏室元素pSE = NULL;return 0;elsepSE-iNum -= iNum;return pSE-iNum;return 0;/删除索引号为iIndex的货物,iNum为删除数量int CStore:DeleteGoods(int iIndex, int iNum)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetIndex() = iIndex )if ( iNum iNum pGoods;pSE-iNum = 0;delete pSE; /删除储藏室元素pSE = NULL;return 0;elsepSE-iNum -= iNum;return pSE-iNum;return 0;/获取货物清单vector* CStore:GetAllGoods(void)return &m_vStore;/获取某类货物PSTOREELEMENT CStore:GetGoods(int iIndex)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetIndex() = iIndex )return pSE;return NULL;/获取某类货物PSTOREELEMENT CStore:GetGoods(const string &strName)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetName() = strName )return pSE;return NULL;/查询货物int CStore:QueryGoods(const string &strName)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetName() = strName )return pSE-iNum;return 0;/查询货物int CStore:QueryGoods(int iIndex)int size = m_vStore.size();for(int i=0; ipGoods != NULL & pSE-pGoods-GetIndex() = iIndex )return pSE-iNum;return 0;/打印水单void CStore:Print()string strTitle4;strTitle0 = 索引号;strTitle1 = 商品名;strTitle2 = 数量;strTitle3 = 单价;for (int i=0; i4; i+)cout.width(16);coutleftstrTitlei;coutnendl;/获取商品种类int size = m_vStore.size();for (i=0; isize; i+)cout.width(16);coutleftpGoods-GetIndex();cout.width(16);coutpGoods-GetName();cout.width(16);coutiNum;cout.width(16);cout.precision(2);coutfixedpGoods-GetUnitPrice()n;/*/*储藏室类的成员函数定义结束/*/*/*收银台类的成员函数定义/*CCounter:CCounter(CStore *pBasket)m_pBasket = pBasket;m_dCash = 0.0;CCounter:CCounter()/获取帐单double CCounter:Bill(void)double dTotalPrice = 0.0;vector *pvSE = m_pBasket-GetAllGoods();/获取商品种类int size = pvSE-size();for (int i=0; ipGoods

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论