模拟超市的收银系统Word下载.docx

上传人:b****5 文档编号:20461926 上传时间:2023-01-23 格式:DOCX 页数:15 大小:100.70KB
下载 相关 举报
模拟超市的收银系统Word下载.docx_第1页
第1页 / 共15页
模拟超市的收银系统Word下载.docx_第2页
第2页 / 共15页
模拟超市的收银系统Word下载.docx_第3页
第3页 / 共15页
模拟超市的收银系统Word下载.docx_第4页
第4页 / 共15页
模拟超市的收银系统Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

模拟超市的收银系统Word下载.docx

《模拟超市的收银系统Word下载.docx》由会员分享,可在线阅读,更多相关《模拟超市的收银系统Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

模拟超市的收银系统Word下载.docx

,3000.00);

AddGoods(pGoods,100);

pGoods=newCGoods(6,"

大米"

1.00);

AddGoods(pGoods,10000);

pGoods=newCGoods(7,"

葡萄"

pGoods=newCGoods(8,"

面包"

6.00);

pGoods=newCGoods(9,"

火腿"

15.00);

returnpStore;

}

voidusage(){

cout<

<

"

\n\n"

;

cout.width(35);

cout.fill('

*'

);

right<

USAGE"

left<

*"

endl;

*请您按照请示来购买商品,祝您消费愉快!

\n"

*输入\"

-1\"

完成购买,去收银台\n"

'

voidmain()

{

//准备超市储藏室、购物篮、收银台

CStore*pStore=PrepareStore();

//给超市配货

CStore*pBasket=newCStore();

CCounterCounter(pBasket);

doubledCash=0.0;

------------------------欢迎光临\"

美特好\"

超市------------------------\n\n"

*******************本超市共有以下商品,欢迎您的选购*******************"

//打印商店的现有商品

pStore->

Print();

usage();

//iIndex---用户欲购买商品的索引,iNum----用户欲购买商品的数目

intiIndex=0,iNum=0;

do{

cout<

请输入商品索引号:

//非法输入

if(!

(cin>

>

iIndex)){

cout<

\n\n你键入了非法的索引号,程序即将退出\n\n"

gotoCELEAN;

}

//购买完毕,退出

if(iIndex==-1){

break;

//获取iIndex所对应的商品

PSTOREELEMENTpSE=pStore->

GetGoods(iIndex);

//没有此类商品

if(pSE==NULL){

\n很抱歉,本商店没有索引号为\"

iIndex<

\"

的商品\n\n"

continue;

//购买数量

请输入要购买数量:

//非法输入

iNum)){

\n\n你键入了非法的购买数目,程序即将退出\n\n"

//商品查询

intiStoreNum=pStore->

QueryGoods(iIndex);

if(iStoreNum<

=0){

很抱歉,你要购买的\"

pSE->

pGoods->

GetName()<

商品已经售完,请下次再来购买!

}

else{

if(iNum>

iStoreNum){

cout<

很抱歉,本商店目前仅有\"

iStoreNum<

件,暂时先购买这么多吧\n"

CGoods*pMyGoods=pSE->

Clone();

pBasket->

AddGoods(pMyGoods,iStoreNum);

//加入购物篮

pSE->

iNum=0;

//卖光了

}

else{

恭喜你,成功购买:

商品:

"

件数:

iNum<

AddGoods(pMyGoods,iNum);

iNum=iStoreNum-iNum;

//超市剩余

}while(true);

if(pBasket->

GetAllGoods()->

size()==0){

\n\n嗨,什么都没买到,白来一趟;

(\n\n"

gotoCELEAN;

}

else{

\n\n购买完毕,今天收获不小啊,购买了如下商品:

pBasket->

cout<

\n\n您好,您本次共计消费"

Counter.Bill()<

元\n"

请交钱:

cin>

dCash;

while(Counter.Count(dCash)<

0){

还差:

<

-Counter.Count(0)<

cin>

dCash;

\n\n共收取您现金:

Counter.GetCash()<

应交纳金额:

应找零:

Counter.Count(0)<

元\n\n"

**********************欢迎您再次光临本店**********************\n"

CELEAN:

deletepStore;

deletepBasket;

return;

//counter.cpp:

implementationofthesupermarketclass.

//

//////////////////////////////////////////////////////////////////////

#include<

assert.h>

//*商品类的成员函数定义

CGoods:

:

CGoods(intiIndex,stringstrName,doubledUnitPrice)

//初始化商品

m_iIndex=iIndex;

m_strName=strName;

m_dUnitPrice=dUnitPrice;

~CGoods()

 

//attributesandoperations

intCGoods:

GetIndex(void)const{

returnm_iIndex;

stringCGoods:

GetName(void)const{

returnm_strName;

doubleCGoods:

GetUnitPrice(void)const{

returnm_dUnitPrice;

voidCGoods:

SetUnitPrice(doubledUnitPrice){

CGoods*CGoods:

Clone(){

returnnewCGoods(m_iIndex,m_strName,m_dUnitPrice);

//*商品类的成员函数定义结束

//*储藏室类的成员函数定义

CStore:

CStore()

~CStore()

DeleteAllGoods();

//往储藏室种添加货物

boolCStore:

AddGoods(CGoods*pGoods,intiNum){

assert(pGoods!

=NULL);

intsize=m_vStore.size();

boolbIsExist=false;

for(inti=0;

i<

size;

i++){

PSTOREELEMENTpSE=m_vStore[i];

assert(pSE!

=NULL);

//假如已经有了同类商品在储藏室,那么增加此商品的数目

if(pSE->

pGoods!

=NULL&

&

pSE->

GetIndex()==pGoods->

GetIndex()){

bIsExist=true;

pSE->

iNum+=iNum;

break;

//储藏室没有同类商品,直接增加此类商品

if(!

bIsExist){

PSTOREELEMENTp=newSTOREELEMENT;

p->

pGoods=pGoods;

iNum=iNum;

m_vStore.push_back(p);

returntrue;

//清空整个储藏室

voidCStore:

DeleteAllGoods(){

=NULL){

deletepSE->

pGoods;

//删除商品

pGoods=NULL;

deletepSE;

//删除储藏室元素

pSE=NULL;

//删除名为strName的货物,iNum为删除数量

intCStore:

DeleteGoods(conststring&

strName,intiNum){

GetName()==strName){

if(iNum<

=-1||pSE->

iNum<

=iNum){

deletepSE->

pSE->

deletepSE;

pSE=NULL;

return0;

iNum-=iNum;

returnpSE->

iNum;

return0;

//删除索引号为iIndex的货物,iNum为删除数量

DeleteGoods(intiIndex,intiNum){

GetIndex()==iIndex){

//获取货物清单

vector<

PSTOREELEMENT>

*CStore:

GetAllGoods(void){

return&

m_vStore;

//获取某类货物

PSTOREELEMENTCStore:

GetGoods(intiIndex){

returnpSE;

returnNULL;

GetGoods(conststring&

strName){

//查询货物

QueryGoods(conststring&

returnpSE->

QueryGoods(intiIndex){

//打印水单

Print(){

stringstrTitle[4];

strTitle[0]="

索引号"

strTitle[1]="

商品名"

strTitle[2]="

数量"

strTitle[3]="

单价"

for(inti=0;

4;

cout.width(16);

strTitle[i];

//获取商品种类

for(i=0;

m_vStore[i]->

GetIndex();

GetName();

cout.precision

(2);

fixed<

GetUnitPrice()<

//*储藏室类的成员函数定义结束

//*收银台类的成员函数定义

CCounter:

CCounter(CStore*pBasket)

m_pBasket=pBasket;

m_dCash=0.0;

~CCounter()

//获取帐单

doubleCCounter:

Bill(void){

doubledTotalPrice=0.0;

vector<

*pvSE=m_pBasket->

GetAllGoods();

intsize=pvSE->

size();

PSTOREELEMENTpSE=(*pvSE)[i];

dTotalPrice+=pSE->

GetUnitPrice()*pSE->

iNum;

returndTotalPrice;

//收钱及找零

Count(doubledCash){

m_dCash+=dCash;

doubledTotal=Bil

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1